Mercurial > hg > Members > kono > Proof > category
view Comma.agda @ 477:bcf941e20737
add Comma category
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 08 Mar 2017 22:33:31 +0900 |
parents | |
children | dc24ac6ebdb3 |
line wrap: on
line source
open import Level open import Category module Comma {c₁ c₂ ℓ c₁' c₂' ℓ' : Level} (A : Category c₁ c₂ ℓ) (B : Category c₁' c₂' ℓ') ( F G : Functor A B ) where open import HomReasoning open import cat-utility -- this a special case A = A, B = A, C = B open Functor record CommaObj : Set ( c₁ ⊔ c₂' ) where field obj : Obj A hom : Hom B ( FObj F obj ) ( FObj G obj ) open CommaObj record CommaHom ( a b : CommaObj ) : Set ( c₂ ⊔ ℓ' ) where field arrow : Hom A ( obj a ) ( obj b ) comm : B [ B [ FMap G arrow o hom a ] ≈ B [ hom b o FMap F arrow ] ] open CommaHom _⋍_ : { a b : CommaObj } ( f g : CommaHom a b ) → Set ℓ _⋍_ f g = A [ arrow f ≈ arrow g ] _∙_ : {a b c : CommaObj } → CommaHom b c → CommaHom a b → CommaHom a c _∙_ {a} {b} {c} f g = record { arrow = A [ arrow f o arrow g ] ; comm = comm1 } where comm1 : B [ B [ FMap G (A [ arrow f o arrow g ] ) o hom a ] ≈ B [ hom c o FMap F (A [ arrow f o arrow g ]) ] ] comm1 = {!!} CommaId : { a : CommaObj } → CommaHom a a CommaId {a} = record { arrow = id1 A ( obj a ) ; comm = comm2 } where comm2 : B [ B [ FMap G (id1 A (obj a)) o hom a ] ≈ B [ hom a o FMap F (id1 A (obj a)) ] ] comm2 = {!!} open import Relation.Binary.Core isCommaCategory : IsCategory CommaObj CommaHom _⋍_ _∙_ CommaId isCommaCategory = record { isEquivalence = let open ≈-Reasoning (A) in record {refl = refl-hom ; sym = sym ; trans = trans-hom } ; identityL = {!!} ; identityR = {!!} ; o-resp-≈ = λ{a b c f g h i } → o-resp-≈1 {a} {b} {c} {f} {g} {h} {i} ; associative = {!!} } where o-resp-≈1 : {!!} o-resp-≈1 = {!!} _↑_ : Category {!!} {!!} ℓ _↑_ = {!!}