← Back

Modules

Leios

  • Abstract
  • Base
  • Blocks
  • Config
  • FFD
  • KeyRegistration
  • Linear
  • Linear.Trace.Verifier
  • Linear.Trace.Verifier.Test
  • Prelude
  • Protocol
  • SpecStructure
  • Voting
  • VRF

Network

  • BasicBroadcast
123456789101112131415161718192021222324252627282930313233343536
{-# OPTIONS --without-K --safe #-}
 
open import Categories.Category using (Category)
 
-- Defines the following properties of a Category:
-- Cartesian -- a Cartesian category is a category with all products
 
-- (for the induced Monoidal structure, see Cartesian.Monoidal)
 
module Categories.Category.Cartesian {o ā„“ e} (š’ž : Category o ā„“ e) where
 
open import Level using (levelOfTerm)
open import Data.Nat using (ā„•; zero; suc)
 
open Category š’ž
open HomReasoning
 
open import Categories.Category.BinaryProducts š’ž using (BinaryProducts; module BinaryProducts)
open import Categories.Object.Terminal š’ž using (Terminal)
 
private
variable
A B C D W X Y Z : Obj
f f′ g g′ h i : A ⇒ B
 
-- Cartesian monoidal category
record Cartesian : Set (levelOfTerm š’ž) where
field
terminal : Terminal
products : BinaryProducts
open BinaryProducts products using (_Ɨ_)
 
power : Obj → ā„• → Obj
power A 0 = Terminal.⊤ terminal
power A 1 = A
power A (suc (suc n)) = A Ɨ power A (suc n)