Mercurial > hg > Members > kono > Proof > ZF-in-agda
changeset 1454:43f0c259e6c1
cantor all done
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 07 Jul 2023 12:40:28 +0900 |
parents | c6bc9334a3ee |
children | 11600d5caf37 |
files | src/ZProduct.agda src/cardinal.agda |
diffstat | 2 files changed, 44 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ZProduct.agda Fri Jul 07 10:43:12 2023 +0900 +++ b/src/ZProduct.agda Fri Jul 07 12:40:28 2023 +0900 @@ -383,6 +383,16 @@ ; fiso→ = λ x lt → refl } +hodbij-sym : { a b : HOD } → HODBijection a b → HODBijection b a +hodbij-sym {a} eq = record { + fun← = fun→ eq + ; fun→ = fun← eq + ; funB = funA eq + ; funA = funB eq + ; fiso← = fiso→ eq + ; fiso→ = fiso← eq + } where open HODBijection + pj12 : (A B : HOD) {x : Ordinal} → (ab : odef (ZFP A B) x ) → (zπ1 (subst (odef (ZFP A B)) (sym &iso) ab) ≡ & (* (zπ1 ab ))) ∧ (zπ2 (subst (odef (ZFP A B)) (sym &iso) ab) ≡ & (* (zπ2 ab )))
--- a/src/cardinal.agda Fri Jul 07 10:43:12 2023 +0900 +++ b/src/cardinal.agda Fri Jul 07 12:40:28 2023 +0900 @@ -325,6 +325,15 @@ ... | case1 a = true ... | case2 b = false +fun←eq : {S : HOD} (b : HODBijection (Power S) S ) {x y : Ordinal } → {ax : odef S x} {ax1 : odef S y} + → x ≡ y → fun← b x ax ≡ fun← b y ax1 +fun←eq {S} b {x} {x} {ax} {ax1} refl = cong (λ k → fun← b x k) ( HE.≅-to-≡ ( ∋-irr {S} ax ax1 )) + +fun→eq : {S : HOD} (b : HODBijection (Power S) S ) {x y : Ordinal } → {ax : odef (Power S) x} {ax1 : odef (Power S) y} + → x ≡ y → fun→ b x ax ≡ fun→ b y ax1 +fun→eq {S} b {x} {x} {ax} {ax1} refl = cong (λ k → fun→ b x k) ( HE.≅-to-≡ ( ∋-irr {Power S} ax ax1 )) + + -- S -- t ⊆ S ( Power S ∋ t ) -- S s₀ s₁ ... sn @@ -333,7 +342,12 @@ Cantor1 : { S : HOD } → S c< Power S Cantor1 {S} f = diag4 where f1 : Injection (& S) (& (Power S)) - f1 = record { i→ = λ x sx → & (* x , * x) ; iB = c00 ; inject = ? }where + f1 = record { i→ = λ x sx → & (* x , * x) ; iB = c00 ; inject = c02 }where + c02 : (x y : Ordinal) (ltx : odef (* (& S)) x) (lty : odef (* (& S)) y) → + & (* x , * x) ≡ & (* y , * y) → x ≡ y + c02 x y ltx lty eq = subst₂ (λ j k → j ≡ k ) &iso &iso (cong (&) (xx=zy→x=y c03 )) where + c03 : (* x , * x) =h= (* y , * y) + c03 = ord→== eq c00 : (x : Ordinal) (lt : odef (* (& S)) x) → odef (* (& (Power S))) (& (* x , * x)) c00 x lt = subst₂ (λ j k → odef j (& k) ) (sym *iso) refl (λ y z → c01 y (subst (λ k → odef k y ) *iso z )) where c01 : (y : Ordinal ) → odef (* x , * x ) y → odef S y @@ -342,7 +356,7 @@ f2 : Injection (& (Power S)) (& S) f2 = f b : HODBijection (Power S) S - b = ? -- subst₂ (λ j k → HODBijection j k) *iso *iso ( Bernstein f2 f1) -- this makes check very slow + b = subst₂ (λ j k → HODBijection j k) *iso *iso ( Bernstein f2 f1) -- this makes check very slow -- we have at least one element since Power S contains od∅ -- @@ -379,8 +393,6 @@ ... | case2 lt | case1 lt1 | _ = refl ... | case2 lt | case2 neg | record { eq = eq1 } = ⊥-elim ( neg ⟪ sn , (λ sx → trans (cong diag ( HE.≅-to-≡ ( ∋-irr {S} sx sn ))) eq1 ) ⟫ ) - fun←eq : {x y : Ordinal } → {ax : odef S x} {ax1 : odef S y} → x ≡ y → fun← b x ax ≡ fun← b y ax1 - fun←eq {x} {x} {ax} {ax1} refl = cong (λ k → fun← b x k) ( HE.≅-to-≡ ( ∋-irr {S} ax ax1 )) diagn1 : (n : Ordinal ) → odef S n → ¬ (fun→ b (& Diag) diag3 ≡ n) diagn1 n sn dn = ¬t=f (is-S Diag n) (begin @@ -389,7 +401,7 @@ not (is-S (* (& Diag)) n) ≡⟨ cong (λ k → not (is-S (* k) n)) (sym (fiso← b (& Diag) diag3 )) ⟩ not ( is-S (* (fun← b (fun→ b (& Diag) diag3) (funB b (& Diag) diag3 ))) n ) - ≡⟨ cong (λ k → not (is-S (* k) n)) ( fun←eq {_} {_} {funB b _ diag3} {sn} dn ) ⟩ + ≡⟨ cong (λ k → not (is-S (* k) n)) ( fun←eq b {_} {_} {funB b _ diag3} {sn} dn ) ⟩ not ( is-S (* (fun← b n sn )) n ) ≡⟨ not-isD _ sn ⟩ is-S Diag n @@ -397,11 +409,26 @@ open ≡-Reasoning diag4 : ⊥ - diag4 = diagn1 (fun→ b (& Diag) diag3) ? refl + diag4 = diagn1 (fun→ b (& Diag) diag3) (funB b (& Diag) diag3) refl Cantor2 : { u : HOD } → ¬ ( u =c= Power u ) -Cantor2 = {!!} +Cantor2 {u} ceq = Cantor1 {u} record { i→ = λ x lt → fun← ceq x (subst (λ k → odef k x) *iso lt) + ; iB = λ x lt → subst₂ (λ j k → odef j k) (sym *iso) refl (funA ceq x (subst (λ k → odef k x) *iso lt)) + ; inject = c04 } where + c04 : (x y : Ordinal) (ltx : odef (* (& (Power u))) x) (lty : odef (* (& (Power u))) y) + → fun← ceq x (subst (λ k → odef k x) *iso ltx) ≡ fun← ceq y (subst (λ k → odef k y) *iso lty) → x ≡ y + c04 x y ltx lty eq = begin + x ≡⟨ sym ( fiso→ ceq x c05 ) ⟩ + fun→ ceq ( fun← ceq x c05 ) (funA ceq x c05) ≡⟨ fun←eq (hodbij-sym ceq) eq ⟩ + fun→ ceq ( fun← ceq y c06 ) (funA ceq y c06) ≡⟨ fiso→ ceq y c06 ⟩ + y ∎ where + open ≡-Reasoning + c05 : odef (Power u) x + c05 = subst (λ k → odef k x) *iso ltx + c06 : odef (Power u) y + c06 = subst (λ k → odef k y) *iso lty +