3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-16 07:45:27 +00:00

remove also second hash-table for ALIVE_OPT #4747

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2020-10-27 00:11:12 -07:00
parent f3147d6e22
commit e962deb557
6 changed files with 26 additions and 12 deletions

View file

@ -193,6 +193,9 @@ namespace smt {
}
void qi_queue::instantiate(entry & ent) {
// set temporary flag to enable quantifier-specific tracing in within smt_internalizer.
flet<bool> _coming_from_quant(m_context.m_coming_from_quant, true);
fingerprint * f = ent.m_qb;
quantifier * q = static_cast<quantifier*>(f->get_data());
unsigned generation = ent.m_generation;
@ -200,12 +203,14 @@ namespace smt {
enode * const * bindings = f->get_args();
ent.m_instantiated = true;
std::cout << mk_pp(q, m) << "\n";
for (unsigned i = 0; i < num_bindings; ++i)
std::cout << mk_pp(bindings[i]->get_owner(), m) << " ";
std::cout << "\n";
TRACE("qi_queue_profile", tout << q->get_qid() << ", gen: " << generation << " " << *f << " cost: " << ent.m_cost << "\n";);
// NEVER remove coming_from_quant
// "coming_from_quant" allows the logging of bindings and enodes
// only when they come from instantiations
enable_trace("coming_from_quant");
quantifier_stat * stat = m_qm.get_stat(q);
if (m_checker.is_sat(q->get_expr(), num_bindings, bindings)) {
@ -216,7 +221,6 @@ namespace smt {
// a dummy instantiation is still an instantiation.
// in this way smt.qi.profile=true coincides with the axiom profiler
stat->inc_num_instances_checker_sat();
disable_trace("coming_from_quant");
return;
}
@ -241,7 +245,6 @@ namespace smt {
m.trace_stream() << "[end-of-instance]\n";
}
disable_trace("coming_from_quant");
return;
}
TRACE("qi_queue", tout << "simplified instance:\n" << s_instance << "\n";);
@ -329,8 +332,6 @@ namespace smt {
if (m.has_trace_stream())
m.trace_stream() << "[end-of-instance]\n";
// NEVER remove coming_from_quant
disable_trace("coming_from_quant");
}
void qi_queue::push_scope() {

View file

@ -585,6 +585,12 @@ namespace smt {
return get_bdata(v).get_theory();
}
/**
* flag to toggle quantifier tracing.
*/
bool m_coming_from_quant { false };
friend class set_var_theory_trail;
void set_var_theory(bool_var v, theory_id tid);

View file

@ -1014,7 +1014,7 @@ namespace smt {
tout << "is_true_eq: " << e->is_true_eq() << " in cg_table: " << m_cg_table.contains_ptr(e) << " is_cgr: "
<< e->is_cgr() << "\n";
});
SCTRACE("causality", is_trace_enabled("coming_from_quant"), tout << "EN: #" << e->get_owner_id() << "\n";);
SCTRACE("causality", m_coming_from_quant, tout << "EN: #" << e->get_owner_id() << "\n";);
if (m.has_trace_stream())
m.trace_stream() << "[attach-enode] #" << n->get_id() << " " << m_generation << "\n";