changeset 725:3c42f0441bbc

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 18 Jul 2022 11:50:52 +0900
parents 97efa6b434c9
children b2e2cd12e38f
files src/zorn.agda
diffstat 1 files changed, 30 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/src/zorn.agda	Sat Jul 16 17:30:43 2022 +0900
+++ b/src/zorn.agda	Mon Jul 18 11:50:52 2022 +0900
@@ -256,7 +256,7 @@
 
 record ChainP (A : HOD ) ( f : Ordinal → Ordinal ) (mf : ≤-monotonic-f A f)  {y : Ordinal} (ay : odef A y) (supf : Ordinal → Ordinal) (u z : Ordinal) : Set n where
    field
-      y-init   : supf o∅  ≡ y
+      u>0      : o∅ o< u    -- ¬ ch-init
       au       : odef A u
       ¬u=fx    : {x : Ordinal} → ¬ ( u ≡ f x )
       asup     : (x : Ordinal) → odef A (supf x)
@@ -744,6 +744,26 @@
              → UnionCF A f mf ay psupf x ≡ pchain 
           chain-≡ lt = ==→o≡ record { eq→ = lt ; eq← = chain-mono }
 
+          fc-conv : {b u : Ordinal } 
+              →  {p0 p1 : Ordinal → Ordinal}
+              →  p0 u ≡ p1 u
+              →  FClosure A f (p0 u) b → FClosure A f (p1 u) b 
+          fc-conv {.(p0 u)} {u}  {p0} {p1} p0u=p1u (init ap0u) = subst (λ k → FClosure A f (p1 u) k) (sym p0u=p1u) ( init (subst (λ k → odef A k) p0u=p1u ap0u ))
+          fc-conv {_} {u}  {p0} {p1} p0u=p1u (fsuc z fc) = fsuc z (fc-conv {_} {u}  {p0} {p1} p0u=p1u fc)
+
+          uzc-mono : {b : Ordinal } → {ob<x : osuc b o< x }
+             → odef (UnionCF A f mf ay (ZChain.supf (prev (osuc b) ob<x))(osuc b)) b → odef pchain b
+          uzc-mono {b} {ob<x} ⟪ ab , record { u = x=0 ; u<x = u<x ; uchain = ch-init .b fc } ⟫ = 
+               ⟪ ab , record { u = x=0 ; u<x = case2 refl ; uchain = ch-init b fc } ⟫ 
+          uzc-mono {b} {ob<x} ⟪ ab , record { u = u ; u<x = case2 x=0 ; uchain = ch-is-sup is-sup fc } ⟫ = ?
+          uzc-mono {b} {ob<x} ⟪ ab , record { u = u ; u<x = case1 u<x ; uchain = ch-is-sup is-sup fc } ⟫ = 
+               ⟪ ab , record { u = u ; u<x = case1 (ordtrans u<x ob<x) ; uchain = ch-is-sup uzc00 (fc-conv {b} {u} {ZChain.supf (prev (osuc b) ob<x)} {psupf0} uzc01 fc) } ⟫ where
+                   uzc01 : ZChain.supf (prev (osuc b) ob<x) u  ≡ psupf0 u
+                   uzc01 = ?
+                   uzc00 : ChainP A f mf ay psupf0 u b
+                   uzc00 = ?
+
+
           zc5 : ZChain A f mf ay x 
           zc5 with ODC.∋-p O A (* x)
           ... | no noax = no-extension ? where -- ¬ A ∋ p, just skip
@@ -759,16 +779,18 @@
                             * a < * b → odef pchain b
                 z18 {a} {b} za b<x ab P a<b with P
                 ... | case1 pr = subst (λ k → odef pchain k ) (sym (HasPrev.x=fy pr)) ( pnext (HasPrev.ay pr) )
-                ... | case2 b=sup = ⟪ ab , record { u = UChain.u (proj2 z30) ; u<x = ? ; uchain = ? } ⟫ where
+                ... | case2 b=sup with za
+                ... | ⟪ aa , record { u = _ ; u<x = u<x ; uchain = ch-init .a fca } ⟫ = uzc-mono z30 where
                     ob<x : osuc b o< x
                     ob<x = ?
                     z30 : odef (UnionCF A f mf ay (ZChain.supf (prev (osuc b) ob<x))(osuc b)) b
-                    z30 = ZChain.is-max (pzc _ ob<x) ? <-osuc  ab (case1 ?) a<b 
-
-                --⊥-elim ( ¬x=sup record { 
-                --      x<sup = λ {y} zy → subst (λ k → (y ≡ k) ∨ (y << k)) ? 
-                --          (IsSup.x<sup b=sup ? )  } ) 
-
+                    z30 = ZChain.is-max (pzc _ ob<x) ⟪ aa , record { u = _ ; u<x = case2 refl ; uchain = ch-init a fca } ⟫ <-osuc  ab (case1 ?) a<b 
+                ... | ⟪ aa , record { u = u ; u<x = case2 u=0 ; uchain = ch-is-sup is-sup fc } ⟫ = ?
+                ... | ⟪ aa , record { u = u ; u<x = case1 u<x ; uchain = ch-is-sup is-sup fc } ⟫ = uzc-mono z30 where
+                    ob<x : osuc b o< x
+                    ob<x = ?
+                    z30 : odef (UnionCF A f mf ay (ZChain.supf (prev (osuc b) ob<x))(osuc b)) b
+                    z30 = ZChain.is-max (pzc _ ob<x) ⟪ aa , record { u = u ; u<x = case1 ? ; uchain = ch-is-sup ? ? } ⟫ <-osuc  ab (case1 ?) a<b 
          
      SZ : ( f : Ordinal → Ordinal ) → (mf : ≤-monotonic-f A f ) → {y : Ordinal} (ay : odef A y) → ZChain A f mf ay   (& A)
      SZ f mf {y} ay = TransFinite {λ z → ZChain A f mf ay   z  } (λ x → ind f mf ay x   ) (& A)