mirror of
https://github.com/Z3Prover/z3
synced 2025-04-23 00:55:31 +00:00
Refactor and fix uninitialized variables and improve function consistency across multiple modules
This commit is contained in:
parent
499ed5d844
commit
eb8c63080a
17 changed files with 60 additions and 25 deletions
|
@ -304,7 +304,7 @@ namespace mbp {
|
|||
return rational(b.is_pos() ? -1 : 1);
|
||||
}
|
||||
|
||||
bool operator()(model& model, app* v, app_ref_vector& vars, expr_ref_vector& lits) {
|
||||
bool project1(model& model, app* v, app_ref_vector& vars, expr_ref_vector& lits) {
|
||||
app_ref_vector vs(m);
|
||||
vs.push_back(v);
|
||||
vector<def> defs;
|
||||
|
@ -710,8 +710,8 @@ namespace mbp {
|
|||
dealloc(m_imp);
|
||||
}
|
||||
|
||||
bool arith_project_plugin::operator()(model& model, app* var, app_ref_vector& vars, expr_ref_vector& lits) {
|
||||
return (*m_imp)(model, var, vars, lits);
|
||||
bool arith_project_plugin::project1(model& model, app* var, app_ref_vector& vars, expr_ref_vector& lits) {
|
||||
return m_imp->project1(model, var, vars, lits);
|
||||
}
|
||||
|
||||
bool arith_project_plugin::operator()(model& model, app_ref_vector& vars, expr_ref_vector& lits) {
|
||||
|
@ -743,6 +743,6 @@ namespace mbp {
|
|||
ast_manager& m = lits.get_manager();
|
||||
arith_project_plugin ap(m);
|
||||
app_ref_vector vars(m);
|
||||
return ap(model, var, vars, lits);
|
||||
return ap.project1(model, var, vars, lits);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -26,7 +26,7 @@ namespace mbp {
|
|||
arith_project_plugin(ast_manager& m);
|
||||
~arith_project_plugin() override;
|
||||
|
||||
bool operator()(model& model, app* var, app_ref_vector& vars, expr_ref_vector& lits) override;
|
||||
bool project1(model& model, app* var, app_ref_vector& vars, expr_ref_vector& lits) override;
|
||||
bool solve(model& model, app_ref_vector& vars, expr_ref_vector& lits) override { return false; }
|
||||
family_id get_family_id() override;
|
||||
bool operator()(model& model, app_ref_vector& vars, expr_ref_vector& lits) override;
|
||||
|
|
|
@ -1444,7 +1444,7 @@ namespace mbp {
|
|||
dealloc(m_imp);
|
||||
}
|
||||
|
||||
bool array_project_plugin::operator()(model& model, app* var, app_ref_vector& vars, expr_ref_vector& lits) {
|
||||
bool array_project_plugin::project1(model& model, app* var, app_ref_vector& vars, expr_ref_vector& lits) {
|
||||
ast_manager& m = vars.get_manager();
|
||||
app_ref_vector vvars(m, 1, &var);
|
||||
expr_ref fml = mk_and(lits);
|
||||
|
|
|
@ -31,7 +31,7 @@ namespace mbp {
|
|||
public:
|
||||
array_project_plugin(ast_manager& m);
|
||||
~array_project_plugin() override;
|
||||
bool operator()(model& model, app* var, app_ref_vector& vars, expr_ref_vector& lits) override;
|
||||
bool project1(model& model, app* var, app_ref_vector& vars, expr_ref_vector& lits) override;
|
||||
bool solve(model& model, app_ref_vector& vars, expr_ref_vector& lits) override;
|
||||
void operator()(model& model, app_ref_vector& vars, expr_ref& fml, app_ref_vector& aux_vars, bool reduce_all_selects);
|
||||
family_id get_family_id() override;
|
||||
|
|
|
@ -40,7 +40,7 @@ namespace mbp {
|
|||
return lift_foreign(vars, lits);
|
||||
}
|
||||
|
||||
bool operator()(model& model, app* var, app_ref_vector& vars, expr_ref_vector& lits) {
|
||||
bool project1(model& model, app* var, app_ref_vector& vars, expr_ref_vector& lits) {
|
||||
expr_ref val = model(var);
|
||||
SASSERT(is_app(val));
|
||||
TRACE("qe", tout << mk_pp(var, m) << " := " << val << "\n";);
|
||||
|
@ -292,8 +292,8 @@ namespace mbp {
|
|||
dealloc(m_imp);
|
||||
}
|
||||
|
||||
bool datatype_project_plugin::operator()(model& model, app* var, app_ref_vector& vars, expr_ref_vector& lits) {
|
||||
return (*m_imp)(model, var, vars, lits);
|
||||
bool datatype_project_plugin::project1(model& model, app* var, app_ref_vector& vars, expr_ref_vector& lits) {
|
||||
return m_imp->project1(model, var, vars, lits);
|
||||
}
|
||||
|
||||
bool datatype_project_plugin::solve(model& model, app_ref_vector& vars, expr_ref_vector& lits) {
|
||||
|
|
|
@ -31,7 +31,7 @@ namespace mbp {
|
|||
public:
|
||||
datatype_project_plugin(ast_manager& m);
|
||||
~datatype_project_plugin() override;
|
||||
bool operator()(model& model, app* var, app_ref_vector& vars, expr_ref_vector& lits) override;
|
||||
bool project1(model& model, app* var, app_ref_vector& vars, expr_ref_vector& lits) override;
|
||||
bool solve(model& model, app_ref_vector& vars, expr_ref_vector& lits) override;
|
||||
family_id get_family_id() override;
|
||||
bool project(model& model, app_ref_vector& vars, expr_ref_vector& lits, vector<def>& defs) override;
|
||||
|
|
|
@ -60,7 +60,7 @@ namespace mbp {
|
|||
public:
|
||||
project_plugin(ast_manager& m) :m(m), m_cache(m), m_args(m), m_pure_eqs(m) {}
|
||||
virtual ~project_plugin() = default;
|
||||
virtual bool operator()(model& model, app* var, app_ref_vector& vars, expr_ref_vector& lits) { return false; }
|
||||
virtual bool project1(model& model, app* var, app_ref_vector& vars, expr_ref_vector& lits) { return false; }
|
||||
/**
|
||||
\brief partial solver.
|
||||
*/
|
||||
|
|
|
@ -452,7 +452,7 @@ public:
|
|||
var = vars.back();
|
||||
vars.pop_back();
|
||||
mbp::project_plugin* p = get_plugin(var);
|
||||
if (p && (*p)(model, var, vars, fmls)) {
|
||||
if (p && p->project1(model, var, vars, fmls)) {
|
||||
progress = true;
|
||||
}
|
||||
else {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue