equal
deleted
inserted
replaced
89 \ ==> (lam a:succ(A). if(a=A, y, f`a)) : inj(succ(A), B)"; |
89 \ ==> (lam a:succ(A). if(a=A, y, f`a)) : inj(succ(A), B)"; |
90 by (res_inst_tac [("d","%z. if(z=y, A, converse(f)`z)")] lam_injective 1); |
90 by (res_inst_tac [("d","%z. if(z=y, A, converse(f)`z)")] lam_injective 1); |
91 by (ALLGOALS |
91 by (ALLGOALS |
92 (asm_simp_tac |
92 (asm_simp_tac |
93 (simpset() addsimps [inj_is_fun RS apply_type, left_inverse] |
93 (simpset() addsimps [inj_is_fun RS apply_type, left_inverse] |
94 setloop (split_tac [expand_if] ORELSE' Step_tac)))); |
94 setloop (split_tac [split_if] ORELSE' Step_tac)))); |
95 qed "succ_not_lepoll_lemma"; |
95 qed "succ_not_lepoll_lemma"; |
96 |
96 |
97 Goalw [lepoll_def, eqpoll_def, bij_def, surj_def] |
97 Goalw [lepoll_def, eqpoll_def, bij_def, surj_def] |
98 "!!A. [| ~A eqpoll B; A lepoll B |] ==> succ(A) lepoll B"; |
98 "!!A. [| ~A eqpoll B; A lepoll B |] ==> succ(A) lepoll B"; |
99 by (fast_tac (claset() addSEs [succ_not_lepoll_lemma, inj_is_fun]) 1); |
99 by (fast_tac (claset() addSEs [succ_not_lepoll_lemma, inj_is_fun]) 1); |