Mercurial > hg > Members > kono > Proof > category
changeset 222:0bc85361b7d0
iso of equalizer
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 05 Sep 2013 01:23:53 +0900 |
parents | ea0407fb8f02 |
children | 8b3aeba14b5e |
files | equalizer.agda |
diffstat | 1 files changed, 134 insertions(+), 24 deletions(-) [+] |
line wrap: on
line diff
--- a/equalizer.agda Wed Sep 04 20:35:43 2013 +0900 +++ b/equalizer.agda Thu Sep 05 01:23:53 2013 +0900 @@ -69,6 +69,89 @@ id1 A a ∎ +equalizer-eq-e : { a b : Obj A } {f g : Hom A a b } → ( eqa : Equalizer A {a} f g) → (eq : A [ f ≈ g ] ) → + A [ k eqa (id1 A a) (f1=g1 eq) ≈ id1 A a ] → + A [ e eqa ≈ id1 A a ] +equalizer-eq-e {a} {b} {f} {g} eqa eq k=1 = let open ≈-Reasoning (A) in + begin + e eqa + ≈↑⟨ idR ⟩ + e eqa o id1 A a + ≈↑⟨ cdr k=1 ⟩ + e eqa o k eqa (id1 A a) (f1=g1 eq) + ≈⟨ ek=h eqa ⟩ + id1 A a + ∎ + +-- e eqa f g f +-- c ----------> a ------->b +-- |^ +-- || +-- h || h-1 +-- v| +-- c' + +equalizer+iso : {a b c c' : Obj A } {f g : Hom A a b } ( eqa : Equalizer A {c} f g) → (h-1 : Hom A c' c ) → (h : Hom A c c' ) → + A [ A [ h-1 o h ] ≈ id1 A c ] → A [ A [ h o h-1 ] ≈ id1 A c' ] + → Equalizer A {c'} f g +equalizer+iso {a} {b} {c} {c'} {f} {g} eqa h-1 h h-1-id h-id = record { + e = A [ e eqa o h-1 ] ; + fe=ge = fe=ge1 ; + k = λ j eq → A [ h o k eqa j eq ] ; + ek=h = ek=h1 ; + uniqueness = uniqueness1 + } where + fe=ge1 : A [ A [ f o A [ e eqa o h-1 ] ] ≈ A [ g o A [ e eqa o h-1 ] ] ] + fe=ge1 = let open ≈-Reasoning (A) in + begin + f o ( e eqa o h-1 ) + ≈⟨ assoc ⟩ + (f o e eqa ) o h-1 + ≈⟨ car (fe=ge eqa) ⟩ + (g o e eqa ) o h-1 + ≈↑⟨ assoc ⟩ + g o ( e eqa o h-1 ) + ∎ + ek=h1 : {d : Obj A} {j : Hom A d a} {eq : A [ A [ f o j ] ≈ A [ g o j ] ]} → + A [ A [ A [ e eqa o h-1 ] o A [ h o k eqa j eq ] ] ≈ j ] + ek=h1 {d} {j} {eq} = let open ≈-Reasoning (A) in + begin + (e eqa o h-1 ) o ( h o k eqa j eq ) + ≈↑⟨ assoc ⟩ + e eqa o ( h-1 o ( h o k eqa j eq )) + ≈⟨ cdr assoc ⟩ + e eqa o (( h-1 o h ) o k eqa j eq ) + ≈⟨ cdr (car (h-1-id )) ⟩ + e eqa o (id1 A c o k eqa j eq ) + ≈⟨ cdr idL ⟩ + e eqa o (k eqa j eq ) + ≈⟨ ek=h eqa ⟩ + j + ∎ + uniqueness1 : {d : Obj A} {h' : Hom A d a} {eq : A [ A [ f o h' ] ≈ A [ g o h' ] ]} {j : Hom A d c'} → + A [ A [ A [ e eqa o h-1 ] o j ] ≈ h' ] → + A [ A [ h o k eqa h' eq ] ≈ j ] + uniqueness1 {d} {h'} {eq} {j} ej=h = let open ≈-Reasoning (A) in + begin + h o k eqa h' eq + ≈⟨ cdr (uniqueness eqa ( + begin + e eqa o ( h-1 o j ) + ≈⟨ assoc ⟩ + (e eqa o h-1 ) o j + ≈⟨ ej=h ⟩ + h' + ∎ + )) ⟩ + h o ( h-1 o j ) + ≈⟨ assoc ⟩ + (h o h-1 ) o j + ≈⟨ car h-id ⟩ + id1 A c' o j + ≈⟨ idL ⟩ + j + ∎ + -- e eqa f g f -- c ----------> a ------->b -- ^ ---> d ---> @@ -269,18 +352,43 @@ → Hom A c c' --- != id1 A c equalizer-iso {c} eqa eqa' = k eqa' (e eqa) (fe=ge eqa) +f1=gh : { a b c d : Obj A } {f g : Hom A a b } → { e : Hom A c a } → { h : Hom A d c } → + (eq : A [ A [ f o e ] ≈ A [ g o e ] ] ) → A [ A [ f o A [ e o h ] ] ≈ A [ g o A [ e o h ] ] ] +f1=gh {a} {b} {c} {d} {f} {g} {e} {h} eq = let open ≈-Reasoning (A) in + begin + f o ( e o h ) + ≈⟨ assoc ⟩ + (f o e ) o h + ≈⟨ car eq ⟩ + (g o e ) o h + ≈↑⟨ assoc ⟩ + g o ( e o h ) + ∎ + -- -- -- e eqa f g f -- c ----------> a ------->b -- equalizer-iso-eq : { c c' a b : Obj A } {f g : Hom A a b } → ( eqa : Equalizer A {c} f g) → ( eqa' : Equalizer A {c'} f g ) - → A [ A [ equalizer-iso eqa eqa' o equalizer-iso eqa' eqa ] ≈ id1 A c' ] -equalizer-iso-eq {c} {c'} {f} {g} eqa eqa' = let open ≈-Reasoning (A) in + { h : Hom A a c } → A [ A [ h o e eqa ] ≈ id1 A c ] → A [ A [ k eqa (e eqa' ) (fe=ge eqa') o k eqa' (e eqa ) (fe=ge eqa) ] ≈ id1 A c ] +equalizer-iso-eq {c} {c'} {f} {g} eqa eqa' {h} rev = let open ≈-Reasoning (A) in begin - k eqa' (e eqa) (fe=ge eqa) o k eqa (e eqa' ) (fe=ge eqa' ) - ≈⟨ {!!} ⟩ - id1 A c' + k eqa (e eqa' ) (fe=ge eqa') o k eqa' (e eqa ) (fe=ge eqa) + ≈↑⟨ idL ⟩ + (id1 A c) o ( k eqa (e eqa' ) (fe=ge eqa') o k eqa' (e eqa ) (fe=ge eqa) ) + ≈↑⟨ car rev ⟩ + ( h o e eqa ) o ( k eqa (e eqa' ) (fe=ge eqa') o k eqa' (e eqa ) (fe=ge eqa) ) + ≈↑⟨ assoc ⟩ + h o ( e eqa o ( k eqa (e eqa' ) (fe=ge eqa') o k eqa' (e eqa ) (fe=ge eqa) ) ) + ≈⟨ cdr assoc ⟩ + h o (( e eqa o k eqa (e eqa' ) (fe=ge eqa')) o k eqa' (e eqa ) (fe=ge eqa) ) + ≈⟨ cdr ( car (ek=h eqa) ) ⟩ + h o ( e eqa' o k eqa' (e eqa ) (fe=ge eqa) ) + ≈⟨ cdr (ek=h eqa' ) ⟩ + h o e eqa + ≈⟨ rev ⟩ + id1 A c ∎ -- ke = e' k'e' = e → k k' = 1 , k' k = 1 @@ -289,9 +397,9 @@ -- x e = e -> x = id? -lemma-equ1 : { c₁ c₂ ℓ : Level} ( A : Category c₁ c₂ ℓ ) → {a b c : Obj A} (f g : Hom A a b) → +lemma-equ1 : {a b c : Obj A} (f g : Hom A a b) → ( {a b c : Obj A} → (f g : Hom A a b) → Equalizer A {c} f g ) → EqEqualizer A {c} f g -lemma-equ1 A {a} {b} {c} f g eqa = record { +lemma-equ1 {a} {b} {c} f g eqa = record { α = λ f g → e (eqa f g ) ; -- Hom A c a γ = λ {a} {b} {c} {d} f g h → k (eqa f g ) {d} ( A [ h o (e ( eqa (A [ f o h ] ) (A [ g o h ] ))) ] ) (lemma-equ4 {a} {b} {c} {d} f g h ) ; -- Hom A c d δ = λ {a} f → k (eqa f f) (id1 A a) (lemma-equ2 f); -- Hom A a c @@ -342,30 +450,32 @@ ≈⟨ ek=h (eqa f g) ⟩ h o e (eqa (f o h ) ( g o h )) ∎ - lemma-equ6 : {d : Obj A} {k₁ : Hom A d c} → A [ - A [ k (eqa f g) (A [ A [ e (eqa f g) o k₁ ] o e (eqa (A [ f o A [ e (eqa f g) o k₁ ] ]) (A [ g o A [ e (eqa f g) o k₁ ] ])) ]) - (lemma-equ4 {a} {b} {c} f g (A [ e (eqa f g) o k₁ ])) o - k (eqa (A [ f o A [ e (eqa f g) o k₁ ] ]) (A [ f o A [ e (eqa f g) o k₁ ] ])) (id1 A d) (lemma-equ2 (A [ f o A [ e (eqa f g) o k₁ ] ])) ] - ≈ k₁ ] - lemma-equ6 {d} {k₁} = let open ≈-Reasoning (A) in + lemma-equ6 : {d : Obj A} {j : Hom A d c} → A [ + A [ k (eqa f g) (A [ A [ e (eqa f g) o j ] o e (eqa (A [ f o A [ e (eqa f g) o j ] ]) (A [ g o A [ e (eqa f g) o j ] ])) ]) + (lemma-equ4 {a} {b} {c} f g (A [ e (eqa f g) o j ])) o + k (eqa (A [ f o A [ e (eqa f g) o j ] ]) (A [ f o A [ e (eqa f g) o j ] ])) (id1 A d) (lemma-equ2 (A [ f o A [ e (eqa f g) o j ] ])) ] + ≈ j ] + lemma-equ6 {d} {j} = let open ≈-Reasoning (A) in begin - ( k (eqa f g) (( ( e (eqa f g) o k₁ ) o e (eqa (( f o ( e (eqa f g) o k₁ ) )) (( g o ( e (eqa f g) o k₁ ) ))) )) - (lemma-equ4 {a} {b} {c} f g (( e (eqa f g) o k₁ ))) o - k (eqa (( f o ( e (eqa f g) o k₁ ) )) (( f o ( e (eqa f g) o k₁ ) ))) (id1 A d) (lemma-equ2 (( f o ( e (eqa f g) o k₁ ) ))) ) + ( k (eqa f g) (( ( e (eqa f g) o j ) o e (eqa (( f o ( e (eqa f g) o j ) )) (( g o ( e (eqa f g) o j ) ))) )) + (lemma-equ4 {a} {b} {c} f g (( e (eqa f g) o j ))) o + k (eqa (( f o ( e (eqa f g) o j ) )) (( f o ( e (eqa f g) o j ) ))) (id1 A d) (lemma-equ2 (( f o ( e (eqa f g) o j ) ))) ) ≈⟨ car ( uniqueness (eqa f g) ( begin - e (eqa f g) o k₁ + e (eqa f g) o j ≈⟨ {!!} ⟩ - (e (eqa f g) o k₁) o e (eqa (f o e (eqa f g) o k₁) (g o e (eqa f g) o k₁)) + (e (eqa f g) o j) o e (eqa (f o e (eqa f g) o j) (g o e (eqa f g) o j)) ∎ )) ⟩ - k₁ o k (eqa (( f o ( e (eqa f g) o k₁ ) )) (( f o ( e (eqa f g) o k₁ ) ))) (id1 A d) (lemma-equ2 (( f o ( e (eqa f g) o k₁ ) ))) - ≈⟨ cdr ( uniqueness (eqa (( f o ( e (eqa f g) o k₁ ) )) (( f o ( e (eqa f g) o k₁ ) ))) ( begin - e (eqa (f o e (eqa f g) o k₁) (f o e (eqa f g) o k₁)) o id1 A d + j o k (eqa (( f o ( e (eqa f g) o j ) )) (( f o ( e (eqa f g) o j ) ))) (id1 A d) (lemma-equ2 (( f o ( e (eqa f g) o j ) ))) + ≈⟨ cdr ( uniqueness (eqa (( f o ( e (eqa f g) o j ) )) (( f o ( e (eqa f g) o j ) ))) ( begin + e (eqa (f o e (eqa f g) o j) (f o e (eqa f g) o j)) o id1 A d + ≈⟨ idR ⟩ + e (eqa (f o e (eqa f g) o j) (f o e (eqa f g) o j)) ≈⟨ {!!} ⟩ - id1 A d + id1 A d ∎ )) ⟩ - k₁ o id1 A d + j o id1 A d ≈⟨ idR ⟩ - k₁ + j ∎