Mercurial > hg > Members > kono > Proof > ZF-in-agda
changeset 420:53422a8ea836
bijection
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 31 Jul 2020 17:42:25 +0900 |
parents | 4af94768e372 |
children | cb067605fea0 |
files | OPair.agda Ordinals.agda cardinal.agda |
diffstat | 3 files changed, 37 insertions(+), 32 deletions(-) [+] |
line wrap: on
line diff
--- a/OPair.agda Fri Jul 31 12:57:59 2020 +0900 +++ b/OPair.agda Fri Jul 31 17:42:25 2020 +0900 @@ -166,10 +166,6 @@ 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 - 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< @@ -201,21 +197,10 @@ 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 - AxB : HOD - AxB = Replace B (λ b → Replace A (λ a → < a , b > )) - 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 with union← AxB (ord→od x) (d→∋ (A ⊗ B) lt) - ... | t = {!!} +ZFP⊆⊗ : {A B : HOD} {x : Ordinal} → odef (ZFP A B) x → odef (A ⊗ B) x +ZFP⊆⊗ {A} {B} {px} record { proj1 = (pair x y) ; proj2 = p2 } = product→ (d→∋ A (proj1 (p2 (pair x y) ))) (d→∋ B (proj2 (p2 (pair x y) ))) - - - +-- 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 - - - -
--- a/Ordinals.agda Fri Jul 31 12:57:59 2020 +0900 +++ b/Ordinals.agda Fri Jul 31 17:42:25 2020 +0900 @@ -313,6 +313,12 @@ omax<nx {x} {y} {z} x<nz y<nz | tri≈ ¬a refl ¬c = osuc<nx y<nz omax<nx {x} {y} {z} x<nz y<nz | tri> ¬a ¬b c = osuc<nx x<nz + nn<omax : {x nx ny : Ordinal} → x o< next nx → x o< next ny → x o< next (omax nx ny) + nn<omax {x} {nx} {ny} xnx xny with trio< nx ny + nn<omax {x} {nx} {ny} xnx xny | tri< a ¬b ¬c = subst (λ k → x o< k ) nexto≡ xny + nn<omax {x} {nx} {ny} xnx xny | tri≈ ¬a refl ¬c = subst (λ k → x o< k ) nexto≡ xny + nn<omax {x} {nx} {ny} xnx xny | tri> ¬a ¬b c = subst (λ k → x o< k ) nexto≡ xnx + record OrdinalSubset (maxordinal : Ordinal) : Set (suc n) where field os→ : (x : Ordinal) → x o< maxordinal → Ordinal
--- a/cardinal.agda Fri Jul 31 12:57:59 2020 +0900 +++ b/cardinal.agda Fri Jul 31 17:42:25 2020 +0900 @@ -26,37 +26,51 @@ open Bool open _==_ +open HOD + -- _⊗_ : (A B : HOD) → HOD -- A ⊗ B = Union ( Replace B (λ b → Replace A (λ a → < a , b > ) )) -Func : ( A B : HOD ) → OD -Func A B = record { def = λ x → (odef (Power (A ⊗ B)) x) +Func : OD +Func = record { def = λ x → def ZFProduct x ∧ ( (a b c : Ordinal) → odef (ord→od x) (od→ord < ord→od a , ord→od b >) ∧ odef (ord→od x) (od→ord < ord→od a , ord→od c >) → b ≡ c ) } -Func∋f : {A B x : HOD} → ( f : (x : HOD ) → A ∋ x → ( HOD ∧ ((y : HOD ) → B ∋ y ))) → (lt : A ∋ x ) → def (Func A B ) (od→ord < x , proj1 (f x lt) > ) +FuncP : ( A B : HOD ) → HOD +FuncP A B = record { od = record { def = λ x → odef (ZFP A B) x + ∧ ( (x : Ordinal ) (p q : odef (ZFP A B ) x ) → pi1 (proj1 p) ≡ pi1 (proj1 q) → pi2 (proj1 p) ≡ pi2 (proj1 q) ) } + ; odmax = odmax (ZFP A B) ; <odmax = λ lt → <odmax (ZFP A B) (proj1 lt) } + +Func∋f : {A B x : HOD} → ( f : HOD → HOD ) → ( (x : HOD ) → A ∋ x → B ∋ f x ) + → def Func (od→ord (Replace A (λ x → < x , f x > ))) Func∋f = {!!} -Func→f : {A B f x : HOD} → def ( Func A B) (od→ord f) → (x : HOD ) → A ∋ x → ( HOD ∧ ((y : HOD ) → B ∋ y )) +FuncP∋f : {A B x : HOD} → ( f : HOD → HOD ) → ( (x : HOD ) → A ∋ x → B ∋ f x ) + → odef (FuncP A B) (od→ord (Replace A (λ x → < x , f x > ))) +FuncP∋f = {!!} + +Func→f : {A B f x : HOD} → def Func (od→ord f) → (x : HOD ) → A ∋ x → ( HOD ∧ ((y : HOD ) → B ∋ y )) Func→f = {!!} -Func₁ : {A B f : HOD} → def ( Func A B) (od→ord f) → {!!} +Func₁ : {A B f : HOD} → def Func (od→ord f) → {!!} Func₁ = {!!} -Cod : {A B f : HOD} → def ( Func A B) (od→ord f) → {!!} +Cod : {A B f : HOD} → def Func (od→ord f) → {!!} Cod = {!!} -1-1 : {A B f : HOD} → def ( Func A B) (od→ord f) → {!!} +1-1 : {A B f : HOD} → def Func (od→ord f) → {!!} 1-1 = {!!} -onto : {A B f : HOD} → def ( Func A B) (od→ord f) → {!!} +onto : {A B f : HOD} → def Func (od→ord f) → {!!} onto = {!!} record Bijection (A B : Ordinal ) : Set n where field - bfun : Ordinal - bfun-isfun : def (Func (ord→od A) (ord→od B)) bfun - bfun-is1-1 : {!!} - bfun-isonto : {!!} + fun→ : Ordinal → Ordinal + fun← : Ordinal → Ordinal + fun→inA : (x : Ordinal) → odef (ord→od A) ( fun→ x ) + fun←inB : (x : Ordinal) → odef (ord→od B) ( fun← x ) + fiso→ : (x : Ordinal ) → odef (ord→od A) x → fun→ ( fun← x ) ≡ x + fiso← : (x : Ordinal ) → odef (ord→od B) x → fun← ( fun→ x ) ≡ x Card : OD Card = record { def = λ x → (a : Ordinal) → a o< x → ¬ Bijection a x }