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

fixing eufi

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2018-06-13 14:43:38 -07:00 committed by Arie Gurfinkel
parent b62d73f209
commit 9ba76a1332
5 changed files with 64 additions and 51 deletions

View file

@ -257,7 +257,7 @@ namespace qe {
};
bool is_arith(expr* e) {
return a.is_int(e) || a.is_real(e);
return a.is_int_real(e);
}
rational n_sign(rational const& b) {
@ -276,7 +276,7 @@ namespace qe {
bool operator()(model& model, app* v, app_ref_vector& vars, expr_ref_vector& lits) {
app_ref_vector vs(m);
vs.push_back(v);
(*this)(model, vs, lits);
project(model, vs, lits, false);
return vs.empty();
}
@ -284,14 +284,6 @@ namespace qe {
typedef opt::model_based_opt::row row;
typedef vector<var> vars;
vector<def> project(model& model, app_ref_vector& vars, expr_ref_vector& lits) {
return project(model, vars, lits, true);
}
void operator()(model& model, app_ref_vector& vars, expr_ref_vector& fmls) {
project(model, vars, fmls, false);
}
expr_ref var2expr(ptr_vector<expr> const& index2expr, var const& v) {
expr_ref t(index2expr[v.m_id], m);
if (!v.m_coeff.is_one()) {
@ -581,11 +573,11 @@ namespace qe {
}
void arith_project_plugin::operator()(model& model, app_ref_vector& vars, expr_ref_vector& lits) {
(*m_imp)(model, vars, lits);
m_imp->project(model, vars, lits, false);
}
vector<def> arith_project_plugin::project(model& model, app_ref_vector& vars, expr_ref_vector& lits) {
return m_imp->project(model, vars, lits);
return m_imp->project(model, vars, lits, true);
}
void arith_project_plugin::set_check_purified(bool check_purified) {