changeset 1036:23a8e4d558e0

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Fri, 02 Dec 2022 15:49:50 +0900
parents 2144ef00cab9
children 23e185ef2737
files src/zorn.agda
diffstat 1 files changed, 56 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/zorn.agda	Fri Dec 02 11:07:51 2022 +0900
+++ b/src/zorn.agda	Fri Dec 02 15:49:50 2022 +0900
@@ -1028,12 +1028,65 @@
                     ... | case1 ⟪ ua1 , ch-init fc₁ ⟫ = case1 ⟪ proj2 ( mf _ ua1)  , ch-init (fsuc _ fc₁)  ⟫
                     ... | case1 ⟪ ua1 ,  ch-is-sup u u<x su=u fc₁   ⟫ = case1 ⟪ proj2 ( mf _ ua1)  ,  ch-is-sup u u<x su=u (fsuc _ fc₁) ⟫
                     ... | case2 fc = case2 (fsuc _ fc)
-                    zc21 (init asp refl ) = ?
+                    zc21 (init asp refl ) with trio< (supf0 u) (supf0 px) 
+                    ... | tri< a ¬b ¬c = case1 ⟪ asp , ch-is-sup u u<px (trans (sym (sf1=sf0 (o<→≤ u<px))) su=u )(init asp0 (sym (sf1=sf0 (o<→≤ u<px))) ) ⟫ where
+                        u<px :  u o< px
+                        u<px =  ZChain.supf-inject zc a
+                        asp0 : odef A (supf0 u)
+                        asp0 = ZChain.asupf zc
+                    ... | tri≈ ¬a b ¬c = case2 (init (subst (λ k → odef A k) b (ZChain.asupf zc) ) 
+                        (sym (trans (sf1=sf0 (zc-b<x _ u<x))  b )))
+                    ... | tri> ¬a ¬b c = ⊥-elim ( ¬p<x<op ⟪ ZChain.supf-inject zc c , subst (λ k → u o< k ) (sym (Oprev.oprev=x op)) u<x  ⟫ )
 
                  is-minsup :  {z : Ordinal} → z o≤ x → IsMinSUP A (UnionCF A f ay supf1 z) (supf1 z)
                  is-minsup {z} z≤x with osuc-≡< z≤x
-                 ... | case1 z<x = ZChain.is-minsup zc (zc-b<x z<x)
-                 ... | case2 z=x = ?
+                 ... | case1 z=x = record { as = zc22 ; x≤sup = z23 ; minsup = z24  }  where
+                    px<z : px o< z
+                    px<z = subst (λ k → px o< k) (sym z=x) px<x 
+                    zc22 : odef A (supf1 z)
+                    zc22 = subst (λ k → odef A k ) (sym (sf1=sp1 px<z ))  ( MinSUP.as sup1 )
+                    z26 : supf1 px ≤ supf1 x
+                    z26 = subst₂ (λ j k → j ≤ k ) (sym (sf1=sf0 o≤-refl )) (sym (sf1=sp1 px<x )) sfpx≤sp1
+                    z23 : {w : Ordinal } → odef ( UnionCF A f ay supf1 z ) w → w ≤ supf1 z
+                    z23 {w} uz with zc11 (subst (λ k → odef (UnionCF A f ay supf1 k) w) z=x uz )
+                    ... | case1 uz = ≤-ftrans z25 (subst₂ (λ j k → j  ≤ supf1 k) (sf1=sf0 o≤-refl) (sym z=x) z26 ) where
+                        z25 : w ≤ supf0 px 
+                        z25 = IsMinSUP.x≤sup (ZChain.is-minsup zc o≤-refl ) uz 
+                    ... | case2 fc = subst (λ k → w ≤ k ) (sym (sf1=sp1 px<z)) ( MinSUP.x≤sup sup1 (case2 fc) )
+                    z24 : {s : Ordinal } → odef A s → ( {w : Ordinal } → odef ( UnionCF A f ay supf1 z ) w → w ≤ s )                 
+                        → supf1 z o≤ s
+                    z24 {s} as sup = subst (λ k → k o≤ s ) (sym (sf1=sp1 px<z)) ( MinSUP.minsup sup1 as z25 ) where
+                        z25 : {w : Ordinal } → odef pchainpx w → w ≤ s 
+                        z25 {w} (case2 fc) = sup ⟪ ? , ch-is-sup px px<z z27 (fcpu fc ?) ⟫ where
+                            z27 : supf1 px ≡ px    --- sp1 o≤ x
+                            z27 = ?
+                        z25 {w} (case1 ⟪ ua , ch-init fc ⟫) = sup ⟪ ua , ch-init fc ⟫
+                        z25 {w} (case1 ⟪ ua , ch-is-sup u u<x su=u fc  ⟫) = sup ⟪ ua , ch-is-sup u u<z
+                             (trans (sf1=sf0 u≤px)  su=u)  (fcpu fc u≤px)  ⟫ where
+                                u≤px : u o< osuc px
+                                u≤px = ordtrans u<x <-osuc
+                                u<z : u o< z                                                                                         
+                                u<z = ordtrans u<x (subst (λ k → px o< k ) (sym z=x) px<x )
+                 ... | case2 z<x = record { as = zc22 ; x≤sup = z23 ; minsup = z24  } where
+                    z≤px = zc-b<x _ z<x
+                    m =  ZChain.is-minsup zc z≤px
+                    zc22 : odef A (supf1 z)
+                    zc22 = subst (λ k → odef A k ) (sym (sf1=sf0 z≤px))  ( IsMinSUP.as m )
+                    z23 : {w : Ordinal } → odef ( UnionCF A f ay supf1 z ) w → w ≤ supf1 z
+                    z23 {w} ⟪ ua , ch-init fc ⟫ = subst (λ k → w ≤ k ) (sym (sf1=sf0 z≤px)) ( ZChain.fcy<sup zc z≤px fc )
+                    z23 {w} ⟪ ua ,  ch-is-sup u u<x su=u fc  ⟫ = subst (λ k → w ≤ k ) (sym (sf1=sf0 z≤px)) 
+                       (IsMinSUP.x≤sup m ⟪ ua ,  ch-is-sup u u<x (trans (sym (sf1=sf0 u≤px )) su=u)  (fcup fc u≤px )  ⟫ ) where
+                                u≤px : u o≤ px
+                                u≤px = ordtrans u<x z≤px
+                    z24 : {s : Ordinal } → odef A s → ( {w : Ordinal } → odef ( UnionCF A f ay supf1 z ) w → w ≤ s )
+                        → supf1 z o≤ s
+                    z24 {s} as sup = subst (λ k → k o≤ s ) (sym (sf1=sf0 z≤px)) ( IsMinSUP.minsup m as z25 ) where
+                        z25 : {w : Ordinal } → odef ( UnionCF A f ay supf0 z ) w → w ≤ s 
+                        z25 {w} ⟪ ua , ch-init fc ⟫ = sup ⟪ ua , ch-init fc ⟫
+                        z25 {w} ⟪ ua , ch-is-sup u u<x su=u fc  ⟫ = sup ⟪ ua , ch-is-sup u u<x 
+                             (trans (sf1=sf0 u≤px)  su=u)  (fcpu fc u≤px)  ⟫ where
+                                u≤px : u o≤ px
+                                u≤px = ordtrans u<x z≤px
 
                  order : {a b : Ordinal} {w : Ordinal} →
                     b o≤ x → a o< b → FClosure A f (supf1 a) w → w ≤ supf1 b