mirror of
https://github.com/Z3Prover/z3
synced 2025-06-29 09:28:45 +00:00
streamline pb solver interface and naming after removal of xor
This commit is contained in:
parent
13f05ae9dc
commit
026065ff71
73 changed files with 1131 additions and 1201 deletions
|
@ -51,7 +51,7 @@ namespace smt {
|
|||
template<typename Ext>
|
||||
theory_var theory_dense_diff_logic<Ext>::mk_var(enode * n) {
|
||||
theory_var v = theory::mk_var(n);
|
||||
bool is_int = m_autil.is_int(n->get_owner());
|
||||
bool is_int = m_autil.is_int(n->get_expr());
|
||||
m_is_int.push_back(is_int);
|
||||
m_f_targets.push_back(f_target());
|
||||
for (auto& rows : m_matrix) {
|
||||
|
@ -726,7 +726,7 @@ namespace smt {
|
|||
TRACE("ddl_model",
|
||||
tout << "ddl model\n";
|
||||
for (theory_var v = 0; v < num_vars; v++) {
|
||||
tout << "#" << mk_pp(get_enode(v)->get_owner(), m) << " = " << m_assignment[v] << "\n";
|
||||
tout << "#" << mk_pp(get_enode(v)->get_expr(), m) << " = " << m_assignment[v] << "\n";
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -802,13 +802,13 @@ namespace smt {
|
|||
int num_vars = get_num_vars();
|
||||
for (int v = 0; v < num_vars && v < (int)m_assignment.size(); ++v) {
|
||||
enode * n = get_enode(v);
|
||||
if (m_autil.is_zero(n->get_owner()) && !m_assignment[v].is_zero()) {
|
||||
if (m_autil.is_zero(n->get_expr()) && !m_assignment[v].is_zero()) {
|
||||
numeral val = m_assignment[v];
|
||||
sort * s = n->get_owner()->get_sort();
|
||||
sort * s = n->get_expr()->get_sort();
|
||||
// adjust the value of all variables that have the same sort.
|
||||
for (int v2 = 0; v2 < num_vars; ++v2) {
|
||||
enode * n2 = get_enode(v2);
|
||||
if (n2->get_owner()->get_sort() == s) {
|
||||
if (n2->get_expr()->get_sort() == s) {
|
||||
m_assignment[v2] -= val;
|
||||
}
|
||||
}
|
||||
|
@ -818,7 +818,7 @@ namespace smt {
|
|||
TRACE("ddl_model",
|
||||
tout << "ddl model\n";
|
||||
for (theory_var v = 0; v < num_vars; v++) {
|
||||
tout << "#" << mk_pp(get_enode(v)->get_owner(), m) << " = " << m_assignment[v] << "\n";
|
||||
tout << "#" << mk_pp(get_enode(v)->get_expr(), m) << " = " << m_assignment[v] << "\n";
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -941,7 +941,7 @@ namespace smt {
|
|||
}
|
||||
for (unsigned i = 0; i < num_nodes; ++i) {
|
||||
enode * n = get_enode(i);
|
||||
if (m_autil.is_zero(n->get_owner())) {
|
||||
if (m_autil.is_zero(n->get_expr())) {
|
||||
S.set_lower(i, mpq_inf(mpq(0), mpq(0)));
|
||||
S.set_upper(i, mpq_inf(mpq(0), mpq(0)));
|
||||
break;
|
||||
|
@ -1080,19 +1080,19 @@ namespace smt {
|
|||
expr_ref e(m), f(m), f2(m);
|
||||
TRACE("opt", tout << "mk_ineq " << v << " " << val << "\n";);
|
||||
if (t.size() == 1 && t[0].second.is_one()) {
|
||||
f = get_enode(t[0].first)->get_owner();
|
||||
f = get_enode(t[0].first)->get_expr();
|
||||
}
|
||||
else if (t.size() == 1 && t[0].second.is_minus_one()) {
|
||||
f = m_autil.mk_uminus(get_enode(t[0].first)->get_owner());
|
||||
f = m_autil.mk_uminus(get_enode(t[0].first)->get_expr());
|
||||
}
|
||||
else if (t.size() == 2 && t[0].second.is_one() && t[1].second.is_minus_one()) {
|
||||
f = get_enode(t[0].first)->get_owner();
|
||||
f2 = get_enode(t[1].first)->get_owner();
|
||||
f = get_enode(t[0].first)->get_expr();
|
||||
f2 = get_enode(t[1].first)->get_expr();
|
||||
f = m_autil.mk_sub(f, f2);
|
||||
}
|
||||
else if (t.size() == 2 && t[1].second.is_one() && t[0].second.is_minus_one()) {
|
||||
f = get_enode(t[1].first)->get_owner();
|
||||
f2 = get_enode(t[0].first)->get_owner();
|
||||
f = get_enode(t[1].first)->get_expr();
|
||||
f2 = get_enode(t[0].first)->get_expr();
|
||||
f = m_autil.mk_sub(f, f2);
|
||||
}
|
||||
else {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue