changeset 889:450225f4d55d

x≤supfx1 is no good
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 03 Oct 2022 19:00:35 +0900
parents 49e0ab5e30e0
children 3eaf3b8b1009
files src/zorn.agda
diffstat 1 files changed, 31 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/src/zorn.agda	Mon Oct 03 12:52:25 2022 +0900
+++ b/src/zorn.agda	Mon Oct 03 19:00:35 2022 +0900
@@ -395,7 +395,7 @@
       asupf :  {x : Ordinal } → odef A (supf x)
       supf-mono : {x y : Ordinal } → x o≤  y → supf x o≤ supf y
       supf-< : {x y : Ordinal } → supf x o< supf  y → supf x << supf y
-      x≤supfx : {z : Ordinal } → z o≤ supf z
+      x≤supfx : {x : Ordinal } → x o≤ z → x o≤ supf x
 
       minsup : {x : Ordinal } → x o≤ z  → MinSUP A (UnionCF A f mf ay supf x) 
       supf-is-sup : {x : Ordinal } → (x≤z : x o≤ z) → supf x ≡ & (SUP.sup (M→S supf (minsup x≤z) ))
@@ -830,7 +830,7 @@
           ... | case2 b<x = ⊥-elim ( ¬p<x<op ⟪ px<b , subst (λ k → b o< k ) (sym (Oprev.oprev=x op)) b<x  ⟫ ) 
 
           zc4 : ZChain A f mf ay x
-          zc4 with osuc-≡< (ZChain.x≤supfx zc )
+          zc4 with osuc-≡< (ZChain.x≤supfx zc o≤-refl )
           ... | case1 sfpx=px = record { supf = supf1 ; sup=u = ? ; asupf = asupf1 ; supf-mono = supf-mono1 ; supf-< = supf-<1  
               ; x≤supfx = ? ; minsup = ? ; supf-is-sup = ? ; csupf = ?    }  where
 
@@ -1078,15 +1078,32 @@
                                   csupf17 (init as refl ) = ZChain.csupf zc sf<px 
                                   csupf17 (fsuc x fc) = ZChain.f-next zc (csupf17 fc)
 
-                 x≤supfx1 : {z : Ordinal} → z o≤ supf1 z
-                 x≤supfx1 {z} with trio< z ( supf1 z) --  supf1 x o< x → supf1 x o≤ supf1 px → x o< px ∨ supf1 x ≡ supf1 px
+                 x≤supfx1 : {z : Ordinal} → z o≤ x → z o≤ supf1 z
+                 x≤supfx1 {z} z≤x with trio< z (supf1 z) --  supf1 x o< x → supf1 x o≤ supf1 px → x o< px ∨ supf1 x ≡ supf1 px
                  ... | tri< a ¬b ¬c = o<→≤ a
                  ... | tri≈ ¬a b ¬c = o≤-refl0 b
-                 ... | tri> ¬a ¬b c with osuc-≡< (subst (λ k → supf1 x o< k ) (sym (Oprev.oprev=x op)) ? ) -- c : supf1 x < x     
-                 ... | case2 lt = ?
-                    -- ⊥-elim ( o<> (pxo<x op) (supf-inject0 supf-mono1 ( subst (λ k → supf1 x o< k ) 
-                    --  (trans sfpx=px (sym (sf1=sf0 o≤-refl))) lt )))  -- lt : supf1 x o< px ≡ supf0 px ≡ supf1 px
-                 ... | case1 eq = ? --   supf1 x ≡ px ≡ supf1 px
+                 ... | tri> ¬a ¬b c with trio< z px
+                 ... | tri< a ¬b ¬c = ZChain.x≤supfx zc (o<→≤ a)
+                 ... | tri≈ ¬a b ¬c = subst (λ k → k o< osuc px) (sym b) <-osuc
+                 ... | tri> ¬a ¬b lt = ⊥-elim ( o≤> sf04 c ) where --   c : sp1 o< z, lt : px o< z --  supf1 z ≡ sp1 -- supf1 z o< z
+                       z=x : z ≡ x 
+                       z=x with trio< z x
+                       ... | tri< a ¬b ¬c = ⊥-elim ( ¬p<x<op ⟪ lt , subst (λ k → z o< k ) (sym (Oprev.oprev=x op)) a ⟫ )
+                       ... | tri≈ ¬a b ¬c = b
+                       ... | tri> ¬a ¬b c = ⊥-elim ( o≤> z≤x c )
+                       sf01 : supf1 x ≡ sp1
+                       sf01 with trio< x px
+                       ... | tri< a ¬b ¬c = ⊥-elim ( ¬c (pxo<x op ))
+                       ... | tri≈ ¬a b ¬c = ⊥-elim ( ¬c (pxo<x op ))
+                       ... | tri> ¬a ¬b c = refl
+                       sf02 : supf1 px o≤ supf1 x
+                       sf02 = supf-mono1 (o<→≤ (pxo<x op ))
+                       sf00 : px o≤ sp1  --   supf1 px o≤ spuf1 x -- c : sp1 o< x
+                       sf00 = subst₂ (λ j k → j o≤ k ) (trans (sf1=sf0 o≤-refl) (sym sfpx=px)) sf01 sf02
+                       sf04 : z o≤ sp1
+                       sf04 with osuc-≡< sf00
+                       ... | case1 eq = ? where --   sup of U px ≡ supf1 px ≡ supf1 x ≡ sp1 ≡ sup of U x
+                       ... | case2 lt = subst (λ k → k o≤ sp1 ) (trans (Oprev.oprev=x op) (sym z=x)) (osucc lt )
 
                  record STMP {z : Ordinal} (z≤x : z o≤ x ) : Set (Level.suc n) where
                      field
@@ -1110,19 +1127,19 @@
                         z1≤px : z1 o≤ px
                         z1≤px = o<→≤ ( ZChain.supf-inject zc (subst (λ k → supf0 z1 o< k ) sfpx=px a ))
                  ... | tri≈ ¬a b ¬c = subst₂ (λ j k → odef j k ) (sym ch1x=pchainpx) zc20 (case2 (init apx sfpx=px )) where
-                      z1≤px : z1 o≤ px -- z1 o≤ supf1 z ≡ px 
-                      z1≤px = subst (λ k → z1 o< k) (cong osuc b ) ( ZChain.x≤supfx zc  )
+                      z1≤px : z1 o≤ px -- z1 o≤ supf1 z1 ≡ px 
+                      z1≤px = subst (λ k → z1 o< k) (sym (Oprev.oprev=x op)) (supf-inject0 supf-mono1 (ordtrans<-≤ sz1<x (x≤supfx1 o≤-refl ) ))
                       zc20 : supf0 px ≡ supf1 z1 
                       zc20 = begin
                         supf0 px  ≡⟨ sym sfpx=px ⟩
                         px  ≡⟨ sym b ⟩
                         supf0 z1  ≡⟨ sym (sf1=sf0 z1≤px)  ⟩
                         supf1 z1 ∎ where open ≡-Reasoning
-                 ... | tri> ¬a ¬b c = ⊥-elim ( ¬p<x<op ⟪ zc20 , subst (λ k → supf1 z1 o< k ) (sym (Oprev.oprev=x op)) sz1<x ⟫ ) where
+                 ... | tri> ¬a ¬b c = ⊥-elim ( ¬p<x<op ⟪ zc21 , subst (λ k → z1 o< k ) (sym (Oprev.oprev=x op)) zc22 ⟫ ) where
                       zc21 : px o< z1
                       zc21 =  ZChain.supf-inject zc (subst (λ k → k o< supf0 z1) sfpx=px c  )
-                      zc20 : px o< supf1 z1
-                      zc20 = ordtrans<-≤ zc21 x≤supfx1
+                      zc22 : z1 o< x -- c : px o< supf0 z1
+                      zc22 = supf-inject0 supf-mono1 (ordtrans<-≤ sz1<x (x≤supfx1 o≤-refl ) )
                      -- c : px ≡ spuf0 px o< supf0 z1 , px o< z1 o≤ supf1 z1 o< x
 
           ... | case2 px<spfx = ? where