changeset 905:e6a282eb12fe

union equal passed
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 10 Oct 2022 12:20:38 +0900
parents 4541c9974e53
children 02f250be89e2
files src/zorn.agda
diffstat 1 files changed, 45 insertions(+), 38 deletions(-) [+]
line wrap: on
line diff
--- a/src/zorn.agda	Mon Oct 10 09:33:54 2022 +0900
+++ b/src/zorn.agda	Mon Oct 10 12:20:38 2022 +0900
@@ -448,18 +448,7 @@
 
    -- ordering is not proved here but in ZChain1 
 
-   supf-idem : {x : Ordinal } → supf x o≤ z  
-       → ¬ HasPrev A (UnionCF A f mf ay supf (supf x)) (supf x) f
-       → supf (supf x) ≡ supf x
-   supf-idem {x} sx≤z ¬np = sup=u asupf sx≤z ⟪ record { x<sup = si00  } , ¬np ⟫  where
-        ms : MinSUP A (UnionCF A f mf ay supf (supf x)) 
-        ms =  minsup sx≤z  
-        mseq : supf (supf x) ≡ MinSUP.sup ( minsup sx≤z   )
-        mseq =  supf-is-minsup sx≤z
-        si00 : {w : Ordinal} → odef (UnionCF A f mf ay supf (supf x)) w → (w ≡ supf x) ∨ (w << supf x)
-        si00 {w} uw with MinSUP.x<sup ms uw
-        ... | case1 eq = case1 (subst (λ k → w ≡ k ) ? eq)
-        ... | case2 lt = case2 (subst (λ k → w << k ) ? lt)
+   -- supf-idem : {x : Ordinal } → supf x o< z  → supf (supf x) ≡ supf x
 
 record ZChain1 ( A : HOD )    ( f : Ordinal → Ordinal )  (mf : ≤-monotonic-f A f) 
         {y : Ordinal} (ay : odef A y)  (zc : ZChain A f mf ay (& A)) ( z : Ordinal ) : Set (Level.suc n) where
@@ -1005,32 +994,50 @@
                         zc21 {z1} (fsuc z2 fc ) with zc21 fc
                         ... | ⟪ ua1 , ch-init fc₁ ⟫ = ⟪ proj2 ( mf _ ua1)  , ch-init (fsuc _ fc₁)  ⟫ 
                         ... | ⟪ ua1 , ch-is-sup u u≤x u1-is-sup fc₁ ⟫ = ⟪ proj2 ( mf _ ua1)  , ch-is-sup u u≤x u1-is-sup (fsuc _ fc₁) ⟫ 
-                        zc21 (init asp refl ) = ⟪ asp , ch-is-sup (supf0 px) sfpx<x
-                                   record {fcy<sup = ? ; order = zc18 ; supu=u = zc15 } (init (asupf1 {supf0 px}) zc15) ⟫ where
-                            zc15 : supf1 (supf0 px) ≡ supf0 px
-                            zc15 = ?
-                            zc13 : {z : Ordinal } → FClosure A f y z → (z ≡ supf1 px ) ∨ ( z << supf1 px )
-                            zc13 {z} fc = subst (λ k → (z ≡ k) ∨ ( z << k )) (sym (sf1=sf0 o≤-refl)) ( ZChain.fcy<sup zc o≤-refl fc )
-                            zc18 : {s : Ordinal} {z1 : Ordinal} → supf1 s o< supf1 (supf0 px) →
-                                FClosure A f (supf1 s) z1 → (z1 ≡ supf1 (supf0 px)) ∨ (z1 << supf1 (supf0 px))
-                            zc18 {s} {z1} ss<sf fc = ?
-                            zc17 :  {s : Ordinal} {z1 : Ordinal} → supf1 s o< supf1 px →
-                                  FClosure A f (supf1 s) z1 → (z1 ≡ supf1 px) ∨ (z1 << supf1 px)
-                            zc17 {s} {z1} ss<spx fc = subst (λ k → (z1 ≡ k) ∨ (z1 << k )) mins-is-spx 
-                                   (MinSUP.x<sup mins (csupf17 (fcup fc (o<→≤ s<px) )) ) where
-                                mins : MinSUP A (UnionCF A f mf ay supf0 px)
-                                mins = ZChain.minsup zc o≤-refl
-                                mins-is-spx : MinSUP.sup mins ≡ supf1 px 
-                                mins-is-spx = trans (sym ( ZChain.supf-is-minsup zc o≤-refl ) ) (sym (sf1=sf0 o≤-refl ))
-                                s<px : s o< px
-                                s<px = supf-inject0 supf1-mono ss<spx
-                                sf≤px : supf0 s o≤ px
-                                sf≤px = subst (λ k → supf0 s o< k ) ? (ordtrans ? sfpx<x )
-                                csupf17 : {z1 : Ordinal } → FClosure A f (supf0 s) z1 → odef (UnionCF A f mf ay supf0 px) z1
-                                csupf17 (fsuc x fc) = ZChain.f-next zc (csupf17 fc)
-                                csupf17 (init as refl ) with osuc-≡< sf≤px 
-                                ... | case2 sf<px = ZChain.csupf zc sf<px 
-                                ... | case1 sf=px = ?
+                        zc21 (init asp refl ) with  osuc-≡< ( subst (λ k → supf0 px o< k ) (sym (Oprev.oprev=x op)) sfpx<x )
+                        ... | case1 sfpx=px =  ⟪ asp , ch-is-sup px (pxo<x op)
+                                     record {fcy<sup = zc13 ; order = zc17 ; supu=u = zc15 } zc14 ⟫ where
+                              zc15 : supf1 px ≡ px
+                              zc15 = trans (sf1=sf0 o≤-refl ) (sfpx=px)
+                              zc14 : FClosure A f (supf1 px) (supf0 px)
+                              zc14 = init (subst (λ k → odef A k) (sym (sf1=sf0 o≤-refl)) asp) (sf1=sf0 o≤-refl)
+                              zc13 : {z : Ordinal } → FClosure A f y z → (z ≡ supf1 px ) ∨ ( z << supf1 px )
+                              zc13 {z} fc = subst (λ k → (z ≡ k) ∨ ( z << k )) (sym (sf1=sf0 o≤-refl)) ( ZChain.fcy<sup zc o≤-refl fc )
+                              zc17 :  {s : Ordinal} {z1 : Ordinal} → supf1 s o< supf1 px →
+                                    FClosure A f (supf1 s) z1 → (z1 ≡ supf1 px) ∨ (z1 << supf1 px)
+                              zc17 {s} {z1} ss<spx fc = subst (λ k → (z1 ≡ k) ∨ (z1 << k )) mins-is-spx 
+                                     (MinSUP.x<sup mins (csupf17 (fcup fc (o<→≤ s<px) )) ) where
+                                  mins : MinSUP A (UnionCF A f mf ay supf0 px)
+                                  mins = ZChain.minsup zc o≤-refl
+                                  mins-is-spx : MinSUP.sup mins ≡ supf1 px 
+                                  mins-is-spx = trans (sym ( ZChain.supf-is-minsup zc o≤-refl ) ) (sym (sf1=sf0 o≤-refl ))
+                                  s<px : s o< px
+                                  s<px = supf-inject0 supf1-mono ss<spx
+                                  sf<px : supf0 s o< px
+                                  sf<px = subst₂ (λ j k → j o< k ) (sf1=sf0 (o<→≤ s<px)) (trans (sf1=sf0 o≤-refl) (sfpx=px)) ss<spx
+                                  csupf17 : {z1 : Ordinal } → FClosure A f (supf0 s) z1 → odef (UnionCF A f mf ay supf0 px) z1
+                                  csupf17 (init as refl ) = ZChain.csupf zc sf<px 
+                                  csupf17 (fsuc x fc) = ZChain.f-next zc (csupf17 fc)
+
+                        ... | case2 sfp<px  with ZChain.csupf zc sfp<px --  odef (UnionCF A f mf ay supf0 px) (supf0 px)
+                        ... | ⟪ ua1 , ch-init fc₁ ⟫ = ⟪ ua1 , ch-init fc₁ ⟫ 
+                        ... | ⟪ ua1 , ch-is-sup u u≤x is-sup fc₁ ⟫ = ⟪ ua1 , ch-is-sup u (ordtrans u≤x px<x) 
+                              record { fcy<sup = z10 ; order = z11 ; supu=u = z12 } (fcpu fc₁ (o<→≤ u≤x) ) ⟫  where
+                                 z10 :  {z : Ordinal } → FClosure A f y z → (z ≡ supf1 u) ∨ ( z << supf1 u ) 
+                                 z10 {z} fc = subst (λ k → (z ≡ k) ∨ ( z << k )) (sym (sf1=sf0 (o<→≤ u≤x))) (ChainP.fcy<sup is-sup fc)
+                                 z11  : {s z1 : Ordinal} → (lt : supf1 s o< supf1 u ) → FClosure A f (supf1 s ) z1 
+                                      → (z1 ≡ supf1 u ) ∨ ( z1 << supf1 u )
+                                 z11 {s} {z} lt fc  = subst (λ k → (z ≡ k) ∨ ( z << k )) (sym (sf1=sf0 (o<→≤ u≤x))) 
+                                     (ChainP.order is-sup lt0 (fcup fc s≤px )) where
+                                       s<u : s o< u
+                                       s<u = supf-inject0 supf1-mono lt
+                                       s≤px : s o≤ px
+                                       s≤px = ordtrans s<u (o<→≤ u≤x)
+                                       lt0 : supf0 s o< supf0 u
+                                       lt0 = subst₂ (λ j k → j o< k ) (sf1=sf0 s≤px) (sf1=sf0 (o<→≤ u≤x)) lt
+                                 z12 : supf1 u ≡ u
+                                 z12 = trans (sf1=sf0 (o<→≤ u≤x)) (ChainP.supu=u is-sup)
+
 
 
                  record STMP {z : Ordinal} (z≤x : z o≤ x ) : Set (Level.suc n) where