equal
deleted
inserted
replaced
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 |