changeset 868:35a884f2bfde

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Tue, 13 Sep 2022 02:49:49 +0900
parents 166bee3ddf4c
children 1ca338c3f09c
files src/zorn.agda
diffstat 1 files changed, 23 insertions(+), 99 deletions(-) [+]
line wrap: on
line diff
--- a/src/zorn.agda	Mon Sep 12 19:35:32 2022 +0900
+++ b/src/zorn.agda	Tue Sep 13 02:49:49 2022 +0900
@@ -365,6 +365,9 @@
         {y : Ordinal} (ay : odef A y)  ( z : Ordinal ) : Set (Level.suc n) where
    field
       supf : Ordinal → Ordinal
+   pchain : HOD
+   pchain = UnionCF A f mf ay supf z 
+   field
       sup : (x : Ordinal ) → SUP A (UnionCF A f mf ay (λ _ → z) x)
       supf-is-sup : {x : Ordinal } → supf x ≡ & (SUP.sup (sup x) )
       supf-mono : {x y : Ordinal } → x o≤  y → supf x o≤ supf y
@@ -376,28 +379,6 @@
 --    sup y   <       sup z1          <    sup z2
 --           o<                      o<
 
-smono→SUPU : (A : HOD) ( f : Ordinal → Ordinal )  (mf : ≤-monotonic-f A f) {y : Ordinal} (ay : odef A y)  
-   → {x z : Ordinal } → { supf : Ordinal → Ordinal } 
-   → ( supf x ≡ z ) → ( {x y : Ordinal } → x o≤  y → supf x o≤ supf y )
-                      → ( {x y : Ordinal } → x o≤  y → supf x <= supf y )
-   → (sz : SUP A (UnionCF A f mf ay (λ _ → z) x)) → (su : SUP A (UnionCF A f mf ay supf x)) → & (SUP.sup sz) ≡ & (SUP.sup su)
-smono→SUPU A f mf {y} ay {x} {z} {supf} sx=z mono mono< s = ? where
-      sup = SUP.sup s
-      x<sup : {w : HOD} → (UnionCF A f mf ay supf x) ∋ w → (w ≡ sup ) ∨ (w < sup )   
-      x<sup {w} ⟪ au , ch-init fc ⟫ = SUP.x<sup s ⟪ au , ch-init fc ⟫ 
-      x<sup {w} ⟪ au , ch-is-sup u u<x is-sup fc ⟫ with trio< u z
-      ... | tri< a ¬b ¬c = ?  where
-            zc01 :  {s : Ordinal} → (lt : supf s o< supf u ) → FClosure A f (supf s ) (& w) → ((& w) ≡ supf u ) ∨ ( (& w)  << supf u )
-            zc01 = ChainP.order is-sup 
-      ... | tri≈ ¬a b ¬c = ?
-      ... | tri> ¬a ¬b z<u = ⊥-elim ( o≤> u≤z z<u ) where
-            u≤z :  u o≤ z
-            u≤z = begin u ≡⟨ sym (ChainP.supu=u is-sup)  ⟩ 
-                  supf u  ≤⟨ mono (o<→≤ u<x  )  ⟩ 
-                  supf x  ≡⟨ sx=z ⟩ 
-                  z  ∎ where open  o≤-Reasoning O 
-
-
 zsupf : (A : HOD) ( f : Ordinal → Ordinal )  (mf : ≤-monotonic-f A f) {init : Ordinal} (ay : odef A init) 
     → ( ( B : HOD) → (B⊆A : B ⊆' A) → IsTotalOrderSet B → SUP A B   ) -- SUP condition
     →  (x : Ordinal)   → ZSupf A f mf ay x
@@ -407,8 +388,8 @@
     zc1 x prev with Oprev-p x
     ... | yes op = record { supf = ? ; sup = ? ; supf-is-sup = ? ; supf-mono = ? }  where
        px = Oprev.oprev op
-       pchain : HOD
-       pchain = UnionCF A f mf ay (ZSupf.supf ( prev px (pxo<x op) )) px
+       pchain0 : HOD
+       pchain0 = UnionCF A f mf ay (ZSupf.supf ( prev px (pxo<x op) )) px
        zc-b<x : {b : Ordinal } → b o< x → b o< osuc px
        zc-b<x {b} lt = subst (λ k → b o< k ) (sym (Oprev.oprev=x op)) lt 
 
@@ -418,18 +399,14 @@
        ... | tri≈ ¬a b ¬c = ZSupf.supf (prev z (subst (λ k → k o< x ) (sym b) (pxo<x op))) z
        ... | tri> ¬a ¬b px<x = ZSupf.supf (prev px (pxo<x op) ) px
 
-       supf1 : Ordinal → Ordinal
-       supf1 z with trio< z px
-       ... | tri< a ¬b ¬c = ZSupf.supf (prev z (ordtrans a (pxo<x op))) z
-       ... | tri≈ ¬a b ¬c = ZSupf.supf (prev z (subst (λ k → k o< x ) (sym b) (pxo<x op))) z
-       ... | tri> ¬a ¬b px<x = & (SUP.sup (zsupf0 A f mf ay supP ax))
+       sp1 =  & (SUP.sup (zsupf0 A f mf ay supP ? )) 
 
        zc2 : ZSupf A f mf ay x
        zc2 with ODC.∋-p O A (* x)
        ... | no noax = ?
-       ... | yes ax with ODC.p∨¬p O ( HasPrev A pchain z f )   
+       ... | yes ax with ODC.p∨¬p O ( HasPrev A pchain0 ? f )   
        ... | case1 pr = ?
-       ... | case2 ¬fy<x with ODC.p∨¬p O (IsSup A pchain ax )
+       ... | case2 ¬fy<x with ODC.p∨¬p O (IsSup A pchain0 ax )
        ... | case2 ¬x=sup = ?
        ... | case1 is-sup = ?
 
@@ -459,6 +436,7 @@
         {y : Ordinal} (ay : odef A y)  ( z : Ordinal ) : Set (Level.suc n) where
    field
       supf :  Ordinal → Ordinal 
+      asupf :  {x : Ordinal } → odef A (supf x)
    chain : HOD
    chain = UnionCF A f mf ay supf z
    chain⊆A : chain ⊆' A
@@ -469,8 +447,7 @@
            → IsSup A (UnionCF A f mf ay supf b) ab ∧ (¬ HasPrev A (UnionCF A f mf ay supf b) b f) → supf b ≡ b 
       supf-is-sup : {x : Ordinal } → (x≤z : x o≤ z) → supf x ≡ & (SUP.sup (sup x≤z) )
       supf-mono : {x y : Ordinal } → x o≤  y → supf x o≤ supf y
-      supf-max : {x : Ordinal } → z o< x  → supf (osuc z) ≡ supf x
-      csupf : {b : Ordinal } → b o≤ z → odef (UnionCF A f mf ay supf (supf b)) (supf b) 
+      order : {b s z1 : Ordinal} → b o< z → supf s o< supf b → FClosure A f (supf s) z1 → (z1 ≡ supf b) ∨ (z1 << supf b)
 
    chain∋init : odef chain y
    chain∋init = ⟪ ay , ch-init (init ay refl)    ⟫
@@ -507,35 +484,6 @@
    ... | case1 eq = case1 (subst (λ k → k ≡ supf u ) &iso  (trans (cong (&) eq) (sym (supf-is-sup (o<→≤ u<z) ) ) ))
    ... | case2 lt = case2 (subst (λ k → * w < k ) (subst (λ k → k ≡ _ ) *iso (cong (*) (sym (supf-is-sup (o<→≤ u<z) ))) ) lt )
 
-   csupf-fc : {b s z1 : Ordinal} → b o≤ z → supf s o< supf b → FClosure A f (supf s) z1 → UnionCF A f mf ay supf b ∋ * z1
-   csupf-fc {b} {s} {z1} b≤z ss<sb (init x refl ) = subst (λ k → odef (UnionCF A f mf ay supf b) k ) (sym &iso) zc05  where
-            s<b : s o< b
-            s<b = supf-inject ss<sb
-            s≤<z : s o≤ z
-            s≤<z = ordtrans s<b b≤z
-            zc04 : odef (UnionCF A f mf ay supf (supf s))  (supf s)
-            zc04 = csupf s≤<z 
-            zc05 : odef (UnionCF A f mf ay supf b)  (supf s)
-            zc05 with zc04
-            ... | ⟪ as , ch-init fc ⟫ = ⟪ as , ch-init fc  ⟫ 
-            ... | ⟪ as , ch-is-sup u u<x is-sup fc ⟫ = ⟪ as , ch-is-sup u (zc09 u<x ) is-sup fc ⟫ where
-                zc06 : supf u ≡ u
-                zc06 = ChainP.supu=u is-sup
-                zc09 : u o< supf s  →  u o< b 
-                zc09 u<s = ordtrans (supf-inject (subst (λ k → k o< supf s) (sym zc06) u<s)) s<b
-   csupf-fc {b} {s} {z1} b<z ss≤sb (fsuc x fc) = subst (λ k → odef (UnionCF A f mf ay supf b) k ) (sym &iso) zc04  where
-            zc04 : odef (UnionCF A f mf ay supf b) (f x)
-            zc04 with subst (λ k → odef (UnionCF A f mf ay supf b) k ) &iso (csupf-fc b<z ss≤sb fc  )
-            ... | ⟪ as , ch-init fc ⟫ = ⟪ proj2 (mf _ as) , ch-init (fsuc _ fc) ⟫ 
-            ... | ⟪ as , ch-is-sup u u≤x is-sup fc ⟫ = ⟪ proj2 (mf _ as) , ch-is-sup u u≤x is-sup (fsuc _ fc) ⟫ 
-   order : {b s z1 : Ordinal} → b o< z → supf s o< supf b → FClosure A f (supf s) z1 → (z1 ≡ supf b) ∨ (z1 << supf b)
-   order {b} {s} {z1} b<z ss<sb fc = zc04 where
-      zc00 : ( * z1  ≡  SUP.sup (sup (o<→≤ b<z) )) ∨ ( * z1  < SUP.sup ( sup (o<→≤ b<z) ) )
-      zc00 = SUP.x<sup (sup (o<→≤  b<z) ) (csupf-fc (o<→≤ b<z) ss<sb fc )
-      zc04 : (z1 ≡ supf b) ∨ (z1 << supf b)
-      zc04 with zc00
-      ... | case1 eq = case1 (subst₂ (λ j k → j ≡ k ) &iso (sym (supf-is-sup (o<→≤ b<z))  ) (cong (&) eq) )
-      ... | case2 lt = case2 (subst₂ (λ j k → j < k ) refl (subst₂ (λ j k → j ≡ k ) *iso refl (cong (*) (sym (supf-is-sup (o<→≤ b<z) ) )))  lt )
 
 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
@@ -673,6 +621,9 @@
         ... | ⟪ ab0 , ch-is-sup u u≤x is-sup fc ⟫ = ⟪ ab , 
                  subst (λ k → UChain A f mf ay (ZChain.supf zc) x k )
                       (sym (HasPrev.x=fy has-prev)) ( ch-is-sup u u≤x is-sup (fsuc _ fc))  ⟫ 
+
+        supf1 = ZChain.supf zc
+
         zc1 :  (x : Ordinal) →  ((y₁ : Ordinal) → y₁ o< x → ZChain1 A f mf ay zc y₁) → ZChain1 A f mf ay zc x
         zc1 x prev with Oprev-p x
         ... | yes op = record { is-max = is-max } where
@@ -847,12 +798,6 @@
           ... | tri≈ ¬a b ¬c = ⊥-elim ( o≤> x≤z (subst (λ k → k o< x ) (sym b) (pxo<x op)))
           ... | tri> ¬a ¬b c = ? --  ZChain.supf-max zc (o<→≤ c)
 
-          supf∈A : {b : Ordinal} → b o≤ x → odef A (supf0 b)
-          supf∈A {b} b≤z with trio< b px
-          ... | tri< a ¬b ¬c = proj1 ( ZChain.csupf zc (o<→≤ a ))
-          ... | tri≈ ¬a b ¬c = proj1 ( ZChain.csupf zc (o≤-refl0 b ))
-          ... | tri> ¬a ¬b c = ? -- subst (λ k → odef A k ) (ZChain.supf-max zc (o<→≤ c)) ? -- (proj1 ( ZChain.csupf zc o≤-refl))
-
           supf-mono : {a b : Ordinal } → a o≤ b → supf0 a o≤ supf0 b 
           supf-mono = ZChain.supf-mono zc
 
@@ -862,6 +807,7 @@
               zc02 = ? -- ZChain.supf-max zc (o<→≤ (pxo<x op))
               zc01 : supf0 px ≡ supf0 z
               zc01 = ? -- ZChain.supf-max zc (OrdTrans (o<→≤ (pxo<x op)) z≤x)
+
           zc04 : {b : Ordinal} → b o≤ x → (b o≤ px ) ∨ (b ≡ x )
           zc04 {b} b≤x with trio< b px 
           ... | tri< a ¬b ¬c = case1 (o<→≤ a)
@@ -878,8 +824,8 @@
           --           supf0 px ≡ supf0 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 P = record { supf = supf0 ;  sup = λ lt → STMP.tsup (sup lt ) ; supf-mono = supf-mono ; supf-max = ?
-              ; sup=u = sup=u ; supf-is-sup = λ lt → STMP.tsup=sup (sup lt) ; csupf = csupf }  where
+          no-extension P = record { supf = supf0 ;  asupf = ? ; sup = λ lt → STMP.tsup (sup lt ) ; supf-mono = supf-mono 
+              ; order = ? ; sup=u = sup=u ; supf-is-sup = λ lt → STMP.tsup=sup (sup lt) }  where
                  zc10 :  {z : Ordinal} → OD.def (od pchain) z → OD.def (od pchain1) z
                  zc10 {z} ⟪ az , ch-init fc ⟫ = ⟪ az , ch-init fc ⟫ 
                  zc10 {z} ⟪ az , ch-is-sup u1 u1<x u1-is-sup fc ⟫ = ⟪ az , ch-is-sup u1 (ordtrans u1<x (pxo<x op)) u1-is-sup  fc  ⟫
@@ -919,7 +865,7 @@
                         zc12 : supf0 x ≡ u1
                         zc12 = subst  (λ k → supf0 k ≡ u1) eq (ChainP.supu=u u1-is-sup)
                         zcsup : xSUP (UnionCF A f mf ay supf0 px) x 
-                        zcsup = record { ax =  subst (λ k → odef A k) (trans zc12 eq) (supf∈A o≤-refl)
+                        zcsup = record { ax =  subst (λ k → odef A k) (trans zc12 eq) (ZChain.asupf zc)
                                  ; is-sup = record { x<sup = x<sup } }
                  zc11 (case2 hp) {z} ⟪ az , ch-is-sup u1 u1<x u1-is-sup fc ⟫ | tri> ¬a ¬b px<u = case1 (zc20 fc ) where
                         eq : u1 ≡ x 
@@ -957,7 +903,7 @@
                      ... | case1 lt = SUP.x<sup zc32 lt 
                      ... | case2 ⟪ spx=px  , fc ⟫ = ⊥-elim ( ne spx=px )
                      zc33 : supf0 z ≡ & (SUP.sup zc32)
-                     zc33 = trans (sym (supfx (o≤-refl0 (sym zc30)))) ( ZChain.supf-is-sup zc o≤-refl  )
+                     zc33 = ? -- trans (sym (supfx (o≤-refl0 (sym zc30)))) ( ZChain.supf-is-sup zc o≤-refl  )
                      zc36 : ¬ (supf0 px ≡ px) → STMP z≤x
                      zc36 ne = record { tsup = record { sup = SUP.sup zc32 ; as = SUP.as zc32 ; x<sup = zc34 ne } ; tsup=sup = zc33  } 
                      zc35 : STMP z≤x
@@ -987,12 +933,6 @@
                      zc31 (case2 hasPrev ) with zc30
                      ... | refl = ⊥-elim ( proj2 is-sup record { ax = HasPrev.ax hasPrev ; y = HasPrev.y hasPrev 
                                 ; ay = zc10 (HasPrev.ay hasPrev) ; x=fy = HasPrev.x=fy hasPrev } ) 
-                 csupf :  {b : Ordinal} → b o≤ x → odef (UnionCF A f mf ay supf0 (supf0 b)) (supf0 b)
-                 csupf {b} b≤x with zc04 b≤x 
-                 ... | case2 b=x = subst (λ k → odef (UnionCF A f mf ay supf0 k) k) ? ( ZChain.csupf zc o≤-refl ) where
-                     zc05 : px o≤ b
-                     zc05 = subst (λ k → px o≤ k) (sym b=x) (o<→≤ (pxo<x op) )
-                 ... | case1 b≤px = ZChain.csupf zc b≤px 
 
           zc4 : ZChain A f mf ay x 
           zc4 with ODC.∋-p O A (* x)
@@ -1002,8 +942,8 @@
           ... | case1 pr = no-extension (case2 pr) -- we have previous A ∋ z < x , f z ≡ x, so chain ∋ f z ≡ x because of f-next
           ... | case2 ¬fy<x with ODC.p∨¬p O (IsSup A (ZChain.chain zc ) ax )
           ... | case1 is-sup = -- x is a sup of zc 
-                record {  supf = supf1 ; supf-max = ?
-                   ; csupf = {!!} ; sup=u = {!!} ; supf-mono = {!!}
+                record {  supf = supf1 
+                   ; sup=u = {!!} ; supf-mono = {!!}
                    ; sup = {!!} ; supf-is-sup = {!!}   }  where
              supf1 : Ordinal → Ordinal
              supf1 z with trio< z px 
@@ -1050,13 +990,6 @@
                      zc11 {z} ⟪ az , ch-init fc ⟫ = ⟪ az , ch-init fc ⟫ 
                      zc11 {z} ⟪ az , ch-is-sup u1 u1≤x u1-is-sup fc ⟫ = ?
 
-             csupf :  {b : Ordinal} → b o≤ x → odef (UnionCF A f mf ay supf1 (supf1 b)) (supf1 b)
-             csupf {b} b≤x with zc04 b≤x 
-             ... | case2 b=x = ⟪ ? , ch-is-sup x ? ? (init ? ? ) ⟫
-             ... | case1 b≤px with ZChain.csupf zc b≤px 
-             ... | ⟪ au , ch-init fc ⟫ = ⟪ ? , ch-init ? ⟫ 
-             ... | ⟪ au , ch-is-sup u u≤x is-sup fc ⟫ = ⟪ ? , ch-is-sup u ? ? ? ⟫ 
-
 
           ... | case2 ¬x=sup =  no-extension (case1 nsup) where -- px is not f y' nor sup of former ZChain from y -- no extention
              nsup : ¬ xSUP (UnionCF A f mf ay supf0 px) x 
@@ -1119,8 +1052,8 @@
           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 { supf = supf1  ; sup=u = sup=u 
-               ; sup = sup ; supf-is-sup = sis ; supf-mono = {!!} ; csupf = csupf } where
+          no-extension ¬sp=x  = record { supf = supf1  ; sup=u = sup=u  ; order = ? 
+               ; sup = sup ; supf-is-sup = sis ; supf-mono = {!!} ; asupf = ? } where
                  supfu : {u : Ordinal } → ( a : u o< x ) → (z : Ordinal) → Ordinal
                  supfu {u} a z = ZChain.supf (pzc (osuc u) (ob<x lim a)) z
                  pchain0=1 : pchain ≡ pchain1
@@ -1160,15 +1093,6 @@
                  ... | tri< a ¬b ¬c = ? -- ZChain.sup=u (pzc (osuc b)  (ob<x lim a))  ab {!!} record { x<sup = {!!} }
                  ... | tri≈ ¬a b ¬c = {!!} -- ZChain.sup=u (pzc (osuc ?)  ?)  ab {!!} record { x<sup = {!!} }
                  ... | tri> ¬a ¬b x<z = ⊥-elim (o<¬≡ refl (ordtrans<-≤ x<z z≤x )) 
-                 csupf : {z : Ordinal} → z o≤ x → odef (UnionCF A f mf ay supf1 (supf1 z)) (supf1 z)
-                 csupf {z} z≤x with trio< z x
-                 ... | tri< a ¬b ¬c = ?  where
-                     zc9 : odef (UnionCF A f mf ay supf1 z)  (ZChain.supf  (pzc (osuc z) (ob<x lim a)) z)
-                     zc9 = {!!}
-                     zc8 : odef (UnionCF A f mf ay (supfu a) z)  (ZChain.supf  (pzc (osuc z) (ob<x lim a)) z)
-                     zc8 = {!!} -- ZChain.csupf  (pzc (osuc z) (ob<x lim a)) ? -- (o<→≤ <-osuc )
-                 ... | tri≈ ¬a b ¬c = {!!}
-                 ... | tri> ¬a ¬b x<z = ⊥-elim (o<¬≡ refl (ordtrans<-≤ x<z z≤x )) 
 
           zc5 : ZChain A f mf ay x 
           zc5 with ODC.∋-p O A (* x)
@@ -1178,7 +1102,7 @@
           ... | case1 pr = no-extension {!!} 
           ... | case2 ¬fy<x with ODC.p∨¬p O (IsSup A pchain ax )
           ... | case1 is-sup = record { supf = supf1  ; sup=u = {!!} 
-               ; sup = {!!} ; supf-is-sup = {!!} ; supf-mono = {!!};  csupf = {!!}  } -- where -- x is a sup of (zc ?) 
+               ; sup = {!!} ; supf-is-sup = {!!} ; supf-mono = {!!};  asupf = {!!}  } -- where -- x is a sup of (zc ?) 
           ... | case2 ¬x=sup =  no-extension {!!} -- x is not f y' nor sup of former ZChain from y -- no extention
          
      SZ : ( f : Ordinal → Ordinal ) → (mf : ≤-monotonic-f A f ) → {y : Ordinal} (ay : odef A y) → ZChain A f mf ay   (& A)