3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-06-19 23:26:30 +00:00

remove expr_ref from dependencies, only use literals that are true.

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2026-05-17 13:28:12 -07:00
parent b75acc5c14
commit 9d4feed0ae
10 changed files with 141 additions and 101 deletions

View file

@ -101,6 +101,28 @@ namespace smt {
return false;
}
bool arith_value::get_up(expr *e, rational &up, bool &is_strict, literal_vector& core, enode_pair_vector& eqs) const {
if (!m_ctx->e_internalized(e))
return false;
is_strict = false;
enode *n = m_ctx->get_enode(e);
if (m_thr)
return m_thr->get_upper(n, up, is_strict, core, eqs);
TRACE(arith_value, tout << "value not found for " << mk_pp(e, m_ctx->get_manager()) << "\n";);
return false;
}
bool arith_value::get_lo(expr *e, rational &up, bool &is_strict, literal_vector& core, enode_pair_vector& eqs) const {
if (!m_ctx->e_internalized(e))
return false;
is_strict = false;
enode *n = m_ctx->get_enode(e);
if (m_thr)
return m_thr->get_lower(n, up, is_strict, core, eqs);
TRACE(arith_value, tout << "value not found for " << mk_pp(e, m_ctx->get_manager()) << "\n";);
return false;
}
bool arith_value::get_value(expr* e, rational& val) const {
if (!m_ctx->e_internalized(e)) return false;
expr_ref _val(m);