src/ZF/Cardinal.ML
changeset 5325 f7a5e06adea1
parent 5284 c77e9dd9bafc
child 6068 2d8f3e1f1151
equal deleted inserted replaced
5324:ec84178243ff 5325:f7a5e06adea1
    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);