src/HOL/Finite.ML
changeset 11122 0a258a048d8d
parent 11092 69c1abb9a129
child 11451 8abfb4f7bd02
equal deleted inserted replaced
11121:44db3b518ca2 11122:0a258a048d8d
   301 val lemma = result();
   301 val lemma = result();
   302 
   302 
   303 Goal "(A,m): cardR ==> (ALL n. (A,n) : cardR --> n=m)";
   303 Goal "(A,m): cardR ==> (ALL n. (A,n) : cardR --> n=m)";
   304 by (etac cardR.induct 1);
   304 by (etac cardR.induct 1);
   305  by (safe_tac (claset() addSEs [cardR_insertE]));
   305  by (safe_tac (claset() addSEs [cardR_insertE]));
   306 by (rename_tac "B b m" 1);
   306 by (rename_tac "B b m" 1 THEN case_tac "a = b" 1);
   307 by (case_tac "a = b" 1);
       
   308  by (subgoal_tac "A = B" 1);
   307  by (subgoal_tac "A = B" 1);
   309   by (blast_tac (claset() addEs [equalityE]) 2);
   308   by (blast_tac (claset() addEs [equalityE]) 2);
   310  by (Blast_tac 1);
   309  by (Blast_tac 1);
   311 by (subgoal_tac "EX C. A = insert b C & B = insert a C" 1);
   310 by (subgoal_tac "EX C. A = insert b C & B = insert a C" 1);
   312  by (res_inst_tac [("x","A Int B")] exI 2);
   311  by (res_inst_tac [("x","A Int B")] exI 2);
   568 (*force simplification of "card A < card (insert ...)"*)
   567 (*force simplification of "card A < card (insert ...)"*)
   569 by (etac rev_mp 1);
   568 by (etac rev_mp 1);
   570 by (asm_simp_tac (simpset() addsimps [less_Suc_eq_le]) 1);
   569 by (asm_simp_tac (simpset() addsimps [less_Suc_eq_le]) 1);
   571 by (rtac impI 1);
   570 by (rtac impI 1);
   572 (** LEVEL 10 **)
   571 (** LEVEL 10 **)
   573 by (rename_tac "Aa xa ya Ab xb yb" 1);
   572 by (rename_tac "Aa xa ya Ab xb yb" 1 THEN case_tac "xa=xb" 1);
   574  by (case_tac "xa=xb" 1);
       
   575  by (subgoal_tac "Aa = Ab" 1);
   573  by (subgoal_tac "Aa = Ab" 1);
   576  by (blast_tac (claset() addSEs [equalityE]) 2);
   574  by (blast_tac (claset() addSEs [equalityE]) 2);
   577  by (Blast_tac 1);
   575  by (Blast_tac 1);
   578 (*case xa ~= xb*)
   576 (*case xa ~= xb*)
   579 by (subgoal_tac "Aa-{xb} = Ab-{xa} & xb : Aa & xa : Ab" 1);
   577 by (subgoal_tac "Aa-{xb} = Ab-{xa} & xb : Aa & xa : Ab" 1);