3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-05-06 02:15:16 +00:00

consolidate use of plugin by moving declarations up front (separate from constructor at this point)

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2018-06-12 13:09:06 -07:00 committed by Arie Gurfinkel
parent 0ae246ad2b
commit ec8e3f2aee
4 changed files with 56 additions and 67 deletions

View file

@ -34,8 +34,7 @@ namespace qe {
class is_variable_proc : public ::is_variable_proc {
bool m_exclude;
u_map<bool> m_decls;
u_map<bool> m_solved;
obj_hashtable<func_decl> m_decls, m_solved;
public:
bool operator()(const expr *e) const override;
bool operator()(const term &t) const;
@ -85,7 +84,7 @@ namespace qe {
void mk_all_equalities(term const &t, expr_ref_vector &out);
void display(std::ostream &out);
bool is_pure_def(expr* atom, expr *v);
bool is_pure_def(expr* atom, expr *& v);
void solve_for_vars();
@ -93,6 +92,8 @@ namespace qe {
term_graph(ast_manager &m);
~term_graph();
void set_vars(func_decl_ref_vector const& decls, bool exclude);
ast_manager& get_ast_manager() const { return m;}
void add_lit(expr *lit);
@ -110,10 +111,9 @@ namespace qe {
* onto the vocabulary of decls (if exclude is false) or outside the
* vocabulary of decls (if exclude is true).
*/
expr_ref_vector project(func_decl_ref_vector const& decls, bool exclude);
expr_ref_vector solve(func_decl_ref_vector const& decls, bool exclude);
expr_ref_vector project();
expr_ref_vector solve();
};
}