Mercurial > hg > Members > kono > Proof > category
changeset 264:78ce12f8e6b6
pullback done
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 20 Sep 2013 21:21:48 +0900 |
parents | c1b3193097ce |
children | 367e8fde93ee |
files | cat-utility.agda pullback.agda |
diffstat | 2 files changed, 25 insertions(+), 14 deletions(-) [+] |
line wrap: on
line diff
--- a/cat-utility.agda Fri Sep 20 19:03:57 2013 +0900 +++ b/cat-utility.agda Fri Sep 20 21:21:48 2013 +0900 @@ -152,12 +152,12 @@ -- -- Product -- - -- - -- - -- - -- - -- - -- + -- c + -- f | g + -- |f×g + -- v + -- a <-------- ab ----------> b + -- π1 π2 record Product { c₁ c₂ ℓ : Level} ( A : Category c₁ c₂ ℓ ) (a b ab : Obj A) @@ -169,6 +169,7 @@ π1fxg=f : {c : Obj A} { f : Hom A c a } → { g : Hom A c b } → A [ A [ π1 o ( f × g ) ] ≈ f ] π2fxg=g : {c : Obj A} { f : Hom A c a } → { g : Hom A c b } → A [ A [ π2 o ( f × g ) ] ≈ g ] uniqueness : {c : Obj A} { h : Hom A c ab } → A [ ( A [ π1 o h ] ) × ( A [ π2 o h ] ) ≈ h ] + ×-cong : {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' ] axb : Obj A axb = ab
--- a/pullback.agda Fri Sep 20 19:03:57 2013 +0900 +++ b/pullback.agda Fri Sep 20 21:21:48 2013 +0900 @@ -12,7 +12,7 @@ open import cat-utility -- --- Pullback +-- Pullback from equalizer and product -- f -- a -------> c -- ^ ^ @@ -21,9 +21,10 @@ -- ab -------> b -- ^ π2 -- | --- | equalizer (f π1) (g π1) = ( π1' × π2' ) --- d --- +-- | e = equalizer (f π1) (g π1) +-- | +-- d <------------------ d' +-- k (π1' × π2' ) open Equalizer open Product @@ -105,14 +106,23 @@ {eq1 : A [ A [ A [ π1 o equalizer (eqa (A [ f o π1 ]) (A [ g o π2 ])) ] o p' ] ≈ π1' ]} → {eq2 : A [ A [ A [ π2 o equalizer (eqa (A [ f o π1 ]) (A [ g o π2 ])) ] o p' ] ≈ π2' ]} → A [ p1 eq ≈ p' ] - uniqueness1 {d'} p' {π1'} {π2'} {eq} {eq1} = let open ≈-Reasoning (A) in + uniqueness1 {d'} p' {π1'} {π2'} {eq} {eq1} {eq2} = let open ≈-Reasoning (A) in begin p1 eq ≈⟨⟩ k ( eqa ( A [ f o π1 ] ) ( A [ g o π2 ] ) {e} ) (_×_ prod π1' π2' ) (lemma1 eq) - ≈⟨ Equalizer.uniqueness (eqa ( A [ f o π1 ] ) ( A [ g o π2 ] ) {e}) {!!} ⟩ - {!!} o {!!} - ≈⟨ {!!} ⟩ + ≈⟨ Equalizer.uniqueness (eqa ( A [ f o π1 ] ) ( A [ g o π2 ] ) {e}) ( begin + e o p' + ≈⟨⟩ + equalizer (eqa (A [ f o π1 ]) (A [ g o π2 ])) o p' + ≈↑⟨ Product.uniqueness prod ⟩ + (prod × ( π1 o equalizer (eqa (A [ f o π1 ]) (A [ g o π2 ])) o p') ) ( π2 o (equalizer (eqa (A [ f o π1 ]) (A [ g o π2 ])) o p')) + ≈⟨ ×-cong prod (assoc) (assoc) ⟩ + (prod × (A [ A [ π1 o equalizer (eqa (A [ f o π1 ]) (A [ g o π2 ])) ] o p' ])) + (A [ A [ π2 o equalizer (eqa (A [ f o π1 ]) (A [ g o π2 ])) ] o p' ]) + ≈⟨ ×-cong prod eq1 eq2 ⟩ + ((prod × π1') π2') + ∎ ) ⟩ p' ∎