changeset 924:a48dc906796c

supf usp0 instead of supf (& A) ?
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Wed, 19 Oct 2022 09:10:27 +0900
parents 85f6238a38db
children babd8ac79a91
files src/zorn.agda
diffstat 1 files changed, 46 insertions(+), 46 deletions(-) [+]
line wrap: on
line diff
--- a/src/zorn.agda	Wed Oct 19 08:41:42 2022 +0900
+++ b/src/zorn.agda	Wed Oct 19 09:10:27 2022 +0900
@@ -1316,33 +1316,31 @@
           uz01 : Tri (* (& a) < * (& b)) (* (& a) ≡ * (& b)) (* (& b) < * (& a) )
           uz01 = ?
 
-     sp0 : ( f : Ordinal → Ordinal ) → (mf : ≤-monotonic-f A f ) {x y : Ordinal} (ay : odef A y)  
+     usp0 : ( f : Ordinal → Ordinal ) → (mf : ≤-monotonic-f A f ) {x y : Ordinal} (ay : odef A y)  
          → ( supf : Ordinal → Ordinal )
          → SUP A (UnionZF f mf ay supf )
-     -- sp0 f mf {x} ay = supP (UnionZF f mf ay ) (λ lt → proj1 (ZChainP.zc lt)) (uztotal f mf ay)
-     sp0 f mf {x} ay supf  = supP (UnionZF f mf ay supf ) (λ lt → ? ) (uztotal f mf ay supf )
+     usp0 f mf {x} ay supf  = supP (UnionZF f mf ay supf ) (λ lt → ? ) (uztotal f mf ay supf )
 
-     sp00 : ( f : Ordinal → Ordinal ) → (mf : ≤-monotonic-f A f ) {x y : Ordinal} (ay : odef A y)  
+     sp0 : ( f : Ordinal → Ordinal ) → (mf : ≤-monotonic-f A f ) {x y : Ordinal} (ay : odef A y)  
          → (zc : ZChain A f mf ay x ) 
          → SUP A (UnionCF A f mf ay (ZChain.supf zc) x)
-     sp00 f mf {x} ay zc = supP (UnionCF A f mf ay (ZChain.supf zc) x) (ZChain.chain⊆A zc) ztotal where
+     sp0 f mf {x} ay zc = supP (UnionCF A f mf ay (ZChain.supf zc) x) (ZChain.chain⊆A zc) ztotal where
         ztotal : IsTotalOrderSet (ZChain.chain zc) 
         ztotal {a} {b} ca cb = subst₂ (λ j k → Tri (j < k) (j ≡ k) (k < j)) *iso *iso uz01 where 
                uz01 : Tri (* (& a) < * (& b)) (* (& a) ≡ * (& b)) (* (& b) < * (& a) )
                uz01 = chain-total A f mf ay (ZChain.supf zc) ( (proj2 ca)) ( (proj2 cb)) 
 
-     fixpoint :  ( f : Ordinal → Ordinal ) → (mf : ≤-monotonic-f A f )  
-            → f (& (SUP.sup (sp0 f mf as0 ? ))) ≡ & (SUP.sup (sp0 f mf as0 ? ))
-     fixpoint f mf = z14 where
-           chain = UnionZF f mf as0 ?
-           supf : Ordinal → Ordinal 
-           supf = ?
-           sp1 : SUP A ?
-           sp1 = sp0 f mf as0 ?
+     fixpoint :  ( f : Ordinal → Ordinal ) → (mf : ≤-monotonic-f A f )  (zc : ZChain A f mf as0 (& A) )
+            → f (& (SUP.sup (sp0 f mf as0 zc ))) ≡ & (SUP.sup (sp0 f mf as0 zc  ))
+     fixpoint f mf zc = z14 where
+           chain = ZChain.chain zc
+           supf = ZChain.supf zc
+           sp1 : SUP A chain
+           sp1 = sp0 f mf as0 zc 
            z10 :  {a b : Ordinal } → (ca : odef chain a ) → supf b o< supf (& A) → (ab : odef A b ) 
               →  HasPrev A chain b f ∨  IsSup A chain {b} ab 
               → * a < * b  → odef chain b
-           z10 = ? -- ZChain1.is-max (SZ1 f mf as0 zc (& A) )
+           z10 = ZChain1.is-max (SZ1 f mf as0 zc (& A) )
            z22 : & (SUP.sup sp1) o< & A
            z22 = c<→o< ( SUP.as sp1 )
            z21 : supf (& (SUP.sup sp1)) o< supf (& A)
@@ -1351,52 +1349,54 @@
            -- z21 = subst (λ k → k o< & A) &iso ( c<→o< (subst (λ k → odef A k) (sym &iso) (ZChain.asupf zc ) ))
            z12 : odef chain (& (SUP.sup sp1))
            z12 with o≡? (& s) (& (SUP.sup sp1))
-           ... | yes eq = subst (λ k → odef chain k) eq ? -- ( ZChain.chain∋init zc )
-           ... | no ne = ? where  -- ZChain1.is-max (SZ1 f mf as0 zc (& A)) {& s} {& (SUP.sup sp1)} ( ZChain.chain∋init zc ) z21 (SUP.as sp1)
-                -- (case2 ? ) z13 where
+           ... | yes eq = subst (λ k → odef chain k) eq ( ZChain.chain∋init zc )
+           ... | no ne = ZChain1.is-max (SZ1 f mf as0 zc (& A)) {& s} {& (SUP.sup sp1)} ( ZChain.chain∋init zc ) z21 (SUP.as sp1)
+                (case2 z19 ) z13 where
                z13 :  * (& s) < * (& (SUP.sup sp1))
-               z13 with SUP.x<sup sp1 ?
+               z13 with SUP.x<sup sp1 ( ZChain.chain∋init zc )
                ... | case1 eq = ⊥-elim ( ne (cong (&) eq) )
                ... | case2 lt = subst₂ (λ j k → j < k ) (sym *iso) (sym *iso) lt
                z19 : IsSup A chain {& (SUP.sup sp1)} (SUP.as sp1)
                z19 = record {   x<sup = z20 }  where
                    z20 :  {y : Ordinal} → odef chain y → (y ≡ & (SUP.sup sp1)) ∨ (y << & (SUP.sup sp1))
-                   z20 {y} zy with SUP.x<sup sp1 ?
+                   z20 {y} zy with SUP.x<sup sp1 (subst (λ k → odef chain k ) (sym &iso) zy)
                    ... | case1 y=p = case1 (subst (λ k → k ≡ _ ) &iso ( cong (&) y=p ))
                    ... | case2 y<p = case2 (subst (λ k → * y < k ) (sym *iso) y<p )
-           z14 :  f (& (SUP.sup (sp0 f mf as0 ? ))) ≡ & (SUP.sup (sp0 f mf as0 ? ))
-           z14 = ? -- with ?
---           ... | tri< a ¬b ¬c = ⊥-elim z16 where
---               z16 : ⊥
---               z16 with proj1 (mf (& ( SUP.sup sp1)) ( SUP.as sp1 ))
---               ... | case1 eq = ⊥-elim (¬b (subst₂ (λ j k → j ≡ k ) refl *iso (sym eq) ))
---               ... | case2 lt = ⊥-elim (¬c (subst₂ (λ j k → k < j ) refl *iso lt ))
---           ... | tri≈ ¬a b ¬c = subst ( λ k → k ≡ & (SUP.sup sp1) ) &iso ( cong (&) b )
---           ... | tri> ¬a ¬b c = ⊥-elim z17 where
---               z15 : (* (f ( & ( SUP.sup sp1 ))) ≡ SUP.sup sp1) ∨ (* (f ( & ( SUP.sup sp1 ))) <  SUP.sup sp1)
---               z15  = SUP.x<sup sp1 ? -- (subst (λ k → odef chain k ) (sym &iso) (ZChain.f-next zc z12 ))
---               z17 : ⊥
---               z17 with z15
---               ... | case1 eq = ¬b eq
---               ... | case2 lt = ¬a lt
+           ztotal : IsTotalOrderSet (ZChain.chain zc)
+           ztotal {a} {b} ca cb = subst₂ (λ j k → Tri (j < k) (j ≡ k) (k < j)) *iso *iso uz01 where 
+               uz01 : Tri (* (& a) < * (& b)) (* (& a) ≡ * (& b)) (* (& b) < * (& a) )
+               uz01 = chain-total A f mf as0 supf ( (proj2 ca)) ( (proj2 cb)) 
+           z14 :  f (& (SUP.sup (sp0 f mf as0 zc ))) ≡ & (SUP.sup (sp0 f mf as0 zc ))
+           z14 with ztotal (subst (λ k → odef chain k) (sym &iso)  (ZChain.f-next zc z12 )) z12 
+           ... | tri< a ¬b ¬c = ⊥-elim z16 where
+               z16 : ⊥
+               z16 with proj1 (mf (& ( SUP.sup sp1)) ( SUP.as sp1 ))
+               ... | case1 eq = ⊥-elim (¬b (subst₂ (λ j k → j ≡ k ) refl *iso (sym eq) ))
+               ... | case2 lt = ⊥-elim (¬c (subst₂ (λ j k → k < j ) refl *iso lt ))
+           ... | tri≈ ¬a b ¬c = subst ( λ k → k ≡ & (SUP.sup sp1) ) &iso ( cong (&) b )
+           ... | tri> ¬a ¬b c = ⊥-elim z17 where
+               z15 : (* (f ( & ( SUP.sup sp1 ))) ≡ SUP.sup sp1) ∨ (* (f ( & ( SUP.sup sp1 ))) <  SUP.sup sp1)
+               z15  = SUP.x<sup sp1 (subst (λ k → odef chain k ) (sym &iso) (ZChain.f-next zc z12 ))
+               z17 : ⊥
+               z17 with z15
+               ... | case1 eq = ¬b eq
+               ... | case2 lt = ¬a lt
+
 
      -- ZChain contradicts ¬ Maximal
      --
      -- ZChain forces fix point on any ≤-monotonic function (fixpoint)
      -- ¬ Maximal create cf which is a <-monotonic function by axiom of choice. This contradicts fix point of ZChain
      --
-     z04 :  (nmx : ¬ Maximal A ) → ⊥
-     z04 nmx = ? where -- <-irr0  ? ? 
-           --(case1 ?)  -- x ≡ f x ̄
-           --  ? where          -- x < f x
-          sp1 : SUP A ? 
-          sp1 = sp0 (cf nmx) (cf-is-≤-monotonic nmx) as0 ?
-          z041 : ?
-          z041 = cong (*)( fixpoint (cf nmx) (cf-is-≤-monotonic nmx ) )
+
+     z04 :  (nmx : ¬ Maximal A ) → (zc : ZChain A (cf nmx) (cf-is-≤-monotonic nmx) as0 (& A)) → ⊥
+     z04 nmx zc = <-irr0  {* (cf nmx c)} {* c} (subst (λ k → odef A k ) (sym &iso) (proj1 (is-cf nmx (SUP.as  sp1 ))))
+                                               (subst (λ k → odef A (& k)) (sym *iso) (SUP.as sp1) )
+           (case1 ( cong (*)( fixpoint (cf nmx) (cf-is-≤-monotonic nmx ) zc ))) -- x ≡ f x ̄
+           (proj1 (cf-is-<-monotonic nmx c (SUP.as sp1 ))) where          -- x < f x
+          sp1 : SUP A (ZChain.chain zc)
+          sp1 = sp0 (cf nmx) (cf-is-≤-monotonic nmx) as0 zc 
           c = & (SUP.sup sp1)
-          z042 : ?
-          z042 = is-cf nmx (SUP.as  ? )
-          z043 = proj1 (cf-is-<-monotonic nmx ? (SUP.as ? ))
      zorn00 : Maximal A 
      zorn00 with is-o∅ ( & HasMaximal )  -- we have no Level (suc n) LEM 
      ... | no not = record { maximal = ODC.minimal O HasMaximal  (λ eq → not (=od∅→≡o∅ eq)) ; as = zorn01 ; ¬maximal<x  = zorn02 } where
@@ -1407,7 +1407,7 @@
          zorn01  = proj1  zorn03  
          zorn02 : {x : HOD} → A ∋ x → ¬ (ODC.minimal O HasMaximal (λ eq → not (=od∅→≡o∅ eq)) < x)
          zorn02 {x} ax m<x = proj2 zorn03 (& x) ax (subst₂ (λ j k → j < k) (sym *iso) (sym *iso) m<x )
-     ... | yes ¬Maximal = ⊥-elim ( z04 nmx ) where
+     ... | yes ¬Maximal = ⊥-elim ( z04 nmx ? ) where
          -- if we have no maximal, make ZChain, which contradict SUP condition
          nmx : ¬ Maximal A 
          nmx mx =  ∅< {HasMaximal} zc5 ( ≡o∅→=od∅  ¬Maximal ) where