src/Pure/goal.ML
changeset 29088 95a239a5e055
parent 28973 c549650d1442
child 29122 b3bae49a013a
equal deleted inserted replaced
29087:40fbcea084ff 29088:95a239a5e055
   175             if Unify.matches_list thy [Thm.term_of stmt] [Thm.prop_of res]
   175             if Unify.matches_list thy [Thm.term_of stmt] [Thm.prop_of res]
   176             then Thm.check_shyps sorts res
   176             then Thm.check_shyps sorts res
   177             else err ("Proved a different theorem: " ^ string_of_term (Thm.prop_of res))
   177             else err ("Proved a different theorem: " ^ string_of_term (Thm.prop_of res))
   178           end);
   178           end);
   179     val res =
   179     val res =
   180       if immediate orelse #maxidx (Thm.rep_cterm stmt) >= 0 then result ()
   180       if immediate orelse #maxidx (Thm.rep_cterm stmt) >= 0 orelse not (Future.enabled ())
       
   181       then result ()
   181       else future_result ctxt' (Future.fork_background result) (Thm.term_of stmt);
   182       else future_result ctxt' (Future.fork_background result) (Thm.term_of stmt);
   182   in
   183   in
   183     Conjunction.elim_balanced (length props) res
   184     Conjunction.elim_balanced (length props) res
   184     |> map (Assumption.export false ctxt' ctxt)
   185     |> map (Assumption.export false ctxt' ctxt)
   185     |> Variable.export ctxt' ctxt
   186     |> Variable.export ctxt' ctxt