changeset 732:ddeb107b6f71

bchain can be reached from upwords by f. so it is worng.
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Tue, 19 Jul 2022 07:36:10 +0900
parents ac6b4d200f27
children 15f3bcc4ae3f
files src/OrdUtil.agda src/zorn.agda
diffstat 2 files changed, 34 insertions(+), 25 deletions(-) [+]
line wrap: on
line diff
--- a/src/OrdUtil.agda	Tue Jul 19 01:15:05 2022 +0900
+++ b/src/OrdUtil.agda	Tue Jul 19 07:36:10 2022 +0900
@@ -72,6 +72,11 @@
 ... | case1 x=y = subst ( λ k → k o< oz ) (sym x=y) y<z
 ... | case2 x<y = ordtrans x<y y<z
 
+ordtrans<-≤ :  {ox oy oz : Ordinal } → ox o< oy  → oy o< osuc oz  → ox o< oz
+ordtrans<-≤ {ox} {oy} {oz} x<y y≤z with  osuc-≡< y≤z
+... | case1 x=y = subst ( λ k → ox o< k ) (x=y) x<y
+... | case2 y<z = ordtrans x<y y<z
+
 open _∧_
 
 osuc2 :  ( x y : Ordinal  ) → ( osuc x o< osuc (osuc y )) ⇔ (x o< osuc y)
--- a/src/zorn.agda	Tue Jul 19 01:15:05 2022 +0900
+++ b/src/zorn.agda	Tue Jul 19 07:36:10 2022 +0900
@@ -265,6 +265,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
       u>0      : o∅ o< u    -- ¬ ch-init
+      supf=u   : supf u ≡ u  
       au       : odef A u
       ¬u=fx    : {x : Ordinal} → ¬ ( u ≡ f x )
       asup     : (x : Ordinal) → odef A (supf x)
@@ -303,7 +304,8 @@
    chain : HOD
    chain = UnionCF A f mf ay supf z
    field
-      chain-mono : {z1 : Ordinal} → z1 o≤ z → UnionCF A f mf ay supf z1 ⊆' UnionCF A f mf ay supf z 
+      -- chain-mono : {z1 : Ordinal} → z1 o≤ z → UnionCF A f mf ay supf z1 ⊆' UnionCF A f mf ay supf z 
+      chain<A : {z : Ordinal } → UnionCF A f mf ay supf z ⊆' UnionCF A f mf ay supf (& A) 
       chain⊆A : chain ⊆' A
       chain∋init : odef chain init
       initial : {y : Ordinal } → odef chain y → * init ≤ * y
@@ -313,7 +315,7 @@
 record ZChain1 ( A : HOD )    ( f : Ordinal → Ordinal )  (mf : ≤-monotonic-f A f) 
         {init : Ordinal} (ay : odef A init)  (zc : ZChain A f mf ay (& A)) ( z : Ordinal ) : Set (Level.suc n) where
    field
-      b<x→chain : { b : Ordinal } → b o< z → odef (UnionCF A f mf ay (ZChain.supf zc) (& A)) b → odef (UnionCF A f mf ay (ZChain.supf zc) z) b
+      chain≤x : { b : Ordinal } → b o≤ z → odef (UnionCF A f mf ay (ZChain.supf zc) (& A)) b → odef (UnionCF A f mf ay (ZChain.supf zc) z) b
       chain-mono2 : { a b c : Ordinal }  → 
           a o≤ b → b o≤ z → odef (UnionCF A f mf ay (ZChain.supf zc) a) c → odef (UnionCF A f mf ay (ZChain.supf zc) b) c
       is-max :  {a b : Ordinal } → (ca : odef (UnionCF A f mf ay (ZChain.supf zc) z) a ) →  b o< z  → (ab : odef A b) 
@@ -433,20 +435,24 @@
         {init : Ordinal} (ay : odef A init) (zc : ZChain A f mf ay (& A)) (x : Ordinal)   → ZChain1 A f mf ay zc x
      SZ1 A f mf {y} ay zc x = TransFinite { λ x →  ZChain1 A f mf ay zc x } zc1 x where
         zc1 :  (x : Ordinal) →  ((y₁ : Ordinal) → y₁ o< x → ZChain1 A f mf ay zc y₁) → ZChain1 A f mf ay zc x
-        zc1 x prev = record { is-max = is-max ; chain-mono2 = ? ; b<x→chain = ? } where
-           bchain : {b : Ordinal} → b o< x →
+        zc1 x prev with Oprev-p x
+        ... | yes op = record { is-max = is-max ; chain-mono2 = chain-mono2 ; chain≤x = bchain } where
+           -- supf u ≡ u ?
+           px = Oprev.oprev op
+           bchain : {b : Ordinal} → b o≤ x →
                 odef (UnionCF A f mf ay (ZChain.supf zc) (& A)) b →
                 odef (UnionCF A f mf ay (ZChain.supf zc) x) b
-           bchain {b} b<x ⟪ ab , record { u = u ; u<x = u=0 ; uchain = ch-init b fc } ⟫ = 
-                  ⟪ ab , record { u = u ; u<x = case2 refl ; uchain = ch-init b fc } ⟫ 
-           bchain {b} b<x ⟪ ab , record { u = u ; u<x = u<x ; uchain = ch-is-sup is-sup fc } ⟫ =  
-                  ⟪ ab , record { u = u ; u<x = case1 (b01 fc) ; uchain = ch-is-sup is-sup fc } ⟫ where
-               b01 : {b : Ordinal } → FClosure A f (ZChain.supf zc u) b → u o< x
-               b01 (init as) = ?
-               b01 (fsuc z fc) = b01 fc
+           bchain {b} b≤x ⟪ ab , record { u = u0 ; u<x = u<x ; uchain = ch-init .b x } ⟫ = 
+                 ⟪ ab , record { u = u0 ; u<x = case2 refl ; uchain = ch-init b x } ⟫ 
+           bchain {b} b≤x ub@record { proj1 =  ab ; proj2 =  record { u = u ; u<x = u<x ; uchain = ch-is-sup is-sup fc } } with osuc-≡< b≤x
+           ... | case2 lt = ⟪ ab , record { u = UChain.u (proj2 sz00) ; u<x = ? ; uchain = UChain.uchain (proj2 sz00) } ⟫ where
+                 sz00 : odef (UnionCF A f mf ay (ZChain.supf zc) px) b
+                 sz00 = ZChain1.chain≤x (prev px ? ) ?  ub
+           ... | case1 refl = ?
+
            chain-mono2 :  {a b c : Ordinal} → a o≤ b → b o≤ x →
                 odef (UnionCF A f mf ay (ZChain.supf zc) a) c → odef (UnionCF A f mf ay (ZChain.supf zc) b) c
-           chain-mono2 {a} {b} {c} a≤b b≤x uac = ?
+           chain-mono2 {a} {b} {c} a≤b b≤x uac = {!!}
            is-max :  {a : Ordinal} {b : Ordinal} → odef (UnionCF A f mf ay (ZChain.supf zc) x) a →
               b o< x → (ab : odef A b) →
               HasPrev A (UnionCF A f mf ay (ZChain.supf zc) x) ab f ∨ IsSup A (UnionCF A f mf ay (ZChain.supf zc) x) ab →
@@ -458,19 +464,17 @@
                  m03 = {!!}
                  m02 : odef (UnionCF A f mf ay (ZChain.supf zc) (& A)) (f (HasPrev.y has-prev))
                  m02 = ZChain.f-next zc (HasPrev.ay has-prev) 
-           ... | case2  ¬fy<x  with Oprev-p x
-           ... | yes op = {!!} where
-                 px = Oprev.oprev op
+           ... | case2  ¬fy<x  = {!!} where
                  m01 : odef (UnionCF A f mf ay (ZChain.supf zc) x) b
                  m01 with trio< px b
-                 ... | tri< a ¬b ¬c = ZChain1.chain-mono2 (prev px ?) ? ? m04 where
+                 ... | tri< a ¬b ¬c = ZChain1.chain-mono2 (prev px {!!}) {!!} {!!} m04 where
                     m04 : odef (UnionCF A f mf ay (ZChain.supf zc) px) b
-                    m04 = ZChain1.is-max (prev px ?) {!!} {!!} ab {!!} a<b
+                    m04 = ZChain1.is-max (prev px {!!}) {!!} {!!} ab {!!} a<b
                  ... | tri≈ ¬a b ¬c = {!!}
                  ... | tri> ¬a ¬b c = {!!}
-           ... | no  lim = ZChain1.chain-mono2 (prev b b<x ) ? {!!} m04  where
-                    m04 : odef (UnionCF A f mf ay (ZChain.supf zc) (osuc b)) b
-                    m04 = ZChain1.is-max (prev (osuc b) ? ) {!!} <-osuc ab {!!} a<b
+        ... | no lim = record { is-max = {!!} ; chain-mono2 = {!!} ; chain≤x = {!!} } 
+           --- m04 : odef (UnionCF A f mf ay (ZChain.supf zc) (osuc b)) b
+           --- m04 = ZChain1.is-max (prev (osuc b) {!!} ) {!!} <-osuc ab {!!} a<b
 
      ---
      --- the maximum chain  has fix point of any ≤-monotonic function
@@ -537,7 +541,7 @@
 
      inititalChain : ( f : Ordinal → Ordinal ) → (mf : ≤-monotonic-f A f ) {y : Ordinal} (ay : odef A y) → ZChain A f mf ay o∅
      inititalChain f mf {y} ay = record { supf = isupf ; chain⊆A = λ lt → proj1 lt ; chain∋init = cy
-      ; initial = isy ; f-next = inext ; f-total = itotal ; chain-mono = {!!} } where
+      ; initial = isy ; f-next = inext ; f-total = itotal ; chain<A = {!!} } where
           isupf : Ordinal → Ordinal
           isupf z = y
           cy : odef (UnionCF A f mf ay isupf o∅) y
@@ -691,7 +695,7 @@
           pcy = ⟪ ay , record { u =  o∅ ; u<x = case2 refl ; uchain = ch-init _ (init ay)  }  ⟫
 
           no-extension : ZChain A f mf ay x
-          no-extension  = record { initial = pinit ; chain∋init = pcy  ; supf = psupf0 ; chain-mono = ?
+          no-extension  = record { initial = pinit ; chain∋init = pcy  ; supf = psupf0 ; chain<A = {!!}
               ;  chain⊆A = pchain⊆A ;  f-next = pnext ;  f-total = ptotal }
 
           usup : SUP A pchain
@@ -718,13 +722,13 @@
 
           zc5 : ZChain A f mf ay x 
           zc5 with ODC.∋-p O A (* x)
-          ... | no noax = no-extension where -- ¬ A ∋ p, just skip
+          ... | no noax = no-extension -- ¬ A ∋ p, just skip
           ... | yes ax with ODC.p∨¬p O ( HasPrev A pchain ax f )   
                -- we have to check adding x preserve is-max ZChain A y f mf x
           ... | case1 pr = no-extension  
           ... | case2 ¬fy<x with ODC.p∨¬p O (IsSup A pchain ax )
-          ... | case1 is-sup = record { initial = ? ; chain∋init = ?  ; supf = psupf1  ; chain-mono = ?
-              ;  chain⊆A = ? ;  f-next = ? ;  f-total = ? } where -- x is a sup of (zc ?) 
+          ... | case1 is-sup = record { initial = {!!} ; chain∋init = {!!}  ; supf = psupf1  ; chain<A = {!!}
+              ;  chain⊆A = {!!} ;  f-next = {!!} ;  f-total = {!!} } where -- x is a sup of (zc ?) 
              psupf1 : Ordinal → Ordinal
              psupf1 z with trio< z x 
              ... | tri< a ¬b ¬c = ZChain.supf (pzc z a) z