changeset 866:8a49ab1dcbd0

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sun, 11 Sep 2022 19:58:49 +0900
parents b095c84310df
children 166bee3ddf4c
files src/zorn.agda
diffstat 1 files changed, 61 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/src/zorn.agda	Sat Sep 10 18:20:24 2022 +0900
+++ b/src/zorn.agda	Sun Sep 11 19:58:49 2022 +0900
@@ -351,13 +351,69 @@
 ... | case1 eq = ⊥-elim ( o<¬≡ (sym eq) sx<sy )
 ... | case2 lt = ⊥-elim ( o<> sx<sy lt )
 
-record Zsupf ( A : HOD )    ( f : Ordinal → Ordinal )  (mf : ≤-monotonic-f A f) 
+zsupf0 : ( A : HOD )    ( f : Ordinal → Ordinal )  (mf : ≤-monotonic-f A f) {y : Ordinal} (ay : odef A y)  
+        → ( ( B : HOD) → (B⊆A : B ⊆' A) → IsTotalOrderSet B → SUP A B   ) -- SUP condition
+        → { z : Ordinal } → (odef A z) → SUP A (UnionCF A f mf ay (λ _ → z) z)
+zsupf0 A f mf ay supP {z} az =  supP chain (λ lt → proj1 lt ) f-total where
+    chain = UnionCF A f mf ay (λ _ → z) z
+    f-total : IsTotalOrderSet chain
+    f-total {a} {b} ca cb = subst₂ (λ j k → Tri (j < k) (j ≡ k) (k < j)) *iso *iso uz01 where 
+               uz01 : Tri (* (& a) < * (& b)) (* (& a) ≡ * (& b)) (* (& b) < * (& a) )
+               uz01 = chain-total A f mf ay (λ _ → z) ( (proj2 ca)) ( (proj2 cb))
+
+record ZSupf ( A : HOD )    ( f : Ordinal → Ordinal )  (mf : ≤-monotonic-f A f) 
         {y : Ordinal} (ay : odef A y)  ( z : Ordinal ) : Set (Level.suc n) where
    field
-      s : Ordinal
-      s=z : odef A z → s ≡ z
-      as : odef A s
-      sup : SUP A (UnionCF A f mf ay (λ _ → s) z)
+      supf : Ordinal → Ordinal
+      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
+
+
+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
+zsupf A f mf {y} ay supP x = TransFinite { λ x →  ZSupf A f mf ay x } zc1 x where
+
+    zc1 :  (x : Ordinal) →  ((y₁ : Ordinal) → y₁ o< x → ZSupf A f mf ay y₁) → ZSupf A f mf ay x
+    zc1 x prev with Oprev-p x
+    ... | yes op = record { supf = ? ; sup = ? ; spuf-is-sup = ? ; supf-mono = ? }  where
+       px = Oprev.oprev op
+       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 
+       supf : Ordinal → Ordinal
+       supf z with trio< z px
+       ... | tri< a ¬b ¬c = ZSupf.spuf (prev (ordtrans a (pxo<x op))) z
+       ... | tri≈ ¬a b ¬c = ZSupf.spuf (prev (subst (λ k → k o< x ) b (pxo<x op))) z
+       ... | tri> ¬a ¬b px<x with ODC.∋-p O A (* x)
+       ... | no noax = ZSupf.spuf (prev o≤-refl ) px
+       ... | yes ax with ODC.p∨¬p O ( HasPrev A (ZChain.chain zc ) z f )   
+       ... | case1 pr = ZSupf.spuf (prev o≤-refl ) px
+       ... | case2 ¬fy<x with ODC.p∨¬p O (IsSup A (ZChain.chain zc ) ax )
+       ... | case2 ¬x=sup = ZSupf.spuf (prev o≤-refl ) px
+       ... | case1 is-sup = ?
+
+    ... | no lim = ?  where
+
+       --  Range of supf is total order set, so it has SUP
+       supfmax :  Ordinal
+       supfmax = ?
+
+       supfx :  Ordinal
+       supfx with ODC.∋-p O A (* x)
+       ... | no noax = supfmax
+       ... | yes ax with ODC.p∨¬p O ( HasPrev A (ZChain.chain zc ) z f )   
+       ... | case1 pr = supfmax
+       ... | case2 ¬fy<x with ODC.p∨¬p O (IsSup A (ZChain.chain zc ) ax )
+       ... | case2 ¬x=sup = supfmax
+       ... | case1 is-sup = ?
+
+       supf : Ordinal → Ordinal
+       supf z with trio< z x
+       ... | tri< a ¬b ¬c = ZSupf.spuf a z
+       ... | tri≈ ¬a b ¬c = supfx
+       ... | tri> ¬a ¬b px<x = supfx
+
 
 record ZChain ( A : HOD )    ( f : Ordinal → Ordinal )  (mf : ≤-monotonic-f A f) 
         {y : Ordinal} (ay : odef A y)  ( z : Ordinal ) : Set (Level.suc n) where