3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-05-11 09:44:43 +00:00
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2020-04-14 06:30:54 -07:00
parent 0f697830fc
commit 387964f508
7 changed files with 91 additions and 50 deletions

View file

@ -106,6 +106,20 @@ namespace smt {
th.log_axiom_instantiation(body);
}
}
scoped_trace_stream(theory& th, std::function<literal_vector(void)>& fn): m(th.get_manager()) {
if (m.has_trace_stream()) {
th.log_axiom_instantiation(fn());
}
}
scoped_trace_stream(theory& th, std::function<literal(void)>& fn): m(th.get_manager()) {
if (m.has_trace_stream()) {
literal_vector ls;
ls.push_back(fn());
th.log_axiom_instantiation(ls);
}
}
~scoped_trace_stream() {
if (m.has_trace_stream()) {
@ -419,6 +433,8 @@ namespace smt {
log_axiom_instantiation(to_app(r), axiom_id, num_bindings, bindings, pattern_id, used_enodes);
}
void log_axiom_instantiation(literal_vector const& ls);
void log_axiom_instantiation(app * r, unsigned num_blamed_enodes, enode ** blamed_enodes) {
vector<std::tuple<enode *, enode *>> used_enodes;
for (unsigned i = 0; i < num_blamed_enodes; ++i) {