3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-29 20:05:51 +00:00
This commit is contained in:
Nikolaj Bjorner 2020-09-02 13:08:52 -07:00
parent 4b22434739
commit 95493f78f9
2 changed files with 26 additions and 19 deletions

View file

@ -93,28 +93,17 @@ namespace euf {
euf::enode_vector m_var2enode;
unsigned_vector m_var2enode_lim;
public:
th_euf_solver(euf::solver& ctx, euf::theory_id id);
virtual ~th_euf_solver() {}
th_euf_solver(euf::solver& ctx, euf::theory_id id);
virtual euf::theory_var mk_var(enode * n) {
SASSERT(!is_attached_to_var(n));
euf::theory_var v = m_var2enode.size();
m_var2enode.push_back(n);
return v;
}
virtual theory_var mk_var(enode * n);
unsigned get_num_vars() const { return m_var2enode.size();}
enode* get_enode(theory_var v) const { return m_var2enode[v]; }
expr* get_expr(theory_var v) const { return get_enode(v)->get_owner(); }
theory_var get_th_var(enode* n) const { return n->get_th_var(get_id()); }
theory_var get_th_var(expr* e) const;
bool is_attached_to_var(enode* n) const {
theory_var v = n->get_th_var(get_id());
return v != null_theory_var && get_enode(v) == n;
}
bool is_attached_to_var(enode* n) const;
void push() override;
void pop(unsigned n) override;
};