changeset 907:a6f075a164fa

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Tue, 11 Oct 2022 10:41:19 +0900
parents 02f250be89e2
children d917831fb607
files src/zorn.agda
diffstat 1 files changed, 41 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/src/zorn.agda	Mon Oct 10 18:25:04 2022 +0900
+++ b/src/zorn.agda	Tue Oct 11 10:41:19 2022 +0900
@@ -1042,19 +1042,35 @@
 
                  record STMP {z : Ordinal} (z≤x : z o≤ x ) : Set (Level.suc n) where
                      field
-                         tsup : MinSUP A (UnionCF A f mf ay supf0 z)
+                         tsup : MinSUP A (UnionCF A f mf ay supf1 z)
                          tsup=sup : supf1 z ≡ MinSUP.sup tsup 
 
                  sup : {z : Ordinal} → (z≤x : z o≤ x ) → STMP z≤x
                  sup {z} z≤x with trio< z px 
                  ... | tri< a ¬b ¬c = record { tsup = record { sup = MinSUP.sup m  ; asm = MinSUP.asm m  
-                         ; x<sup = ? ; minsup = ? } ; tsup=sup = trans (sf1=sf0 (o<→≤ a) ) (ZChain.supf-is-minsup zc (o<→≤ a)) } where
+                         ; x<sup = ms00 ; minsup = ms01 } ; tsup=sup = trans (sf1=sf0 (o<→≤ a) ) (ZChain.supf-is-minsup zc (o<→≤ a)) } where
                     m = ZChain.minsup zc (o<→≤ a)
+                    ms00 :  {x : Ordinal} → odef (UnionCF A f mf ay supf1 z) x → (x ≡ MinSUP.sup m) ∨ (x << MinSUP.sup m)
+                    ms00 {x} ux = MinSUP.x<sup m ?
+                    ms01 : {sup2 : Ordinal} → odef A sup2 → ({x : Ordinal} →
+                        odef (UnionCF A f mf ay supf1 z) x → (x ≡ sup2) ∨ (x << sup2)) → MinSUP.sup m o≤ sup2
+                    ms01 {sup2} us P = MinSUP.minsup m ? ?
                  ... | tri≈ ¬a b ¬c = record { tsup = record { sup = MinSUP.sup m  ; asm = MinSUP.asm m  
-                         ; x<sup = ? ; minsup = ? } ; tsup=sup = trans (sf1=sf0 (o≤-refl0 b) ) (ZChain.supf-is-minsup zc (o≤-refl0 b))  } where
+                         ; x<sup = ms00 ; minsup = ms01 } ; tsup=sup = trans (sf1=sf0 (o≤-refl0 b) ) (ZChain.supf-is-minsup zc (o≤-refl0 b))  } where
                     m = ZChain.minsup zc (o≤-refl0 b)
+                    ms00 :  {x : Ordinal} → odef (UnionCF A f mf ay supf1 z) x → (x ≡ MinSUP.sup m) ∨ (x << MinSUP.sup m)
+                    ms00 {x} ux = MinSUP.x<sup m ?
+                    ms01 : {sup2 : Ordinal} → odef A sup2 → ({x : Ordinal} →
+                        odef (UnionCF A f mf ay supf1 z) x → (x ≡ sup2) ∨ (x << sup2)) → MinSUP.sup m o≤ sup2
+                    ms01 {sup2} us P = MinSUP.minsup m ? ?
                  ... | tri> ¬a ¬b px<z = record { tsup = record { sup = sp1 ; asm = MinSUP.asm sup1
-                         ; x<sup = ? ; minsup = ? } ; tsup=sup = sf1=sp1 px<z } 
+                         ; x<sup = ms00 ; minsup = ms01 } ; tsup=sup = sf1=sp1 px<z } where
+                    m = sup1
+                    ms00 :  {x : Ordinal} → odef (UnionCF A f mf ay supf1 z) x → (x ≡ MinSUP.sup m) ∨ (x << MinSUP.sup m)
+                    ms00 {x} ux = MinSUP.x<sup m ?
+                    ms01 : {sup2 : Ordinal} → odef A sup2 → ({x : Ordinal} →
+                        odef (UnionCF A f mf ay supf1 z) x → (x ≡ sup2) ∨ (x << sup2)) → MinSUP.sup m o≤ sup2
+                    ms01 {sup2} us P = MinSUP.minsup m ? ?
 
                  csupf1 : {z1 : Ordinal } → supf1 z1 o< x → odef (UnionCF A f mf ay supf1 x) (supf1 z1) 
                  csupf1 {z1} sz1<x = csupf2 where
@@ -1064,19 +1080,32 @@
                      psz1≤px :  supf1 z1 o≤ px
                      psz1≤px =  subst (λ k → supf1 z1 o< k ) (sym (Oprev.oprev=x op)) sz1<x 
                      csupf2 :  odef (UnionCF A f mf ay supf1 x) (supf1 z1) 
-                     csupf2 with  trio< z1 px
-                     csupf2 | tri< a ¬b ¬c  with osuc-≡< psz1≤px
-                     ... | case1 eq = ? -- supf0 z1 ≡ supf1 z1 ≡ px, z1 o< px
+                     csupf2 with  trio< z1 px | inspect supf1 z1
+                     csupf2 | tri< a ¬b ¬c | record { eq = eq1 } with osuc-≡< psz1≤px
+                     ... | case1 eq =  ⟪ ZChain.asupf zc , ch-is-sup (supf1 z1) (subst (λ k → k o< x) (sym eq1) sz1<x)
+                             record { fcy<sup = ? ; order = ? ; supu=u = supu=u } (init asupf1 (trans supu=u eq1) ) ⟫ where 
+                          -- supf0 z1 ≡ supf1 z1 ≡ px, z1 o< px
+                          supu=u : supf1 (supf1 z1) ≡ supf1 z1
+                          supu=u = ?
                      ... | case2 lt with ZChain.csupf zc (subst (λ k → k o< px) (sf1=sf0 (o<→≤ a)) lt )
-                     ... | ⟪ ab , ch-init fc ⟫ = ⟪ subst (λ k → odef A k) ? ab , ch-init ? ⟫
-                     ... | ⟪ ab , ch-is-sup u u<x is-sup fc ⟫ = ⟪ ? , 
-                               ch-is-sup u (subst (λ k → u o< k ) (Oprev.oprev=x op) (ordtrans u<x <-osuc) ) ?  ?  ⟫ 
-                     csupf2 | tri≈ ¬a b ¬c = ? where  -- supf1 z1 ≡ supf0 z1, z1 ≡ px
+                     ... | ⟪ ab , ch-init fc ⟫ = ⟪ ab , ch-init fc ⟫
+                     ... | ⟪ ab , ch-is-sup u u<x is-sup fc ⟫ = ⟪ ab , 
+                               ch-is-sup u (subst (λ k → u o< k ) (Oprev.oprev=x op) (ordtrans u<x <-osuc) ) 
+                                 record { fcy<sup = ? ; order = ? ; supu=u = ?  } (fcpu fc (o<→≤ u<x))  ⟫ 
+                     csupf2 | tri≈ ¬a b ¬c | record { eq = eq1 } =  ⟪ ZChain.asupf zc , ch-is-sup (supf1 z1) (subst (λ k → k o< x) (sym eq1) sz1<x)
+                             record { fcy<sup = ? ; order = ? ; supu=u = supu=u } (init asupf1 (trans supu=u eq1) ) ⟫ where 
+                          -- supf1 z1 ≡ supf0 z1, z1 ≡ px
                           asm : odef A (supf1 z1)
                           asm =  subst (λ k → odef A k ) ? ( MinSUP.asm sup1) 
                           asm1 : odef A (supf1 (supf1 z1))
                           asm1 =  subst (λ k → odef A k ) ? ( MinSUP.asm sup1) 
-                     csupf2 | tri> ¬a ¬b c = ?
+                          supu=u : supf1 (supf1 z1) ≡ supf1 z1
+                          supu=u = ?
+                     csupf2 | tri> ¬a ¬b c | record { eq = eq1 } = ⟪ MinSUP.asm sup1 , ch-is-sup (supf1 z1) (subst (λ k → k o< x) (sym eq1) sz1<x)
+                             record { fcy<sup = ? ; order = ? ; supu=u = supu=u } (init asupf1 (trans supu=u eq1) ) ⟫ where 
+                          --  supf1 z1 ≡ sp1, px o< z1
+                          supu=u : supf1 (supf1 z1) ≡ supf1 z1
+                          supu=u = ?
 
           zc4 : ZChain A f mf ay x     --- x o≤ supf px 
           zc4 with trio< x (supf0 px)