Mercurial > hg > Members > kono > Proof > ZF-in-agda
changeset 418:f6f08d5a4941
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 31 Jul 2020 12:46:45 +0900 |
parents | f464e48e18cc |
children | 4af94768e372 |
files | OPair.agda |
diffstat | 1 files changed, 30 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- a/OPair.agda Fri Jul 31 11:21:27 2020 +0900 +++ b/OPair.agda Fri Jul 31 12:46:45 2020 +0900 @@ -166,6 +166,7 @@ lemma2 : odef (Replace A (λ a₁ → < a₁ , b >)) (od→ord < a , b >) lemma2 = replacement← A a A∋a +-- axiom of choice required -- ⊗⊆ZFP : {A B x : HOD} → ( A ⊗ B ) ∋ x → def ZFProduct (od→ord x) -- ⊗⊆ZFP {A} {B} {x} lt = subst (λ k → ord-pair (od→ord k )) {!!} op-cons @@ -185,19 +186,35 @@ ZFP : (A B : HOD) → HOD ZFP A B = record { od = record { def = λ x → ord-pair x ∧ ((p : ord-pair x ) → odef A (pi1 p) ∧ odef B (pi2 p) )} ; - odmax = omax (od→ord A) (od→ord B) ; <odmax = λ {y} px → lemma y px } + odmax = omax (next (odmax A)) (next (odmax B)) ; <odmax = λ {y} px → lemma y px } where - pp : { x y : Ordinal } → HOD - pp {x} {y} = (ord→od x , ord→od x) , (ord→od x , ord→od y) - lemma : (y : Ordinal) → ( ord-pair y ∧ ((p : ord-pair y) → odef A (pi1 p) ∧ odef B (pi2 p))) → y o< omax (od→ord A) (od→ord B) + lemma : (y : Ordinal) → ( ord-pair y ∧ ((p : ord-pair y) → odef A (pi1 p) ∧ odef B (pi2 p))) → y o< omax (next (odmax A)) (next (odmax B)) lemma y lt with proj1 lt - lemma p lt | pair x y with trio< (od→ord A) (od→ord B) | proj2 lt (pair x y) - lemma p lt | pair x y | tri< a ¬b ¬c | ab = ordtrans (ω-opair (A<Bnext a (subst (λ k → odef A k ) (sym diso) - (proj1 (proj2 lt (pair x y))))) (x<nextA {{!!}} {ord→od y} (proj2 lt))) (osucprev ( begin - osuc (next (odmax B)) - ≤⟨ {!!} ⟩ - osuc (od→ord B) - ∎ )) where open o≤-Reasoning O - lemma p lt | pair x y | tri≈ ¬a b ¬c | ab = {!!} - lemma p lt | pair x y | tri> ¬a ¬b c | ab = {!!} + lemma p lt | pair x y with trio< (od→ord A) (od→ord B) + lemma p lt | pair x y | tri< a ¬b ¬c = ordtrans (ω-opair (A<Bnext a (subst (λ k → odef A k ) (sym diso) + (proj1 (proj2 lt (pair x y))))) (lemma1 (proj2 (proj2 lt (pair x y))))) (omax-y _ _ ) where + lemma1 : odef B y → od→ord (ord→od y) o< next (HOD.odmax B) + lemma1 lt = x<nextA {B} (d→∋ B lt) + lemma p lt | pair x y | tri≈ ¬a b ¬c = ordtrans (ω-opair (x<nextA {A} (d→∋ A ((proj1 (proj2 lt (pair x y)))))) lemma2 ) (omax-x _ _ ) where + lemma2 : od→ord (ord→od y) o< next (HOD.odmax A) + lemma2 = ordtrans ( subst (λ k → od→ord (ord→od y) o< k ) (sym b) (c<→o< (d→∋ B ((proj2 (proj2 lt (pair x y))))))) ho< + lemma p lt | pair x y | tri> ¬a ¬b c = ordtrans (ω-opair (x<nextA {A} (d→∋ A ((proj1 (proj2 lt (pair x y)))))) + (A<Bnext c (subst (λ k → odef B k ) (sym diso) (proj2 (proj2 lt (pair x y)))))) (omax-x _ _ ) +ZFP⊗ : {A B : HOD} → ZFP A B ≡ A ⊗ B +ZFP⊗ {A} {B} = ==→o≡ record { eq→ = lemma0 ; eq← = lemma1 } where + lemma0 : {x : Ordinal} → odef (ZFP A B) x → odef (A ⊗ B) x + lemma0 {px} record { proj1 = (pair x y) ; proj2 = p2 } = product→ (d→∋ A (proj1 (p2 (pair x y) ))) (d→∋ B (proj2 (p2 (pair x y) ))) + lemma1 : {x : Ordinal} → odef (A ⊗ B) x → odef (ZFP A B) x + lemma1 {x} lt = ⊥-elim (lt (λ u not → proj2 (proj1 not) (λ y p → lemma2 u y p ))) where + lemma2 : (u y : Ordinal) → odef B y ∧ (u ≡ od→ord (Replace A (λ a → < a , ord→od y >))) → ⊥ + lemma2 = {!!} + + + + + + + + +