# HG changeset patch # User Shinji KONO # Date 1719713013 -32400 # Node ID ba406e2ba8af6d519b35b713882e91523ff18e7f # Parent 22523e8af390d062356a3c57a5d4bcabd215d95d ... diff -r 22523e8af390 -r ba406e2ba8af src/zorn.agda --- a/src/zorn.agda Sun Jun 30 06:44:27 2024 +0900 +++ b/src/zorn.agda Sun Jun 30 11:03:33 2024 +0900 @@ -13,7 +13,10 @@ module zorn {n : Level } (O : Ordinals {n} ) (HODAxiom : HODBase.ODAxiom O) (ho< : OD.ODAxiom-ho< O HODAxiom ) (AC : OD.AxiomOfChoice O HODAxiom ) - (_<_ : (x y : OD.HOD O HODAxiom) → Set n ) (PO : IsStrictPartialOrder _≡_ _<_ ) where + (_<_ : (x y : OD.HOD O HODAxiom) → Set n ) + (<-cong : {x y w z : OD.HOD O HODAxiom} + → HODBase._==_ O (HODBase.HOD.od x) (HODBase.HOD.od w) → HODBase._==_ O (HODBase.HOD.od y) (HODBase.HOD.od z) → x < y → w < z ) + (PO : IsStrictPartialOrder _≡_ _<_ ) where -- open import Relation.Binary.Structures @@ -21,6 +24,7 @@ open import Data.Nat hiding ( _≤_ ; _<_ ) import OrdUtil +open inOrdinal O open Ordinals.Ordinals O open Ordinals.IsOrdinals isOrdinal @@ -90,8 +94,8 @@ ftrans<-≤ {x} {y} {z} x ¬a ¬b c = ⊥-elim ( nat-≤> x ¬a ¬b c = tri> (λ lt → <-irr (case2 fc12) lt) (λ eq → <-irr (case1 eq) fc12) fc12 where fc12 : * y < * x @@ -271,7 +274,7 @@ → (aa : odef A a ) →( {y : Ordinal} → FClosure A f a y → (y ≡ b ) ∨ (y << b )) → a ≡ b → f a ≡ a fc-stop A f mf {a} {b} aa x≤sup a=b with x≤sup (fsuc a (init aa refl )) ... | case1 eq = trans eq (sym a=b) -... | case2 lt = ⊥-elim (<-irr (case1 (cong (λ k → * (f k) ) (sym a=b))) (ftrans<-≤ lt fc00 ) ) where +... | case2 lt = ⊥-elim (<-irr (case1 (cong f (sym a=b))) (ftrans<-≤ lt fc00 ) ) where fc00 : b ≤ (f b) fc00 = proj1 (mf _ (subst (λ k → odef A k) a=b aa )) @@ -463,43 +466,29 @@ ... | case1 eq = ⊥-elim ( o<¬≡ eq sa ¬a ¬b c with ≤-ftrans (order (o<→≤ sua (λ lt → <-irr (case2 b (λ lt → <-irr (case2 b (λ lt → <-irr (case2 b (<-irr (case2 lt1)) (λ eq → <-irr (case1 eq) lt1) lt1 where - lt1 : a0 < b0 - lt1 = subst₂ (λ j k → j < k ) ? ? lt - ptotal (case2 a) (case2 b) = subst₂ (λ j k → Tri (j < k) (j ≡ k) (k < j)) ? ? (fcn-cmp (supf0 px) f mf (proj1 a) (proj1 b)) + ... | case1 eq = tri≈ (<-irr (case1 eq)) (sym eq) (<-irr (case1 (sym eq))) + ... | case2 lt = tri> (<-irr (case2 lt)) (λ eq → <-irr (case1 eq) lt) lt + ptotal (case2 a) (case2 b) = fcn-cmp (supf0 px) f mf (proj1 a) (proj1 b) pcha : pchainpx ⊆ A pcha (case1 lt) = proj1 lt @@ -1217,39 +1192,39 @@ ptotalU : IsTotalOrderSet pchainU ptotalU {a} {b} ia ib with trio< (IChain-i (proj2 ia)) (IChain-i (proj2 ib)) ... | tri< ia (λ lt → <-irr (case2 fc11) lt) (λ eq → <-irr (case1 eq) fc11) fc11 where - fc11 : * (& b) < * (& a) - fc11 = subst (λ k → k < * (& a) ) (cong (*) (sym eq1)) lt + fc11 : * b < * a + fc11 = subst (λ k → k < * a ) (cong (*) (sym eq1)) lt ... | case2 lt = tri> (λ lt → <-irr (case2 fc12) lt) (λ eq → <-irr (case1 eq) fc12) fc12 where - fc12 : * (& b) < * (& a) - fc12 = ftrans<-≤ lt (subst (λ k → k ≤ & a) (sym (zeq _ _ (o<→≤ <-osuc) o≤-refl )) (s≤fc _ f mf fca ) ) - pcmp (ic-isup i i ¬a ¬b ib (<-irr (case2 lt1)) (λ eq → <-irr (case1 eq) lt1) lt1 where - lt1 : a0 < b0 - lt1 = subst₂ (λ j k → j < k ) ? ? lt - ptotalS (case2 a) (case2 b) = subst₂ (λ j k → Tri (j < k) (j ≡ k) (k < j)) ? ? (fcn-cmp spu0 f mf (proj1 a) (proj1 b)) + ... | case1 eq = tri≈ (<-irr (case1 eq)) (sym eq) (<-irr (case1 (sym eq))) + ... | case2 lt = tri> (<-irr (case2 lt)) (λ eq → <-irr (case1 eq) lt) lt + ptotalS (case2 a) (case2 b) = fcn-cmp spu0 f mf (proj1 a) (proj1 b) S⊆A : pchainS ⊆ A S⊆A (case1 lt) = proj1 lt @@ -1524,7 +1491,7 @@ -- f eventualy stop -- we can prove contradict here, it is here for a historical reason -- - fixpoint : ( f : Ordinal → Ordinal ) → (mf : ≤-monotonic-f A f ) (mf< : <-monotonic-f A f ) (zc : ZChain A f mf< as0 (& A) ) + fixpoint : ( f : Ordinal → Ordinal ) → (mf : ≤-monotonic-f A f ) (mf< : <-monotonic-f A f ) (zc : ZChain A f mf< as (& A) ) → (sp1 : MinSUP A (ZChain.chain zc)) → f (MinSUP.sup sp1) ≡ MinSUP.sup sp1 fixpoint f mf mf< zc sp1 = z14 where @@ -1534,17 +1501,17 @@ sp = MinSUP.sup sp1 asp : odef A sp asp = MinSUP.as sp1 - ay = as0 + ay = as z10 : {a b : Ordinal } → (ca : odef chain a ) → b o< (& A) → (ab : odef A b ) → HasPrev A chain f b ∨ IsSUP A (UnionCF A f ay (ZChain.supf zc) b) b → * a < * b → odef chain b - z10 = ZChain1.is-max (SZ1 f mf mf< as0 zc (& A) o≤-refl ) + z10 = ZChain1.is-max (SZ1 f mf mf< as zc (& A) o≤-refl ) z22 : sp o< & A z22 = odef< asp z12 : odef chain sp z12 with o≡? (& s) sp ... | yes eq = subst (λ k → odef chain k) eq ( ZChain.chain∋init zc ) - ... | no ne = ZChain1.is-max (SZ1 f mf mf< as0 zc (& A) o≤-refl) {& s} {sp} ( ZChain.chain∋init zc ) (odef< asp) asp (case2 z19 ) z13 where + ... | no ne = ZChain1.is-max (SZ1 f mf mf< as zc (& A) o≤-refl) {& s} {sp} ( ZChain.chain∋init zc ) (odef< asp) asp (case2 z19 ) z13 where z13 : * (& s) < * sp z13 with MinSUP.x≤sup sp1 ( ZChain.chain∋init zc ) ... | case1 eq = ⊥-elim ( ne eq ) @@ -1553,7 +1520,7 @@ z19 = record { ax = asp ; x≤sup = z20 } where z20 : {y : Ordinal} → odef (UnionCF A f ay (ZChain.supf zc) sp) y → (y ≡ sp) ∨ (y << sp) z20 {y} zy with MinSUP.x≤sup sp1 - (subst (λ k → odef chain k ) (sym &iso) (chain-mono f mf as0 supf (ZChain.supf-mono zc) (o<→≤ z22) zy )) + (subst (λ k → odef chain k ) (sym &iso) (chain-mono f mf as supf (ZChain.supf-mono zc) (o<→≤ z22) zy )) ... | case1 y=p = case1 (subst (λ k → k ≡ _ ) &iso y=p ) ... | case2 y

¬a ¬b c = ⊥-elim z17 where z15 : (f sp ≡ MinSUP.sup sp1) ∨ (* (f sp) < * (MinSUP.sup sp1) ) z15 = MinSUP.x≤sup sp1 (ZChain.f-next zc z12 ) z17 : ⊥ z17 with z15 - ... | case1 eq = ¬b (cong (*) eq) - ... | case2 lt = ¬a lt + ... | case1 eq = ¬b ? + ... | case2 lt = ¬a ? -- ZChain contradicts ¬ Maximal -- @@ -1578,16 +1545,16 @@ -- ¬ Maximal create cf which is a <-monotonic function by axiom of choice. This contradicts fix point of ZChain -- - ¬Maximal→¬cf-mono : (nmx : ¬ Maximal A ) → (zc : ZChain A (cf nmx) (cf-is-<-monotonic nmx) as0 (& A)) → ⊥ - ¬Maximal→¬cf-mono nmx zc = <-irr0 {* (cf nmx c)} {* c} - (subst (λ k → odef A k ) (sym &iso) (proj1 (is-cf nmx (MinSUP.as msp1 )))) - (subst (λ k → odef A k) (sym &iso) (MinSUP.as msp1) ) - (case1 ( cong (*)( fixpoint (cf nmx) (cf-is-≤-monotonic nmx ) (cf-is-<-monotonic nmx ) zc msp1 ))) -- x ≡ f x ̄ - (proj1 (cf-is-<-monotonic nmx c (MinSUP.as msp1 ))) where -- x < f x - + ¬Maximal→¬cf-mono : (nmx : ¬ Maximal A ) → (zc : ZChain A (cf nmx) (cf-is-<-monotonic nmx) as (& A)) → ⊥ + ¬Maximal→¬cf-mono nmx zc = <-irr {cf nmx c} {c} + ? -- (subst (λ k → odef A k ) (sym &iso) (proj1 (is-cf nmx (MinSUP.as msp1 )))) + ? -- (subst (λ k → odef A k) (sym &iso) (MinSUP.as msp1) ) + -- (case1 ( fixpoint (cf nmx) (cf-is-≤-monotonic nmx ) (cf-is-<-monotonic nmx ) zc msp1 ) -- x ≡ f x ̄ + -- (proj1 (cf-is-<-monotonic nmx c (MinSUP.as msp1)))) where -- x < f x + where supf = ZChain.supf zc msp1 : MinSUP A (ZChain.chain zc) - msp1 = msp0 (cf nmx) (cf-is-<-monotonic nmx) as0 zc + msp1 = msp0 (cf nmx) (cf-is-<-monotonic nmx) as zc c : Ordinal c = MinSUP.sup msp1 @@ -1601,7 +1568,7 @@ zorn01 = proj1 zorn03 zorn02 : {x : HOD} → A ∋ x → ¬ (minimal HasMaximal (λ eq → not (=od∅→≡o∅ eq)) < x) zorn02 {x} ax m