rename_params_rule used to check if the new name clashed with a free name in
authornipkow
Thu, 24 Apr 1997 17:59:55 +0200
changeset 3037 99ed078e6ae7
parent 3036 5aa3bb94b729
child 3038 bb2ded320911
rename_params_rule used to check if the new name clashed with a free name in the whole goal state. Now checks only the subgoal concerned.
src/Pure/thm.ML
--- a/src/Pure/thm.ML	Thu Apr 24 17:51:27 1997 +0200
+++ b/src/Pure/thm.ML	Thu Apr 24 17:59:55 1997 +0200
@@ -1201,14 +1201,14 @@
   The names in cs, if distinct, are used for the innermost parameters;
    preceding parameters may be renamed to make all params distinct.*)
 fun rename_params_rule (cs, i) state =
-  let val Thm{sign,der,maxidx,hyps,prop,...} = state
+  let val Thm{sign,der,maxidx,hyps,...} = state
       val (tpairs, Bs, Bi, C) = dest_state(state,i)
       val iparams = map #1 (Logic.strip_params Bi)
       val short = length iparams - length cs
       val newnames =
             if short<0 then error"More names than abstractions!"
             else variantlist(take (short,iparams), cs) @ cs
-      val freenames = map (#1 o dest_Free) (term_frees prop)
+      val freenames = map (#1 o dest_Free) (term_frees Bi)
       val newBi = Logic.list_rename_params (newnames, Bi)
   in
   case findrep cs of