1249 (** User renaming of parameters in a subgoal **) |
1249 (** User renaming of parameters in a subgoal **) |
1250 |
1250 |
1251 (*Calls error rather than raising an exception because it is intended |
1251 (*Calls error rather than raising an exception because it is intended |
1252 for top-level use -- exception handling would not make sense here. |
1252 for top-level use -- exception handling would not make sense here. |
1253 The names in cs, if distinct, are used for the innermost parameters; |
1253 The names in cs, if distinct, are used for the innermost parameters; |
1254 preceding parameters may be renamed to make all params distinct.*) |
1254 preceding parameters may be renamed to make all params distinct.*) |
1255 fun rename_params_rule (cs, i) state = |
1255 fun rename_params_rule (cs, i) state = |
1256 let |
1256 let |
1257 val Thm {thy_ref, der, maxidx, shyps, hyps, ...} = state; |
1257 val Thm {thy_ref, der, maxidx, shyps, hyps, ...} = state; |
1258 val (tpairs, Bs, Bi, C) = dest_state (state, i); |
1258 val (tpairs, Bs, Bi, C) = dest_state (state, i); |
1259 val iparams = map #1 (Logic.strip_params Bi); |
1259 val iparams = map #1 (Logic.strip_params Bi); |