InductTacs.case_tac with proper context and proper declaration of local variable;
authorwenzelm
Tue, 10 Jun 2008 19:15:21 +0200
changeset 27128 d2374ba6c02e
parent 27127 cd6617d57a16
child 27129 336807f865ce
InductTacs.case_tac with proper context and proper declaration of local variable;
src/HOL/Nominal/nominal_atoms.ML
--- a/src/HOL/Nominal/nominal_atoms.ML	Tue Jun 10 19:15:20 2008 +0200
+++ b/src/HOL/Nominal/nominal_atoms.ML	Tue Jun 10 19:15:21 2008 +0200
@@ -94,10 +94,11 @@
               val stmnt2 = HOLogic.mk_Trueprop
                   (HOLogic.mk_exists ("x",@{typ nat},HOLogic.mk_eq (y,Const (ak_sign,inj_type) $ Bound 0)))
 
-              val proof2 = fn _ => EVERY [DatatypePackage.case_tac "y" 1,
-                                          asm_simp_tac (HOL_basic_ss addsimps simp1) 1,
-                                          rtac @{thm exI} 1,
-                                          rtac @{thm refl} 1]
+              val proof2 = fn {prems, context} =>
+                InductTacs.case_tac (context |> Variable.declare_term y) ("y", NONE) 1 THEN
+                asm_simp_tac (HOL_basic_ss addsimps simp1) 1 THEN
+                rtac @{thm exI} 1 THEN
+                rtac @{thm refl} 1
 
               (* third statement *)
               val (inject_thm,thy3) =