3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-10 05:00:51 +00:00

address inconsistent states encountered when cancelling, #1197

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2017-08-13 13:40:30 -07:00
parent 19bb55e396
commit 00742566fb
4 changed files with 99 additions and 97 deletions

View file

@ -2106,6 +2106,7 @@ namespace smt {
template<typename Ext>
void theory_arith<Ext>::mutate_assignment() {
SASSERT(m_to_patch.empty());
remove_fixed_vars_from_base();
int num_vars = get_num_vars();
m_var_value_table.reset();
@ -2131,12 +2132,9 @@ namespace smt {
}
if (candidates.empty())
return;
typename sbuffer<theory_var>::iterator it = candidates.begin();
typename sbuffer<theory_var>::iterator end = candidates.end();
m_tmp_var_set.reset();
m_tmp_var_set2.reset();
for (; it != end; ++it) {
theory_var v = *it;
for (theory_var v : candidates) {
SASSERT(!is_fixed(v));
if (is_base(v)) {
row & r = m_rows[get_var_row(v)];