3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-07 03:31:23 +00:00

python for accessing lambda, switch to theory branching for QF_LRA

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2019-08-14 15:44:25 -07:00
parent 520ea65f32
commit 2b2f016f96
4 changed files with 14 additions and 13 deletions

View file

@ -409,7 +409,7 @@ namespace smt {
m_params.m_nnf_cnf = false;
m_params.m_arith_eq_bounds = true;
m_params.m_arith_eq2ineq = true;
m_params.m_phase_selection = PS_ALWAYS_FALSE;
// m_params.m_phase_selection = PS_THEORY;
m_params.m_restart_strategy = RS_GEOMETRIC;
m_params.m_restart_factor = 1.5;
m_params.m_restart_adaptive = false;
@ -442,7 +442,7 @@ namespace smt {
}
}
m_params.m_arith_eq_bounds = true;
m_params.m_phase_selection = PS_ALWAYS_FALSE;
// m_params.m_phase_selection = PS_THEORY;
m_params.m_restart_strategy = RS_GEOMETRIC;
m_params.m_restart_factor = 1.5;
m_params.m_restart_adaptive = false;
@ -456,13 +456,14 @@ namespace smt {
}
void setup::setup_QF_LRA() {
TRACE("setup", tout << "setup_QF_LRA(st)\n";);
TRACE("setup", tout << "setup_QF_LRA()\n";);
m_params.m_relevancy_lvl = 0;
m_params.m_arith_eq2ineq = true;
m_params.m_arith_reflect = false;
m_params.m_arith_propagate_eqs = false;
m_params.m_eliminate_term_ite = true;
m_params.m_nnf_cnf = false;
m_params.m_phase_selection = PS_THEORY;
setup_lra_arith();
}

View file

@ -944,10 +944,6 @@ public:
if (!m_bool_var2bound.find(v, b)) {
return l_undef;
}
scoped_internalize_state st(*this);
st.vars().push_back(b->get_var());
st.coeffs().push_back(rational::one());
init_left_side(st);
lp::lconstraint_kind k = lp::EQ;
switch (b->get_bound_kind()) {
case lp_api::lower_t:
@ -956,10 +952,11 @@ public:
case lp_api::upper_t:
k = lp::LE;
break;
default:
break;
}
auto vi = get_var_index(b->get_var());
rational bound = b->get_value();
return m_solver->compare_values(vi, k, bound) ? l_true : l_false;
return m_solver->compare_values(vi, k, b->get_value()) ? l_true : l_false;
}
void new_eq_eh(theory_var v1, theory_var v2) {