3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-28 19:35:50 +00:00

fix incorrect bound in order-lemma

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2020-06-13 14:28:15 -07:00
parent 23c12b75af
commit 5ee9edf46b
6 changed files with 34 additions and 28 deletions

View file

@ -311,6 +311,7 @@ namespace dd {
unsigned v = m_level2var[m_levelp1-1];
equation* eq = nullptr;
for (equation* curr : m_to_simplify) {
SASSERT(curr->idx() != UINT_MAX);
pdd const& p = curr->poly();
if (curr->state() == to_simplify && p.var() == v) {
if (!eq || is_simpler(*curr, *eq))
@ -389,6 +390,16 @@ namespace dd {
retire(eq);
}
void solver::retire(equation* eq) {
#if 0
// way to check if retired equations are ever accessed.
eq->set_index(UINT_MAX);
#else
dealloc(eq);
#endif
}
void solver::pop_equation(equation& eq) {
equation_vector& v = get_queue(eq);
unsigned idx = eq.idx();

View file

@ -181,7 +181,7 @@ private:
void del_equation(equation& eq) { del_equation(&eq); }
void del_equation(equation* eq);
equation_vector& get_queue(equation const& eq);
void retire(equation* eq) { dealloc(eq); }
void retire(equation* eq);
void pop_equation(equation& eq);
void pop_equation(equation* eq) { pop_equation(*eq); }
void push_equation(eq_state st, equation& eq);