--- a/src/HOL/Tools/record_package.ML Fri Oct 28 22:27:46 2005 +0200
+++ b/src/HOL/Tools/record_package.ML Fri Oct 28 22:27:47 2005 +0200
@@ -1234,7 +1234,7 @@
val g = nth (prems_of st) (i - 1);
val params = Logic.strip_params g;
val concl = HOLogic.dest_Trueprop (Logic.strip_assums_concl g);
- val rule' = Thm.lift_rule (st, i) rule;
+ val rule' = Thm.lift_rule (Thm.cgoal_of st i) rule;
val (P, ys) = strip_comb (HOLogic.dest_Trueprop
(Logic.strip_assums_concl (prop_of rule')));
(* ca indicates if rule is a case analysis or induction rule *)
@@ -1260,7 +1260,7 @@
val sg = sign_of_thm st;
val g = nth (prems_of st) (i - 1);
val params = Logic.strip_params g;
- val exI' = Thm.lift_rule (st, i) exI;
+ val exI' = Thm.lift_rule (Thm.cgoal_of st i) exI;
val (_$(_$x)) = Logic.strip_assums_concl (hd (prems_of exI'));
val cx = cterm_of sg (fst (strip_comb x));
--- a/src/HOLCF/adm_tac.ML Fri Oct 28 22:27:46 2005 +0200
+++ b/src/HOLCF/adm_tac.ML Fri Oct 28 22:27:47 2005 +0200
@@ -113,7 +113,7 @@
let val {sign, maxidx, ...} = rep_thm state;
val j = maxidx+1;
val parTs = map snd (rev params);
- val rule = lift_rule (state, i) adm_subst;
+ val rule = Thm.lift_rule (Thm.cgoal_of state i) adm_subst;
val types = valOf o (fst (types_sorts rule));
val tT = types ("t", j);
val PT = types ("P", j);
--- a/src/Provers/induct_method.ML Fri Oct 28 22:27:46 2005 +0200
+++ b/src/Provers/induct_method.ML Fri Oct 28 22:27:47 2005 +0200
@@ -157,7 +157,7 @@
Tactic.rewrite_goal_tac Data.rulify2 THEN'
Tactic.norm_hhf_tac;
-val localize = Goal.norm_hhf_rule o Tactic.simplify false Data.localize;
+val localize = Goal.norm_hhf o Tactic.simplify false Data.localize;
(* imp_intr --- limited to atomic prems *)
@@ -168,8 +168,7 @@
val cprems = Drule.cprems_of th;
val As = Library.take (length cprems - 1, cprems);
val C = Thm.cterm_of (Thm.sign_of_thm th) (Var (("C", #maxidx (Thm.rep_thm th) + 1), propT));
- val dummy_st = Goal.init (Drule.list_implies (As, C));
- in th COMP Thm.lift_rule (dummy_st, 1) Data.local_impI end;
+ in th COMP Thm.lift_rule (Drule.list_implies (As, C)) Data.local_impI end;
(* join multi-rules *)
--- a/src/Provers/splitter.ML Fri Oct 28 22:27:46 2005 +0200
+++ b/src/Provers/splitter.ML Fri Oct 28 22:27:47 2005 +0200
@@ -302,7 +302,7 @@
fun inst_split Ts t tt thm TB state i =
let
- val thm' = Thm.lift_rule (state, i) thm;
+ val thm' = Thm.lift_rule (Thm.cgoal_of state i) thm;
val (P, _) = strip_comb (fst (Logic.dest_equals
(Logic.strip_assums_concl (#prop (rep_thm thm')))));
val cert = cterm_of (sign_of_thm state);