src/Pure/tactic.ML
changeset 19925 3f9341831812
parent 19743 0843210d3756
child 20115 6c2ca3749a80
--- a/src/Pure/tactic.ML	Mon Jun 19 19:56:32 2006 +0200
+++ b/src/Pure/tactic.ML	Mon Jun 19 20:21:30 2006 +0200
@@ -133,12 +133,16 @@
 
 (*Makes a rule by applying a tactic to an existing rule*)
 fun rule_by_tactic tac rl =
-  let val (st, thaw) = freeze_thaw_robust (zero_var_indexes rl)
-  in case Seq.pull (tac st)  of
-        NONE        => raise THM("rule_by_tactic", 0, [rl])
-      | SOME(st',_) => Thm.varifyT (thaw 0 st')
+  let
+    val ctxt = Variable.thm_context rl;
+    val ([st], ctxt') = Variable.import true [rl] ctxt;
+  in
+    (case Seq.pull (tac st) of
+      NONE => raise THM ("rule_by_tactic", 0, [rl])
+    | SOME (st', _) => zero_var_indexes (singleton (Variable.export ctxt' ctxt) st'))
   end;
 
+
 (*** Basic tactics ***)
 
 (*** The following fail if the goal number is out of range: