3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-06-20 21:03:39 +00:00

use propagation filter

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2019-10-20 15:59:10 -07:00
parent 423e084cda
commit e5504247e9
5 changed files with 217 additions and 29 deletions

View file

@ -167,6 +167,7 @@ unsigned get_num_exprs(expr * n, expr_fast_mark1 & visited);
bool has_skolem_functions(expr * n);
// pre-order traversal of subterms
class subterms {
expr_ref_vector m_es;
public:
@ -187,5 +188,26 @@ public:
iterator end();
};
class subterms_postorder {
expr_ref_vector m_es;
public:
class iterator {
expr_ref_vector m_es;
expr_mark m_visited, m_seen;
void next();
public:
iterator(subterms_postorder& f, bool start);
expr* operator*();
iterator operator++(int);
iterator& operator++();
bool operator==(iterator const& other) const;
bool operator!=(iterator const& other) const;
};
subterms_postorder(expr_ref_vector const& es);
subterms_postorder(expr_ref& e);
iterator begin();
iterator end();
};
#endif /* FOR_EACH_EXPR_H_ */