3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-10-31 19:52:29 +00:00

fix build

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2025-10-18 13:30:46 +02:00
parent af432668be
commit 7d585b5cfd
4 changed files with 14 additions and 8 deletions

View file

@ -1674,7 +1674,7 @@ bool ast_manager::slow_not_contains(ast const * n) {
} }
#endif #endif
#if 0 #if 1
static unsigned s_count = 0; static unsigned s_count = 0;
static void track_id(ast_manager& m, ast* n, unsigned id) { static void track_id(ast_manager& m, ast* n, unsigned id) {
@ -1715,7 +1715,7 @@ ast * ast_manager::register_node_core(ast * n) {
n->m_id = is_decl(n) ? m_decl_id_gen.mk() : m_expr_id_gen.mk(); n->m_id = is_decl(n) ? m_decl_id_gen.mk() : m_expr_id_gen.mk();
// track_id(*this, n, 9213); track_id(*this, n, 715);
// TRACE(ast, tout << (s_count++) << " Object " << n->m_id << " was created.\n";); // TRACE(ast, tout << (s_count++) << " Object " << n->m_id << " was created.\n";);
TRACE(mk_var_bug, tout << "mk_ast: " << n->m_id << "\n";); TRACE(mk_var_bug, tout << "mk_ast: " << n->m_id << "\n";);

View file

@ -720,7 +720,7 @@ br_status arith_rewriter::mk_le_ge_eq_core(expr * arg1, expr * arg2, op_kind kin
} }
expr* c = nullptr, *t = nullptr, *e = nullptr; expr* c = nullptr, *t = nullptr, *e = nullptr;
if (m.is_ite(arg1, c, t, e) && is_numeral(t, a1) && is_numeral(arg2, a2)) { if (m.is_ite(arg1, c, t, e) && is_numeral(t, a1) && is_numeral(arg2, a2)) {
auto a = m.mk_not(c); expr_ref a(m.mk_not(c), m);
switch (kind) { switch (kind) {
case LE: result = a1 <= a2 ? m.mk_or(c, m_util.mk_le(e, arg2)) : m.mk_and(a, m_util.mk_le(e, arg2)); return BR_REWRITE2; case LE: result = a1 <= a2 ? m.mk_or(c, m_util.mk_le(e, arg2)) : m.mk_and(a, m_util.mk_le(e, arg2)); return BR_REWRITE2;
case GE: result = a1 >= a2 ? m.mk_or(c, m_util.mk_ge(e, arg2)) : m.mk_and(a, m_util.mk_ge(e, arg2)); return BR_REWRITE2; case GE: result = a1 >= a2 ? m.mk_or(c, m_util.mk_ge(e, arg2)) : m.mk_and(a, m_util.mk_ge(e, arg2)); return BR_REWRITE2;
@ -728,7 +728,7 @@ br_status arith_rewriter::mk_le_ge_eq_core(expr * arg1, expr * arg2, op_kind kin
} }
} }
if (m.is_ite(arg1, c, t, e) && is_numeral(e, a1) && is_numeral(arg2, a2)) { if (m.is_ite(arg1, c, t, e) && is_numeral(e, a1) && is_numeral(arg2, a2)) {
auto a = m.mk_not(c); expr_ref a(m.mk_not(c), m);
switch (kind) { switch (kind) {
case LE: result = a1 <= a2 ? m.mk_or(a, m_util.mk_le(t, arg2)) : m.mk_and(c, m_util.mk_le(t, arg2)); return BR_REWRITE2; case LE: result = a1 <= a2 ? m.mk_or(a, m_util.mk_le(t, arg2)) : m.mk_and(c, m_util.mk_le(t, arg2)); return BR_REWRITE2;
case GE: result = a1 >= a2 ? m.mk_or(a, m_util.mk_ge(t, arg2)) : m.mk_and(c, m_util.mk_ge(t, arg2)); return BR_REWRITE2; case GE: result = a1 >= a2 ? m.mk_or(a, m_util.mk_ge(t, arg2)) : m.mk_and(c, m_util.mk_ge(t, arg2)); return BR_REWRITE2;

View file

@ -1939,7 +1939,8 @@ namespace smt {
m.trace_stream() << "[push] " << m_scope_lvl << "\n"; m.trace_stream() << "[push] " << m_scope_lvl << "\n";
m_scope_lvl++; m_scope_lvl++;
get_region().push_scope(); m_region.push_scope();
get_trail_stack().push_scope();
m_scopes.push_back(scope()); m_scopes.push_back(scope());
scope & s = m_scopes.back(); scope & s = m_scopes.back();
// TRACE(context, tout << "push " << m_scope_lvl << "\n";); // TRACE(context, tout << "push " << m_scope_lvl << "\n";);
@ -2447,20 +2448,23 @@ namespace smt {
m_relevancy_propagator->pop(num_scopes); m_relevancy_propagator->pop(num_scopes);
m_fingerprints.pop_scope(num_scopes); m_fingerprints.pop_scope(num_scopes);
unassign_vars(s.m_assigned_literals_lim); unassign_vars(s.m_assigned_literals_lim);
m_trail_stack.pop_scope(num_scopes); m_trail_stack.pop_scope(num_scopes);
for (theory* th : m_theory_set) for (theory* th : m_theory_set)
th->pop_scope_eh(num_scopes); th->pop_scope_eh(num_scopes);
del_justifications(m_justifications, s.m_justifications_lim); del_justifications(m_justifications, s.m_justifications_lim);
m_asserted_formulas.pop_scope(num_scopes); m_asserted_formulas.pop_scope(num_scopes);
CTRACE(propagate_atoms, !m_atom_propagation_queue.empty(), tout << m_atom_propagation_queue << "\n";); CTRACE(propagate_atoms, !m_atom_propagation_queue.empty(), tout << m_atom_propagation_queue << "\n";);
m_eq_propagation_queue.reset(); m_eq_propagation_queue.reset();
m_th_eq_propagation_queue.reset(); m_th_eq_propagation_queue.reset();
m_region.pop_scope(num_scopes);
m_th_diseq_propagation_queue.reset(); m_th_diseq_propagation_queue.reset();
m_atom_propagation_queue.reset(); m_atom_propagation_queue.reset();
m_scopes.shrink(new_lvl); m_scopes.shrink(new_lvl);

View file

@ -101,6 +101,7 @@ namespace smt {
setup m_setup; setup m_setup;
unsigned m_relevancy_lvl; unsigned m_relevancy_lvl;
timer m_timer; timer m_timer;
region m_region;
asserted_formulas m_asserted_formulas; asserted_formulas m_asserted_formulas;
th_rewriter m_rewriter; th_rewriter m_rewriter;
scoped_ptr<quantifier_manager> m_qmanager; scoped_ptr<quantifier_manager> m_qmanager;
@ -152,6 +153,7 @@ namespace smt {
vector<enode_vector> m_decl2enodes; // decl -> enode (for decls with arity > 0) vector<enode_vector> m_decl2enodes; // decl -> enode (for decls with arity > 0)
enode_vector m_empty_vector; enode_vector m_empty_vector;
cg_table m_cg_table; cg_table m_cg_table;
struct new_eq { struct new_eq {
enode * m_lhs; enode * m_lhs;
enode * m_rhs; enode * m_rhs;
@ -303,7 +305,7 @@ namespace smt {
} }
region & get_region() { region & get_region() {
return m_trail_stack.get_region(); return m_region;
} }
bool relevancy() const { bool relevancy() const {