Advertisement
Guest User

Untitled

a guest
Nov 28th, 2015
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.38 KB | None | 0 0
  1. module Category where
  2. open import Level
  3. open import Relation.Binary using (Rel; IsEquivalence; module IsEquivalence; Reflexive; Symmetric; Transitive) renaming (_⇒_ to _⊆_)
  4.  
  5. record Category {o m e} : Set ( suc ( o ⊔ m ⊔ e ) ) where
  6. infix 4 _⇛_ _≡_
  7. infixr 9 _∘_
  8. field
  9. Obj : Set o
  10. _⇛_ : Rel Obj m
  11. _≡_ : ∀ {A B} -> Rel (A ⇛ B ) e
  12. id : ∀ {x} -> x ⇛ x
  13. _∘_ : ∀ {a b c : Obj} -> (b ⇛ c) -> (a ⇛ b) -> (a ⇛ c )
  14.  
  15.  
  16. data TrivMorph {o} (obj : Set o) : obj -> obj -> Set (suc o) where
  17. idM : ∀ {x} -> TrivMorph obj x x
  18.  
  19. data TrivEquiv {i l} (obj : Set i) (morph : Rel obj l) {dom cod : obj} : morph dom cod -> morph dom cod -> Set (i ⊔ suc l ) where
  20. idE : forall {x} -> TrivEquiv obj morph x x
  21.  
  22. trivEqSimple : ∀ {i l} {obj : Set i} {dom cod : obj} {morph : Rel obj l } {f g h : morph cod dom } -> TrivEquiv obj morph f g
  23. -> TrivEquiv obj morph g h -> TrivEquiv obj morph f h
  24. trivEqSimple idE idE = idE
  25.  
  26. trivMorphSimpleComp : forall {o} {obj : Set o} {a b c : obj} -> TrivMorph obj b c -> TrivMorph obj a b -> TrivMorph obj a c
  27. trivMorphSimpleComp idM idM = idM
  28.  
  29.  
  30. trivCat : forall {o } (obj : Set o) -> Category {o}
  31. trivCat obj = record {Obj = obj
  32. ; _⇛_ = TrivMorph obj
  33. ; _≡_ = TrivEquiv obj (TrivMorph obj)
  34. ; id = idM
  35. ; _∘_ = trivMorphSimpleComp }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement