changeset 953:eb62812b5885

Topos written
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Fri, 19 Feb 2021 12:09:48 +0900
parents 61bc4fcba050
children 6aa6cbf630a0
files src/CCC.agda src/equalizer.agda
diffstat 2 files changed, 33 insertions(+), 42 deletions(-) [+]
line wrap: on
line diff
--- a/src/CCC.agda	Fri Feb 19 11:29:03 2021 +0900
+++ b/src/CCC.agda	Fri Feb 19 12:09:48 2021 +0900
@@ -144,7 +144,7 @@
         (char : {a b : Obj A} → (m :  Hom A b a) → Mono A m  → Hom A a Ω) :  Set ( suc c₁  ⊔  suc c₂ ⊔ suc ℓ ) where
      field
          char-ker-id  : {a b : Obj A } {h : Hom A a Ω} → (m :  Hom A b a) → (mono : Mono A m)
-             → A [ char (equalizer (Ker h)) record { isMono = {!!} } ≈ h ]
+             → A [ char (equalizer (Ker h)) record { isMono = monic (Ker h) } ≈ h ]
          ker-char-iso : {a b : Obj A} →  (m :  Hom A b a) → (mono : Mono A m)  → Iso A b (  equalizer-c (Ker ( char m mono ))) 
 
 record Topos {c₁ c₂ ℓ : Level} (A : Category c₁ c₂ ℓ)  ( 1 : Obj A) (○ : (a : Obj A ) → Hom A a 1) :  Set ( suc c₁  ⊔  suc c₂ ⊔ suc ℓ ) where
--- a/src/equalizer.agda	Fri Feb 19 11:29:03 2021 +0900
+++ b/src/equalizer.agda	Fri Feb 19 12:09:48 2021 +0900
@@ -1,3 +1,4 @@
+{-# OPTIONS --allow-unsolved-metas #-} 
 ---
 --
 --  Equalizer
@@ -97,10 +98,10 @@
 --        ||
 --         d
 
-monoic : { c a b d : Obj A } {f g : Hom A a b } → ( eqa : Equalizer A f g) 
-      →  { i j : Hom A d (equalizer-c eqa) }
+monic : { a b d : Obj A } {f g : Hom A a b } → ( eqa : Equalizer A f g) 
+      →  ( i j : Hom A d (equalizer-c eqa) )
       →  A [ A [ equalizer eqa o i ]  ≈  A [ equalizer eqa o j ] ] →  A [ i  ≈ j  ]
-monoic {c} {a} {b} {d} {f} {g} eqa {i} {j} ei=ej = let open ≈-Reasoning (A) in begin
+monic  {a} {b} {d} {f} {g} eqa i j ei=ej = let open ≈-Reasoning (A) in begin
                  i
               ≈↑⟨ uniqueness (isEqualizer eqa) ( begin
                    equalizer eqa  o i
@@ -247,24 +248,24 @@
 ----
 
 lemma-equ1 : {a b c : Obj A} (f g : Hom A a b)  → (e : Hom A c a ) →
-         ( eqa : {a b c : Obj A} → (f g : Hom A a b)  → {e : Hom A c a }  → IsEqualizer A e f g ) 
+         ( eqa-e : {a b c : Obj A} → (f g : Hom A a b)  → Hom A c a )
+         ( eqa : {a b c : Obj A} → (f g : Hom A a b)  → IsEqualizer A (eqa-e f g) f g ) 
               → Burroni A {c} {a} {b} f g e
-lemma-equ1  {a} {b} {c} f g e eqa  = record {
-      α = λ {a} {b} {c}  f g e  →  equalizer1 (eqa {a} {b} {c} f g {e} ) ; -- Hom A c a
-      γ = λ {a} {b} {c} {d} f g h → k (eqa {a} {b} {c} f g ) {d} ( A [ h  o (equalizer1 ( eqa (A [ f  o  h ] ) (A [ g o h ] ))) ] ) 
+lemma-equ1  {a} {b} {c} f g e eqa-e eqa  = record {
+      α = λ {a} {b} {c}  f g e  →  equalizer1 (eqa {a} {b} {c} f g ) ; -- Hom A c a -- eqa-e f g
+      γ = λ {a} {b} {c} {d} f g h → k (eqa {a} {b} {c} f g  ) {d} ( A [ h  o (equalizer1 ( eqa (A [ f  o  h ] ) (A [ g o h ] ))) ] ) 
                             (lemma-equ4 {a} {b} {c} {d} f g h ) ;  -- Hom A c d
-      δ =  λ {a} {b} {c} e f → k (eqa {a} {b} {c} f f {e} ) {a} (id1 A a)  (f1=f1 f); -- Hom A a c
+      δ =  λ {a} {b} {c} e f → k (eqa {a} {b} {c} f f  ) {a} (id1 A a)  (f1=f1 f); -- Hom A a c
       cong-α = λ {a b c e f g g'} eq → cong-α1 {a} {b} {c} {e} {f} {g} {g'} eq ;
       cong-γ = λ {a} {_} {c} {d} {f} {g} {h} {h'} eq → cong-γ1 {a}  {c} {d} {f} {g} {h} {h'} eq  ;
       cong-δ = λ {a b c e f f'} f=f' → cong-δ1 {a} {b} {c} {e} {f} {f'} f=f'  ;
-      b1 = fe=ge (eqa {a} {b} {c} f g {e}) ;
+      b1 = fe=ge (eqa {a} {b} {c} f g ) ;
       b2 = λ {d} {h} → lemma-b2 {d} {h};
       b3 = lemma-b3 ;
       b4 = lemma-b4 
  } where
      --
-     --           e eqa f g        f
-     --         c ---------→ a ------→b
+     --           e eqa f g        f --         c ---------→ a ------→b
      --         ^                  g
      --         |
      --         |k₁  = e eqa (f o (e (eqa f g))) (g o (e (eqa f g))))
@@ -294,33 +295,23 @@
                    g o ( h o equalizer1 (eqa (f o h) ( g o h )))

      cong-α1 : {a b c :  Obj A } → { e : Hom A c a }
-          → {f g g' : Hom A a b } →  A [ g ≈ g' ] → A [ equalizer1 (eqa {a} {b} {c} f g {e} )≈ equalizer1 (eqa {a} {b} {c} f g' {e} ) ] 
-     cong-α1 {a} {b} {c} {e} {f} {g} {g'} eq = let open ≈-Reasoning (A) in refl-hom 
-     cong-γ1 :  {a c d : Obj A } → {f g : Hom A a b} {h h' : Hom A d a } →  A [ h ≈ h' ] →  { e : Hom A c a} →
-                     A [  k (eqa f g {e} ) {d} ( A [ h  o (equalizer1 ( eqa (A [ f  o  h  ] ) (A [ g o h  ] ) {id1 A d} )) ] ) (lemma-equ4 {a} {b} {c} {d} f g h ) 
-                       ≈  k (eqa f g {e} ) {d} ( A [ h' o (equalizer1 ( eqa (A [ f  o  h' ] ) (A [ g o h' ] ) {id1 A d} )) ] ) (lemma-equ4 {a} {b} {c} {d} f g h' )  ]
-     cong-γ1 {a} {c} {d} {f} {g} {h} {h'} h=h' {e} = let open ≈-Reasoning (A) in begin
+          → {f g g' : Hom A a b } →  A [ g ≈ g' ] → A [ equalizer1 (eqa {a} {b} {c} f g )≈ equalizer1 (eqa {a} {b} {c} f g' ) ] 
+     cong-α1 {a} {b} {c} {e} {f} {g} {g'} eq = {!!} -- let open ≈-Reasoning (A) in refl-hom 
+     cong-γ1 :  {a c d : Obj A } → {f g : Hom A a b} {h h' : Hom A d a } →  A [ h ≈ h' ] →  
+                     A [  k (eqa f g ) {d} ( A [ h  o (equalizer1 ( eqa (A [ f  o  h  ] ) (A [ g o h  ] )  )) ] ) (lemma-equ4 {a} {b} {c} {d} f g h ) 
+                       ≈  k (eqa f g ) {d} ( A [ h' o (equalizer1 ( eqa (A [ f  o  h' ] ) (A [ g o h' ] )  )) ] ) (lemma-equ4 {a} {b} {c} {d} f g h' )  ]
+     cong-γ1 {a} {c} {d} {f} {g} {h} {h'} h=h'  = let open ≈-Reasoning (A) in begin
                  k (eqa f g ) {d} ( A [ h  o (equalizer1 ( eqa (A [ f  o  h  ] ) (A [ g o h  ] ))) ] ) (lemma-equ4 {a} {b} {c} {d} f g h )
-             ≈⟨ uniqueness (eqa f g) ( begin
-                 e o k (eqa f g ) {d} ( A [ h' o (equalizer1 ( eqa (A [ f  o  h' ] ) (A [ g o h' ] ))) ] ) (lemma-equ4 {a} {b} {c} {d} f g h' )
-             ≈⟨ ek=h (eqa f g ) ⟩
-                 h' o (equalizer1 ( eqa (A [ f  o  h' ] ) (A [ g o h' ] )))
-             ≈↑⟨ car h=h'  ⟩
-                 h o (equalizer1 ( eqa (A [ f  o  h' ] ) (A [ g o h' ] )))
-             ∎ )⟩    
+             ≈⟨ uniqueness (eqa f g) {!!} ⟩    
                  k (eqa f g ) {d} ( A [ h' o (equalizer1 ( eqa (A [ f  o  h' ] ) (A [ g o h' ] ))) ] ) (lemma-equ4 {a} {b} {c} {d} f g h' )

-     cong-δ1 : {a b c : Obj A} {e : Hom A c a } {f f' : Hom A a b} → A [ f ≈ f' ] →  A [ k (eqa {a} {b} {c} f f {e} ) (id1 A a)  (f1=f1 f)  ≈ 
-                                                                            k (eqa {a} {b} {c} f' f' {e} ) (id1 A a)  (f1=f1 f') ]
+     cong-δ1 : {a b c : Obj A} {e : Hom A c a } {f f' : Hom A a b} → A [ f ≈ f' ] →  A [ k (eqa {a} {b} {c} f f ) (id1 A a)  (f1=f1 f)  ≈ 
+                                                                            k (eqa {a} {b} {c} f' f' ) (id1 A a)  (f1=f1 f') ]
      cong-δ1 {a} {b} {c} {e} {f} {f'} f=f' =  let open ≈-Reasoning (A) in
              begin
-                 k (eqa {a} {b} {c} f  f  {e} ) (id a)  (f1=f1 f) 
-             ≈⟨  uniqueness (eqa f f) ( begin
-                 e o k (eqa {a} {b} {c} f' f' {e} ) (id a)  (f1=f1 f') 
-             ≈⟨ ek=h (eqa {a} {b} {c} f' f' {e} ) ⟩
-                 id a
-             ∎ )⟩
-                 k (eqa {a} {b} {c} f' f' {e} ) (id a)  (f1=f1 f') 
+                 k (eqa {a} {b} {c} f  f  ) (id a)  (f1=f1 f) 
+             ≈⟨  uniqueness (eqa f f) {!!} ⟩
+                 k (eqa {a} {b} {c} f' f' ) (id a)  (f1=f1 f') 

 
      lemma-b2 :  {d : Obj A} {h : Hom A d a} → A [
@@ -335,30 +326,30 @@
 
      lemma-b4 : {d : Obj A} {j : Hom A d c} → A [
               A [ k (eqa f g) (A [ A [ equalizer1 (eqa f g) o j ] o 
-                              equalizer1 (eqa (A [ f o A [ equalizer1 (eqa f g {e}) o j ] ]) (A [ g o A [ equalizer1 (eqa f g {e} ) o j ] ])) ])
+                              equalizer1 (eqa (A [ f o A [ equalizer1 (eqa f g ) o j ] ]) (A [ g o A [ equalizer1 (eqa f g  ) o j ] ])) ])
                      (lemma-equ4 {a} {b} {c} f g (A [ equalizer1 (eqa f g) o j ])) 
                  o k (eqa (A [ f o A [ equalizer1 (eqa f g) o j ] ]) (A [ f o A [ equalizer1 (eqa f g) o j ] ])) 
                      (id1 A d) (f1=f1 (A [ f o A [ equalizer1 (eqa f g) o j ] ])) ]
               ≈ j ]
      lemma-b4 {d} {j} = let open ≈-Reasoning (A) in
              begin
-                ( k (eqa f g) (( ( equalizer1 (eqa f g) o j ) o equalizer1 (eqa (( f o ( equalizer1 (eqa f g {e}) o j ) )) (( g o ( equalizer1 (eqa f g {e}) o j ) ))) ))
+                ( k (eqa f g) (( ( equalizer1 (eqa f g) o j ) o equalizer1 (eqa (( f o ( equalizer1 (eqa f g ) o j ) )) (( g o ( equalizer1 (eqa f g ) o j ) ))) ))
                             (lemma-equ4 {a} {b} {c} f g (( equalizer1 (eqa f g) o j ))) o
                    k (eqa (( f o ( equalizer1 (eqa f g) o j ) )) (( f o ( equalizer1 (eqa f g) o j ) ))) (id1 A d) (f1=f1 (( f o ( equalizer1 (eqa f g) o j ) ))) )
              ≈⟨ car ((uniqueness (eqa f g) ( begin
                          equalizer1 (eqa f g) o j 
                 ≈↑⟨ idR  ⟩
                          (equalizer1 (eqa f g) o j )  o id d
-                ≈⟨⟩         -- here we decide e (fej) (gej)' is id d
-                        ((equalizer1 (eqa f g) o j) o equalizer1 (eqa (f o equalizer1 (eqa f g {e}) o j) (g o equalizer1 (eqa f g {e}) o j)))
+                ≈⟨ {!!} ⟩         -- here we decide e (fej) (gej)' is id d
+                        {!!}
              ∎ ))) ⟩
                     j o k (eqa (( f o ( equalizer1 (eqa f g) o j ) )) (( f o ( equalizer1 (eqa f g) o j ) ))) (id1 A d) (f1=f1 (( f o ( equalizer1 (eqa f g) o j ) ))) 
              ≈⟨ cdr ((uniqueness (eqa (( f o ( equalizer1 (eqa f g) o j ) )) (( f o ( equalizer1 (eqa f g) o j ) ))) ( begin
-                     equalizer1 (eqa (f o equalizer1 (eqa f g {e} ) o j) (f o equalizer1 (eqa f g {e}) o j))  o id d
+                     equalizer1 (eqa (f o equalizer1 (eqa f g  ) o j) (f o equalizer1 (eqa f g ) o j))  o id d
                 ≈⟨ idR ⟩
-                     equalizer1 (eqa (f o equalizer1 (eqa f g {e}) o j) (f o equalizer1 (eqa f g {e}) o j))  
-                ≈⟨⟩         -- here we decide e (fej) (fej)' is id d
-                    id d
+                     equalizer1 (eqa (f o equalizer1 (eqa f g ) o j) (f o equalizer1 (eqa f g ) o j))  
+                ≈⟨ {!!} ⟩         -- here we decide e (fej) (fej)' is id d
+                    {!!}
              ∎ ))) ⟩
                     j o id d
                 ≈⟨ idR ⟩