changeset 880:d4839adf694d

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Fri, 30 Sep 2022 14:38:07 +0900
parents 6222efcf3b04
children 3c2ab35da199
files src/zorn.agda
diffstat 1 files changed, 32 insertions(+), 21 deletions(-) [+]
line wrap: on
line diff
--- a/src/zorn.agda	Fri Sep 30 10:55:23 2022 +0900
+++ b/src/zorn.agda	Fri Sep 30 14:38:07 2022 +0900
@@ -372,32 +372,43 @@
 z09 : {b : Ordinal } { A : HOD } → odef A b → b o< & A
 z09 {b} {A} ab = subst (λ k → k o< & A) &iso ( c<→o< (subst (λ k → odef A k ) (sym &iso ) ab))
 
--- M→S  : {A B : HOD} → MinSUP A B → SUP A B
--- M→S {A} {B} ms = record { sup = MinSUP.sup ms ; as = MinSUP.asm ms ; x<sup = MinSUP.x<sup ms } 
+M→S  : { A : HOD } { f : Ordinal → Ordinal } {mf : ≤-monotonic-f A f} {y : Ordinal} {ay : odef A y}  { x : Ordinal }
+      →  (supf : Ordinal → Ordinal )
+      →  MinSUP A (UnionCF A f mf ay supf x)  
+      → SUP A (UnionCF A f mf ay supf x) 
+M→S {A} {f} {mf} {y} {ay} {x} supf ms = record { sup = * (MinSUP.sup ms) 
+        ; as = subst (λ k → odef A k) (sym &iso) (MinSUP.asm ms) ; x<sup = ms00 } where
+   msup = MinSUP.sup ms
+   ms00 : {z : HOD} → UnionCF A f mf ay supf x ∋ z → (z ≡ * msup) ∨ (z < * msup)
+   ms00 {z} uz with MinSUP.x<sup ms uz 
+   ... | case1 eq = case1 (subst (λ k → k ≡ _) *iso ( cong (*) eq))
+   ... | case2 lt = case2 (subst₂ (λ j k →  j < k ) *iso refl lt )
+
 
 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
    field
       supf :  Ordinal → Ordinal 
+      sup=u : {b : Ordinal} → (ab : odef A b) → b o≤ z  
+           → IsSup A (UnionCF A f mf ay supf b) ab ∧ (¬ HasPrev A (UnionCF A f mf ay supf b) b f) → supf b ≡ b 
+
       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 o≤ supf z
+
+      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) ))
+      csupf : {b : Ordinal } → supf b o< z → odef (UnionCF A f mf ay supf z) (supf b) -- supf z is not an element of this chain
+
    chain : HOD
    chain = UnionCF A f mf ay supf z
    chain⊆A : chain ⊆' A
    chain⊆A = λ lt → proj1 lt
-   field
-      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
-      minsup : {x : Ordinal } → x o≤ z  → MinSUP A (UnionCF A f mf ay supf x) 
    sup : {x : Ordinal } → x o≤ z  → SUP A (UnionCF A f mf ay supf x) 
-   sup {x} x≤z = ? -- M→S  (minsup x≤z )
-   field
-      sup=u : {b : Ordinal} → (ab : odef A b) → b o≤ z  
-           → 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) )
-      csupf : {b : Ordinal } → supf b o< z → odef (UnionCF A f mf ay supf z) (supf b) -- supf z is not an element of this chain
-
-      -- supf-max : {x : Ordinal } → z o< x → supf x ≡ supf z -- supf z may different from spuf pz
-      x≤supfx : z o≤ supf z
+   sup {x} x≤z = M→S supf (minsup x≤z) 
+   supf-is-minsup : {x : Ordinal } → (x≤z : x o≤ z) → supf x ≡ MinSUP.sup ( minsup x≤z )
+   supf-is-minsup {x} x≤z = trans (supf-is-sup x≤z) &iso
 
    chain∋init : odef chain y
    chain∋init = ⟪ ay , ch-init (init ay refl)    ⟫
@@ -869,11 +880,11 @@
                       lt1 = subst₂ (λ j k → j < k ) *iso *iso lt
                  ptotal (case2 a) (case2 b) = subst₂ (λ j k → Tri (j < k) (j ≡ k) (k < j)) *iso *iso (fcn-cmp px f mf a b)
 
-                 sup1 : SUP A pchainpx 
-                 sup1 = supP pchainpx zc01 ptotal
+                 sup1 : MinSUP A pchainpx 
+                 sup1 = minsupP pchainpx zc01 ptotal
 
                  sp1 : Ordinal
-                 sp1 = & (SUP.sup sup1 )
+                 sp1 = MinSUP.sup sup1 
 
                  supf1 : Ordinal → Ordinal
                  supf1 z with trio< z px 
@@ -1145,9 +1156,9 @@
                uz01 : Tri (* (& a) < * (& b)) (* (& a) ≡ * (& b)) (* (& b) < * (& a) )
                uz01 = chain-total A f mf ay supf0 ( (proj2 ca)) ( (proj2 cb)) 
   
-          usup : SUP A pchain
-          usup = supP pchain (λ lt → proj1 lt) ptotal0
-          spu = & (SUP.sup usup)
+          usup : MinSUP A pchain
+          usup = minsupP pchain (λ lt → proj1 lt) ptotal0
+          spu = MinSUP.sup usup
 
           supf1 : Ordinal → Ordinal
           supf1 z with trio< z x