changeset 565:111d3b641177

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sun, 01 May 2022 01:17:54 +0900
parents b8eb708dec3c
children a64dad8d2e93
files src/zorn.agda
diffstat 1 files changed, 28 insertions(+), 27 deletions(-) [+]
line wrap: on
line diff
--- a/src/zorn.agda	Sat Apr 30 17:30:20 2022 +0900
+++ b/src/zorn.agda	Sun May 01 01:17:54 2022 +0900
@@ -242,7 +242,7 @@
       f-total : IsTotalOrderSet chain 
       f-next : {a : Ordinal } → odef chain a → odef chain (f a)
       f-immediate : { x y : Ordinal } → odef chain x → odef chain y → ¬ ( ( * x < * y ) ∧ ( * y < * (f x )) )
-      is-max :  {a b : Ordinal } → (ca : odef chain a ) →  b o< z  → (ba : odef A b) 
+      is-max :  {a b : Ordinal } → (ca : odef chain a ) →  b o< osuc z  → (ba : odef A b) 
           → Prev< A chain ba f
                ∨  (sup (& chain) (subst (λ k → k  ⊆ A) (sym *iso) chain⊆A)  (subst (λ k → IsTotalOrderSet k) (sym *iso) f-total) ≡ b )
           → * a < * b  → odef chain b
@@ -316,7 +316,7 @@
      z03 f mf zc = z14 where
            chain = ZChain.chain zc
            sp1 = sp0 f mf zc
-           z10 :  {a b : Ordinal } → (ca : odef chain a ) → b o< & A → (ab : odef A b ) 
+           z10 :  {a b : Ordinal } → (ca : odef chain a ) → b o< osuc (& A) → (ab : odef A b ) 
               →  Prev< A chain ab f
                    ∨  (supO (& chain) (subst (λ k → k  ⊆ A) (sym *iso) (ZChain.chain⊆A zc))  (subst (λ k → IsTotalOrderSet k) (sym *iso) (ZChain.f-total zc)) ≡ b )
               → * a < * b  → odef chain b
@@ -326,7 +326,7 @@
            z12 : odef chain (& (SUP.sup sp1))
            z12 with o≡? (& s) (& (SUP.sup sp1))
            ... | yes eq = subst (λ k → odef chain k) eq ( ZChain.chain∋x zc )
-           ... | no ne = z10 {& s} {& (SUP.sup sp1)} ( ZChain.chain∋x zc ) z11 (SUP.A∋maximal sp1)  (case2 refl ) z13 where
+           ... | no ne = z10 {& s} {& (SUP.sup sp1)} ( ZChain.chain∋x zc ) (ordtrans z11 <-osuc ) (SUP.A∋maximal sp1)  (case2 refl ) z13 where
                z13 :  * (& s) < * (& (SUP.sup sp1))
                z13 with SUP.x<sup sp1 (subst (λ k → odef k (& s)) (sym *iso) ( ZChain.chain∋x zc ))
                ... | case1 eq = ⊥-elim ( ne (cong (&) eq) )
@@ -374,30 +374,30 @@
           zc0 : ZChain A ay f mf supO (Oprev.oprev op)
           zc0 = prev px (subst (λ k → px o< k) (Oprev.oprev=x op) <-osuc ) ay
           zc4 : ZChain A ay f mf supO x 
-          zc4 with ODC.∋-p O A (* px)
-          ... | no noapx =  -- ¬ A ∋ px, just skip
+          zc4 with ODC.∋-p O A (* x)
+          ... | no noapx =  -- ¬ A ∋ p, just skip
                  record { chain = ZChain.chain zc0 ; chain⊆A = ZChain.chain⊆A zc0 ; initial = ZChain.initial zc0 
                      ; f-total = ZChain.f-total zc0 ; f-next =  ZChain.f-next zc0
                      ; f-immediate =  ZChain.f-immediate zc0 ; chain∋x  = ZChain.chain∋x zc0 ; is-max = zc11 }  where -- no extention
-                zc11 : {a b : Ordinal} → odef (ZChain.chain zc0) a → b o< x → (ba : odef A b) →
+                zc11 : {a b : Ordinal} → odef (ZChain.chain zc0) a → b o< osuc x → (ba : odef A b) →
                     Prev< A (ZChain.chain zc0) ba f ∨ (& (SUP.sup (supP (* (& (ZChain.chain zc0)))
                        (subst (λ k → k ⊆ A) (sym *iso) (ZChain.chain⊆A zc0))
                        (subst IsTotalOrderSet (sym *iso) (ZChain.f-total zc0)))) ≡ b) →
                             * a < * b → odef (ZChain.chain zc0) b
-                zc11 {a} {b} za b<x ba P a<b with osuc-≡< (subst (λ k → b o< k) (sym (Oprev.oprev=x op)) b<x) 
-                ... | case1 eq = ⊥-elim ( noapx (subst (λ k → odef A k) (trans eq (sym &iso) ) ba ))
-                ... | case2 lt = ZChain.is-max zc0 za lt ba P a<b
-          ... | yes apx with ODC.p∨¬p O ( Prev< A (ZChain.chain zc0) apx f )   -- we have to check adding x preserve is-max ZChain A ay f mf supO px
+                zc11 {a} {b} za b<ox ba P a<b with osuc-≡< b<ox
+                ... | case1 eq = ⊥-elim ( noapx (subst (λ k → odef A k) (trans eq (sym &iso)) ba ) )
+                ... | case2 lt = ZChain.is-max zc0 za (subst (λ k → b o< k ) (sym (Oprev.oprev=x op)) lt )  ba P a<b
+          ... | yes apx with ODC.p∨¬p O ( Prev< A (ZChain.chain zc0) apx f )   -- we have to check adding x preserve is-max ZChain A ay f mf supO x
           ... | case1 pr = zc9 where -- we have previous A ∋ z < x , f z ≡ x, so chain ∋ f z ≡ x because of f-next
                 chain = ZChain.chain zc0
-                zc17 :  {a b : Ordinal} → odef (ZChain.chain zc0) a → b o< x → (ba : odef A b) →
+                zc17 :  {a b : Ordinal} → odef (ZChain.chain zc0) a → b o< osuc x → (ba : odef A b) →
                             Prev< A (ZChain.chain zc0) ba f ∨ (supO (& (ZChain.chain zc0))
                              (subst (λ k → k ⊆ A) (sym *iso) (ZChain.chain⊆A zc0))
                              (subst IsTotalOrderSet (sym *iso) (ZChain.f-total zc0)) ≡ b) →
                             * a < * b → odef (ZChain.chain zc0) b
-                zc17 {a} {b} za b<x ba P a<b with osuc-≡< (subst (λ k → b o< k) (sym (Oprev.oprev=x op)) b<x) 
-                ... | case2 lt = ZChain.is-max zc0 za lt ba P a<b
-                ... | case1 b=px = subst (λ k → odef chain k ) (trans (sym (Prev<.x=fy pr )) (trans &iso (sym b=px))) ( ZChain.f-next zc0 (Prev<.ay pr))
+                zc17 {a} {b} za b<ox ba P a<b with osuc-≡< b<ox
+                ... | case2 lt = ZChain.is-max zc0 za (subst (λ k → b o< k ) (sym (Oprev.oprev=x op)) lt) ba P a<b
+                ... | case1 b=x = subst (λ k → odef chain k ) (trans (sym (Prev<.x=fy pr )) (trans &iso (sym b=x)) ) ( ZChain.f-next zc0 (Prev<.ay pr))
                 zc9 :  ZChain A ay f mf supO x
                 zc9 = record { chain = ZChain.chain zc0 ; chain⊆A = ZChain.chain⊆A zc0 ; f-total = ZChain.f-total zc0 ; f-next =  ZChain.f-next zc0
                      ; initial = ZChain.initial zc0 ; f-immediate =  ZChain.f-immediate zc0 ; chain∋x  = ZChain.chain∋x zc0 ; is-max = zc17 }  -- no extention
@@ -469,28 +469,29 @@
                 ... | case2 sp<a | case1 b=sp = <-irr (case2 (subst ( λ  k → k < * a ) (trans *iso (sym b=sp)) sp<a  )) (proj1 p )
                 ... | case2 sp<a | case2 b<sp = <-irr (case2 (ptrans b<sp (subst (λ k → k < * a) *iso sp<a ))) (proj1 p )
                 simm {a} {b} (case2 sa) (case2 sb) p = fcn-imm {A} (& sp) {a} {b} f mf sa sb p
-                s-ismax : {a b : Ordinal} → odef schain a → b o< x → (ba : odef A b) →
+                s-ismax : {a b : Ordinal} → odef schain a → b o< osuc x → (ba : odef A b) →
                     Prev< A schain ba f ∨ (& (SUP.sup (supP (* (& schain))
                        (subst (λ k → k ⊆ A) (sym *iso) (record { incl = A∋schain }))
-                       (subst IsTotalOrderSet (sym *iso) scmp)))
-                     ≡ b) →
-                    * a < * b → odef schain b
-                s-ismax {a} {b} (case2 sa) b<x ba P a<b = {!!}
-                s-ismax {a} {b} (case1 sa) b<x ba P a<b with trio< b px
-                ... | tri< a₁ ¬b ¬c = case1 ( ZChain.is-max zc0 sa a₁ ba {!!} a<b )
-                ... | tri≈ ¬a b₁ ¬c = {!!}
-                ... | tri> ¬a ¬b c = {!!}
+                       (subst IsTotalOrderSet (sym *iso) scmp))) ≡ b)
+                     → * a < * b → odef schain b
+                s-ismax {a} {b} (case1 za) b<x ba (case1 Prev) a<b = {!!}
+                s-ismax {a} {b} (case2 sa) b<x ba (case1 Prev) a<b = {!!}
+                s-ismax {a} {b} (case1 za) b<x ba (case2 Sup) a<b = {!!}
+                s-ismax {a} {b} (case2 sa) b<x ba (case2 Sup) a<b = {!!}
           ... | case2 ¬x=sup =  -- x is not f y' nor sup of former ZChain from y
                    record { chain = ZChain.chain zc0 ; chain⊆A = ZChain.chain⊆A zc0 ; f-total = ZChain.f-total zc0 ; f-next = ZChain.f-next zc0
-                     ; initial = ZChain.initial zc0 ; f-immediate = ZChain.f-immediate zc0 ; chain∋x  =  ZChain.chain∋x zc0 ; is-max = {!!} }  where -- no extention
-                z18 :  {a b : Ordinal} → odef (ZChain.chain zc0) a → b o< x → (ba : odef A b) →
+                     ; initial = ZChain.initial zc0 ; f-immediate = ZChain.f-immediate zc0 ; chain∋x  =  ZChain.chain∋x zc0 ; is-max = z18 }  where -- no extention
+                z18 :  {a b : Ordinal} → odef (ZChain.chain zc0) a → b o< osuc x → (ba : odef A b) →
                             Prev< A (ZChain.chain zc0) ba f ∨ (& (SUP.sup (supP (* (& (ZChain.chain zc0)))
                                (subst (λ k → k ⊆ A) (sym *iso) (ZChain.chain⊆A zc0))
                                (subst IsTotalOrderSet (sym *iso) (ZChain.f-total zc0))))
                              ≡ b) →
                             * a < * b → odef (ZChain.chain zc0) b
-                z18 {a} {b} za b<x ba (case1 p) a<b = {!!}
-                z18 {a} {b} za b<x ba (case2 p) a<b = {!!}
+                z18 {a} {b} za b<x ba p a<b with osuc-≡< b<x
+                ... | case2 lt = ZChain.is-max zc0 za (subst (λ k → b o< k ) (sym ( Oprev.oprev=x op))  lt ) ba p a<b 
+                ... | case1 b=x with p
+                ... | case1 pr = ⊥-elim ( ¬fy<x record {y = Prev<.y pr ; ay = Prev<.ay pr ; x=fy = trans (trans &iso (sym b=x) ) (Prev<.x=fy pr ) } )
+                ... | case2 b=sup = ⊥-elim ( ¬x=sup {!!}) 
      ... | no ¬ox =  {!!}  where --- limit ordinal case
          record UZFChain (z : Ordinal) : Set n where -- Union of ZFChain from y which has maximality o< x
             field