3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-05-11 09:44:43 +00:00

change handling of weak array mode. Insert weak delay variables into a queue that gets consumed by the next propagation when the array_weak parameter is changed #2686

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2019-11-19 21:17:36 -08:00
parent e45bafe9bf
commit 566eacd424
5 changed files with 39 additions and 41 deletions

View file

@ -30,7 +30,11 @@ namespace smt {
friend class theory_array_bapa;
protected:
bool m_found_unsupported_op;
unsigned m_array_weak_head;
svector<theory_var> m_array_weak_trail;
bool has_propagate_up_trail() const { return m_array_weak_head < m_array_weak_trail.size(); }
void add_weak_var(theory_var v);
virtual void set_prop_upward(theory_var v) {}
void found_unsupported_op(expr * n);
void found_unsupported_op(enode* n) { found_unsupported_op(n->get_owner()); }
void found_unsupported_op(theory_var v) { found_unsupported_op(get_enode(v)->get_owner()); }