Mercurial > hg > Members > kono > Proof > ZF-in-agda
diff ODC.agda @ 331:12071f79f3cf
HOD done
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 05 Jul 2020 16:56:21 +0900 |
parents | 0faa7120e4b5 |
children | 7f919d6b045b |
line wrap: on
line diff
--- a/ODC.agda Sun Jul 05 15:49:00 2020 +0900 +++ b/ODC.agda Sun Jul 05 16:56:21 2020 +0900 @@ -23,6 +23,8 @@ open HOD +open _∧_ + _=h=_ : (x y : HOD) → Set n x =h= y = od x == od y @@ -40,26 +42,29 @@ -- https://plato.stanford.edu/entries/axiom-choice/#AxiChoLog -- -ppp : { p : Set n } { a : HOD } → record { od = record { def = λ x → p } ; odmax = {!!} ; <odmax = {!!} } ∋ a → p -ppp {p} {a} d = d +pred-od : ( p : Set n ) → HOD +pred-od p = record { od = record { def = λ x → (x ≡ o∅) ∧ p } ; + odmax = osuc o∅; <odmax = λ x → subst (λ k → k o< osuc o∅) (sym (proj1 x)) <-osuc } + +ppp : { p : Set n } { a : HOD } → pred-od p ∋ a → p +ppp {p} {a} d = proj2 d --- p∨¬p : ( p : Set n ) → p ∨ ( ¬ p ) -- assuming axiom of choice --- p∨¬p p with is-o∅ ( od→ord ( record { odef = λ x → p } )) --- p∨¬p p | yes eq = case2 (¬p eq) where --- ps = record { odef = λ x → p } --- lemma : ps =h= od∅ → p → ⊥ --- lemma eq p0 = ¬x<0 {od→ord ps} (eq→ eq p0 ) --- ¬p : (od→ord ps ≡ o∅) → p → ⊥ --- ¬p eq = lemma ( subst₂ (λ j k → j =h= k ) oiso o∅≡od∅ ( o≡→== eq )) --- p∨¬p p | no ¬p = case1 (ppp {p} {minimal ps (λ eq → ¬p (eqo∅ eq))} lemma) where --- ps = record { odef = λ x → p } --- eqo∅ : ps =h= od∅ → od→ord ps ≡ o∅ --- eqo∅ eq = subst (λ k → od→ord ps ≡ k) ord-od∅ ( cong (λ k → od→ord k ) (==→o≡ eq)) --- lemma : ps ∋ minimal ps (λ eq → ¬p (eqo∅ eq)) --- lemma = x∋minimal ps (λ eq → ¬p (eqo∅ eq)) - -postulate - p∨¬p : ( p : Set n ) → p ∨ ( ¬ p ) -- assuming axiom of choice +p∨¬p : ( p : Set n ) → p ∨ ( ¬ p ) -- assuming axiom of choice +p∨¬p p with is-o∅ ( od→ord (pred-od p )) +p∨¬p p | yes eq = case2 (¬p eq) where + ps = pred-od p + eqo∅ : ps =h= od∅ → od→ord ps ≡ o∅ + eqo∅ eq = subst (λ k → od→ord ps ≡ k) ord-od∅ ( cong (λ k → od→ord k ) (==→o≡ eq)) + lemma : ps =h= od∅ → p → ⊥ + lemma eq p0 = ¬x<0 {od→ord ps} (eq→ eq record { proj1 = eqo∅ eq ; proj2 = p0 } ) + ¬p : (od→ord ps ≡ o∅) → p → ⊥ + ¬p eq = lemma ( subst₂ (λ j k → j =h= k ) oiso o∅≡od∅ ( o≡→== eq )) +p∨¬p p | no ¬p = case1 (ppp {p} {minimal ps (λ eq → ¬p (eqo∅ eq))} lemma) where + ps = pred-od p + eqo∅ : ps =h= od∅ → od→ord ps ≡ o∅ + eqo∅ eq = subst (λ k → od→ord ps ≡ k) ord-od∅ ( cong (λ k → od→ord k ) (==→o≡ eq)) + lemma : ps ∋ minimal ps (λ eq → ¬p (eqo∅ eq)) + lemma = x∋minimal ps (λ eq → ¬p (eqo∅ eq)) decp : ( p : Set n ) → Dec p -- assuming axiom of choice decp p with p∨¬p p