equal
deleted
inserted
replaced
74 #-> fold_rev (Logic.all o Free); |
74 #-> fold_rev (Logic.all o Free); |
75 |
75 |
76 fun atp_proof_of_z3_proof ctxt ll_defs rewrite_rules hyp_ts concl_t fact_helper_ts prem_ids |
76 fun atp_proof_of_z3_proof ctxt ll_defs rewrite_rules hyp_ts concl_t fact_helper_ts prem_ids |
77 conjecture_id fact_helper_ids proof = |
77 conjecture_id fact_helper_ids proof = |
78 let |
78 let |
79 fun steps_of (Z3_Proof.Z3_Step {id, rule, prems, concl, ...}) = |
79 fun steps_of (Z3_Proof.Z3_Step {id, rule, prems, concl, ...}) : (term, string) ATP_Proof.atp_step list = |
80 let |
80 let |
81 val sid = string_of_int id |
81 val sid = string_of_int id |
82 |
82 |
83 val concl' = concl |
83 val concl' = concl |
84 |> reorder_foralls (* crucial for skolemization steps *) |
84 |> reorder_foralls (* crucial for skolemization steps *) |
90 (case rule of |
90 (case rule of |
91 Z3_Proof.Asserted => |
91 Z3_Proof.Asserted => |
92 let val ss = the_list (AList.lookup (op =) fact_helper_ids id) in |
92 let val ss = the_list (AList.lookup (op =) fact_helper_ids id) in |
93 (case distinguish_conjecture_and_hypothesis ss id conjecture_id prem_ids fact_helper_ts |
93 (case distinguish_conjecture_and_hypothesis ss id conjecture_id prem_ids fact_helper_ts |
94 hyp_ts concl_t of |
94 hyp_ts concl_t of |
95 NONE => [] |
95 NONE => [] (* useless nontheory tautology *) |
96 | SOME (role0, concl00) => |
96 | SOME (role0, concl00) => |
97 let |
97 let |
98 val name0 = (sid ^ "a", ss) |
98 val name0 = (sid ^ "a", ss) |
99 val concl0 = unskolemize_names ctxt concl00 |
99 val concl0 = unskolemize_names ctxt concl00 |
100 in |
100 in |