annotate epi.agda @ 787:ca5eba647990

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