changeset 710:d20ba4b64ef3

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Thu, 14 Jul 2022 06:00:18 +0900
parents 6795b58f2f0c
children b1d468186e68
files src/zorn.agda
diffstat 1 files changed, 36 insertions(+), 24 deletions(-) [+]
line wrap: on
line diff
--- a/src/zorn.agda	Wed Jul 13 21:29:53 2022 +0900
+++ b/src/zorn.agda	Thu Jul 14 06:00:18 2022 +0900
@@ -520,26 +520,21 @@
           no-extenion is-max  = record { initial = pinit ; chain∋init = pcy 
               ;  chain⊆A = pchain⊆A ;  f-next = pnext ;  f-total = ptotal ; is-max = is-max }
 
-          same-chain : ¬ (odef pchain x) → pchain ≡ UnionCF A f mf ay (ZChain.supf zc) (Oprev.oprev op )
-          same-chain = ?
+          zcp : {a b : Ordinal} → odef pchain a 
+              → pchain ≡ UnionCF A f mf ay (ZChain.supf zc) (Oprev.oprev op )
+              → b o< x → (ab : odef A b) 
+              → HasPrev A pchain ab f ∨  IsSup A pchain ab 
+              → * a < * b → odef pchain b
+          zcp {a} {b} za cheq b<x ab P a<b = subst (λ k → odef k b ) (sym cheq) ( 
+                   ZChain.is-max zc (subst (λ k → odef k a) cheq za) (subst (λ k → b o< k ) (sym (Oprev.oprev=x op)) b<x) ab 
+                       (subst (λ k → HasPrev A k ab f ∨  IsSup A k ab ) cheq P)  a<b )
 
-          zcp : {a b : Ordinal} → odef pchain a → b o< x → (ab : odef A b) →
-                    HasPrev A pchain ab f ∨  IsSup A pchain ab →
-                            * a < * b → odef pchain b
-          zcp {a} {b} za b<x ab P a<b = zc6 where
-                zc7 : {z : Ordinal } → (z o< x) ∨  (z ≡ y) →  (z o< Oprev.oprev op) ∨ (z ≡ y)
-                zc7 {z} (case1 z<x) = ?
-                zc7 {z} (case2 z=y) = case2 z=y
-                zc5 : odef pchain a → odef (UnionCF A f mf ay (ZChain.supf zc) (Oprev.oprev op)) a
-                zc5 za = ⟪ proj1 za , record { u = UChain.u (proj2 za)  ; u<x = zc7 (UChain.u<x (proj2 za))  ; uchain = UChain.uchain (proj2 za)  } ⟫
-                zc2 : odef (UnionCF A f mf ay (ZChain.supf zc) px ) b
-                zc2 = ZChain.is-max zc (zc5 za) (subst (λ k → b o< k ) (sym (Oprev.oprev=x op)) b<x) ab ? a<b
-                zc3 : (UChain.u (proj2 zc2) o< x) ∨ (UChain.u (proj2 zc2) ≡ y)
-                zc3 with UChain.u<x (proj2 zc2) 
-                ... | case1 lt = case1 (ordtrans lt px<x)
-                ... | case2 eq = case2 eq
-                zc6 : odef pchain b
-                zc6 = ⟪ ab , record { u = UChain.u (proj2 zc2) ; u<x = zc3 ; uchain = UChain.uchain (proj2 zc2) } ⟫ 
+          chain-mono : UnionCF A f mf ay (ZChain.supf zc) (Oprev.oprev op ) ⊆' pchain
+          chain-mono {a} za = ⟪ proj1 za , record { u = UChain.u (proj2 za)  ; u<x = zc11 ; uchain = UChain.uchain (proj2 za)  }  ⟫ where
+              zc11 : (UChain.u (proj2 za) o< x) ∨ (UChain.u (proj2 za) ≡ y)
+              zc11 with UChain.u<x (proj2 za)
+              ... | case1 z<x = case1 (ordtrans z<x px<x )
+              ... | case2 z=y = case2 z=y
 
           zc4 : ZChain A f mf ay x 
           zc4 with ODC.∋-p O A (* x)
@@ -549,7 +544,7 @@
                             * a < * b → odef pchain b
                 zc1 {a} {b} za b<ox ab P a<b with osuc-≡< b<ox
                 ... | case1 eq = ⊥-elim ( noax (subst (λ k → odef A k) (trans eq (sym &iso)) ab ) )
-                ... | case2 lt = zcp za lt ab P a<b where
+                ... | case2 lt = zcp za ? lt ab P a<b where
                      zc10 : odef pchain b
                      zc10 = ZChain.is-max ? za ?  ab P a<b
           ... | yes ax with ODC.p∨¬p O ( HasPrev A (ZChain.chain zc ) ax f )   
@@ -559,7 +554,7 @@
                     HasPrev A pchain ab f ∨  IsSup A pchain ab →
                             * a < * b → odef pchain b
                 zc7 {a} {b} za b<ox ab P a<b with osuc-≡< b<ox
-                ... | case2 lt = zcp za lt ab P a<b
+                ... | case2 lt = zcp za ? lt ab P a<b
                 ... | 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 )
@@ -578,11 +573,12 @@
                             HasPrev A pchain ab f ∨ IsSup A pchain   ab →
                             * a < * b → odef pchain b
                 z18 {a} {b} za b<x ab P a<b with osuc-≡< b<x
-                ... | case2 lt = zcp za lt ab P a<b
+                ... | case2 lt = zcp za ? lt ab P a<b
                 ... | case1 b=x with P
-                ... | case1 pr = ⊥-elim ( ¬fy<x record {y = HasPrev.y pr ; ay = ? ; x=fy = trans (trans &iso (sym b=x) ) (HasPrev.x=fy pr ) } )
+                ... | case1 pr = subst (λ k → odef pchain k ) (sym (HasPrev.x=fy pr)) ( pnext (HasPrev.ay pr) )
                 ... | case2 b=sup = ⊥-elim ( ¬x=sup record { 
-                      x<sup = λ {y} zy → subst (λ k → (y ≡ k) ∨ (y << k)) (trans b=x (sym &iso)) (IsSup.x<sup b=sup ? )  } ) 
+                      x<sup = λ {y} zy → subst (λ k → (y ≡ k) ∨ (y << k)) (trans b=x (sym &iso)) 
+                          (IsSup.x<sup b=sup (chain-mono zy) )  } ) 
      ... | no op = zc5 where
           pzc : (z : Ordinal) → z o< x → ZChain A f mf ay z
           pzc z z<x = prev z z<x
@@ -632,6 +628,22 @@
           ... | tri≈ ¬a b ¬c = spu
           ... | tri> ¬a ¬b c = spu
 
+          zcp : {a b : Ordinal} → odef pchain a 
+              → pchain ≡ UnionCF A f mf ay psupf x
+              → b o< x → (ab : odef A b) 
+              → HasPrev A pchain ab f ∨  IsSup A pchain ab 
+              → * a < * b → odef pchain b
+          zcp {a} {b} za cheq b<x ab P a<b = ? where
+              zc12 = ZChain.is-max (pzc _ ? ) ? ? ab 
+                       (subst (λ k → HasPrev A k ab f ∨  IsSup A k ab ) ? P)  a<b 
+
+          chain-mono : pchain ⊆'  UnionCF A f mf ay psupf x  
+          chain-mono {a} za = ⟪ proj1 za , record { u = UChain.u (proj2 za)  ; u<x = UChain.u<x (proj2 za) ; uchain = zc11 }  ⟫ where
+              zc11 : Chain A f mf ay psupf (UChain.u (proj2 za)) a
+              zc11 with UChain.uchain (proj2 za)
+              ... | ch-init .a x = ch-init a x
+              ... | ch-is-sup is-sup fc = ch-is-sup ? ?
+
           zc5 : ZChain A f mf ay x 
           zc5 with ODC.∋-p O A (* x)
           ... | no noax = no-extenion ? where -- ¬ A ∋ p, just skip