comparison pullback.agda @ 672:749df4959d19

fix completeness
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Thu, 02 Nov 2017 09:00:01 +0900
parents 3ce21b2a671a
children 0007f9a25e9c
comparison
equal deleted inserted replaced
671:959954fc29f8 672:749df4959d19
26 -- d <------------------ d' 26 -- d <------------------ d'
27 -- k (π1' × π2' ) 27 -- k (π1' × π2' )
28 28
29 open Equalizer 29 open Equalizer
30 open IsEqualizer 30 open IsEqualizer
31 open Product 31 open IsProduct
32 open Pullback 32 open Pullback
33 33
34 pullback-from : (a b c ab d : Obj A) 34 pullback-from : (a b c ab d : Obj A)
35 ( f : Hom A a c ) ( g : Hom A b c ) 35 ( f : Hom A a c ) ( g : Hom A b c )
36 ( π1 : Hom A ab a ) ( π2 : Hom A ab b ) ( e : Hom A d ab ) 36 ( π1 : Hom A ab a ) ( π2 : Hom A ab b ) ( e : Hom A d ab )
37 ( eqa : {a b c : Obj A} → (f g : Hom A a b) → {e : Hom A c a } → IsEqualizer A e f g ) 37 ( eqa : {a b c : Obj A} → (f g : Hom A a b) → {e : Hom A c a } → IsEqualizer A e f g )
38 ( prod : Product A a b ab π1 π2 ) → Pullback A a b c d f g 38 ( prod : IsProduct A a b ab π1 π2 ) → Pullback A a b c d f g
39 ( A [ π1 o equalizer1 ( eqa ( A [ f o π1 ] ) ( A [ g o π2 ] ) ) ] ) 39 ( A [ π1 o equalizer1 ( eqa ( A [ f o π1 ] ) ( A [ g o π2 ] ) ) ] )
40 ( A [ π2 o equalizer1 ( eqa ( A [ f o π1 ] ) ( A [ g o π2 ] ) ) ] ) 40 ( A [ π2 o equalizer1 ( eqa ( A [ f o π1 ] ) ( A [ g o π2 ] ) ) ] )
41 pullback-from a b c ab d f g π1 π2 e eqa prod = record { 41 pullback-from a b c ab d f g π1 π2 e eqa prod = record {
42 commute = commute1 ; 42 commute = commute1 ;
43 p = p1 ; 43 p = p1 ;
116 k ( eqa ( A [ f o π1 ] ) ( A [ g o π2 ] ) {e} ) (_×_ prod π1' π2' ) (lemma1 eq) 116 k ( eqa ( A [ f o π1 ] ) ( A [ g o π2 ] ) {e} ) (_×_ prod π1' π2' ) (lemma1 eq)
117 ≈⟨ IsEqualizer.uniqueness (eqa ( A [ f o π1 ] ) ( A [ g o π2 ] ) {e}) ( begin 117 ≈⟨ IsEqualizer.uniqueness (eqa ( A [ f o π1 ] ) ( A [ g o π2 ] ) {e}) ( begin
118 e o p' 118 e o p'
119 ≈⟨⟩ 119 ≈⟨⟩
120 equalizer1 (eqa (A [ f o π1 ]) (A [ g o π2 ])) o p' 120 equalizer1 (eqa (A [ f o π1 ]) (A [ g o π2 ])) o p'
121 ≈↑⟨ Product.uniqueness prod ⟩ 121 ≈↑⟨ IsProduct.uniqueness prod ⟩
122 (prod × ( π1 o equalizer1 (eqa (A [ f o π1 ]) (A [ g o π2 ])) o p') ) ( π2 o (equalizer1 (eqa (A [ f o π1 ]) (A [ g o π2 ])) o p')) 122 (prod × ( π1 o equalizer1 (eqa (A [ f o π1 ]) (A [ g o π2 ])) o p') ) ( π2 o (equalizer1 (eqa (A [ f o π1 ]) (A [ g o π2 ])) o p'))
123 ≈⟨ ×-cong prod (assoc) (assoc) ⟩ 123 ≈⟨ ×-cong prod (assoc) (assoc) ⟩
124 (prod × (A [ A [ π1 o equalizer1 (eqa (A [ f o π1 ]) (A [ g o π2 ])) ] o p' ])) 124 (prod × (A [ A [ π1 o equalizer1 (eqa (A [ f o π1 ]) (A [ g o π2 ])) ] o p' ]))
125 (A [ A [ π2 o equalizer1 (eqa (A [ f o π1 ]) (A [ g o π2 ])) ] o p' ]) 125 (A [ A [ π2 o equalizer1 (eqa (A [ f o π1 ]) (A [ g o π2 ])) ] o p' ])
126 ≈⟨ ×-cong prod eq1 eq2 ⟩ 126 ≈⟨ ×-cong prod eq1 eq2 ⟩
287 ≈⟨ ( coIsUniversalMapping.couniquness ( iscoUniversalMapping univ) ) εf=t ⟩ 287 ≈⟨ ( coIsUniversalMapping.couniquness ( iscoUniversalMapping univ) ) εf=t ⟩
288 f 288 f
289 289
290 290
291 291
292 lemma-p0 : (a b ab : Obj A) ( π1 : Hom A ab a ) ( π2 : Hom A ab b ) ( prod : Product A a b ab π1 π2 ) → 292 lemma-p0 : (a b ab : Obj A) ( π1 : Hom A ab a ) ( π2 : Hom A ab b ) ( prod : IsProduct A a b ab π1 π2 ) →
293 A [ _×_ prod π1 π2 ≈ id1 A ab ] 293 A [ _×_ prod π1 π2 ≈ id1 A ab ]
294 lemma-p0 a b ab π1 π2 prod = let open ≈-Reasoning (A) in begin 294 lemma-p0 a b ab π1 π2 prod = let open ≈-Reasoning (A) in begin
295 _×_ prod π1 π2 295 _×_ prod π1 π2
296 ≈↑⟨ ×-cong prod idR idR ⟩ 296 ≈↑⟨ ×-cong prod idR idR ⟩
297 _×_ prod (A [ π1 o id1 A ab ]) (A [ π2 o id1 A ab ]) 297 _×_ prod (A [ π1 o id1 A ab ]) (A [ π2 o id1 A ab ])
298 ≈⟨ Product.uniqueness prod ⟩ 298 ≈⟨ IsProduct.uniqueness prod ⟩
299 id1 A ab 299 id1 A ab
300 300
301 301
302 302
303 open IProduct 303 open IProduct