changeset 979:8e97363859ce

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Wed, 03 Mar 2021 00:58:24 +0900
parents db288effad97
children 8ab4307d9337
files src/CCC.agda src/ToposEx.agda
diffstat 2 files changed, 41 insertions(+), 19 deletions(-) [+]
line wrap: on
line diff
--- a/src/CCC.agda	Tue Mar 02 20:49:13 2021 +0900
+++ b/src/CCC.agda	Wed Mar 03 00:58:24 2021 +0900
@@ -85,6 +85,20 @@
         ≈⟨ π-cong (cdr e3a)  (cdr e3b) ⟩
            < f o π' , g o π >

+     π≈  : {a b c : Obj A} {f f' : Hom A c a }{g g' : Hom A c b }  → < f , g >  ≈  <  f' ,  g' >  → f  ≈ f'
+     π≈ {_} {_} {_} {f} {f'} {g} {g'}  eq = begin
+        f ≈↑⟨ e3a ⟩
+        π o < f , g >  ≈⟨ cdr eq ⟩
+        π o < f' , g' >  ≈⟨ e3a ⟩
+        f'
+        ∎ 
+     π'≈ : {a b c : Obj A} {f f' : Hom A c a }{g g' : Hom A c b }  → < f , g >  ≈  <  f' ,  g' >  → g  ≈ g'
+     π'≈ {_} {_} {_} {f} {f'} {g} {g'}  eq = begin
+        g ≈↑⟨ e3b ⟩
+        π' o < f , g >  ≈⟨ cdr eq ⟩
+        π' o < f' , g' >  ≈⟨ e3b ⟩
+        g'
+        ∎ 
      distr-* : {a b c d : Obj A } { h : Hom A (a ∧ b) c } { k : Hom A d a } → ( h * o k )  ≈ ( h o < ( k o π ) , π' > )  * 
      distr-* {a} {b} {c} {d} {h} {k} = begin
              h * o k
--- a/src/ToposEx.agda	Tue Mar 02 20:49:13 2021 +0900
+++ b/src/ToposEx.agda	Wed Mar 03 00:58:24 2021 +0900
@@ -73,7 +73,7 @@
          ;    pullback = λ {d} {p1} {p2} eq →  f← o k  p1 p2 eq
          ;    π1p=π1 = λ {d} {p1'} {p2'} {eq} → lemma3 p1' p2' eq
          ;    π2p=π2 = λ {d} {p1'} {p2'} {eq} → trans-hom (IsCCC.e2 isCCC) (sym (IsCCC.e2 isCCC))
-         ;    uniqueness = {!!}
+         ;    uniqueness = uniq
       }
     } where
         f← = Iso.≅← (IsoL.iso-L (IsTopos.ker-char (isTopos t) m mono ))
@@ -91,9 +91,17 @@
             (eq : A [ A [ char t m mono o π1' ] ≈ A [ ⊤ t o π2' ] ]) →
             A [ A [ m o p' ] ≈ π1' ] → A [ A [ ○ b o p' ] ≈ π2' ] → f← o k π1' π2' eq ≈ p' 
         uniq {d} p p1 p2 eq pe1 pe2 = begin
-             f← o k p1 p2 eq ≈⟨ cdr ( IsEqualizer.uniqueness  (isEqualizer (Ker t  (char t m mono))) {!!} ) ⟩
-             f← o (f→ o p ) ≈⟨ {!!} ⟩
-             p ∎
+             f← o k p1 p2 eq ≈⟨ cdr ( IsEqualizer.uniqueness  (isEqualizer (Ker t  (char t m mono))) lemma4) ⟩
+             f← o (f→ o p ) ≈⟨ assoc ⟩
+             (f← o f→ ) o p  ≈⟨ car (Iso.iso→ (IsoL.iso-L (IsTopos.ker-char (isTopos t) m mono ))) ⟩
+             id1 A _ o p  ≈⟨ idL ⟩
+             p ∎ where
+                lemma4 : A [ A [ equalizer (Ker t (char t m mono)) o (f→ o p) ] ≈ p1 ]
+                lemma4 = begin
+                  equalizer (Ker t (char t m mono)) o (f→ o p)  ≈⟨ assoc ⟩
+                  (equalizer (Ker t (char t m mono)) o f→ ) o p  ≈⟨ car (IsoL.L≈iso (IsTopos.ker-char (isTopos t) m mono )) ⟩
+                  m o p  ≈⟨ pe1  ⟩
+                  p1 ∎ where
 
 
   δmono : {b : Obj A } → Mono A < id1 A b , id1 A b >
@@ -125,26 +133,23 @@
 
   prop23→ :  {a b : Obj A}→ (f g : Hom A a b )
     → A [ A [ char t  < id1 A b , id1 A b > δmono  o < f , g > ]  ≈ A [ ⊤ t o  ○  a  ] ] → A [ f ≈ g ]
-  prop23→ {a} {b} f g eq = {!!} where
+  prop23→ {a} {b} f g eq = begin
+     f   ≈⟨ IsCCC.π≈ isCCC p2 ⟩
+     k   ≈↑⟨ IsCCC.π'≈ isCCC p2 ⟩
+     g   ∎
+     where
        δb : Hom A ( b ∧ b ) (Ω t)
        δb = char t  < id1 A b , id1 A b > δmono
        ip : Pullback A  δb  (⊤ t)
        ip = topos-m-pullback < id1 A b , id1 A b >  δmono
        k : Hom A a b
        k = IsPullback.pullback (Pullback.isPullback ip ) eq 
-       p0 : δb o ( Pullback.π1 ip o  k )  ≈  ⊤ t o ○ a 
-       p0 = begin
-            δb o ( Pullback.π1 ip o k ) ≈⟨⟩
-            char t < id1 A b , id1 A b > δmono o ( Pullback.π1 ip o k ) ≈⟨  {!!}  ⟩
-            char t < id1 A b , id1 A b > δmono o < f , g >  ≈⟨   eq ⟩
-            ⊤ t o ○ a  ∎
-       pf :  f ≈ id1 A b o k
-       pf =  {!!} -- IsPullback.uniqueness (Pullback.isPullback ip ) k  (Pullback.π1 ip o k )  (○  a) p0 refl-hom (IsCCC.e2 isCCC)
-       p2 :  < f , g > ≈ ( < id1 A b , id1 A b > o k )
+       p2 :  < f , g > ≈  < k , k >   
        p2 = begin
-            < f , g >   ≈⟨  IsCCC.π-cong isCCC  pf {!!} ⟩
-            < id1 A b o k  , id1 A b o k >   ≈↑⟨  IsCCC.distr-π isCCC  ⟩
-            < id1 A b , id1 A b > o k  ∎
+            < f , g >   ≈↑⟨ IsPullback.π1p=π1 (Pullback.isPullback ip) ⟩
+            < id1 A b , id1 A b > o k  ≈⟨ IsCCC.distr-π isCCC ⟩ 
+            < id1 A b o k , id1 A b o k >   ≈⟨ IsCCC.π-cong isCCC idL idL ⟩ 
+            < k , k >  ∎
 
   N : (n : ToposNat A 1 ) → Obj A
   N n = NatD.Nat (ToposNat.TNat n)
@@ -156,10 +161,12 @@
        gs=h : {a : Obj A} (f : Hom A 1 a ) ( h : Hom A (N n ∧ a) a ) → A [ A [ g f h o NatD.nsuc  (ToposNat.TNat n) ]  ≈ A [ h o < id1 A _ , g f h > ] ]
        g-cong :  {a : Obj A} {f f' : Hom A 1 a } { h h' : Hom A (N n ∧ a) a } →  A [ f ≈ f' ] → A [ h ≈ h' ] → A [ g f h ≈ g f' h' ]
 
+  p33 : (n : ToposNat A 1 ) → prop33 n
+  p33 = {!!}
+
   cor33  : (n : ToposNat A 1 )
-     → prop33 n 
      → coProduct A 1 ( NatD.Nat (ToposNat.TNat n)  ) --  N ≅ N + 1
-  cor33 n p = record {
+  cor33 n = record {
         coproduct = N n
       ; κ1 = NatD.nzero (ToposNat.TNat n)
       ; κ2 = NatD.nsuc (ToposNat.TNat n)
@@ -172,6 +179,7 @@
 
        }
     } where
+        p = p33 n
         k2 : {a : Obj A} {f  : Hom A 1 a} {g : Hom A (NatD.Nat (ToposNat.TNat n)) a }
            → A [ A [ prop33.g p f ((A Category.o g) π) o NatD.nsuc (ToposNat.TNat n) ] ≈ g ]
         k2 {a} {f} {g} = begin