1 include "logic/cprop_connectives.ma".
7 inductive Unit : Type := unit : Unit.
9 definition axs: AxiomSet.
13 | intros; apply (S_ a)]
16 definition S : axs → Ω^axs ≝ S_.
18 definition emptyset: Ω^axs ≝ {x | False}.
20 notation "∅︀" non associative with precedence 90 for @{'emptyset}.
21 interpretation "emptyset" 'emptyset = emptyset.
22 notation "∅" non associative with precedence 91 for @{'emptyset1}.
23 interpretation "emptyset1" 'emptyset1 = emptyset.
25 definition Z: Ω \sup axs ≝ {x | x ⊲ ∅}.
27 theorem cantor: ∀a:axs. ¬ (Z ⊆ S a ∧ S a ⊆ Z).
28 intros 2; cases H; clear H;
30 [2: apply infinity; [apply unit] change with (S a ⊲ S a);
31 intros 2; apply refl; apply H;]
33 [2: apply (trans (S a)); [ assumption ]
34 intros 2; lapply (H2 ? H) as K;
35 change in K with (x ⊲ ∅ );
38 [2: apply H1; apply Hcut1;]
39 generalize in match Hcut2; clear Hcut2;
40 elim Hcut1 using covers_elim;
42 | intros; apply (H3 a1); [apply H4|apply H4]]