Mercurial > hg > Members > kono > Proof > ZF-in-agda
changeset 417:f464e48e18cc
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 31 Jul 2020 11:21:27 +0900 |
parents | b737a2e0b46e |
children | f6f08d5a4941 |
files | OPair.agda cardinal.agda |
diffstat | 2 files changed, 51 insertions(+), 23 deletions(-) [+] |
line wrap: on
line diff
--- a/OPair.agda Thu Jul 30 21:45:49 2020 +0900 +++ b/OPair.agda Fri Jul 31 11:21:27 2020 +0900 @@ -136,11 +136,12 @@ p-pi2 : { x y : HOD } → (p : def ZFProduct (od→ord < x , y >) ) → π2 p ≡ y p-pi2 {x} {y} p = proj2 ( prod-eq ( ord→== (op-iso p))) -ω-pair : {x y : HOD} → infinite ∋ x → infinite ∋ y → od→ord < x , y > o< next o∅ -ω-pair {x} {y} lx ly = lemma0 where - lemma3 : od→ord (x , y) o< next o∅ - lemma3 = next< (omax<nx (<odmax infinite lx) (<odmax infinite ly)) ho< - lemma0 : od→ord < x , y > o< next o∅ +ω-pair : {x y : HOD} → {m : Ordinal} → od→ord x o< next m → od→ord y o< next m → od→ord (x , y) o< next m +ω-pair lx ly = next< (omax<nx lx ly ) ho< + +ω-opair : {x y : HOD} → {m : Ordinal} → od→ord x o< next m → od→ord y o< next m → od→ord < x , y > o< next m +ω-opair {x} {y} {m} lx ly = lemma0 where + lemma0 : od→ord < x , y > o< next m lemma0 = osucprev (begin osuc (od→ord < x , y >) <⟨ osuc<nx ho< ⟩ @@ -149,27 +150,54 @@ next (osuc (od→ord (x , y))) ≡⟨ sym (nexto≡) ⟩ next (od→ord (x , y)) - ≤⟨ x<ny→≤next lemma3 ⟩ - next o∅ + ≤⟨ x<ny→≤next (ω-pair lx ly) ⟩ + next m ∎ ) where open o≤-Reasoning O _⊗_ : (A B : HOD) → HOD A ⊗ B = Union ( Replace B (λ b → Replace A (λ a → < a , b > ) )) --- product→ : {A B a b : HOD} → A ∋ a → B ∋ b → ( A ⊗ B ) ∋ < a , b > --- product→ {A} {B} {a} {b} A∋a B∋b = λ t → t (od→ord (Select (A ⊗ B) (λ x → x =h= < a , b >))) record { proj1 = {!!} ; proj2 = {!!} } +product→ : {A B a b : HOD} → A ∋ a → B ∋ b → ( A ⊗ B ) ∋ < a , b > +product→ {A} {B} {a} {b} A∋a B∋b = λ t → t (od→ord (Replace A (λ a → < a , b >))) + record { proj1 = lemma1 ; proj2 = subst (λ k → odef k (od→ord < a , b >)) (sym oiso) lemma2 } where + lemma1 : odef (Replace B (λ b₁ → Replace A (λ a₁ → < a₁ , b₁ >))) (od→ord (Replace A (λ a₁ → < a₁ , b >))) + lemma1 = replacement← B b B∋b + lemma2 : odef (Replace A (λ a₁ → < a₁ , b >)) (od→ord < a , b >) + lemma2 = replacement← A a A∋a + +-- ⊗⊆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 + +x<nextA : {A x : HOD} → A ∋ x → od→ord x o< next (odmax A) +x<nextA {A} {x} A∋x = ordtrans (c<→o< {x} {A} A∋x) ho< -record IsProduct (A B p : HOD) (A⊗B∋p : (A ⊗ B ) ∋ p ) : Set (suc n) where - field - is-pair : def ZFProduct (od→ord p) - π1A : A ∋ π1 is-pair - π2B : B ∋ π2 is-pair +A<Bnext : {A B x : HOD} → od→ord A o< od→ord B → A ∋ x → od→ord x o< next (odmax B) +A<Bnext {A} {B} {x} lt A∋x = osucprev (begin + osuc (od→ord x) + <⟨ osucc (c<→o< A∋x) ⟩ + osuc (od→ord A) + <⟨ osucc lt ⟩ + osuc (od→ord B) + <⟨ osuc<nx ho< ⟩ + next (odmax B) + ∎ ) where open o≤-Reasoning O --- product← : {A B a b p : HOD} → (lt : (A ⊗ B ) ∋ p ) → IsProduct A B p lt --- product← {_} {_} {a} {b} lt = record { is-pair = {!!} ; π1A = {!!} ; π2B = {!!} } +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 } + 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 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 = {!!} - --- 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 (odmax A) (odmax B) ; <odmax = λ {y} px → {!!} } -- (<odmax A (proj2 px (proj1 px) ))
--- a/cardinal.agda Thu Jul 30 21:45:49 2020 +0900 +++ b/cardinal.agda Fri Jul 31 11:21:27 2020 +0900 @@ -54,9 +54,9 @@ record Bijection (A B : Ordinal ) : Set n where field bfun : Ordinal - bfun-isfun : def (Func {!!} {!!} ) bfun - bfun-is1-1 : ? - bfun-isonto : ? + bfun-isfun : def (Func (ord→od A) (ord→od B)) bfun + bfun-is1-1 : {!!} + bfun-isonto : {!!} Card : OD Card = record { def = λ x → (a : Ordinal) → a o< x → ¬ Bijection a x }