src/HOL/NatDef.ML
changeset 9969 4753185f1dd2
parent 9870 2374ba026fc6
child 10186 499637e8f2c6
equal deleted inserted replaced
9968:264b16d934f9 9969:4753185f1dd2
   474 by (simp_tac (simpset() addsimps [lemma]) 1);
   474 by (simp_tac (simpset() addsimps [lemma]) 1);
   475 qed "Least_nat_def";
   475 qed "Least_nat_def";
   476 
   476 
   477 val [prem1,prem2] = Goalw [Least_nat_def]
   477 val [prem1,prem2] = Goalw [Least_nat_def]
   478     "[| P(k::nat);  !!x. x<k ==> ~P(x) |] ==> (LEAST x. P(x)) = k";
   478     "[| P(k::nat);  !!x. x<k ==> ~P(x) |] ==> (LEAST x. P(x)) = k";
   479 by (rtac select_equality 1);
   479 by (rtac some_equality 1);
   480 by (blast_tac (claset() addSIs [prem1,prem2]) 1);
   480 by (blast_tac (claset() addSIs [prem1,prem2]) 1);
   481 by (cut_facts_tac [less_linear] 1);
   481 by (cut_facts_tac [less_linear] 1);
   482 by (blast_tac (claset() addSIs [prem1] addSDs [prem2]) 1);
   482 by (blast_tac (claset() addSIs [prem1] addSDs [prem2]) 1);
   483 qed "Least_equality";
   483 qed "Least_equality";
   484 
   484