3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-05-13 18:54:43 +00:00

consolidate freeze functionality into dependent_expr_state

rename size() to qtail() and introduce shortcuts
ensure tactic goals are not updated if they are in inconsistent state (because indices could be invalidated)
This commit is contained in:
Nikolaj Bjorner 2022-11-30 08:35:29 +07:00
parent 73a652cf4b
commit bec3acd146
21 changed files with 223 additions and 93 deletions

View file

@ -42,7 +42,7 @@ namespace euf {
bool solve_context_eqs::is_safe_eq(expr* e) {
m_and_pos.reset(); m_and_neg.reset(); m_or_pos.reset(); m_or_neg.reset();
for (unsigned i = 0; i < m_fmls.size(); ++i)
for (unsigned i = 0; i < m_fmls.qtail(); ++i)
if (!is_safe_eq(m_fmls[i].fml(), e))
return false;
return true;
@ -147,7 +147,7 @@ namespace euf {
void solve_context_eqs::collect_nested_equalities(dep_eq_vector& eqs) {
expr_mark visited;
unsigned sz = m_fmls.size();
unsigned sz = m_fmls.qtail();
for (unsigned i = m_fmls.qhead(); i < sz; ++i)
collect_nested_equalities(m_fmls[i], visited, eqs);