9 (* Lemmas involving ordinals and cardinalities used in the proofs *) |
9 (* Lemmas involving ordinals and cardinalities used in the proofs *) |
10 (* concerning AC16 and DC *) |
10 (* concerning AC16 and DC *) |
11 (* ********************************************************************** *) |
11 (* ********************************************************************** *) |
12 |
12 |
13 (* j=|A| *) |
13 (* j=|A| *) |
14 goal Cardinal.thy |
14 Goal "[| A lepoll i; Ord(i) |] ==> EX j. j le i & A eqpoll j"; |
15 "!!A. [| A lepoll i; Ord(i) |] ==> EX j. j le i & A eqpoll j"; |
15 by (blast_tac (claset() addSIs [lepoll_cardinal_le, well_ord_Memrel, |
16 by (fast_tac (claset() addIs [lepoll_cardinal_le, well_ord_Memrel, |
16 well_ord_cardinal_eqpoll RS eqpoll_sym] |
17 well_ord_cardinal_eqpoll RS eqpoll_sym] |
17 addDs [lepoll_well_ord]) 1); |
18 addDs [lepoll_well_ord]) 1); |
|
19 qed "lepoll_imp_ex_le_eqpoll"; |
18 qed "lepoll_imp_ex_le_eqpoll"; |
20 |
19 |
21 (* j=|A| *) |
20 (* j=|A| *) |
22 goalw Cardinal.thy [lesspoll_def] |
21 Goalw [lesspoll_def] |
23 "!!A a. [| A lesspoll i; Ord(i) |] ==> EX j. j<i & A eqpoll j"; |
22 "[| A lesspoll i; Ord(i) |] ==> EX j. j<i & A eqpoll j"; |
24 by (fast_tac (claset() addSDs [lepoll_imp_ex_le_eqpoll] addSEs [leE]) 1); |
23 by (blast_tac (claset() addSDs [lepoll_imp_ex_le_eqpoll] addSEs [leE]) 1); |
25 qed "lesspoll_imp_ex_lt_eqpoll"; |
24 qed "lesspoll_imp_ex_lt_eqpoll"; |
26 |
25 |
27 Goalw [InfCard_def] "[| ~Finite(i); Ord(i) |] ==> InfCard(|i|)"; |
26 Goalw [InfCard_def] "[| ~Finite(i); Ord(i) |] ==> InfCard(|i|)"; |
28 by (rtac conjI 1); |
27 by (rtac conjI 1); |
29 by (rtac Card_cardinal 1); |
28 by (rtac Card_cardinal 1); |
159 by (eres_inst_tac [("P","%z. x:F(z)"),("i","c")] less_LeastE 1); |
158 by (eres_inst_tac [("P","%z. x:F(z)"),("i","c")] less_LeastE 1); |
160 by (eresolve_tac [Ord_Least RSN (2, ltI)] 1); |
159 by (eresolve_tac [Ord_Least RSN (2, ltI)] 1); |
161 qed "UN_eq_UN_Diffs"; |
160 qed "UN_eq_UN_Diffs"; |
162 |
161 |
163 Goalw [lepoll_def, eqpoll_def] |
162 Goalw [lepoll_def, eqpoll_def] |
164 "a lepoll X ==> EX Y. Y<=X & a eqpoll Y"; |
163 "a lepoll X ==> EX Y. Y<=X & a eqpoll Y"; |
165 by (etac exE 1); |
164 by (etac exE 1); |
166 by (forward_tac [subset_refl RSN (2, restrict_bij)] 1); |
165 by (forward_tac [subset_refl RSN (2, restrict_bij)] 1); |
167 by (res_inst_tac [("x","f``a")] exI 1); |
166 by (res_inst_tac [("x","f``a")] exI 1); |
168 by (fast_tac (claset() addSEs [inj_is_fun RS fun_is_rel RS image_subset]) 1); |
167 by (fast_tac (claset() addSEs [inj_is_fun RS fun_is_rel RS image_subset]) 1); |
169 qed "lepoll_imp_eqpoll_subset"; |
168 qed "lepoll_imp_eqpoll_subset"; |
174 |
173 |
175 Goal "[| A eqpoll a; ~Finite(a); Card(a); B lesspoll a; \ |
174 Goal "[| A eqpoll a; ~Finite(a); Card(a); B lesspoll a; \ |
176 \ A-B lesspoll a |] ==> P"; |
175 \ A-B lesspoll a |] ==> P"; |
177 by (REPEAT (eresolve_tac [lesspoll_imp_ex_lt_eqpoll RS exE, |
176 by (REPEAT (eresolve_tac [lesspoll_imp_ex_lt_eqpoll RS exE, |
178 Card_is_Ord, conjE] 1)); |
177 Card_is_Ord, conjE] 1)); |
179 by (forw_inst_tac [("j","xa")] (lt_Ord RS (lt_Ord RSN (2, Un_upper1_le))) 1 |
178 by (forw_inst_tac [("j","xa")] ([lt_Ord, lt_Ord] MRS Un_upper1_le) 1 |
180 THEN (assume_tac 1)); |
179 THEN (assume_tac 1)); |
181 by (forw_inst_tac [("j","xa")] (lt_Ord RS (lt_Ord RSN (2, Un_upper2_le))) 1 |
180 by (forw_inst_tac [("j","xa")] ([lt_Ord, lt_Ord] MRS Un_upper2_le) 1 |
182 THEN (assume_tac 1)); |
181 THEN (assume_tac 1)); |
183 by (dtac Un_least_lt 1 THEN (assume_tac 1)); |
182 by (dtac Un_least_lt 1 THEN (assume_tac 1)); |
184 by (dresolve_tac [le_imp_lepoll RSN |
183 by (dresolve_tac [le_imp_lepoll RSN |
185 (2, eqpoll_imp_lepoll RS lepoll_trans)] 1 |
184 (2, eqpoll_imp_lepoll RS lepoll_trans)] 1 |
186 THEN (assume_tac 1)); |
185 THEN (assume_tac 1)); |