changeset 669:7d227d624aad

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Tue, 05 Jul 2022 05:43:27 +0900
parents f40388701930
children f6a8de486bf3
files src/zorn.agda
diffstat 1 files changed, 18 insertions(+), 22 deletions(-) [+]
line wrap: on
line diff
--- a/src/zorn.agda	Tue Jul 05 05:10:27 2022 +0900
+++ b/src/zorn.agda	Tue Jul 05 05:43:27 2022 +0900
@@ -239,24 +239,27 @@
       A∋maximal : A ∋ sup
       x<sup : {x : HOD} → B ∋ x → (x ≡ sup ) ∨ (x < sup )   -- B is Total, use positive
 
--- Union of supf z which o< x
---
-record UChain (x : Ordinal) (chain : (z : Ordinal ) → z o< x → HOD)  (z : Ordinal) : Set n where 
-   field
-      u : Ordinal
-      u<x : u o< x
-      chain∋z : odef (chain u u<x) z
-
 ∈∧P→o< :  {A : HOD } {y : Ordinal} → {P : Set n} → odef A y ∧ P → y o< & A
 ∈∧P→o< {A } {y} p = subst (λ k → k o< & A) &iso ( c<→o< (subst (λ k → odef A k ) (sym &iso ) (proj1 p )))
 
-UnionCF : (A : HOD) (x : Ordinal) (chainf : (z : Ordinal ) → z o< x → HOD ) → HOD
-UnionCF A x chainf = record { od = record { def = λ z → odef A z ∧ UChain x chainf z } ; odmax = & A ; <odmax = λ {y} sy → ∈∧P→o< sy }
-
 data Chain (A : HOD ) ( f : Ordinal → Ordinal ) (mf : ≤-monotonic-f A f)  {y : Ordinal} (ay : odef A y) : Ordinal →  Ordinal → Set n where
     ch-init    : (x z : Ordinal) → x ≡ o∅ → FClosure A f y z  → Chain A f mf  ay x z 
     ch-is-sup : {x z : Ordinal }  ( ax : odef A x ) 
          → ( is-sup : (x1 w : Ordinal) → x1 o< x → Chain A f mf ay x1 w → w << x )  → ( fc : FClosure A f x z ) → Chain A f mf ay x z
+    ch-noax : {x z p : Ordinal }  ( ax : ¬ odef A x ) → p o< x → ( prev : Chain A f mf ay p z ) →  Chain A f mf ay x z
+    ch-nosup : {x z p : Ordinal }  ( ax : odef A x ) 
+         → ( nosup : ¬ ( (x1 w : Ordinal) → x1 o< x → Chain A f mf ay x1 w → w << x ) ) → ( prev : Chain A f mf ay p z ) → Chain A f mf ay x z
+
+-- Union of supf z which o< x
+--
+record UChain (A : HOD)  ( f : Ordinal → Ordinal )  (mf : ≤-monotonic-f A f) {init : Ordinal} (ay : odef A init) (x : Ordinal)   (z : Ordinal) : Set n where 
+   field
+      u : Ordinal
+      u<x : u o< x
+      chain∋z : Chain A f mf ay u z
+
+UnionCF : (A : HOD)  ( f : Ordinal → Ordinal )  (mf : ≤-monotonic-f A f) {init : Ordinal} (ay : odef A init) (x : Ordinal) (chainf : (z : Ordinal ) →  Chain A f mf ay z z ) → HOD
+UnionCF A f mf ay x chainf = record { od = record { def = λ z → odef A z ∧  UChain A f mf ay x z } ; odmax = & A ; <odmax = λ {y} sy → ∈∧P→o< sy }
 
 record ZChain ( A : HOD )    ( f : Ordinal → Ordinal )  (mf : ≤-monotonic-f A f) {init : Ordinal} (ay : odef A init) ( z : Ordinal )  : Set (Level.suc n) where
    chain : HOD
@@ -415,10 +418,8 @@
           -- we have previous ordinal to use induction
           --
           px = Oprev.oprev op
-          supf : Ordinal → HOD
-          supf x = ? -- ZChain.chain zc0 
           zc : ZChain A f mf ay (Oprev.oprev op) 
-          zc = ? -- prev px (subst (λ k → px o< k) (Oprev.oprev=x op) <-osuc ) 
+          zc = prev px (subst (λ k → px o< k) (Oprev.oprev=x op) <-osuc ) 
           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 
           px<x : px o< x
@@ -447,7 +448,7 @@
                 ... | case1 b=x = subst (λ k → odef chain0 k ) (trans (sym (HasPrev.x=fy pr )) (trans &iso (sym b=x)) ) ( ZChain.f-next zc (HasPrev.ay pr))
           ... | case2 ¬fy<x with ODC.p∨¬p O (IsSup A (ZChain.chain zc) ax )
           ... | case1 is-sup = -- x is a sup of zc 
-                record {  chain⊆A = {!!} ; f-next = {!!}  ; f-total = {!!}
+                record {  chain⊆A = {!!} ; f-next = {!!}  ; f-total = {!!} ; chainf = ?
                      ; initial = {!!} ; chain∋init  = {!!} ; is-max = {!!}   } where
                 sup0 : SUP A (ZChain.chain zc) 
                 sup0 = record { sup = * x ; A∋maximal = ax ; x<sup = x21 } where
@@ -467,7 +468,7 @@
                 schain = record { od = record { def = λ x → odef chain0 x ∨ (FClosure A f (& sp) x) } ; odmax = & A ; <odmax = λ {y} sy → sc<A {y} sy  }
                 supf0 : Ordinal → HOD
                 supf0 z with trio< z x
-                ... | tri< a ¬b ¬c = supf z
+                ... | tri< a ¬b ¬c = ?
                 ... | tri≈ ¬a b ¬c = schain 
                 ... | tri> ¬a ¬b c = schain
                 A∋schain : {x : HOD } → schain ∋ x → A ∋ x
@@ -540,11 +541,6 @@
                 ... | tri< a ¬b ¬c = ⊥-elim ( ¬b refl )
                 ... | tri≈ ¬a b ¬c = refl
                 ... | tri> ¬a ¬b c = refl
-                seq<x : {b : Ordinal } → b o< x →  supf b  ≡ supf0 b
-                seq<x {b} b<x with trio< b x
-                ... | tri< a ¬b ¬c = refl
-                ... | tri≈ ¬a b₁ ¬c = ⊥-elim (¬a  b<x )
-                ... | tri> ¬a ¬b c  = ? -- ⊥-elim (¬a  b<x zc0 )
 
           ... | case2 ¬x=sup = ? where -- x is not f y' nor sup of former ZChain from y -- no extention
                 z18 :  {a b : Ordinal} → odef (ZChain.chain zc) a → b o< osuc x → (ab : odef A b) →
@@ -564,7 +560,7 @@
           -- chainq : ( z : Ordinal ) → (z<x : z o< x ) → Chain A f mf ay z ( chainf z z<x )
           -- chainq z z<x = ZChain.chain-uniq (  prev z z<x )
           uzc : HOD
-          uzc = UnionCF A x ? 
+          uzc = UnionCF A f mf ay x ? 
           -- c-mono :  {z : Ordinal} {w : Ordinal} → z o≤ w → (w<x : w o< x ) → chainf z ? ⊆' chainf w w<x
           -- c-mono {z} {w} z≤w w≤x {i} with trio< z x | trio< w x
           -- ... | s | t = {!!}