181 val _ = Proof.assert_backward state |
181 val _ = Proof.assert_backward state |
182 val print = if mode = Normal then Output.urgent_message else K () |
182 val print = if mode = Normal then Output.urgent_message else K () |
183 val state = |
183 val state = |
184 state |> Proof.map_context (Config.put SMT_Config.verbose debug) |
184 state |> Proof.map_context (Config.put SMT_Config.verbose debug) |
185 val ctxt = Proof.context_of state |
185 val ctxt = Proof.context_of state |
186 val {facts = chained_ths, goal, ...} = Proof.goal state |
186 val {facts = chained, goal, ...} = Proof.goal state |
187 val (_, hyp_ts, concl_t) = strip_subgoal ctxt goal i |
187 val (_, hyp_ts, concl_t) = strip_subgoal ctxt goal i |
188 val ho_atp = exists (Sledgehammer_Provers.is_ho_atp ctxt) provers |
188 val ho_atp = exists (Sledgehammer_Provers.is_ho_atp ctxt) provers |
189 val reserved = reserved_isar_keyword_table () |
189 val reserved = reserved_isar_keyword_table () |
190 val css_table = clasimpset_rule_table_of ctxt |
190 val css = clasimpset_rule_table_of ctxt |
191 val facts = |
191 val facts = |
192 nearly_all_facts ctxt ho_atp fact_override reserved css_table |
192 nearly_all_facts ctxt ho_atp fact_override reserved css chained hyp_ts |
193 chained_ths hyp_ts concl_t |
193 concl_t |
194 val _ = () |> not blocking ? kill_provers |
194 val _ = () |> not blocking ? kill_provers |
195 val _ = case find_first (not o is_prover_supported ctxt) provers of |
195 val _ = case find_first (not o is_prover_supported ctxt) provers of |
196 SOME name => error ("No such prover: " ^ name ^ ".") |
196 SOME name => error ("No such prover: " ^ name ^ ".") |
197 | NONE => () |
197 | NONE => () |
198 val _ = print "Sledgehammering..." |
198 val _ = print "Sledgehammering..." |