annotate 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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
477
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 open import Level
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 open import Category
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 module Comma {c₁ c₂ ℓ c₁' c₂' ℓ' : Level} (A : Category c₁ c₂ ℓ) (B : Category c₁' c₂' ℓ') ( F G : Functor A B ) where
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 open import HomReasoning
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 open import cat-utility
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 -- this a special case A = A, B = A, C = B
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
10
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 open Functor
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 record CommaObj : Set ( c₁ ⊔ c₂' ) where
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 field
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 obj : Obj A
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 hom : Hom B ( FObj F obj ) ( FObj G obj )
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 open CommaObj
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 record CommaHom ( a b : CommaObj ) : Set ( c₂ ⊔ ℓ' ) where
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 field
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 arrow : Hom A ( obj a ) ( obj b )
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 comm : B [ B [ FMap G arrow o hom a ] ≈ B [ hom b o FMap F arrow ] ]
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 open CommaHom
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
26
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 _⋍_ : { a b : CommaObj } ( f g : CommaHom a b ) → Set ℓ
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 _⋍_ f g = A [ arrow f ≈ arrow g ]
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 _∙_ : {a b c : CommaObj } → CommaHom b c → CommaHom a b → CommaHom a c
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 _∙_ {a} {b} {c} f g = record {
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
32 arrow = A [ arrow f o arrow g ] ;
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
33 comm = comm1
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 } where
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 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 ]) ] ]
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
36 comm1 = {!!}
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
37
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 CommaId : { a : CommaObj } → CommaHom a a
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 CommaId {a} = record { arrow = id1 A ( obj a ) ;
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 comm = comm2 } where
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 comm2 : B [ B [ FMap G (id1 A (obj a)) o hom a ] ≈ B [ hom a o FMap F (id1 A (obj a)) ] ]
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 comm2 = {!!}
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
43
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
44 open import Relation.Binary.Core
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
45
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
46 isCommaCategory : IsCategory CommaObj CommaHom _⋍_ _∙_ CommaId
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
47 isCommaCategory = record {
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 isEquivalence = let open ≈-Reasoning (A) in record {refl = refl-hom ;
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
49 sym = sym ;
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
50 trans = trans-hom }
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
51 ; identityL = {!!}
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
52 ; identityR = {!!}
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
53 ; o-resp-≈ = λ{a b c f g h i } → o-resp-≈1 {a} {b} {c} {f} {g} {h} {i}
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
54 ; associative = {!!}
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
55 } where
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
56 o-resp-≈1 : {!!}
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
57 o-resp-≈1 = {!!}
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
58
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
59
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
60 _↑_ : Category {!!} {!!} ℓ
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
61 _↑_ = {!!}
bcf941e20737 add Comma category
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
62