changeset 476:3fc164626468

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 02 Apr 2022 08:32:01 +0900
parents 30da20261771
children 24b4b854b310
files src/ODC.agda
diffstat 1 files changed, 19 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/src/ODC.agda	Fri Apr 01 20:15:08 2022 +0900
+++ b/src/ODC.agda	Sat Apr 02 08:32:01 2022 +0900
@@ -180,6 +180,7 @@
      ind nomx x prev with Oprev-p x
      ... | yes op with ∋-p A (* x)
      ... | no ¬Ax = record  { B = ZChain.B zc1 ; B⊆A =  ZChain.B⊆A  zc1 ; total = ZChain.total zc1 ; fb = ZChain.fb zc1 ; B∋fb = ZChain.B∋fb zc1 ; ¬x≤sup = z04 } where
+          -- we have previous ordinal and ¬ A ∋ x, use previous Zchain
           px = Oprev.oprev op
           zc1 : ZChain A px _<_
           zc1 = prev px (subst (λ k → px o< k) (Oprev.oprev=x op) <-osuc) 
@@ -190,31 +191,37 @@
           ... | tri> ¬a ¬b c with  osuc-≡< s<x
           ... | case1 eq = ⊥-elim (¬Ax (subst (λ k → odef A k) (trans eq (sym &iso)) as) )  
           ... | case2 lt = ⊥-elim (¬a lt )
-     ... | yes ax = z06 where
+     ... | yes ax = z06 where -- we have previous ordinal and A ∋ x
           px = Oprev.oprev op
           zc1 : ZChain A px _<_
           zc1 = prev px (subst (λ k → px o< k) (Oprev.oprev=x op) <-osuc) 
           z06 : ZChain A x _<_
           z06 with is-o∅ (& (Gtx ax))
-          ... | yes nogt = ⊥-elim (no-maximum nomx x x-is-maximal ) where
+          ... | yes nogt = ⊥-elim (no-maximum nomx x x-is-maximal ) where -- no larger element, so it is maximal
               x-is-maximal :  (m : Ordinal) → odef A m → odef A x ∧ (¬ (* x < * m))
               x-is-maximal m am  = ⟪ subst (λ k → odef A k) &iso ax ,  ¬x<m  ⟫ where
                  ¬x<m :  ¬ (* x < * m)
                  ¬x<m x<m = ∅< {Gtx ax} {* m} ⟪ subst (λ k → odef A k) (sym &iso) am , subst (λ k → * x < k ) (cong (*) (sym &iso)) x<m ⟫  (≡o∅→=od∅ nogt) 
-          ... | no not = record { B = Bx
-              ; B⊆A = {!!} ; total = {!!} ; fb = {!!} ; B∋fb = {!!} ; ¬x≤sup = {!!} } where
-                 B = ZChain.B (prev px (subst (λ k → px o< k ) (Oprev.oprev=x op) <-osuc)) 
+          ... | no not = record { B = Bx     --  we have larger element, let's create ZChain
+              ; B⊆A = B⊆A ; total = {!!} ; fb = {!!} ; B∋fb = {!!} ; ¬x≤sup = {!!} } where
+                 B = ZChain.B zc1 
                  Bx : HOD
-                 Bx = record { od = record { def = λ y → (x ≡ y) ∨ odef B x } ; odmax = {!!} ; <odmax = {!!}  } 
+                 Bx = record { od = record { def = λ y → (x ≡ y) ∨ odef B y } ; odmax = & A ; <odmax = {!!}  } 
+                 B⊆A : Bx ⊆ A
+                 B⊆A = record { incl = λ {y} by → z07 y by  } where
+                     z07 : (y : HOD) → Bx ∋ y → A ∋ y
+                     z07 y (case1 x=y) = subst (λ k → odef A k ) (trans &iso x=y) ax
+                     z07 y (case2 by) = incl (ZChain.B⊆A zc1 ) by
                  m = minimal (Gtx ax) (λ eq → not (=od∅→≡o∅ eq))
-     ind nomx x prev | no ¬ox with trio< (& A) x
-     ... | tri< a ¬b ¬c = {!!} where
+     ind nomx x prev | no ¬ox with trio< (& A) x   --- limit ordinal case
+     ... | tri< a ¬b ¬c = record { B = ZChain.B zc1
+              ; B⊆A = ZChain.B⊆A zc1 ; total = ZChain.total zc1 ; fb = ZChain.fb zc1 ; B∋fb = ZChain.B∋fb zc1 ; ¬x≤sup = {!!} } where
           zc1 : ZChain A (& A) _<_
           zc1 = prev (& A) a 
-     ... | tri≈ ¬a b ¬c = record { B = ?
-              ; B⊆A = ? ; total = {!!} ; fb = {!!} ; B∋fb = {!!} ; ¬x≤sup = {!!} } where
-          zc1 : ZChain A {!!} _<_
-          zc1 = prev {!!} {!!}
+     ... | tri≈ ¬a b ¬c = record { B = B
+              ; B⊆A = {!!} ; total = {!!} ; fb = {!!} ; B∋fb = {!!} ; ¬x≤sup = {!!} } where
+          B : HOD
+          B = record { od = record { def = λ y → (y<x : y o< x ) → odef (ZChain.B (prev y y<x)) y } ; odmax = & A ; <odmax = {!!} } 
      ... | tri> ¬a ¬b c = {!!}
      zorn00 : Maximal A _<_
      zorn00 with is-o∅ ( & HasMaximal )