changeset 1398:d586aaa9b0bd

one Uf iso done
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Wed, 28 Jun 2023 08:27:49 +0900
parents 94baa4bdfd7d
children 59346935f8a4
files src/cardinal.agda
diffstat 1 files changed, 70 insertions(+), 66 deletions(-) [+]
line wrap: on
line diff
--- a/src/cardinal.agda	Wed Jun 28 07:34:01 2023 +0900
+++ b/src/cardinal.agda	Wed Jun 28 08:27:49 2023 +0900
@@ -227,7 +227,7 @@
           fUC = & (Image (& UC) {b} (Injection-⊆ UC⊆a  f) )
           --   C n → f (C n) 
           fU : Injection (& UC) (& (Image (& UC) {b} (Injection-⊆ UC⊆a  f) ))
-          fU = record { i→ = be00 ; iB = λ x lt →  be50 x lt ; inject = be51 } where
+          fU = record { i→ = be00 ; iB = λ x lt →  ? ; inject = ? } where
                 be00 : (x : Ordinal) (lt : odef (* (& UC)) x) → Ordinal
                 be00 x lt = be03 where
                     be02 : CN x
@@ -235,85 +235,89 @@
                     be03 : Ordinal
                     be03 with CN.i be02 | CN.gfix be02
                     ... | zero | a-g {x} ax ¬ib = fab x ax
-                    ... | suc i | next-gf {x} gfiy record { y = y ; ay = ay ; x=fy = x=fy } 
+                    ... | suc i | next-gf gfiy record { y = y ; ay = ay ; x=fy = x=fy } 
                            = fab x (subst (λ k → odef (* a) k) (sym x=fy) (a∋fba _ (b∋fab y ay) ))
-                be50 : (x : Ordinal) (lt : odef (* (& UC)) x) 
-                     → odef (* (& (Image (& UC) (Injection-⊆ UC⊆a f )))) (be00 x lt)
-                be50 x lt1 =  subst (λ k → odef k (be00 x lt1 )) (sym *iso) be03 where
-                    be02 : CN x
-                    be02 = subst (λ k → odef k x) *iso lt1
-                    be03 : odef (Image (& UC) (Injection-⊆ UC⊆a f )) (be00 x lt1 )
-                    be03 with CN.i be02 | CN.gfix be02
-                    ... | zero | a-g {x} ax ¬ib = record { y = x ; ay = lt1 ; x=fy = fab-refl } 
-                    ... | suc i | next-gf {x} gfiy record { y = y ; ay = ay ; x=fy = x=fy } = record { y = _ ; ay = lt1 ; x=fy = fab-refl } 
+                -- e50 : (x : Ordinal) (lt : odef (* (& UC)) x) 
+                --     → odef (* (& (Image (& UC) (Injection-⊆ UC⊆a f )))) (be00 x lt)
+                -- e50 x lt1 =  subst (λ k → odef k (be00 x lt1 )) (sym *iso) be03 where
+                --    be02 : CN x
+                --    be02 = subst (λ k → odef k x) *iso lt1
+                --    be03 : odef (Image (& UC) (Injection-⊆ UC⊆a f )) (be00 x lt1 )
+                --    be03 with CN.i be02 | CN.gfix be02
+                --    ... | zero | a-g {x} ax ¬ib = record { y = x ; ay = lt1 ; x=fy = fab-refl } 
+                --    ... | suc i | next-gf {x} gfiy record { y = y ; ay = ay ; x=fy = x=fy } = record { y = _ ; ay = lt1 ; x=fy = fab-refl } 
 
-                be51 : (x y : Ordinal) (ltx : odef (* (& UC)) x) (lty : odef (* (& UC)) y) → be00 x ltx ≡ be00 y lty → x ≡ y
-                be51 x y ltx lty eq = be04 where
-                    be0x : CN x
-                    be0x = subst (λ k → odef k x) *iso ltx
-                    be0y : CN y
-                    be0y = subst (λ k → odef k y) *iso lty
-                    be04 : x ≡ y
-                    be04 with CN.i be0x | CN.gfix be0x | CN.i be0y | CN.gfix be0y 
-                    ... | 0 | a-g ax ¬ib | 0 | a-g ax₁ ¬ib₁ = fab-inject _ _ ax ax₁ eq 
-                    ... | 0 | a-g ax ¬ib | suc j | next-gf gfyi iy = fab-inject _ _ ax ay eq where
-                        ay : odef (* a) y
-                        ay = a∋gfImage (suc j) (next-gf gfyi iy )
-                    ... | suc i | next-gf gfxi ix | 0 | a-g ay ¬ib = fab-inject _ _ ax ay eq where
-                        ax : odef (* a) x
-                        ax = a∋gfImage (suc i) (next-gf gfxi ix )
-                    ... | suc i | next-gf gfxi ix | suc j | next-gf gfyi iy = fab-inject _ _ ax ay eq where
-                        ax : odef (* a) x
-                        ax = a∋gfImage (suc i) (next-gf gfxi ix )
-                        ay : odef (* a) y
-                        ay = a∋gfImage (suc j) (next-gf gfyi iy )
-                        
+                -- e51 : (x y : Ordinal) (ltx : odef (* (& UC)) x) (lty : odef (* (& UC)) y) → be00 x ltx ≡ be00 y lty → x ≡ y
+                -- e51 x y ltx lty eq = be04 where
+                --    be0x : CN x
+                --    be0x = subst (λ k → odef k x) *iso ltx
+                --    be0y : CN y
+                --    be0y = subst (λ k → odef k y) *iso lty
+                --    be04 : x ≡ y
+                --    be04 with CN.i be0x | CN.gfix be0x | CN.i be0y | CN.gfix be0y 
+                --    ... | 0 | a-g ax ¬ib | 0 | a-g ax₁ ¬ib₁ = fab-inject _ _ ax ax₁ eq 
+                --    ... | 0 | a-g ax ¬ib | suc j | next-gf gfyi iy = fab-inject _ _ ax ay eq where
+                --        ay : odef (* a) y
+                --        ay = a∋gfImage (suc j) (next-gf gfyi iy )
+                --    ... | suc i | next-gf gfxi ix | 0 | a-g ay ¬ib = fab-inject _ _ ax ay eq where
+                --        ax : odef (* a) x
+                --        ax = a∋gfImage (suc i) (next-gf gfxi ix )
+                --    ... | suc i | next-gf gfxi ix | suc j | next-gf gfyi iy = fab-inject _ _ ax ay eq where
+                --        ax : odef (* a) x
+                --        ax = a∋gfImage (suc i) (next-gf gfxi ix )
+                --        ay : odef (* a) y
+                --        ay = a∋gfImage (suc j) (next-gf gfyi iy )
+                --        
 
           --   f (C n) → g (f (C n) ) ≡ C (suc i)
           Uf : Injection (& (Image (& UC) {b} (Injection-⊆ UC⊆a  f))) (& UC) 
-          Uf = record { i→ = be00 ; iB = be01 ; inject = ? } where
+          Uf = record { i→ = be00 ; iB = ? ; inject = ? } where
                  be00 : (x : Ordinal) → odef (* (& (Image (& UC) (Injection-⊆ UC⊆a f)))) x → Ordinal
                  be00 x lt with subst (λ k → odef k x ) *iso lt
-                 ... | record { y = y ; ay = ay ; x=fy = x=fy } = fba x (subst (λ k → odef (* b) k ) (trans fab-refl (sym x=fy)) (b∋fab y (UC⊆a ay) ) )
-                 be01 : (x : Ordinal) → (lt : odef (* (& (Image (& UC) (Injection-⊆ UC⊆a f)))) x ) → odef (* (& UC)) (be00 x lt)
-                 be01 x lt with subst (λ k → odef k x) *iso lt 
-                 ... | record { y = y ; ay = ay ; x=fy = x=fy } = subst₂ (λ j k → odef j k ) (sym *iso) fba-refl 
-                    record { i = suc (CN.i be04 ) ; gfix = next-gf (CN.gfix be04) record { y = y ; ay = a∋gfImage (CN.i be04) (CN.gfix be04) ; x=fy = be06 } }
-                           where
-                      be04 : CN y
-                      be04 = subst (λ k → odef k y) *iso ay
-                      bx : odef (* b) x
-                      bx = subst (λ k → odef (* b) k ) (sym x=fy) ( b∋fab y (a∋gfImage (CN.i be04) (CN.gfix be04)))
-                      be06 : fba x bx ≡ fba (fab y (a∋gfImage (CN.i be04) (CN.gfix be04))) (b∋fab y (a∋gfImage (CN.i be04) (CN.gfix be04)) )
-                      be06 = fba-eq x=fy
-                 be02 : (x y : Ordinal) (ltx : odef (* (& (Image (& UC) (Injection-⊆ UC⊆a (record { i→ = fab ; iB = b∋fab ; inject = fab-inject }))))) x)
-                        (lty : odef (* (& (Image (& UC) (Injection-⊆ UC⊆a (record { i→ = fab ; iB = b∋fab ; inject = fab-inject }))))) y) →
-                        be00 x ltx ≡ be00 y lty → x ≡ y
-                 be02 x y ltx lty eq with subst (λ k → odef k x) *iso ltx | subst (λ k → odef k y) *iso lty
-                 ... | record { y = ix ; ay = aix ; x=fy = x=fix } | record { y = iy ; ay = aiy ; x=fy = x=fiy } 
-                     = inject g _ _ bx by (trans fba-refl (trans eq fba-refl )) where
-                      be04 : CN ix
-                      be04 = subst (λ k → odef k ix) *iso aix
-                      be06 : CN iy
-                      be06 = subst (λ k → odef k iy) *iso aiy
-                      bx : odef (* b) x
-                      bx = subst (λ k → odef (* b) k ) (sym x=fix) ( b∋fab ix (a∋gfImage (CN.i be04) (CN.gfix be04)))
-                      by : odef (* b) y
-                      by = subst (λ k → odef (* b) k ) (sym x=fiy) ( b∋fab iy (a∋gfImage (CN.i be06) (CN.gfix be06)))
+                 ... | record { y = y ; ay = ay ; x=fy = x=fy } = y
+                 -- fba x (subst (λ k → odef (* b) k ) (trans fab-refl (sym x=fy)) (b∋fab y (UC⊆a ay) ) )
+                 -- be01 : (x : Ordinal) → (lt : odef (* (& (Image (& UC) (Injection-⊆ UC⊆a f)))) x ) → odef (* (& UC)) (be00 x lt)
+                 -- be01 x lt with subst (λ k → odef k x) *iso lt 
+                 -- ... | record { y = y ; ay = ay ; x=fy = x=fy } = subst₂ (λ j k → odef j k ) (sym *iso) fba-refl 
+                 --    record { i = suc (CN.i be04 ) ; gfix = next-gf (CN.gfix be04) record { y = y ; ay = a∋gfImage (CN.i be04) (CN.gfix be04) ; x=fy = be06 } }
+                 --           where
+                 --      be04 : CN y
+                 --      be04 = subst (λ k → odef k y) *iso ay
+                 --      bx : odef (* b) x
+                 --      bx = subst (λ k → odef (* b) k ) (sym x=fy) ( b∋fab y (a∋gfImage (CN.i be04) (CN.gfix be04)))
+                 --      be06 : fba x bx ≡ fba (fab y (a∋gfImage (CN.i be04) (CN.gfix be04))) (b∋fab y (a∋gfImage (CN.i be04) (CN.gfix be04)) )
+                 --      be06 = fba-eq x=fy
+                 -- be02 : (x y : Ordinal) (ltx : odef (* (& (Image (& UC) (Injection-⊆ UC⊆a (record { i→ = fab ; iB = b∋fab ; inject = fab-inject }))))) x)
+                 --        (lty : odef (* (& (Image (& UC) (Injection-⊆ UC⊆a (record { i→ = fab ; iB = b∋fab ; inject = fab-inject }))))) y) →
+                 --        be00 x ltx ≡ be00 y lty → x ≡ y
+                 -- be02 x y ltx lty eq with subst (λ k → odef k x) *iso ltx | subst (λ k → odef k y) *iso lty
+                 -- ... | record { y = ix ; ay = aix ; x=fy = x=fix } | record { y = iy ; ay = aiy ; x=fy = x=fiy } 
+                 --     = inject g _ _ bx by (trans fba-refl (trans eq fba-refl )) where
+                 --      be04 : CN ix
+                 --      be04 = subst (λ k → odef k ix) *iso aix
+                 --      be06 : CN iy
+                 --      be06 = subst (λ k → odef k iy) *iso aiy
+                 --      bx : odef (* b) x
+                 --      bx = subst (λ k → odef (* b) k ) (sym x=fix) ( b∋fab ix (a∋gfImage (CN.i be04) (CN.gfix be04)))
+                 --      by : odef (* b) y
+                 --      by = subst (λ k → odef (* b) k ) (sym x=fiy) ( b∋fab iy (a∋gfImage (CN.i be06) (CN.gfix be06)))
 
           UC-iso0 : (x : Ordinal ) → (cx : odef (* (& UC)) x ) → i→ Uf ( i→ fU x cx ) (iB fU x cx)  ≡ x
-          UC-iso0 x cx = ? where
+          UC-iso0 x cx = be03 where
                  be02 : CN x
                  be02 = subst (λ k → odef k x) *iso cx
                  be03 : i→ Uf ( i→ fU x cx ) (iB fU x cx)  ≡ x
                  be03 with CN.i be02 | CN.gfix be02 | iB fU x cx
-                 ... | zero | a-g ax ¬ib | cb with subst (λ k → odef k _ ) *iso cb
-                 ... | record { y = y ; ay = ay ; x=fy = x=fy } = ?   -- fba (fab x _) _ = x
-                 be03 | suc i | next-gf s ix | cb with subst (λ k → odef k (fab x _) ) *iso cb
-                 ... | record { y = y ; ay = ay ; x=fy = x=fy } = ?
+                 ... | zero | a-g ax ¬ib | cb with subst (λ k → odef k _ ) *iso cb | inspect  (i→ fU x) cx
+                 ... | record { y = y ; ay = ay ; x=fy = x=fy } | record { eq = refl } = sym ( inject f _ _  ax (UC⊆a ay) x=fy )
+                 be03 | suc i | next-gf s record { y = x1 ; ay = ax1 ; x=fy = x=fx1 } | cb with 
+                          subst (λ k → odef k (fab x (subst (odef (* a)) (sym x=fx1) (a∋fba (fab x1 ax1) (b∋fab x1 ax1))))  ) *iso cb 
+                 ... | record { y = y ; ay = ay ; x=fy = x=fy } = sym ( inject f _ _  ax (UC⊆a ay) x=fy ) where
+                      ax : odef (* a) x
+                      ax = subst (λ k → odef (* a) k ) (sym x=fx1) ( a∋fba _ (b∋fab x1 ax1) )
 
-          UC-iso1 : (x : Ordinal ) → (cx : odef (* (& (Image (& UC) {b} (Injection-⊆ UC⊆a  f)))) x ) → i→ fU ( i→ Uf x cx ) (iB Uf x cx)  ≡ x
-          UC-iso1 = ?
+          -- UC-iso1 : (x : Ordinal ) → (cx : odef (* (& (Image (& UC) {b} (Injection-⊆ UC⊆a  f)))) x ) → i→ fU ( i→ Uf x cx ) (iB Uf x cx)  ≡ x
+          -- UC-iso1 = ?
 
 
     be00 : OrdBijection a b