(* Title: HOL/Tools/SMT/lethe_proof_parse.ML Author: Mathias Fleury, TU Muenchen Author: Jasmin Blanchette, TU Muenchen
VeriT proof parsing.
*)
signature LETHE_PROOF_PARSE = sig type ('a, 'b) atp_step = ('a, 'b) ATP_Proof.atp_step val parse_proof: SMT_Translate.replay_data ->
((string * ATP_Problem_Generate.stature) * thm) list -> term list -> term -> stringlist ->
SMT_Solver.parsed_proof end;
val (actual_steps, _) = Lethe_Proof.parse typs terms output ctxt val used_assert_ids =
actual_steps
|> map_filter (fn (Lethe_Step { id, ...}) => try (snd o SMTLIB_Interface.role_and_index_of_assert_name) id) val used_assm_js =
map_filter (fn id => letval i = index_of_id id inif i >= 0 then SOME i else NONE end)
used_assert_ids val used_assms = map (nth assms) used_assm_js val assm_steps = map2 step_of_assume used_assm_js used_assms val steps = assm_steps @ actual_steps
val conjecture_i = 0 val prems_i = conjecture_i + 1 val num_prems = length prems val facts_i = prems_i + num_prems val num_facts = length xfacts val helpers_i = facts_i + num_facts
val conjecture_id = id_of_index conjecture_i val prem_ids = map id_of_index (prems_i upto prems_i + num_prems - 1) val fact_ids' =
map_filter (fn j => letval ((i, _), _) = nth assms j in try (apsnd (nth xfacts)) (id_of_index j, i - facts_i) end) used_assm_js val helper_ids' =
map_filter (fn ((i, _), thm) => if i >= helpers_i then SOME (i, thm) else NONE) used_assms
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.