src/Pure/goals.ML
changeset 9533 fb68b7163969
parent 8999 ad8260dc6e4a
child 9573 5cadc8146573
equal deleted inserted replaced
9532:36b9bc6eb454 9533:fb68b7163969
   191   "atomic" indicates if the goal should be wrapped up in the function
   191   "atomic" indicates if the goal should be wrapped up in the function
   192   "Goal::prop=>prop" to avoid assumptions being returned separately.
   192   "Goal::prop=>prop" to avoid assumptions being returned separately.
   193 *)
   193 *)
   194 fun prepare_proof atomic rths chorn =
   194 fun prepare_proof atomic rths chorn =
   195   let val {sign, t=horn,...} = rep_cterm chorn;
   195   let val {sign, t=horn,...} = rep_cterm chorn;
       
   196       val _ = Term.no_dummy_patterns horn handle TERM (msg, _) => error msg;
   196       val (_,As,B) = Logic.strip_horn(horn);
   197       val (_,As,B) = Logic.strip_horn(horn);
   197       val atoms = atomic andalso
   198       val atoms = atomic andalso
   198             forall (fn t => not(Logic.is_implies t orelse Logic.is_all t)) As;
   199             forall (fn t => not(Logic.is_implies t orelse Logic.is_all t)) As;
   199       val (As,B) = if atoms then ([],horn) else (As,B);
   200       val (As,B) = if atoms then ([],horn) else (As,B);
   200       val cAs = map (cterm_of sign) As;
   201       val cAs = map (cterm_of sign) As;