# HG changeset patch # User Shinji KONO # Date 1650999870 -32400 # Node ID f0b45446c7ea00396ec174507ee1c5d0904f56ec # Parent 3826221c61a65f1ed42025073101e8f32e7be36f ... diff -r 3826221c61a6 -r f0b45446c7ea src/zorn.agda --- a/src/zorn.agda Tue Apr 26 16:10:30 2022 +0900 +++ b/src/zorn.agda Wed Apr 27 04:04:30 2022 +0900 @@ -162,7 +162,6 @@ A∋maximal : A ∋ maximal ¬maximalz : { a : Ordinal } → z o< osuc a → ¬ odef chain a f-total : IsTotalOrderSet chain f-next : {a : Ordinal } → odef chain a → a o< z → odef chain (f a) f-immediate : { x y : Ordinal } → odef chain x → odef chain y → ¬ ( ( * x < * y ) ∧ ( * y < * (f x )) ) @@ -237,6 +237,8 @@ x-is-maximal nmx {x} ax nogt m am = ⟪ subst (λ k → odef A k) &iso (subst (λ k → odef A k ) (sym &iso) ax) , ¬x ¬a ¬b c = ⊥-elim z17 where z15 : (* (f ( & ( SUP.sup sp1 ))) ≡ SUP.sup sp1) ∨ (* (f ( & ( SUP.sup sp1 ))) < SUP.sup sp1) - z15 = SUP.xz = λ {a} xz zc0 (ordtrans (subst (λ k → px o< k ) (Oprev.oprev=x op) <-osuc ) xz zc0 (subst (λ k → k o< osuc a) b <-osuc ) za ) + ... | tri> ¬a ¬b c = ⊥-elim ( ZChain.¬chain∋x>z zc0 (ordtrans c <-osuc ) za ) ... | yes ax = zc4 where -- we have previous ordinal and A ∋ x px = Oprev.oprev op zc0 : ZChain A sa f mf supO (Oprev.oprev op) zc0 = prev px (subst (λ k → px o< k) (Oprev.oprev=x op) <-osuc) + Afx : { x : Ordinal } → A ∋ * x → A ∋ * (f x) + Afx {x} ax = (subst (λ k → odef A k ) (sym &iso) (proj2 (mf x (subst (λ k → odef A k ) &iso ax)))) -- x is in the previous chain, use the same -- x has some y which y < x ∧ f y ≡ x -- x has no y which y < x @@ -347,18 +369,21 @@ zc5 : HOD zc5 = record { od = record { def = λ z → odef (ZChain.chain zc0) z ∨ (z ≡ f x) } ; odmax = & A ; {!!} {!!} zc14 where + ... | ⟪ case2 x (z01 ax (Afx ax) (case2 zc14)) (λ lt → z01 (Afx ax) ax (case1 lt) zc14) zc14 where zc14 : * x < * (f x) - zc14 = subst₂ (λ j k → j < k ) {!!} (subst (λ k → * (f x) ≡ k ) *iso (cong (*) (sym &iso ))) x {!!} {!!} zc14 where - zc14 : b < a - zc14 = subst₂ (λ j k → j < k ) zc10 (subst (λ k → * (f x) ≡ k ) *iso (cong (*) (sym zc11))) x ¬a ¬b c₁ = {!!} zc6 : IsTotalOrderSet zc5 zc6 = record { isEquivalence = IsStrictPartialOrder.isEquivalence IPO ; trans = λ {x} {y} {z} → IsStrictPartialOrder.trans IPO {x} {y} {z} @@ -390,11 +409,15 @@ ... | case2 not = record { chain = ZChain.chain zc0 ; chain⊆A = ZChain.chain⊆A zc0 ; f-total = ZChain.f-total zc0 ; f-next = {!!} ; f-immediate = {!!} ; chain∋x = ZChain.chain∋x zc0 ; is-max = {!!} } -- no extention ind f mf x prev | no ¬ox with trio< (& A) x --- limit ordinal case - ... | tri< a ¬b ¬c = record { chain = ZChain.chain zc0 ; chain⊆A = ZChain.chain⊆A zc0 ; f-total = ZChain.f-total zc0 ; f-next = {!!} - ; f-immediate = {!!} ; chain∋x = {!!} ; is-max = {!!} } where + ... | tri< a ¬b ¬c = record { chain = ZChain.chain zc0 ; chain⊆A = ZChain.chain⊆A zc0 ; f-total = ZChain.f-total zc0 + ; f-next = {!!} + ; f-immediate = {!!} ; chain∋x = ZChain.chain∋x zc0 ; is-max = {!!} } where zc0 = prev (& A) a ... | tri≈ ¬a b ¬c = {!!} - ... | tri> ¬a ¬b c = {!!} + ... | tri> ¬a ¬b c = record { chain = uzc ; chain⊆A = record { incl = λ {x} lt → proj1 lt } ; f-total = {!!} ; f-next = {!!} + ; f-immediate = {!!} ; chain∋x = {!!} ; is-max = {!!} } where + uzc : HOD + uzc = UZFChain f mf x prev 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)) ; A∋maximal = zorn01 ; ¬maximal