1304 (case Logic.strip_prems(i, [], prop) of |
1304 (case Logic.strip_prems(i, [], prop) of |
1305 (B::rBs, C) => (tpairs, rev rBs, B, C) |
1305 (B::rBs, C) => (tpairs, rev rBs, B, C) |
1306 | _ => raise THM("dest_state", i, [state])) |
1306 | _ => raise THM("dest_state", i, [state])) |
1307 handle TERM _ => raise THM("dest_state", i, [state]); |
1307 handle TERM _ => raise THM("dest_state", i, [state]); |
1308 |
1308 |
1309 (*Increment variables and parameters of orule as required for |
1309 (*Prepare orule for resolution by lifting it over the parameters and |
1310 resolution with a goal.*) |
1310 assumptions of goal.*) |
1311 fun lift_rule goal orule = |
1311 fun lift_rule goal orule = |
1312 let |
1312 let |
1313 val Cterm {t = gprop, T, maxidx = gmax, sorts, ...} = goal; |
1313 val Cterm {t = gprop, T, maxidx = gmax, sorts, ...} = goal; |
1314 val inc = gmax + 1; |
1314 val inc = gmax + 1; |
1315 val lift_abs = Logic.lift_abs inc gprop; |
1315 val lift_abs = Logic.lift_abs inc gprop; |