changeset 1393:c67ecdf89e77

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Tue, 27 Jun 2023 08:48:41 +0900
parents 8645a167d76b
children 873924d06ff7
files src/bijection.agda src/cardinal.agda
diffstat 2 files changed, 59 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/bijection.agda	Mon Jun 26 15:52:14 2023 +0900
+++ b/src/bijection.agda	Tue Jun 27 08:48:41 2023 +0900
@@ -57,6 +57,13 @@
 -- famous diagnostic function
 --
 
+--   1 1 0 1 0 ...
+--   0 1 0 1 0 ...
+--   1 0 0 1 0 ...
+--   1 1 1 1 0 ...
+
+--   0 0 1 0 1 ...  diag
+
 diag : {S : Set }  (b : Bijection  ( S → Bool ) S) → S → Bool
 diag b n = not (fun← b n n)
 
@@ -82,7 +89,7 @@
 b-iso b = fiso← b _
 
 --
--- ℕ <=> ℕ + 1
+-- ℕ <=> ℕ + 1    (infinite hotel)
 --
 to1 : {n : Level} {R : Set n} → Bijection ℕ R → Bijection ℕ (⊤ ∨ R )
 to1 {n} {R} b = record {
--- a/src/cardinal.agda	Mon Jun 26 15:52:14 2023 +0900
+++ b/src/cardinal.agda	Tue Jun 27 08:48:41 2023 +0900
@@ -116,6 +116,10 @@
 Injection-⊆ {a} {b} {c} le f = record { i→ = λ x cx → i→ f x (le cx) ; iB = λ x cx → iB f x (le cx) 
         ; inject = λ x y ix iy eq → inject f x y (le ix) (le iy) eq  } 
 
+Injection-∙ : {a b c : Ordinal } → Injection a b → Injection b c → Injection a c
+Injection-∙ {a} {b} {c} f g = record { i→ = λ x ax → i→ g (i→ f x ax) (iB f x ax) ; iB = λ x ax → iB g (i→ f x ax) (iB f x ax)
+        ; inject = λ x y ix iy eq → inject f x y ix iy (inject g (i→ f x ix) (i→ f y iy) (iB f x ix) (iB f y iy) eq)   } 
+
 
 Bernstein : {a b : Ordinal } → Injection a b → Injection b a → OrdBijection a b
 Bernstein {a} {b} iab iba = be00 where
@@ -150,6 +154,9 @@
 
           UC : HOD
           UC = record { od = record { def = λ x → CN x } ; odmax = & (* a) ; <odmax = λ lt → odef< (a∋gfImage (CN.i lt) (CN.gfix lt))  }
+
+          b-UC : HOD
+          b-UC = record { od = record { def = λ x → odef (* b) x ∧ (¬ CN x) } ; odmax = & (* b) ; <odmax = λ lt → odef< (proj1 lt)  }
           
           --  UC ⊆ * a
           --     f : UC → Image f UC    is injection
@@ -160,6 +167,24 @@
                 be02 : CN x
                 be02 = subst (λ k → odef k x) *iso lt
 
+          b-UC⊆b : * (& b-UC) ⊆ * b
+          b-UC⊆b {x} lt = proj1 ( subst (λ k → odef k x) *iso lt )
+
+          be10 : Injection (& b-UC) (& (Image (& b-UC) {a} (Injection-⊆ b-UC⊆b g) ))
+          be10 = record { i→ = be12 ; iB = ? ; inject = ? } where
+              be12 : (x : Ordinal) → odef (* (& b-UC)) x → Ordinal
+              be12 x lt = i→ g x (proj1 be02) where
+                    be02 : odef (* b) x ∧ ( ¬ CN x )
+                    be02 = subst (λ k → odef k x) *iso lt
+
+          be11 : Injection (& (Image (& b-UC) {a} (Injection-⊆ b-UC⊆b g) )) (& b-UC)
+          be11 = record { i→ = be13 ; iB = ? ; inject = ? } where
+              be13 : (x : Ordinal) → odef (* (& (Image (& b-UC) (Injection-⊆ b-UC⊆b g)))) x → Ordinal
+              be13 x lt with subst (λ k → odef k x) *iso lt 
+              ... | record { y = y ; ay = ay ; x=fy = x=fy } = y where -- x=fy : x ≡ fba y (proj1 (subst (λ k → OD.def (od k) y) *iso ay))
+                    be02 : odef (* b) y ∧ ( ¬ CN y )
+                    be02 = subst (λ k → odef k y) *iso ay
+
           open import Relation.Binary.HeterogeneousEquality as HE using (_≅_ )
 
           fab-refl : {x : Ordinal } → {ax ax1 : odef (* a) x}  → fab x ax ≡ fab x ax1
@@ -168,7 +193,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 = ? } where
+          fU = record { i→ = be00 ; iB = λ x lt →  be50 x lt ; inject = be51 } where
                 be00 : (x : Ordinal) (lt : odef (* (& UC)) x) → Ordinal
                 be00 x lt = be03 where
                     be02 : CN x
@@ -188,8 +213,32 @@
                     ... | 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 )
+                        
+
           Uf : Injection (& (Image (& UC) {b} (Injection-⊆ UC⊆a  f))) (& UC) 
-          Uf = ?
+          Uf = record { i→ = ? ; iB = λ x lt →  ? ; inject = ? } where
+                 be00 : (x : Ordinal) → odef (* (& (Image (& UC) (Injection-⊆ UC⊆a f)))) x → Ordinal
+                 be00 = ?
 
     be00 : OrdBijection a b
     be00 with trio< a b