changeset 1401:34f72406fcfd

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Thu, 29 Jun 2023 02:36:06 +0900
parents 1c7b0a040d9c
children d9eb3ae5fbad
files src/ODC.agda src/cardinal.agda
diffstat 2 files changed, 46 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/src/ODC.agda	Wed Jun 28 14:02:57 2023 +0900
+++ b/src/ODC.agda	Thu Jun 29 02:36:06 2023 +0900
@@ -94,6 +94,11 @@
 or-exclude {A} {B} (case2 b) | case1 a = case1 a
 or-exclude {A} {B} (case2 b) | case2 ¬a = case2 ⟪ ¬a , b ⟫
 
+or-exclude1 : {A B : Set n} →  (¬ A →  B ) → A ∨ B 
+or-exclude1 {A} {B} ab with p∨¬p A
+... | case1 a = case1 a
+... | case2 ¬a = case2 ( ab ¬a)
+
 -- record By-contradiction (A : Set n) (B : A → Set n)  : Set (suc n) where
 --  field
 --     a : A
--- a/src/cardinal.agda	Wed Jun 28 14:02:57 2023 +0900
+++ b/src/cardinal.agda	Thu Jun 29 02:36:06 2023 +0900
@@ -123,7 +123,8 @@
 
 Bernstein : {a b : Ordinal } → Injection a b → Injection b a → OrdBijection a b
 Bernstein {a} {b} (f @ record { i→ = fab ; iB = b∋fab ; inject = fab-inject }) ( g @ record { i→ = fba ; iB = a∋fba ; inject = fba-inject })
-     = record { fun←  = ?
+     = record { 
+         fun←  = ?
        ; fun→  = ?
        ; funB  = ?
        ; funA  = ?
@@ -268,9 +269,25 @@
              ... | 0 | a-g ax ¬ib = sym x=fy
              ... | (suc i) | next-gf t ix = sym x=fy
 
-      Img∨ : (x : Ordinal) → odef (* b) x → odef (* (& (Image (& UC) (Injection-⊆ UC⊆a f)))) x ∨ odef (* (& (Image (& b-UC) (Injection-⊆ b-UC⊆b g)))) x 
+      g⁻¹ : {x : Ordinal } → (ax : odef (* a) x) → ¬ odef (C 0) x → Ordinal
+      g⁻¹ {x} ax nc0 with ODC.p∨¬p O ( IsImage b a g x )
+      ... | case1 record { y = y ; ay = ay ; x=fy = x=fy } = y
+      ... | case2 ¬ism = ⊥-elim ( nc0 ( a-g ax ¬ism ) )
+
+      b∋g⁻¹ : {x : Ordinal } → (ax : odef (* a) x) → (nc0 : ¬ odef (C 0) x) → odef (* b) (g⁻¹ ax nc0)
+      b∋g⁻¹ {x} ax nc0 with ODC.p∨¬p O ( IsImage b a g x )
+      ... | case1 record { y = y ; ay = ay ; x=fy = x=fy } = ay
+      ... | case2 ¬ism = ⊥-elim ( nc0 ( a-g ax ¬ism ) )
+
+      g⁻¹-iso : {x : Ordinal } → (ax : odef (* a) x) → (nc0 : ¬ odef (C 0) x ) → fba (g⁻¹ ax nc0) (b∋g⁻¹ ax nc0) ≡ x
+      g⁻¹-iso {x} ax nc0 with ODC.p∨¬p O ( IsImage b a g x )
+      ... | case1 record { y = y ; ay = ay ; x=fy = x=fy } = sym x=fy
+      ... | case2 ¬ism = ⊥-elim ( nc0 ( a-g ax ¬ism ) )
+
+      Img∨ : (x : Ordinal) → (bx : odef (* b) x) → odef (* (& (Image (& UC) (Injection-⊆ UC⊆a f)))) x 
+          ∨ odef (* (& (Image (& b-UC) (Injection-⊆ b-UC⊆b g)))) (fba x bx) 
       Img∨ x bx = be20 where
-             be20 :  odef (* (& (Image (& UC) (Injection-⊆ UC⊆a f)))) x ∨ odef (* (& (Image (& b-UC) (Injection-⊆ b-UC⊆b g)))) x 
+             be20 :  odef (* (& (Image (& UC) (Injection-⊆ UC⊆a f)))) x ∨ odef (* (& (Image (& b-UC) (Injection-⊆ b-UC⊆b g)))) (fba x bx) 
              be20 with ∨L\X {* a} {UC} (a∋fba x bx)
              ... | case1 uc = case1 (subst (λ k → odef k x) (sym *iso) be21 ) where
                  be21 : odef (Image (& UC) (Injection-⊆ UC⊆a f)) x
@@ -282,9 +299,27 @@
                      be24 = inject g _ _ bx (b∋fab y ay) x=fy
                      be25 : odef UC y
                      be25 = record { i = i ; gfix = t }
-             be20 | case2 ⟪ agx , ncn ⟫ = case2 (subst (λ k → odef k x) (sym *iso) be21 ) where
-                 be21 : odef (Image (& b-UC) (Injection-⊆ b-UC⊆b g)) x
-                 be21 = record { y = ? ; ay = ? ; x=fy = ? }
+             be20 | case2 ⟪ agx , ncn ⟫ = case2 (subst (λ k → odef k (fba x bx) ) (sym *iso) be21 ) where
+                 be21 : odef (Image (& b-UC) (Injection-⊆ b-UC⊆b g)) (fba x bx) 
+                 be21 = record { y = g⁻¹ agx  be22
+                      ; ay = subst (λ k → odef k (g⁻¹ agx  be22)) (sym *iso) ⟪ b∋g⁻¹ agx be22 , be23 ⟫  ; x=fy = ? } where
+                          be22 :  ¬ odef (C 0) (fba x bx) 
+                          be22 = λ nc0 → ncn record { i = 0 ; gfix = nc0 }
+                          be30 : CN (fba x bx) → ⊥ 
+                          be30 = ncn
+                          be25 : ¬ CN (g⁻¹ agx be22)  
+                          be25 = ? where
+                             be26 : (i : ℕ) (y : Ordinal) (ay : odef (* a) y)  ( gfi : gfImage i  y ) → ¬ CN (fab y ay )  → ⊥
+                             be26 0 y ay (a-g ax ¬ib) ncy = ?
+                             be26 (suc i) y ay (next-gf record { y = y1 ; ay = ay1 ; x=fy = x=fy1 } gfi) ncy = be26 i y1 ay1 gfi ?
+                          be23 : ¬ CN (g⁻¹ agx be22)  -- g⁻¹ (g x ) -- ¬ CN x
+                          be23 cng with CN.i cng | CN.gfix cng
+                          ... | 0 | a-g ax ¬ib = ⊥-elim ( ¬ib record { y = ? ; ay = ? ; x=fy = ? } )
+                          ... | suc i | next-gf record { y = y ; ay = ay ; x=fy = x=fy } t = ⊥-elim (ncn record { i = suc i ; gfix = ? })
+                          be24 : ¬ CN x  
+                          be24 cng with CN.i cng | CN.gfix cng
+                          ... | 0 | a-g ax ¬ib = ⊥-elim ( ¬ib record { y = g⁻¹ agx be22 ; ay = ? ; x=fy = ? } )
+                          ... | suc i | next-gf record { y = y ; ay = ay ; x=fy = x=fy } t = ⊥-elim (ncn record { i = suc i ; gfix = ? })
 
 _c<_ : ( A B : HOD ) → Set n
 A c< B = ¬ ( Injection (& A)  (& B) )