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

spacer_context: skolemize quant vars before renaming

Skolemization has to be done before renaming, otherwise,
can't guarantee that variable names do not clash
This commit is contained in:
Arie Gurfinkel 2018-05-21 14:18:11 -07:00
parent 38a45f5482
commit 8be03f7c1f
2 changed files with 46 additions and 31 deletions

View file

@ -517,7 +517,7 @@ public:
expr* post() const { return m_post.get (); }
void set_post(expr *post);
void set_post(expr *post, app_ref_vector const &b);
void set_post(expr *post, app_ref_vector const &binding);
/// indicate that a new post should be set for the node
void new_post(expr *post) {if(post != m_post) {m_new_post = post;}}
@ -648,6 +648,8 @@ public:
/// premise must be consistent with the transition relation
pob *create_next_child ();
/// existentially quantify vars and skolemize the result
void exist_skolemize(expr *fml, app_ref_vector &vars, expr_ref &res);
datalog::rule const& get_rule () const { return m_rule; }
pob& get_parent () const { return m_parent; }
ast_manager &get_ast_manager () const {return m_parent.get_ast_manager ();}