3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-11 05:30:51 +00:00
ensure substitutions are applied to eliminate internal variables from results
This commit is contained in:
Nikolaj Bjorner 2022-10-20 13:14:54 -07:00
parent 5976978062
commit edad727cd5
3 changed files with 90 additions and 17 deletions

View file

@ -86,7 +86,7 @@ namespace opt {
def operator/(rational const& n) const;
def operator*(rational const& n) const;
def operator+(rational const& n) const;
def substitute(unsigned v, def const& other) const;
void substitute(unsigned v, def const& other);
void normalize();
};
@ -101,6 +101,9 @@ namespace opt {
unsigned_vector m_lub, m_glb, m_divides, m_mod, m_div;
unsigned_vector m_above, m_below;
unsigned_vector m_retired_rows;
vector<model_based_opt::def> m_result;
void eliminate(unsigned v, def const& d);
bool invariant();
bool invariant(unsigned index, row const& r);