annotate epi.agda @ 776:5a3ca9509fbf

add epi
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Tue, 25 Sep 2018 18:06:14 +0900
parents
children 5160b431f1de
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
776
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 open import Category -- https://github.com/konn/category-agda
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 open import Level
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 module epi where
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 open import Relation.Binary.Core
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 data FourObject : Set where
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 ta : FourObject
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 tb : FourObject
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 tc : FourObject
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 td : FourObject
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 data FourHom : FourObject → FourObject → Set where
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 id-ta : FourHom ta ta
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 id-tb : FourHom tb tb
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 id-tc : FourHom tc tc
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 id-td : FourHom td td
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 arrow-ca : FourHom tc ta
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 arrow-ab : FourHom ta tb
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 arrow-bd : FourHom tb td
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 arrow-cb : FourHom tc tb
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 arrow-ad : FourHom ta td
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 arrow-cd : FourHom tc td
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
26
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 _×_ : {a b c : FourObject } → FourHom b c → FourHom a b → FourHom a c
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 _×_ {x} {ta} {ta} id-ta y = y
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 _×_ {x} {tb} {tb} id-tb y = y
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 _×_ {x} {tc} {tc} id-tc y = y
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 _×_ {x} {td} {td} id-td y = y
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
32 _×_ {ta} {ta} {x} y id-ta = y
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
33 _×_ {tb} {tb} {x} y id-tb = y
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 _×_ {tc} {tc} {x} y id-tc = y
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 _×_ {td} {td} {x} y id-td = y
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
36 _×_ {tc} {ta} {tb} arrow-ab arrow-ca = arrow-cb
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 _×_ {ta} {tb} {td} arrow-bd arrow-ab = arrow-ad
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 _×_ {tc} {tb} {td} arrow-bd arrow-cb = arrow-cd
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 _×_ {tc} {ta} {td} arrow-ad arrow-ca = arrow-cd
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 _×_ {tc} {ta} {tc} () arrow-ca
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 _×_ {ta} {tb} {ta} () arrow-ab
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 _×_ {tc} {tb} {ta} () arrow-cb
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
43 _×_ {ta} {tb} {tc} () arrow-ab
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
44 _×_ {tc} {tb} {tc} () arrow-cb
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
45 _×_ {tb} {td} {ta} () arrow-bd
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
46 _×_ {ta} {td} {ta} () arrow-ad
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
47 _×_ {tc} {td} {ta} () arrow-cd
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 _×_ {tb} {td} {tb} () arrow-bd
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
49 _×_ {ta} {td} {tb} () arrow-ad
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
50 _×_ {tc} {td} {tb} () arrow-cd
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
51 _×_ {tb} {td} {tc} () arrow-bd
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
52 _×_ {ta} {td} {tc} () arrow-ad
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
53 _×_ {tc} {td} {tc} () arrow-cd
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
54
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
55 open FourHom
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
56
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
57
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
58 assoc-× : {a b c d : FourObject }
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
59 {f : (FourHom c d )} → {g : (FourHom b c )} → {h : (FourHom a b )} →
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
60 ( f × (g × h)) ≡ ((f × g) × h )
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
61 assoc-× {_} {_} {_} {_} {id-ta} {y} {z} = refl
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
62 assoc-× {_} {_} {_} {_} {id-tb} {y} {z} = refl
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
63 assoc-× {_} {_} {_} {_} {id-tc} {y} {z} = refl
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
64 assoc-× {_} {_} {_} {_} {id-td} {y} {z} = refl
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
65 assoc-× {_} {_} {_} {_} {arrow-ca} {id-tc} {z} = refl
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
66 assoc-× {_} {_} {_} {_} {arrow-ab} {id-ta} {z} = refl
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
67 assoc-× {_} {_} {_} {_} {arrow-ab} {arrow-ca} {id-tc} = refl
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
68 assoc-× {_} {_} {_} {_} {arrow-bd} {id-tb} {z} = refl
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
69 assoc-× {_} {_} {_} {_} {arrow-bd} {arrow-ab} {id-ta} = refl
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
70 assoc-× {_} {_} {_} {_} {arrow-bd} {arrow-ab} {arrow-ca} = refl
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
71 assoc-× {_} {_} {_} {_} {arrow-bd} {arrow-cb} {id-tc} = refl
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
72 assoc-× {_} {_} {_} {_} {arrow-cb} {id-tc} {z} = refl
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
73 assoc-× {_} {_} {_} {_} {arrow-ad} {id-ta} {z} = refl
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
74 assoc-× {_} {_} {_} {_} {arrow-ad} {arrow-ca} {id-tc} = refl
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
75 assoc-× {_} {_} {_} {_} {arrow-cd} {id-tc} {id-tc} = refl
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
76
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
77 FourId : (a : FourObject ) → (FourHom a a )
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
78 FourId ta = id-ta
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
79 FourId tb = id-tb
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
80 FourId tc = id-tc
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
81 FourId td = id-td
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
82
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
83 open import Relation.Binary.PropositionalEquality
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
84
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
85 FourCat : Category zero zero zero
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
86 FourCat = record {
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
87 Obj = FourObject ;
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
88 Hom = λ a b → FourHom a b ;
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
89 _o_ = λ{a} {b} {c} x y → _×_ x y ;
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
90 _≈_ = λ x y → x ≡ y ;
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
91 Id = λ{a} → FourId a ;
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
92 isCategory = record {
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
93 isEquivalence = record {refl = refl ; trans = trans ; sym = sym } ; identityL = λ{a b f} → identityL {a} {b} {f} ;
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
94 identityR = λ{a b f} → identityR {a} {b} {f} ;
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
95 o-resp-≈ = λ{a b c f g h i} → o-resp-≈ {a} {b} {c} {f} {g} {h} {i} ;
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
96 associative = λ{a b c d f g h } → assoc-× {a} {b} {c} {d} {f} {g} {h}
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
97 }
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
98 } where
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
99 identityL : {A B : FourObject } {f : ( FourHom A B) } → ((FourId B) × f) ≡ f
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
100 identityL {ta} {ta} {id-ta} = refl
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
101 identityL {tb} {tb} {id-tb} = refl
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
102 identityL {tc} {tc} {id-tc} = refl
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
103 identityL {td} {td} {id-td} = refl
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
104 identityL {tc} {ta} {arrow-ca} = refl
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
105 identityL {ta} {tb} {arrow-ab} = refl
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
106 identityL {tb} {td} {arrow-bd} = refl
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
107 identityL {tc} {tb} {arrow-cb} = refl
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
108 identityL {ta} {td} {arrow-ad} = refl
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
109 identityL {tc} {td} {arrow-cd} = refl
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
110 identityR : {A B : FourObject } {f : ( FourHom A B) } → ( f × FourId A ) ≡ f
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
111 identityR {ta} {ta} {id-ta} = refl
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
112 identityR {tb} {tb} {id-tb} = refl
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
113 identityR {tc} {tc} {id-tc} = refl
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
114 identityR {td} {td} {id-td} = refl
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
115 identityR {tc} {ta} {arrow-ca} = refl
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
116 identityR {ta} {tb} {arrow-ab} = refl
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
117 identityR {tb} {td} {arrow-bd} = refl
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
118 identityR {tc} {tb} {arrow-cb} = refl
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
119 identityR {ta} {td} {arrow-ad} = refl
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
120 identityR {tc} {td} {arrow-cd} = refl
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
121 o-resp-≈ : {A B C : FourObject } {f g : ( FourHom A B)} {h i : ( FourHom B C)} →
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
122 f ≡ g → h ≡ i → ( h × f ) ≡ ( i × g )
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
123 o-resp-≈ {a} {b} {c} {f} {x} {h} {y} refl refl = refl
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
124
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
125 epi : {a b c : FourObject } {f₁ f₂ : Hom FourCat a b } { h : Hom FourCat b c }
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
126 → FourCat [ h o f₁ ] ≡ FourCat [ h o f₂ ] → f₁ ≡ f₂
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
127 epi {ta} {ta} {c} {id-ta} {id-ta} {h} refl = refl
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
128 epi {tb} {tb} {c} {id-tb} {id-tb} {h} refl = refl
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
129 epi {tc} {tc} {c} {id-tc} {id-tc} {h} refl = refl
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
130 epi {td} {td} {c} {id-td} {id-td} {h} refl = refl
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
131 epi {tc} {ta} {c} {arrow-ca} {arrow-ca} {h} refl = refl
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
132 epi {ta} {tb} {c} {arrow-ab} {arrow-ab} {h} refl = refl
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
133 epi {tb} {td} {c} {arrow-bd} {arrow-bd} {h} refl = refl
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
134 epi {tc} {tb} {c} {arrow-cb} {arrow-cb} {h} refl = refl
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
135 epi {ta} {td} {c} {arrow-ad} {arrow-ad} {h} refl = refl
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
136 epi {tc} {td} {c} {arrow-cd} {arrow-cd} {h} refl = refl
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
137
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
138 monic : {a b c : FourObject } {g₁ g₂ : Hom FourCat b c } { h : Hom FourCat a b }
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
139 → FourCat [ g₁ o h ] ≡ FourCat [ g₂ o h ] → g₁ ≡ g₂
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
140 monic {a} {ta} {ta} {id-ta} {id-ta} {h} refl = refl
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
141 monic {a} {tb} {tb} {id-tb} {id-tb} {h} refl = refl
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
142 monic {a} {tc} {tc} {id-tc} {id-tc} {h} refl = refl
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
143 monic {a} {td} {td} {id-td} {id-td} {h} refl = refl
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
144 monic {a} {tc} {ta} {arrow-ca} {arrow-ca} {h} refl = refl
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
145 monic {a} {ta} {tb} {arrow-ab} {arrow-ab} {h} refl = refl
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
146 monic {a} {tb} {td} {arrow-bd} {arrow-bd} {h} refl = refl
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
147 monic {a} {tc} {tb} {arrow-cb} {arrow-cb} {h} refl = refl
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
148 monic {a} {ta} {td} {arrow-ad} {arrow-ad} {h} refl = refl
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
149 monic {a} {tc} {td} {arrow-cd} {arrow-cd} {h} refl = refl
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
150
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
151 open import cat-utility
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
152 open import Relation.Nullary
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
153 open import Data.Empty
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
154
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
155 record Rev {a b : FourObject } (f : Hom FourCat a b ) : Set where
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
156 field
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
157 rev : Hom FourCat b a
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
158 eq : FourCat [ f o rev ] ≡ id1 FourCat b
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
159
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
160 not-rev : ¬ ( {a b : FourObject } → (f : Hom FourCat a b ) → Rev f )
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
161 not-rev r = ⊥-elim ( lemma1 arrow-ab (Rev.rev (r arrow-ab)) (Rev.eq (r arrow-ab)) )
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
162 where
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
163 lemma1 : (f : Hom FourCat ta tb ) → (e₁ : Hom FourCat tb ta )
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
164 → ( FourCat [ f o e₁ ] ≡ id1 FourCat tb ) → ⊥
5a3ca9509fbf add epi
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
165 lemma1 _ () eq