27 (decomp_bnd_mono RS lfp_Tarski RS ssubst) 1); |
27 (decomp_bnd_mono RS lfp_Tarski RS ssubst) 1); |
28 by (simp_tac (simpset() addsimps [subset_refl, double_complement, |
28 by (simp_tac (simpset() addsimps [subset_refl, double_complement, |
29 gfun RS fun_is_rel RS image_subset]) 1); |
29 gfun RS fun_is_rel RS image_subset]) 1); |
30 qed "Banach_last_equation"; |
30 qed "Banach_last_equation"; |
31 |
31 |
32 val prems = goal Cardinal.thy |
32 Goal "[| f: X->Y; g: Y->X |] ==> \ |
33 "[| f: X->Y; g: Y->X |] ==> \ |
33 \ EX XA XB YA YB. (XA Int XB = 0) & (XA Un XB = X) & \ |
34 \ EX XA XB YA YB. (XA Int XB = 0) & (XA Un XB = X) & \ |
34 \ (YA Int YB = 0) & (YA Un YB = Y) & \ |
35 \ (YA Int YB = 0) & (YA Un YB = Y) & \ |
35 \ f``XA=YA & g``YB=XB"; |
36 \ f``XA=YA & g``YB=XB"; |
|
37 by (REPEAT |
36 by (REPEAT |
38 (FIRSTGOAL |
37 (FIRSTGOAL |
39 (resolve_tac [refl, exI, conjI, Diff_disjoint, Diff_partition]))); |
38 (resolve_tac [refl, exI, conjI, Diff_disjoint, Diff_partition]))); |
40 by (rtac Banach_last_equation 3); |
39 by (rtac Banach_last_equation 3); |
41 by (REPEAT (resolve_tac (prems@[fun_is_rel, image_subset, lfp_subset]) 1)); |
40 by (REPEAT (ares_tac [fun_is_rel, image_subset, lfp_subset] 1)); |
42 qed "decomposition"; |
41 qed "decomposition"; |
43 |
42 |
44 val prems = goal Cardinal.thy |
43 val prems = goal Cardinal.thy |
45 "[| f: inj(X,Y); g: inj(Y,X) |] ==> EX h. h: bij(X,Y)"; |
44 "[| f: inj(X,Y); g: inj(Y,X) |] ==> EX h. h: bij(X,Y)"; |
46 by (cut_facts_tac prems 1); |
45 by (cut_facts_tac prems 1); |
738 |
737 |
739 |
738 |
740 (*Krzysztof Grabczewski's proof that the converse of a finite, well-ordered |
739 (*Krzysztof Grabczewski's proof that the converse of a finite, well-ordered |
741 set is well-ordered. Proofs simplified by lcp. *) |
740 set is well-ordered. Proofs simplified by lcp. *) |
742 |
741 |
743 goal Nat.thy "!!n. n:nat ==> wf[n](converse(Memrel(n)))"; |
742 Goal "n:nat ==> wf[n](converse(Memrel(n)))"; |
744 by (etac nat_induct 1); |
743 by (etac nat_induct 1); |
745 by (blast_tac (claset() addIs [wf_onI]) 1); |
744 by (blast_tac (claset() addIs [wf_onI]) 1); |
746 by (rtac wf_onI 1); |
745 by (rtac wf_onI 1); |
747 by (asm_full_simp_tac (simpset() addsimps [wf_on_def, wf_def, Memrel_iff]) 1); |
746 by (asm_full_simp_tac (simpset() addsimps [wf_on_def, wf_def, Memrel_iff]) 1); |
748 by (excluded_middle_tac "x:Z" 1); |
747 by (excluded_middle_tac "x:Z" 1); |