src/Provers/order.ML
changeset 59582 0fbed69ff081
parent 59498 50b60f501b05
child 59584 4517e9a96ace
equal deleted inserted replaced
59580:cbc38731d42f 59582:0fbed69ff081
  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