Mercurial > hg > Members > kono > Proof > category
annotate discrete.agda @ 799:82a8c1ab4ef5
graph to category
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 23 Apr 2019 11:30:34 +0900 |
parents | 340708e8d54f |
children | 984d20c10c87 |
rev | line source |
---|---|
448
c2616de4d208
discrete again with negation
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
1 open import Category -- https://github.com/konn/category-agda |
c2616de4d208
discrete again with negation
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
2 open import Level |
c2616de4d208
discrete again with negation
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
3 |
c2616de4d208
discrete again with negation
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
4 module discrete where |
c2616de4d208
discrete again with negation
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
5 |
c2616de4d208
discrete again with negation
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
6 open import Relation.Binary.Core |
781 | 7 open import Relation.Binary.PropositionalEquality hiding ( [_] ; sym ) |
8 | |
448
c2616de4d208
discrete again with negation
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
9 |
799 | 10 |
11 module graphtocat where | |
12 | |
13 data Arrow { obj : Set } { hom : obj → obj → Set } : ( a b : obj ) → Set where | |
14 id : ( a : obj ) → Arrow a a | |
15 mono : { a b : obj } → hom a b → Arrow a b | |
16 connected : {a b : obj } → {c : obj} → hom b c → Arrow {obj} {hom} a b → Arrow a c | |
17 | |
18 _+_ : { obj : Set } { hom : obj → obj → Set } {a b c : obj } (f : (Arrow {obj} {hom} b c )) → (g : (Arrow {obj} {hom} a b )) → Arrow {obj} {hom} a c | |
19 id a + id .a = id a | |
20 id b + mono x = mono x | |
21 id a + connected x y = connected x y | |
22 mono x + id a = mono x | |
23 mono x + mono y = connected x (mono y) | |
24 mono x + connected y z = connected x ( connected y z ) | |
25 connected x y + z = connected x ( y + z ) | |
26 | |
27 assoc-+ : { obj : Set } { hom : obj → obj → Set } {a b c d : obj } | |
28 (f : (Arrow {obj} {hom} c d )) → (g : (Arrow {obj} {hom} b c )) → (h : (Arrow {obj} {hom} a b )) → | |
29 ( f + (g + h)) ≡ ((f + g) + h ) | |
30 assoc-+ (id a) (id .a) (id .a) = refl | |
31 assoc-+ (id a) (id .a) (mono x) = refl | |
32 assoc-+ (id a) (id .a) (connected h h₁) = refl | |
33 assoc-+ (id a) (mono x) (id a₁) = refl | |
34 assoc-+ (id a) (mono x) (mono x₁) = refl | |
35 assoc-+ (id a) (mono x) (connected h h₁) = refl | |
36 assoc-+ (id a) (connected g h) _ = refl | |
37 assoc-+ (mono x) (id a) (id .a) = refl | |
38 assoc-+ (mono x) (id a) (mono x₁) = refl | |
39 assoc-+ (mono x) (id a) (connected h h₁) = refl | |
40 assoc-+ (mono x) (mono x₁) (id a) = refl | |
41 assoc-+ (mono x) (mono x₁) (mono x₂) = refl | |
42 assoc-+ (mono x) (mono x₁) (connected h h₁) = refl | |
43 assoc-+ (mono x) (connected g g₁) _ = refl | |
44 assoc-+ (connected f g) (x) (y) = cong (λ k → connected f k) (assoc-+ g x y ) | |
45 | |
46 open import Relation.Binary.PropositionalEquality renaming ( cong to ≡-cong ) | |
47 | |
48 GraphtoCat : ( obj : Set ) ( hom : obj → obj → Set ) → Category Level.zero Level.zero Level.zero | |
49 GraphtoCat obj hom = record { | |
50 Obj = obj ; | |
51 Hom = λ a b → Arrow a b ; | |
52 _o_ = λ{a} {b} {c} x y → _+_ x y ; | |
53 _≈_ = λ x y → x ≡ y ; | |
54 Id = λ{a} → id a ; | |
55 isCategory = record { | |
56 isEquivalence = record {refl = refl ; trans = trans ; sym = sym } ; | |
57 identityL = λ{a b f} → identityL {a} {b} {f} ; | |
58 identityR = λ{a b f} → identityR {a} {b} {f} ; | |
59 o-resp-≈ = λ{a b c f g h i} → o-resp-≈ {a} {b} {c} {f} {g} {h} {i} ; | |
60 associative = λ{a b c d f g h } → assoc-+ f g h | |
61 } | |
62 } where | |
63 identityL : {A B : obj } {f : ( Arrow A B) } → ((id B) + f) ≡ f | |
64 identityL {_} {_} {id a} = refl | |
65 identityL {_} {_} {mono x} = refl | |
66 identityL {_} {_} {connected x f} = refl | |
67 identityR : {A B : obj } {f : ( Arrow {obj} {hom} A B) } → ( f + id A ) ≡ f | |
68 identityR {_} {_} {id a} = refl | |
69 identityR {_} {_} {mono x} = refl | |
70 identityR {_} {_} {connected x f} = cong (λ k → connected x k) ( identityR {_} {_} {f} ) | |
71 o-resp-≈ : {A B C : obj } {f g : ( Arrow A B)} {h i : ( Arrow B C)} → | |
72 f ≡ g → h ≡ i → ( h + f ) ≡ ( i + g ) | |
73 o-resp-≈ {a} {b} {c} {f} {.f} {h} {.h} refl refl = refl | |
74 | |
75 | |
76 data TwoObject : Set where | |
448
c2616de4d208
discrete again with negation
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
77 t0 : TwoObject |
c2616de4d208
discrete again with negation
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
78 t1 : TwoObject |
c2616de4d208
discrete again with negation
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
79 |
458 | 80 --- |
81 --- two objects category ( for limit to equalizer proof ) | |
448
c2616de4d208
discrete again with negation
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
82 --- |
c2616de4d208
discrete again with negation
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
83 --- f |
c2616de4d208
discrete again with negation
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
84 --- -----→ |
c2616de4d208
discrete again with negation
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
85 --- 0 1 |
c2616de4d208
discrete again with negation
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
86 --- -----→ |
c2616de4d208
discrete again with negation
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
87 --- g |
457
0ba86e29f492
limit-to and discrete clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
456
diff
changeset
|
88 -- |
0ba86e29f492
limit-to and discrete clean up
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
456
diff
changeset
|
89 -- missing arrows are constrainted by TwoHom data |
448
c2616de4d208
discrete again with negation
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
90 |
799 | 91 data TwoHom : TwoObject → TwoObject → Set where |
466 | 92 id-t0 : TwoHom t0 t0 |
93 id-t1 : TwoHom t1 t1 | |
455 | 94 arrow-f : TwoHom t0 t1 |
95 arrow-g : TwoHom t0 t1 | |
448
c2616de4d208
discrete again with negation
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
96 |
799 | 97 TwoCat' : Category Level.zero Level.zero Level.zero |
98 TwoCat' = GraphtoCat TwoObject TwoHom | |
99 where open graphtocat | |
448
c2616de4d208
discrete again with negation
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
100 |
799 | 101 _×_ : {a b c : TwoObject } → TwoHom b c → TwoHom a b → TwoHom a c |
102 _×_ {t0} {t1} {t1} id-t1 arrow-f = arrow-f | |
103 _×_ {t0} {t1} {t1} id-t1 arrow-g = arrow-g | |
104 _×_ {t1} {t1} {t1} id-t1 id-t1 = id-t1 | |
105 _×_ {t0} {t0} {t1} arrow-f id-t0 = arrow-f | |
106 _×_ {t0} {t0} {t1} arrow-g id-t0 = arrow-g | |
107 _×_ {t0} {t0} {t0} id-t0 id-t0 = id-t0 | |
108 | |
448
c2616de4d208
discrete again with negation
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
109 |
c2616de4d208
discrete again with negation
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
110 open TwoHom |
c2616de4d208
discrete again with negation
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
111 |
c2616de4d208
discrete again with negation
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
112 -- f g h |
c2616de4d208
discrete again with negation
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
113 -- d <- c <- b <- a |
c2616de4d208
discrete again with negation
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
114 -- |
455 | 115 -- It can be proved without TwoHom constraints |
448
c2616de4d208
discrete again with negation
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
116 |
799 | 117 assoc-× : {a b c d : TwoObject } |
118 {f : (TwoHom c d )} → {g : (TwoHom b c )} → {h : (TwoHom a b )} → | |
455 | 119 ( f × (g × h)) ≡ ((f × g) × h ) |
799 | 120 assoc-× {t0} {t0} {t0} {t0} { id-t0 }{ id-t0 }{ id-t0 } = refl |
121 assoc-× {t0} {t0} {t0} {t1} { arrow-f }{ id-t0 }{ id-t0 } = refl | |
122 assoc-× {t0} {t0} {t0} {t1} { arrow-g }{ id-t0 }{ id-t0 } = refl | |
123 assoc-× {t0} {t0} {t1} {t1} { id-t1 }{ arrow-f }{ id-t0 } = refl | |
124 assoc-× {t0} {t0} {t1} {t1} { id-t1 }{ arrow-g }{ id-t0 } = refl | |
125 assoc-× {t0} {t1} {t1} {t1} { id-t1 }{ id-t1 }{ arrow-f } = refl | |
126 assoc-× {t0} {t1} {t1} {t1} { id-t1 }{ id-t1 }{ arrow-g } = refl | |
127 assoc-× {t1} {t1} {t1} {t1} { id-t1 }{ id-t1 }{ id-t1 } = refl | |
449 | 128 |
799 | 129 TwoId : (a : TwoObject ) → (TwoHom a a ) |
130 TwoId t0 = id-t0 | |
131 TwoId t1 = id-t1 | |
449 | 132 |
468
c375d8f93a2c
discrete category and product from a limit
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
466
diff
changeset
|
133 open import Relation.Binary.PropositionalEquality renaming ( cong to ≡-cong ) |
453
3c2ce4474d92
try incomplete pattern for discrete
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
451
diff
changeset
|
134 |
799 | 135 TwoCat : Category Level.zero Level.zero Level.zero |
136 TwoCat = record { | |
461 | 137 Obj = TwoObject ; |
138 Hom = λ a b → TwoHom a b ; | |
455 | 139 _≈_ = λ x y → x ≡ y ; |
461 | 140 Id = λ{a} → TwoId a ; |
449 | 141 isCategory = record { |
453
3c2ce4474d92
try incomplete pattern for discrete
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
451
diff
changeset
|
142 isEquivalence = record {refl = refl ; trans = trans ; sym = sym } ; |
799 | 143 identityL = λ{a b f} → identityL {a} {b} {f} ; |
144 identityR = λ{a b f} → identityR {a} {b} {f} ; | |
145 o-resp-≈ = λ{a b c f g h i} → o-resp-≈ {a} {b} {c} {f} {g} {h} {i} ; | |
146 associative = λ{a b c d f g h } → assoc-× {a} {b} {c} {d} {f} {g} {h} | |
449 | 147 } |
148 } where | |
799 | 149 identityL : {A B : TwoObject } {f : ( TwoHom A B) } → ((TwoId B) × f) ≡ f |
150 identityL {t1} {t1} { id-t1 } = refl | |
151 identityL {t0} {t0} { id-t0 } = refl | |
152 identityL {t0} {t1} { arrow-f } = refl | |
153 identityL {t0} {t1} { arrow-g } = refl | |
154 identityR : {A B : TwoObject } {f : ( TwoHom A B) } → ( f × TwoId A ) ≡ f | |
155 identityR {t1} {t1} { id-t1 } = refl | |
156 identityR {t0} {t0} { id-t0 } = refl | |
157 identityR {t0} {t1} { arrow-f } = refl | |
158 identityR {t0} {t1} { arrow-g } = refl | |
159 o-resp-≈ : {A B C : TwoObject } {f g : ( TwoHom A B)} {h i : ( TwoHom B C)} → | |
455 | 160 f ≡ g → h ≡ i → ( h × f ) ≡ ( i × g ) |
799 | 161 o-resp-≈ {a} {b} {c} {f} {.f} {h} {.h} refl refl = refl |
468
c375d8f93a2c
discrete category and product from a limit
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
466
diff
changeset
|
162 |
c375d8f93a2c
discrete category and product from a limit
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
466
diff
changeset
|
163 |
c375d8f93a2c
discrete category and product from a limit
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
466
diff
changeset
|
164 -- Category with no arrow but identity |
c375d8f93a2c
discrete category and product from a limit
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
466
diff
changeset
|
165 |
799 | 166 |
167 open import Data.Empty | |
168 | |
169 DiscreteCat' : (S : Set) → Category Level.zero Level.zero Level.zero | |
170 DiscreteCat' S = GraphtoCat S ( λ _ _ → ⊥ ) | |
171 where open graphtocat | |
172 | |
778
06388660995b
fix applicative for Agda version 2.5.4.1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
475
diff
changeset
|
173 record DiscreteHom { c₁ : Level} { S : Set c₁} (a : S) (b : S) |
468
c375d8f93a2c
discrete category and product from a limit
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
466
diff
changeset
|
174 : Set c₁ where |
469
65ab0da524b8
discrete f ≡ refl should be passed, but it doesn't
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
468
diff
changeset
|
175 field |
474 | 176 discrete : a ≡ b -- if f : a → b then a ≡ b |
778
06388660995b
fix applicative for Agda version 2.5.4.1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
475
diff
changeset
|
177 dom : S |
472
f3d6d0275a0a
discrete equality as a dom equality
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
469
diff
changeset
|
178 dom = a |
468
c375d8f93a2c
discrete category and product from a limit
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
466
diff
changeset
|
179 |
c375d8f93a2c
discrete category and product from a limit
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
466
diff
changeset
|
180 open DiscreteHom |
c375d8f93a2c
discrete category and product from a limit
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
466
diff
changeset
|
181 |
778
06388660995b
fix applicative for Agda version 2.5.4.1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
475
diff
changeset
|
182 _*_ : ∀ {c₁} → {S : Set c₁} {a b c : S} → DiscreteHom {c₁} b c → DiscreteHom {c₁} a b → DiscreteHom {c₁} a c |
469
65ab0da524b8
discrete f ≡ refl should be passed, but it doesn't
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
468
diff
changeset
|
183 _*_ {_} {a} {b} {c} x y = record {discrete = trans ( discrete y) (discrete x) } |
468
c375d8f93a2c
discrete category and product from a limit
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
466
diff
changeset
|
184 |
778
06388660995b
fix applicative for Agda version 2.5.4.1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
475
diff
changeset
|
185 DiscreteId : { c₁ : Level} { S : Set c₁} ( a : S ) → DiscreteHom {c₁} a a |
469
65ab0da524b8
discrete f ≡ refl should be passed, but it doesn't
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
468
diff
changeset
|
186 DiscreteId a = record { discrete = refl } |
65ab0da524b8
discrete f ≡ refl should be passed, but it doesn't
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
468
diff
changeset
|
187 |
65ab0da524b8
discrete f ≡ refl should be passed, but it doesn't
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
468
diff
changeset
|
188 open import Relation.Binary.PropositionalEquality |
468
c375d8f93a2c
discrete category and product from a limit
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
466
diff
changeset
|
189 |
778
06388660995b
fix applicative for Agda version 2.5.4.1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
475
diff
changeset
|
190 assoc-* : {c₁ : Level } { S : Set c₁} {a b c d : S} |
469
65ab0da524b8
discrete f ≡ refl should be passed, but it doesn't
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
468
diff
changeset
|
191 {f : (DiscreteHom c d )} → {g : (DiscreteHom b c )} → {h : (DiscreteHom a b )} → |
472
f3d6d0275a0a
discrete equality as a dom equality
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
469
diff
changeset
|
192 dom ( f * (g * h)) ≡ dom ((f * g) * h ) |
f3d6d0275a0a
discrete equality as a dom equality
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
469
diff
changeset
|
193 assoc-* {c₁} {S} {a} {b} {c} {d} {f} {g} {h } = refl |
468
c375d8f93a2c
discrete category and product from a limit
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
466
diff
changeset
|
194 |
469
65ab0da524b8
discrete f ≡ refl should be passed, but it doesn't
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
468
diff
changeset
|
195 DiscreteCat : {c₁ : Level } → (S : Set c₁) → Category c₁ c₁ c₁ |
65ab0da524b8
discrete f ≡ refl should be passed, but it doesn't
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
468
diff
changeset
|
196 DiscreteCat {c₁} S = record { |
778
06388660995b
fix applicative for Agda version 2.5.4.1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
475
diff
changeset
|
197 Obj = S ; |
469
65ab0da524b8
discrete f ≡ refl should be passed, but it doesn't
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
468
diff
changeset
|
198 Hom = λ a b → DiscreteHom {c₁} {S} a b ; |
65ab0da524b8
discrete f ≡ refl should be passed, but it doesn't
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
468
diff
changeset
|
199 _o_ = λ{a} {b} {c} x y → _*_ {c₁ } {S} {a} {b} {c} x y ; |
474 | 200 _≈_ = λ x y → dom x ≡ dom y ; -- x ≡ y does not work because refl ≡ discrete f is failed as it should be |
468
c375d8f93a2c
discrete category and product from a limit
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
466
diff
changeset
|
201 Id = λ{a} → DiscreteId a ; |
c375d8f93a2c
discrete category and product from a limit
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
466
diff
changeset
|
202 isCategory = record { |
c375d8f93a2c
discrete category and product from a limit
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
466
diff
changeset
|
203 isEquivalence = record {refl = refl ; trans = trans ; sym = sym } ; |
469
65ab0da524b8
discrete f ≡ refl should be passed, but it doesn't
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
468
diff
changeset
|
204 identityL = λ{a b f} → identityL {a} {b} {f} ; |
65ab0da524b8
discrete f ≡ refl should be passed, but it doesn't
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
468
diff
changeset
|
205 identityR = λ{a b f} → identityR {a} {b} {f} ; |
65ab0da524b8
discrete f ≡ refl should be passed, but it doesn't
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
468
diff
changeset
|
206 o-resp-≈ = λ{a b c f g h i} → o-resp-≈ {a} {b} {c} {f} {g} {h} {i} ; |
65ab0da524b8
discrete f ≡ refl should be passed, but it doesn't
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
468
diff
changeset
|
207 associative = λ{a b c d f g h } → assoc-* { c₁} {S} {a} {b} {c} {d} {f} {g} {h} |
468
c375d8f93a2c
discrete category and product from a limit
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
466
diff
changeset
|
208 } |
c375d8f93a2c
discrete category and product from a limit
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
466
diff
changeset
|
209 } where |
778
06388660995b
fix applicative for Agda version 2.5.4.1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
475
diff
changeset
|
210 identityL : {a b : S} {f : ( DiscreteHom {c₁} a b) } → dom ((DiscreteId b) * f) ≡ dom f |
472
f3d6d0275a0a
discrete equality as a dom equality
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
469
diff
changeset
|
211 identityL {a} {b} {f} = refl |
778
06388660995b
fix applicative for Agda version 2.5.4.1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
475
diff
changeset
|
212 identityR : {A B : S} {f : ( DiscreteHom {c₁} A B) } → dom ( f * DiscreteId A ) ≡ dom f |
472
f3d6d0275a0a
discrete equality as a dom equality
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
469
diff
changeset
|
213 identityR {a} {b} {f} = refl |
778
06388660995b
fix applicative for Agda version 2.5.4.1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
475
diff
changeset
|
214 o-resp-≈ : {A B C : S } {f g : ( DiscreteHom {c₁} A B)} {h i : ( DiscreteHom B C)} → |
472
f3d6d0275a0a
discrete equality as a dom equality
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
469
diff
changeset
|
215 dom f ≡ dom g → dom h ≡ dom i → dom ( h * f ) ≡ dom ( i * g ) |
f3d6d0275a0a
discrete equality as a dom equality
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
469
diff
changeset
|
216 o-resp-≈ {a} {b} {c} {f} {g} {h} {i} refl refl = refl |
468
c375d8f93a2c
discrete category and product from a limit
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
466
diff
changeset
|
217 |
c375d8f93a2c
discrete category and product from a limit
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
466
diff
changeset
|
218 |
c375d8f93a2c
discrete category and product from a limit
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
466
diff
changeset
|
219 |
c375d8f93a2c
discrete category and product from a limit
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
466
diff
changeset
|
220 |
c375d8f93a2c
discrete category and product from a limit
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
466
diff
changeset
|
221 |
472
f3d6d0275a0a
discrete equality as a dom equality
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
469
diff
changeset
|
222 |