changeset 733:15f3bcc4ae3f

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Tue, 19 Jul 2022 09:36:02 +0900
parents ddeb107b6f71
children 753780183ddf
files src/zorn.agda
diffstat 1 files changed, 22 insertions(+), 23 deletions(-) [+]
line wrap: on
line diff
--- a/src/zorn.agda	Tue Jul 19 07:36:10 2022 +0900
+++ b/src/zorn.agda	Tue Jul 19 09:36:02 2022 +0900
@@ -266,6 +266,8 @@
    field
       u>0      : o∅ o< u    -- ¬ ch-init
       supf=u   : supf u ≡ u  
+      supf-mono  : {a b : Ordinal } → a o≤ b → supf a o≤ supf b
+      supf-<  : {a b : Ordinal } → a o≤ b → (supf a ≡ supf b) ∨ (supf a << supf b)
       au       : odef A u
       ¬u=fx    : {x : Ordinal} → ¬ ( u ≡ f x )
       asup     : (x : Ordinal) → odef A (supf x)
@@ -315,7 +317,6 @@
 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
-      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) 
@@ -436,34 +437,32 @@
      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 with Oprev-p x
-        ... | yes op = record { is-max = is-max ; chain-mono2 = chain-mono2 ; chain≤x = bchain } where
-           -- supf u ≡ u ?
+        ... | yes op = record { is-max = is-max ; chain-mono2 = chain-mono2 } where
            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 = 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 ⟪ ua , record { u = _ ; u<x = u<x ; uchain = ch-init .c x } ⟫ = 
+                    ⟪ ua , record { u = _ ; u<x = case2 refl  ; uchain = ch-init c x } ⟫ 
+           chain-mono2 {a} {b} {c} a≤b b≤x ⟪ ua , record { u = u ; u<x = case1 u<x ; uchain = ch-is-sup is-sup fc } ⟫ = 
+                    ⟪ ua , record { u = u ; u<x = case1 (ordtrans<-≤ u<x a≤b) ; uchain = ch-is-sup is-sup fc } ⟫ 
            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 →
               * a < * b → odef (UnionCF A f mf ay (ZChain.supf zc) x) b
            is-max {a} {b} ua b<x ab (case1 has-prev) a<b = {!!}
-           is-max {a} {b} ua b<x ab (case2 is-sup) a<b with ODC.p∨¬p O ( HasPrev A (ZChain.chain zc ) ab f )
-           ... | case1 has-prev = m03 (subst (λ k → odef (UnionCF A f mf ay (ZChain.supf zc) (& A)) k ) {!!} m02 ) {!!} where
-                 m03 : odef (UnionCF A f mf ay (ZChain.supf zc) (& A)) b → b o< x → odef (UnionCF A f mf ay (ZChain.supf zc) x) b 
-                 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) 
+           is-max {a} {b} ua b<x ab (case2 is-sup) a<b with ODC.p∨¬p O ( HasPrev A (UnionCF A f mf ay (ZChain.supf zc) x) ab f )
+           ... | case1 has-prev = m04 where
+                 m04 : odef (UnionCF A f mf ay (ZChain.supf zc) x) b
+                 m04 = ⟪ m07   , record { u = UChain.u (proj2 m06) ; u<x = UChain.u<x (proj2 m06) ; uchain = ? } ⟫ where
+                     m06 : odef (UnionCF A f mf ay (ZChain.supf zc) x) (HasPrev.y has-prev )
+                     m06 = HasPrev.ay has-prev
+                     m07 : odef A b 
+                     m07 = subst (λ k → odef A k ) (sym (HasPrev.x=fy has-prev)) (proj2 (mf _ (proj1 m06) ))
+                     m08 :  Chain A f mf ay (ZChain.supf zc) (UChain.u (proj2 m06)) (f ( HasPrev.y has-prev ))
+                     m08 with proj2 m06
+                     ... | record { u = _ ; u<x = u<x ; uchain = ch-init .(HasPrev.y has-prev) fc } = 
+                          ch-init (f (HasPrev.y has-prev)) (fsuc _ fc) 
+                     ... | record { u = u ; u<x = u<x ; uchain = ch-is-sup is-sup fc } = ch-is-sup ? (fsuc _ fc) 
            ... | case2  ¬fy<x  = {!!} where
                  m01 : odef (UnionCF A f mf ay (ZChain.supf zc) x) b
                  m01 with trio< px b
@@ -657,8 +656,8 @@
           psupf0 : (z : Ordinal) → Ordinal
           psupf0 z with trio< z x
           ... | tri< a ¬b ¬c = ZChain.supf (pzc z a) z
-          ... | tri≈ ¬a b ¬c = y
-          ... | tri> ¬a ¬b c = y
+          ... | tri≈ ¬a b ¬c = & A
+          ... | tri> ¬a ¬b c = & A
 
           pchain : HOD
           pchain = UnionCF A f mf ay psupf0 x