equal
deleted
inserted
replaced
1233 in |
1233 in |
1234 SUBGOAL (fn (A, n) => fn st => |
1234 SUBGOAL (fn (A, n) => fn st => |
1235 let |
1235 let |
1236 val thy = Proof_Context.theory_of ctxt; |
1236 val thy = Proof_Context.theory_of ctxt; |
1237 val rfrees = map Free (Term.rename_wrt_term A (Logic.strip_params A)); |
1237 val rfrees = map Free (Term.rename_wrt_term A (Logic.strip_params A)); |
1238 val Hs = map prop_of prems @ map (fn H => subst_bounds (rfrees, H)) (Logic.strip_assums_hyp A) |
1238 val Hs = |
|
1239 map Thm.prop_of prems @ |
|
1240 map (fn H => subst_bounds (rfrees, H)) (Logic.strip_assums_hyp A) |
1239 val C = subst_bounds (rfrees, Logic.strip_assums_concl A) |
1241 val C = subst_bounds (rfrees, Logic.strip_assums_concl A) |
1240 val lesss = flat (map_index (mkasm decomp less_thms thy) Hs) |
1242 val lesss = flat (map_index (mkasm decomp less_thms thy) Hs) |
1241 val prfs = gen_solve mkconcl thy (lesss, C); |
1243 val prfs = gen_solve mkconcl thy (lesss, C); |
1242 val (subgoals, prf) = mkconcl decomp less_thms thy C; |
1244 val (subgoals, prf) = mkconcl decomp less_thms thy C; |
1243 in |
1245 in |