src/HOL/Finite.ML
changeset 10375 d943898cc3a9
parent 10098 ab0a3188f398
child 10785 53547a02f2a1
equal deleted inserted replaced
10374:d72638f2b78e 10375:d943898cc3a9
   422 
   422 
   423 Goal "[| finite A; x: A |] ==> card(A-{x}) < card A";
   423 Goal "[| finite A; x: A |] ==> card(A-{x}) < card A";
   424 by (rtac Suc_less_SucD 1);
   424 by (rtac Suc_less_SucD 1);
   425 by (asm_simp_tac (simpset() addsimps [card_Suc_Diff1]) 1);
   425 by (asm_simp_tac (simpset() addsimps [card_Suc_Diff1]) 1);
   426 qed "card_Diff1_less";
   426 qed "card_Diff1_less";
       
   427 
       
   428 Goal "[| finite A; x: A; y: A |] ==> card(A-{x}-{y}) < card A"; 
       
   429 by (case_tac "x=y" 1);
       
   430 by (asm_simp_tac (simpset() addsimps [card_Diff1_less]) 1);
       
   431 by (rtac less_trans 1);
       
   432 by (ALLGOALS (force_tac (claset() addSIs [card_Diff1_less], simpset())));
       
   433 qed "card_Diff2_less";
   427 
   434 
   428 Goal "finite A ==> card(A-{x}) <= card A";
   435 Goal "finite A ==> card(A-{x}) <= card A";
   429 by (case_tac "x: A" 1);
   436 by (case_tac "x: A" 1);
   430 by (ALLGOALS (asm_simp_tac (simpset() addsimps [card_Diff1_less, less_imp_le])));
   437 by (ALLGOALS (asm_simp_tac (simpset() addsimps [card_Diff1_less, less_imp_le])));
   431 qed "card_Diff1_le";
   438 qed "card_Diff1_le";