Mercurial > hg > Members > kono > Proof > ZF-in-agda
changeset 685:6826883cfbf8
chain-total done
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 10 Jul 2022 08:41:01 +0900 |
parents | 822fce8af579 |
children | b854c1f07873 |
files | src/zorn.agda |
diffstat | 1 files changed, 26 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/src/zorn.agda Sun Jul 10 08:10:34 2022 +0900 +++ b/src/zorn.agda Sun Jul 10 08:41:01 2022 +0900 @@ -297,18 +297,33 @@ chain-total : (A : HOD ) ( f : Ordinal → Ordinal ) (mf : ≤-monotonic-f A f) {y : Ordinal} (ay : odef A y) {s s1 a b : Ordinal } ( ca : Chain A f mf ay s a ) ( cb : Chain A f mf ay s1 b ) → Tri (* a < * b) (* a ≡ * b) (* b < * a ) -chain-total A f mf {y} ay {s} {s1} {a} {b} ca cb = TransFinite - {λ x → {s1 a b : Ordinal } ( ca : Chain A f mf ay x a ) ( cb : Chain A f mf ay s1 b ) → Tri (* a < * b) (* a ≡ * b) (* b < * a )} ct-ind s ca cb where - ct-ind : (x : Ordinal) → - ((y₁ : Ordinal) → y₁ o< x → {s1 a b : Ordinal} → Chain A f mf ay y₁ a → Chain A f mf ay s1 b → Tri (* a < * b) (* a ≡ * b) (* b < * a)) - → {s1 a b : Ordinal} → Chain A f mf ay x a → Chain A f mf ay s1 b → Tri (* a < * b) (* a ≡ * b) (* b < * a) - ct-ind x prev {s1} {a} {b} (ch-init s a x=0 fca) (ch-init s1 b x=0' fcb) = fcn-cmp y f mf fca fcb - ct-ind x prev {s1} {a} {b} (ch-init s a x=0 fca) (ch-is-sup 0<x as supb fcb) = ? - ct-ind x prev {s1} {a} {b} (ch-is-sup 0<x as supa fca) (ch-init s1 b x=0' fcb) = ? - ct-ind x prev {s1} {a} {b} (ch-is-sup 0<x as supa fca) (ch-is-sup 0<x' as' supb fcb) with trio< x s1 - ... | tri< a₁ ¬b ¬c = ? +chain-total A f mf {y} ay {s} {s1} {a} {b} ca cb = ct-ind s ca cb where + ct-ind : (x : Ordinal) → {s1 a b : Ordinal} → Chain A f mf ay x a → Chain A f mf ay s1 b → Tri (* a < * b) (* a ≡ * b) (* b < * a) + ct-ind x {s1} {a} {b} (ch-init s a x=0 fca) (ch-init s1 b x=0' fcb) = fcn-cmp y f mf fca fcb + ct-ind x {s1} {a} {b} (ch-init s a x=0 fca) (ch-is-sup 0<x as supb fcb) = tri< ct01 (λ eq → <-irr (case1 (sym eq)) ct01) (λ lt → <-irr (case2 ct01) lt) where + ct00 : * a < * s1 + ct00 = supb _ _ 0<x (subst (λ k → Chain A f mf ay k a) x=0 (ch-init s a x=0 fca) ) + ct01 : * a < * b + ct01 with s≤fc s1 f mf fcb + ... | case1 eq = subst (λ k → * a < k ) eq ct00 + ... | case2 lt = IsStrictPartialOrder.trans POO ct00 lt + ct-ind x {s1} {a} {b} (ch-is-sup 0<x as supa fca) (ch-init s1 b x=0' fcb) = ? + ct-ind x {s1} {a} {b} (ch-is-sup 0<x as supa fca) (ch-is-sup 0<x' as' supb fcb) with trio< x s1 + ... | tri< a₁ ¬b ¬c = tri< ct02 (λ eq → <-irr (case1 (sym eq)) ct02) (λ lt → <-irr (case2 ct02) lt) where + ct03 : * a < * s1 + ct03 = supb _ _ a₁ (ch-is-sup 0<x as supa fca) + ct02 : * a < * b + ct02 with s≤fc s1 f mf fcb + ... | case1 eq = subst (λ k → * a < k ) eq ct03 + ... | case2 lt = IsStrictPartialOrder.trans POO ct03 lt ... | tri≈ ¬a refl ¬c = fcn-cmp s1 f mf fca fcb - ... | tri> ¬a ¬b c = ? + ... | tri> ¬a ¬b c = tri> (λ lt → <-irr (case2 ct04) lt) (λ eq → <-irr (case1 (eq)) ct04) ct04 where + ct05 : * b < * x + ct05 = supa _ _ c (ch-is-sup 0<x' as' supb fcb) + ct04 : * b < * a + ct04 with s≤fc x f mf fca + ... | case1 eq = subst (λ k → * b < k ) eq ct05 + ... | case2 lt = IsStrictPartialOrder.trans POO ct05 lt Zorn-lemma : { A : HOD } → o∅ o< & A