comparison CCChom.agda @ 787:ca5eba647990

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Thu, 18 Apr 2019 20:07:22 +0900
parents 287d25c87b60
children a3e124e36acf
comparison
equal deleted inserted replaced
786:287d25c87b60 787:ca5eba647990
41 field 41 field
42 ≅→ : Hom A a b → Hom B a' b' 42 ≅→ : Hom A a b → Hom B a' b'
43 ≅← : Hom B a' b' → Hom A a b 43 ≅← : Hom B a' b' → Hom A a b
44 iso→ : {f : Hom B a' b' } → B [ ≅→ ( ≅← f) ≈ f ] 44 iso→ : {f : Hom B a' b' } → B [ ≅→ ( ≅← f) ≈ f ]
45 iso← : {f : Hom A a b } → A [ ≅← ( ≅→ f) ≈ f ] 45 iso← : {f : Hom A a b } → A [ ≅← ( ≅→ f) ≈ f ]
46 cong→ : {f g : Hom A a b } → A [ f ≈ g ] → B [ ≅→ f ≈ ≅→ g ]
47 cong← : {f g : Hom B a' b'} → B [ f ≈ g ] → A [ ≅← f ≈ ≅← g ]
46 48
47 49
48 record IsCCChom {c₁ c₂ ℓ : Level} (A : Category c₁ c₂ ℓ) (1 : Obj A) 50 record IsCCChom {c₁ c₂ ℓ : Level} (A : Category c₁ c₂ ℓ) (1 : Obj A)
49 ( _*_ : Obj A → Obj A → Obj A ) ( _^_ : Obj A → Obj A → Obj A ) : Set ( c₁ ⊔ c₂ ⊔ ℓ ) where 51 ( _*_ : Obj A → Obj A → Obj A ) ( _^_ : Obj A → Obj A → Obj A ) : Set ( c₁ ⊔ c₂ ⊔ ℓ ) where
50 field 52 field
71 CCC→hom A c = record { 73 CCC→hom A c = record {
72 one = CCC.1 c 74 one = CCC.1 c
73 ; _*_ = CCC._∧_ c 75 ; _*_ = CCC._∧_ c
74 ; _^_ = CCC._<=_ c 76 ; _^_ = CCC._<=_ c
75 ; isCCChom = record { 77 ; isCCChom = record {
76 ccc-1 = λ {a} {b} {c'} → record { ≅→ = c101 ; ≅← = c102 ; iso→ = c103 {a} {b} {c'} ; iso← = c104 } 78 ccc-1 = λ {a} {b} {c'} → record { ≅→ = c101 ; ≅← = c102 ; iso→ = c103 {a} {b} {c'} ; iso← = c104 ; cong← = c105 ; cong→ = c106 }
77 ; ccc-2 = record { ≅→ = c201 ; ≅← = c202 ; iso→ = c203 ; iso← = c204 } 79 ; ccc-2 = record { ≅→ = c201 ; ≅← = c202 ; iso→ = c203 ; iso← = c204 ; cong← = c205; cong→ = c206 }
78 ; ccc-3 = record { ≅→ = c301 ; ≅← = c302 ; iso→ = c303 ; iso← = c304 } 80 ; ccc-3 = record { ≅→ = c301 ; ≅← = c302 ; iso→ = c303 ; iso← = c304 ; cong← = c305 ; cong→ = c306 }
79 } 81 }
80 } where 82 } where
81 c101 : {a : Obj A} → Hom A a (CCC.1 c) → Hom OneCat OneObj OneObj 83 c101 : {a : Obj A} → Hom A a (CCC.1 c) → Hom OneCat OneObj OneObj
82 c101 _ = OneObj 84 c101 _ = OneObj
83 c102 : {a : Obj A} → Hom OneCat OneObj OneObj → Hom A a (CCC.1 c) 85 c102 : {a : Obj A} → Hom OneCat OneObj OneObj → Hom A a (CCC.1 c)
100 c302 f = CCC._* c f 102 c302 f = CCC._* c f
101 c303 : { c₁ a b : Obj A} → {f : Hom A ((c CCC.∧ a) b) c₁} → A [ (c301 ( c302 f )) ≈ f ] 103 c303 : { c₁ a b : Obj A} → {f : Hom A ((c CCC.∧ a) b) c₁} → A [ (c301 ( c302 f )) ≈ f ]
102 c303 = IsCCC.e4a (CCC.isCCC c) 104 c303 = IsCCC.e4a (CCC.isCCC c)
103 c304 : { c₁ a b : Obj A} → {f : Hom A a ((c CCC.<= c₁) b)} → A [ (c302 ( c301 f )) ≈ f ] 105 c304 : { c₁ a b : Obj A} → {f : Hom A a ((c CCC.<= c₁) b)} → A [ (c302 ( c301 f )) ≈ f ]
104 c304 = IsCCC.e4b (CCC.isCCC c) 106 c304 = IsCCC.e4b (CCC.isCCC c)
107 c105 : {a : Obj A } {f g : Hom OneCat OneObj OneObj} → _[_≈_] OneCat {OneObj} {OneObj} f g → A [ c102 {a} f ≈ c102 {a} g ]
108 c105 refl = let open ≈-Reasoning A in refl-hom
109 c106 : { a : Obj A } {f g : Hom A a (CCC.1 c)} → A [ f ≈ g ] → _[_≈_] OneCat {OneObj} {OneObj} OneObj OneObj
110 c106 _ = refl
111 c205 : { a b c₁ : Obj A } {f g : Hom (A × A) (c₁ , c₁) (a , b)} → (A × A) [ f ≈ g ] → A [ c202 f ≈ c202 g ]
112 c205 f=g = IsCCC.π-cong (CCC.isCCC c ) (proj₁ f=g ) (proj₂ f=g )
113 c206 : { a b c₁ : Obj A } {f g : Hom A c₁ ((c CCC.∧ a) b)} → A [ f ≈ g ] → (A × A) [ c201 f ≈ c201 g ]
114 c206 {a} {b} {c₁} {f} {g} f=g = ( begin
115 CCC.π c o f
116 ≈⟨ cdr f=g ⟩
117 CCC.π c o g
118 ∎ ) , ( begin
119 CCC.π' c o f
120 ≈⟨ cdr f=g ⟩
121 CCC.π' c o g
122 ∎ ) where open ≈-Reasoning A
123 c305 : { a b c₁ : Obj A } {f g : Hom A ((c CCC.∧ a) b) c₁} → A [ f ≈ g ] → A [ (c CCC.*) f ≈ (c CCC.*) g ]
124 c305 f=g = IsCCC.*-cong (CCC.isCCC c ) f=g
125 c306 : { a b c₁ : Obj A } {f g : Hom A a ((c CCC.<= c₁) b)} → A [ f ≈ g ] → A [ c301 f ≈ c301 g ]
126 c306 {a} {b} {c₁} {f} {g} f=g = begin
127 CCC.ε c o CCC.<_,_> c ( f o CCC.π c ) ( CCC.π' c )
128 ≈⟨ cdr ( IsCCC.π-cong (CCC.isCCC c ) (car f=g ) refl-hom) ⟩
129 CCC.ε c o CCC.<_,_> c ( g o CCC.π c ) ( CCC.π' c )
130 ∎ where open ≈-Reasoning A
131
105 132
106 open CCChom 133 open CCChom
107 open IsCCChom 134 open IsCCChom
108 open IsoS 135 open IsoS
109 136
145 ; e3b = e3b 172 ; e3b = e3b
146 ; e3c = e3c 173 ; e3c = e3c
147 ; π-cong = π-cong 174 ; π-cong = π-cong
148 ; e4a = e4a 175 ; e4a = e4a
149 ; e4b = e4b 176 ; e4b = e4b
177 ; *-cong = *-cong
150 } where 178 } where
151 e20 : ∀ ( f : Hom OneCat OneObj OneObj ) → _[_≈_] OneCat {OneObj} {OneObj} f OneObj 179 e20 : ∀ ( f : Hom OneCat OneObj OneObj ) → _[_≈_] OneCat {OneObj} {OneObj} f OneObj
152 e20 OneObj = refl 180 e20 OneObj = refl
153 e2 : {a : Obj A} → ∀ ( f : Hom A a 1 ) → A [ f ≈ ○ a ] 181 e2 : {a : Obj A} → ∀ ( f : Hom A a 1 ) → A [ f ≈ ○ a ]
154 e2 {a} f = begin 182 e2 {a} f = begin
159 λ y → ≅← ( ccc-1 (isCCChom h ) {a} {OneObj} {OneObj} ) y ) (e20 ( ≅→ ( ccc-1 (isCCChom h ) {a} {OneObj} {OneObj} ) f) ) ⟩ 187 λ y → ≅← ( ccc-1 (isCCChom h ) {a} {OneObj} {OneObj} ) y ) (e20 ( ≅→ ( ccc-1 (isCCChom h ) {a} {OneObj} {OneObj} ) f) ) ⟩
160 ≅← ( ccc-1 (isCCChom h ) {a} {OneObj} {OneObj} ) OneObj 188 ≅← ( ccc-1 (isCCChom h ) {a} {OneObj} {OneObj} ) OneObj
161 ≈⟨⟩ 189 ≈⟨⟩
162 ○ a 190 ○ a
163 ∎ where open ≈-Reasoning A 191 ∎ where open ≈-Reasoning A
164 e30 : {a b c d e : Obj A} → { f : Hom A ((_*_ h b) c) ((_*_ h d) e) } → {g : Hom A a ((_*_ h b) c) } 192 --
165 → A [ A [ proj₁ (≅→ (ccc-2 (isCCChom h)) f ) o g ] ≈ proj₁ (≅→ (ccc-2 (isCCChom h)) (A [ f o g ] ) ) ] 193 -- g id
166 e30 = {!!} 194 -- a -------------> b * c ------> b * c
167 e31 : {a b c d e : Obj A} → {i : Hom (A × A) (b , c) (d , e )} → { f : Hom A a b } → {g : Hom A a c } 195 --
168 → A [ A [ {!!} o ( ≅← (ccc-2 (isCCChom h)) (f , g) ) ] ≈ ( ≅← (ccc-2 (isCCChom h)) ( _[_o_] (A × A) i (f , g ) )) ] 196 -- a -------------> b * c ------> b
197 -- a -------------> b * c ------> c
198 --
199 e31 : {a b c : Obj A} → {f : Hom A ((_*_ h b) c) ((_*_ h b) c) } → {g : Hom A a ((_*_ h b) c) }
200 → (A × A) [ (A × A) [ ≅→ (ccc-2 (isCCChom h)) f o (g , g ) ] ≈ ≅→ (ccc-2 (isCCChom h)) ( A [ f o g ] ) ]
169 e31 = {!!} 201 e31 = {!!}
202 e30 : {a b c : Obj A} → {g : Hom A a ((_*_ h b) c) }
203 → (A × A) [ (A × A) [ (≅→ (ccc-2 (isCCChom h)) (id1 A ((_*_ h b) c))) o (g , g) ] ≈ (≅→ (ccc-2 (isCCChom h)) (A [ id1 A ((_*_ h b) c) o g ] ) ) ]
204 e30 {a} {b} {c} {g} = begin
205 (≅→ (ccc-2 (isCCChom h)) (id1 A ((_*_ h b) c))) o (g , g)
206 ≈⟨⟩
207 ( π , π' ) o ( g , g )
208 ≈⟨⟩
209 ( _[_o_] A π g , _[_o_] A π' g )
210 ≈↑⟨ cdr1 A (iso← (ccc-2 (isCCChom h))) , cdr1 A (iso← (ccc-2 (isCCChom h))) ⟩
211 ( _[_o_] A (proj₁ ( ≅→ ( ccc-2 (isCCChom h ) ) (id1 A (_*_ h b c) ))) (≅← (ccc-2 (isCCChom h))((≅→ (ccc-2 (isCCChom h))) g)) ,
212 _[_o_] A π' (≅← (ccc-2 (isCCChom h))((≅→ (ccc-2 (isCCChom h))) g)) )
213 ≈⟨ {!!} ⟩
214 ( proj₁ ((≅→ (ccc-2 (isCCChom h))) g) , proj₂ ((≅→ (ccc-2 (isCCChom h))) g) )
215 ≈⟨⟩
216 ≅→ (ccc-2 (isCCChom h)) g
217 ≈↑⟨ cong→ (ccc-2 (isCCChom h)) ( idL1 A ) ⟩
218 ≅→ (ccc-2 (isCCChom h)) (_[_o_] A ( id1 A ((_*_ h b) c)) g )
219 ∎ where open ≈-Reasoning (A × A)
220 cong-proj₁ : {a b c d : Obj A} → { f g : Hom (A × A) ( a , b ) ( c , d ) } → (A × A) [ f ≈ g ] → A [ proj₁ f ≈ proj₁ g ]
221 cong-proj₁ eq = proj₁ eq
170 e3a : {a b c : Obj A} → { f : Hom A c a }{ g : Hom A c b } → A [ A [ π o <,> f g ] ≈ f ] 222 e3a : {a b c : Obj A} → { f : Hom A c a }{ g : Hom A c b } → A [ A [ π o <,> f g ] ≈ f ]
171 e3a {a} {b} {c} {f} {g} = begin 223 e3a {a} {b} {c} {f} {g} = begin
172 π o <,> f g 224 π o <,> f g
173 ≈⟨⟩ 225 ≈⟨⟩
174 proj₁ (≅→ (ccc-2 (isCCChom h)) (id1 A (_*_ h a b) )) o (≅← (ccc-2 (isCCChom h)) (f , g)) 226 proj₁ (≅→ (ccc-2 (isCCChom h)) (id1 A (_*_ h a b) )) o (≅← (ccc-2 (isCCChom h)) (f , g))
175 ≈⟨ e30 ⟩ 227 ≈⟨ cong-proj₁ e30 ⟩
176 proj₁ (≅→ (ccc-2 (isCCChom h)) (_[_o_] A ( id1 A ( _*_ h a b )) ( ≅← (ccc-2 (isCCChom h)) (f , g) ) )) 228 proj₁ (≅→ (ccc-2 (isCCChom h)) (( id1 A ( _*_ h a b )) o ( ≅← (ccc-2 (isCCChom h)) (f , g) ) ))
177 ≈⟨ {!!} ⟩ 229 ≈⟨ cong-proj₁ ( cong→ (ccc-2 (isCCChom h)) idL ) ⟩
178 proj₁ (≅→ (ccc-2 (isCCChom h)) (≅← (ccc-2 (isCCChom h)) ( _[_o_] (A × A ) ( id1 A a , id1 A b ) (f , g) ))) 230 proj₁ (≅→ (ccc-2 (isCCChom h)) ( ≅← (ccc-2 (isCCChom h)) (f , g) ))
179 ≈⟨ {!!} ⟩ 231 ≈⟨ cong-proj₁ ( iso→ (ccc-2 (isCCChom h))) ⟩
180 proj₁ ( f , g ) 232 proj₁ ( f , g )
181 ≈⟨⟩ 233 ≈⟨⟩
182 f 234 f
183 ∎ where open ≈-Reasoning A 235 ∎ where open ≈-Reasoning A
184 e3b : {a b c : Obj A} → { f : Hom A c a }{ g : Hom A c b } → A [ A [ π' o <,> f g ] ≈ g ] 236 e3b : {a b c : Obj A} → { f : Hom A c a }{ g : Hom A c b } → A [ A [ π' o <,> f g ] ≈ g ]
188 π-cong : {a b c : Obj A} → { f f' : Hom A c a }{ g g' : Hom A c b } → A [ f ≈ f' ] → A [ g ≈ g' ] → A [ <,> f g ≈ <,> f' g' ] 240 π-cong : {a b c : Obj A} → { f f' : Hom A c a }{ g g' : Hom A c b } → A [ f ≈ f' ] → A [ g ≈ g' ] → A [ <,> f g ≈ <,> f' g' ]
189 π-cong {a} {b} {c} {f} {f'} {g} {g'} eq1 eq2 = begin 241 π-cong {a} {b} {c} {f} {f'} {g} {g'} eq1 eq2 = begin
190 <,> f g 242 <,> f g
191 ≈⟨⟩ 243 ≈⟨⟩
192 ≅← (ccc-2 (isCCChom h)) (f , g) 244 ≅← (ccc-2 (isCCChom h)) (f , g)
193 ≈⟨ ≡-cong {!!} {!!} ⟩ 245 ≈⟨ cong← (ccc-2 (isCCChom h)) ( eq1 , eq2 ) ⟩
194 ≅← (ccc-2 (isCCChom h)) (f' , g') 246 ≅← (ccc-2 (isCCChom h)) (f' , g')
195 ≈⟨⟩ 247 ≈⟨⟩
196 <,> f' g' 248 <,> f' g'
197 ∎ where open ≈-Reasoning A 249 ∎ where open ≈-Reasoning A
250 e40 : {a c : Obj A} → { f : Hom A (_*_ h a c ) a } → A [ ≅→ (ccc-3 (isCCChom h)) (≅← (ccc-3 (isCCChom h)) f) ≈ f ]
251 e40 = iso→ (ccc-3 (isCCChom h))
252 e41 : {a c : Obj A} → { f : Hom A a (_^_ h c a )} → A [ ≅← (ccc-3 (isCCChom h)) (≅→ (ccc-3 (isCCChom h)) f) ≈ f ]
253 e41 = iso← (ccc-3 (isCCChom h))
198 e4a : {a b c : Obj A} → { k : Hom A (c /\ b) a } → A [ A [ ε o ( <,> ( A [ (k *) o π ] ) π') ] ≈ k ] 254 e4a : {a b c : Obj A} → { k : Hom A (c /\ b) a } → A [ A [ ε o ( <,> ( A [ (k *) o π ] ) π') ] ≈ k ]
199 e4a {a} {b} {c} {k} = begin 255 e4a {a} {b} {c} {k} = begin
200 ε o ( <,> ((k *) o π ) π' ) 256 ε o ( <,> ((k *) o π ) π' )
201 ≈⟨⟩ 257 ≈⟨⟩
202 ≅→ (ccc-3 (isCCChom h)) (id1 A (_^_ h a b)) o 258 ≅→ (ccc-3 (isCCChom h)) (id1 A (_^_ h a b)) o (≅← (ccc-2 (isCCChom h)) ((( ≅← (ccc-3 (isCCChom h)) k) o π ) , π'))
203 (≅← (ccc-2 (isCCChom h)) ((( ≅← (ccc-3 (isCCChom h)) k) o π ) , π'))
204 ≈⟨ {!!} ⟩ 259 ≈⟨ {!!} ⟩
260 ≅→ (ccc-3 (isCCChom h)) (≅← (ccc-3 (isCCChom h)) k)
261 ≈⟨ iso→ (ccc-3 (isCCChom h)) ⟩
205 k 262 k
206 ∎ where open ≈-Reasoning A 263 ∎ where open ≈-Reasoning A
207 e4b : {a b c : Obj A} → { k : Hom A c (a <= b ) } → A [ ( A [ ε o ( <,> ( A [ k o π ] ) π' ) ] ) * ≈ k ] 264 e4b : {a b c : Obj A} → { k : Hom A c (a <= b ) } → A [ ( A [ ε o ( <,> ( A [ k o π ] ) π' ) ] ) * ≈ k ]
208 e4b = {!!} 265 e4b {a} {b} {c} {k} = begin
209 266 ( ε o ( <,> ( k o π ) π' ) ) *
267 ≈⟨⟩
268 ≅← (ccc-3 (isCCChom h)) ( ≅→ ( ccc-3 (isCCChom h ) {_^_ h a b} {b} ) (id1 A ( _^_ h a b )) o (≅← (ccc-2 (isCCChom h)) ( k o π , π')))
269 ≈⟨ {!!} ⟩
270 ≅← (ccc-3 (isCCChom h)) (≅→ (ccc-3 (isCCChom h)) k)
271 ≈⟨ iso← (ccc-3 (isCCChom h)) ⟩
272 k
273 ∎ where open ≈-Reasoning A
274 *-cong : {a b c : Obj A} {f f' : Hom A (a /\ b) c} → A [ f ≈ f' ] → A [ f * ≈ f' * ]
275 *-cong eq = cong← ( ccc-3 (isCCChom h )) eq
276
277
278