changeset 844:0855fce6ee92

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Wed, 31 Aug 2022 19:48:12 +0900
parents ef0433f41e55
children ef7c721b32dc
files src/zorn.agda
diffstat 1 files changed, 63 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/src/zorn.agda	Tue Aug 30 14:30:36 2022 +0900
+++ b/src/zorn.agda	Wed Aug 31 19:48:12 2022 +0900
@@ -765,12 +765,62 @@
           pcy1 : odef pchain1 y
           pcy1 = ⟪ ay , ch-init (init ay refl)    ⟫
 
+          supf0=1 : {z : Ordinal } → z o≤ px  → supf0 z ≡ supf1 z
+          supf0=1 {z} z≤px with trio< z px
+          ... | tri< a ¬b ¬c = refl
+          ... | tri≈ ¬a b ¬c = refl
+          ... | tri> ¬a ¬b c = ⊥-elim ( o≤> z≤px c )
+
           supf1≤sp1 : {a : Ordinal } → supf1 a o≤ sp1
           supf1≤sp1 = ?
 
           supf-mono : {a b : Ordinal } → a o≤ b → supf1 a o≤ supf1 b 
           supf-mono = ?
 
+          zc70 : HasPrev A pchain x f → ¬ xSUP pchain x 
+          zc70 pr xsup = ?
+
+          fc0→1 : {s z : Ordinal } → s o≤ px  → FClosure A f (supf0 s) z → FClosure A f (supf1 s) z  
+          fc0→1 {s} {z} s≤px fc = subst (λ k → FClosure A f k z ) (supf0=1 s≤px) fc
+
+          fc1→0 : {s z : Ordinal } → s o≤ px  → FClosure A f (supf1 s) z → FClosure A f (supf0 s) z  
+          fc1→0 {s} {z} s≤px fc = subst (λ k → FClosure A f k z ) (sym (supf0=1 s≤px)) fc
+
+          CP0→1 : {u : Ordinal } → u o≤ px  → ChainP A f mf ay supf0 u → ChainP A f mf ay supf1 u  
+          CP0→1 {u} u≤px cp = record { fcy<sup = fcy<sup ; order = order ; supu=u = trans (sym (supf0=1 u≤px)) (ChainP.supu=u cp) } where
+                  fcy<sup : {z : Ordinal} → FClosure A f y z → (z ≡ supf1 u) ∨ (z << supf1 u )
+                  fcy<sup {z} fc = subst ( λ k → (z ≡ k) ∨ (z << k )) (supf0=1 u≤px) ( ChainP.fcy<sup cp fc )
+                  order : {s : Ordinal} {z2 : Ordinal} → supf1 s o< supf1 u → FClosure A f (supf1 s) z2 →
+                    (z2 ≡ supf1 u) ∨ (z2 << supf1 u)
+                  order {s} {z2} s<u fc = subst (λ k → (z2 ≡ k) ∨ (z2 << k) ) (supf0=1 u≤px) ( ChainP.order cp ss<su (fc1→0 s≤px fc )) where
+                      s≤px : s o≤ px
+                      s≤px = ordtrans (supf-inject0 supf-mono s<u) u≤px
+                      ss<su : supf0 s o< supf0 u
+                      ss<su = subst₂ (λ j k → j o< k ) (sym (supf0=1 s≤px )) (sym (supf0=1 u≤px)) s<u
+
+          CP1→0 : {u : Ordinal } → u o≤ px  → ChainP A f mf ay supf1 u → ChainP A f mf ay supf0 u  
+          CP1→0 {u} u≤px cp = record { fcy<sup = fcy<sup ; order = order ; supu=u = trans (supf0=1 u≤px) (ChainP.supu=u cp) } where
+                  fcy<sup : {z : Ordinal} → FClosure A f y z → (z ≡ supf0 u) ∨ (z << supf0 u )
+                  fcy<sup {z} fc = subst ( λ k → (z ≡ k) ∨ (z << k )) (sym (supf0=1 u≤px)) ( ChainP.fcy<sup cp fc )
+                  order : {s : Ordinal} {z2 : Ordinal} → supf0 s o< supf0 u → FClosure A f (supf0 s) z2 →
+                    (z2 ≡ supf0 u) ∨ (z2 << supf0 u)
+                  order {s} {z2} s<u fc = subst (λ k → (z2 ≡ k) ∨ (z2 << k) ) (sym (supf0=1 u≤px)) ( ChainP.order cp ss<su (fc0→1 s≤px fc )) where
+                      s≤px : s o≤ px
+                      s≤px = ordtrans (supf-inject0 (ZChain.supf-mono zc) s<u) u≤px
+                      ss<su : supf1 s o< supf1 u
+                      ss<su = subst₂ (λ j k → j o< k ) (supf0=1 s≤px ) (supf0=1 u≤px) s<u
+
+          UnionCF0⊆1  : {z : Ordinal } → z o≤ px →  UnionCF A f mf ay supf0 z ⊆' UnionCF A f mf ay supf1 z
+          UnionCF0⊆1  {z} z≤px ⟪ au , ch-init fc ⟫ = ⟪ au , ch-init fc ⟫ 
+          UnionCF0⊆1  {z} z≤px ⟪ au , ch-is-sup u u≤z is-sup fc ⟫ = 
+               ⟪ au , ch-is-sup u u≤z (CP0→1 (OrdTrans u≤z z≤px ) is-sup) (fc0→1 (OrdTrans u≤z z≤px ) fc) ⟫ 
+
+          UnionCF1⊆0  : {z : Ordinal } → z o≤ px →  UnionCF A f mf ay supf1 z ⊆' UnionCF A f mf ay supf0 z
+          UnionCF1⊆0  {z} z≤px ⟪ au , ch-init fc ⟫ = ⟪ au , ch-init fc ⟫ 
+          UnionCF1⊆0  {z} z≤px ⟪ au , ch-is-sup u u≤z is-sup fc ⟫ = 
+               ⟪ au , ch-is-sup u u≤z (CP1→0 (OrdTrans u≤z z≤px ) is-sup) 
+                                      (fc1→0 (OrdTrans u≤z z≤px ) fc) ⟫ 
+
           -- zc100  : xSUP (UnionCF A f mf ay supf0 px) x → x ≡ sp1
           -- zc100  = ?
 
@@ -778,7 +828,7 @@
           --
           --  supf0 px is sup of UnionCF px , supf0 x is sup of UnionCF x 
 
-          no-extension : (¬ xSUP (UnionCF A f mf ay supf0 px) x ) ∨ HasPrev A pchain x f → ZChain A f mf ay x
+          no-extension : ¬ xSUP (UnionCF A f mf ay supf0 px) x → ZChain A f mf ay x
           no-extension ¬sp=x = record { supf = supf1 ;  sup = sup ; supf-mono = supf-mono
                ; initial = pinit1 ; chain∋init = pcy1 ; sup=u = sup=u ; supf-is-sup = sis ; csupf = csupf
               ;  chain⊆A = λ lt → proj1 lt ;  f-next = pnext1 ;  f-total = ptotal1 }  where
@@ -853,7 +903,7 @@
                               ... | tri> ¬a ¬b px<s | _ = ⊥-elim ( o<¬≡ refl (ordtrans px<s (subst (λ k → s o< k ) b zc14)))  where --  px o< s < u1 = px
                                  zc14 :  s o< u1
                                  zc14 = ZChain.supf-inject zc s<u1 
-                          ... | tri> ¬a ¬b px<u1 | record { eq = eq2 } = ⊥-elim ? where
+                          ... | tri> ¬a ¬b px<u1 | record { eq = eq2 } = ⊥-elim (¬sp=x zcsup)  where
                              zc31 : x ≡ u1 
                              zc31 with trio< x u1 
                              ... | tri≈ ¬a b ¬c = b
@@ -882,8 +932,8 @@
 
                  sup : {z : Ordinal} → z o≤ x → SUP A (UnionCF A f mf ay supf1 z)
                  sup {z} z≤x with trio< z px | inspect supf1 z
-                 ... | tri< a ¬b ¬c | record { eq = eq1} = ? -- ZChain.sup zc (o<→≤   a) 
-                 ... | tri≈ ¬a b ¬c | record { eq = eq1} = ?  -- ZChain.sup zc (o≤-refl0 b) 
+                 ... | tri< a ¬b ¬c | record { eq = eq1} = SUP⊆ (UnionCF1⊆0 (o<→≤ a)) (ZChain.sup zc (o<→≤ a) ) 
+                 ... | tri≈ ¬a b ¬c | record { eq = eq1} = SUP⊆ (UnionCF1⊆0 (o≤-refl0 b)) (ZChain.sup zc (o≤-refl0 b) )
                  ... | tri> ¬a ¬b px<z | record { eq = eq1} = record { sup = SUP.sup sup1 ; as = SUP.as sup1 ; x<sup = zc31 } where
                      zc30 : z ≡ x
                      zc30 with osuc-≡< z≤x
@@ -906,8 +956,10 @@
                      -- ... | refl = case1 record { ax = ab ; is-sup = record { x<sup = λ lt → IsSup.x<sup is-sup ? } } 
                  csupf :  {b : Ordinal} → b o≤ x → odef (UnionCF A f mf ay supf1 (supf1 b)) (supf1 b)
                  csupf {b} b≤x with trio< b px | inspect supf0 b
-                 ... | tri< a ¬b ¬c | _ = ? -- ZChain.csupf zc (o<→≤ a )
-                 ... | tri≈ ¬a refl ¬c | _ = ? -- ZChain.csupf zc o≤-refl 
+                 ... | tri< a ¬b ¬c | _ =  ? where
+                     zc31 = ZChain.csupf zc (o<→≤ a )
+                 ... | tri≈ ¬a refl ¬c | _ = ? where
+                     zc32 = ZChain.csupf zc o≤-refl 
                  ... | tri> ¬a ¬b px<b | record { eq = eq1 } = ? where
                      zc30 : x ≡ b
                      zc30 with osuc-≡< b≤x
@@ -981,7 +1033,7 @@
           ptotal0 {a} {b} ca cb = subst₂ (λ j k → Tri (j < k) (j ≡ k) (k < j)) *iso *iso uz01 where 
                uz01 : Tri (* (& a) < * (& b)) (* (& a) ≡ * (& b)) (* (& b) < * (& a) )
                uz01 = chain-total A f mf ay supf0 ( (proj2 ca)) ( (proj2 cb)) 
-
+  
           usup : SUP A pchain
           usup = supP pchain (λ lt → proj1 lt) ptotal0
           spu = & (SUP.sup usup)
@@ -1023,7 +1075,10 @@
                      subst (λ k → UChain A f mf ay supf x k )
                           (sym (HasPrev.x=fy has-prev)) ( ch-is-sup u u≤x is-sup (fsuc _ fc))  ⟫ 
 
-          no-extension : ¬ ( xSUP (UnionCF A f mf ay supf0 x) x ) ∨ HasPrev A pchain x f → ZChain A f mf ay x
+          zc70 : HasPrev A pchain x f → ¬ xSUP pchain x 
+          zc70 pr xsup = ?
+
+          no-extension : ¬ ( xSUP (UnionCF A f mf ay supf0 x) x ) → ZChain A f mf ay x
           no-extension ¬sp=x  = record { initial = pinit ; chain∋init = pcy  ; supf = supf1  ; sup=u = sup=u
                ; sup = sup ; supf-is-sup = sis ; supf-mono = {!!}
                ; csupf = csupf ; chain⊆A = pchain⊆A ;  f-next = pnext ;  f-total = ptotal } where