74 |
74 |
75 (*Proof simplified by LCP*) |
75 (*Proof simplified by LCP*) |
76 Goal "[| ~(\\<exists>x \\<in> A. f`x=y); f \\<in> inj(A, B); y \\<in> B |] \ |
76 Goal "[| ~(\\<exists>x \\<in> A. f`x=y); f \\<in> inj(A, B); y \\<in> B |] \ |
77 \ ==> (\\<lambda>a \\<in> succ(A). if(a=A, y, f`a)) \\<in> inj(succ(A), B)"; |
77 \ ==> (\\<lambda>a \\<in> succ(A). if(a=A, y, f`a)) \\<in> inj(succ(A), B)"; |
78 by (res_inst_tac [("d","%z. if(z=y, A, converse(f)`z)")] lam_injective 1); |
78 by (res_inst_tac [("d","%z. if(z=y, A, converse(f)`z)")] lam_injective 1); |
79 by (auto_tac (claset(), simpset() addsimps [inj_is_fun RS apply_type])); |
79 by (force_tac (claset(), simpset() addsimps [inj_is_fun RS apply_type]) 1); |
|
80 (*this preliminary simplification prevents looping somehow*) |
|
81 by (Asm_simp_tac 1); |
|
82 by (force_tac (claset(), simpset() addsimps []) 1); |
80 qed "succ_not_lepoll_lemma"; |
83 qed "succ_not_lepoll_lemma"; |
81 |
84 |
82 Goalw [lepoll_def, eqpoll_def, bij_def, surj_def] |
85 Goalw [lepoll_def, eqpoll_def, bij_def, surj_def] |
83 "[| ~A eqpoll B; A lepoll B |] ==> succ(A) lepoll B"; |
86 "[| ~A eqpoll B; A lepoll B |] ==> succ(A) lepoll B"; |
84 by (fast_tac (claset() addSEs [succ_not_lepoll_lemma, inj_is_fun]) 1); |
87 by (fast_tac (claset() addSEs [succ_not_lepoll_lemma, inj_is_fun]) 1); |
249 (* where a is certain k-2 element subset of y *) |
252 (* where a is certain k-2 element subset of y *) |
250 (* ********************************************************************** *) |
253 (* ********************************************************************** *) |
251 |
254 |
252 Goal "[| l eqpoll a; a \\<subseteq> y |] ==> y - a eqpoll y"; |
255 Goal "[| l eqpoll a; a \\<subseteq> y |] ==> y - a eqpoll y"; |
253 by (cut_facts_tac [WO_R, Infinite, lnat] 1); |
256 by (cut_facts_tac [WO_R, Infinite, lnat] 1); |
254 by (fast_tac (empty_cs addIs [lepoll_lesspoll_lesspoll] |
257 by (fast_tac (empty_cs addIs [lesspoll_trans1] |
255 addSIs [Card_cardinal, Diff_lesspoll_eqpoll_Card RS eqpoll_trans, |
258 addSIs [Card_cardinal, Diff_lesspoll_eqpoll_Card RS eqpoll_trans, |
256 Card_cardinal RS Card_is_Ord RS nat_le_infinite_Ord |
259 Card_cardinal RS Card_is_Ord RS nat_le_infinite_Ord |
257 RS le_imp_lepoll] |
260 RS le_imp_lepoll] |
258 addSEs [well_ord_cardinal_eqpoll, |
261 addSEs [well_ord_cardinal_eqpoll, |
259 well_ord_cardinal_eqpoll RS eqpoll_sym, |
262 well_ord_cardinal_eqpoll RS eqpoll_sym, |
260 eqpoll_sym RS eqpoll_imp_lepoll, |
263 eqpoll_sym RS eqpoll_imp_lepoll, |
261 n_lesspoll_nat RS lesspoll_lepoll_lesspoll, |
264 n_lesspoll_nat RS lesspoll_trans2, |
262 well_ord_cardinal_eqpoll RS eqpoll_sym RS eqpoll_imp_lepoll |
265 well_ord_cardinal_eqpoll RS eqpoll_sym RS eqpoll_imp_lepoll |
263 RS lepoll_infinite]) 1); |
266 RS lepoll_infinite]) 1); |
264 qed "Diff_Finite_eqpoll"; |
267 qed "Diff_Finite_eqpoll"; |
265 |
268 |
266 Goalw [s_def] "s(u) \\<subseteq> t_n"; |
269 Goalw [s_def] "s(u) \\<subseteq> t_n"; |