mirror of
https://github.com/Z3Prover/z3
synced 2026-07-06 07:16:13 +00:00
use expr based access to enodes to allow for storing first-class lambas
This commit is contained in:
parent
5f3088f3b5
commit
2cc4422018
54 changed files with 301 additions and 279 deletions
|
|
@ -142,15 +142,15 @@ namespace smt {
|
|||
theory_var next(theory_var v) const { return m_find.next(v); }
|
||||
bool is_root(theory_var v) const { return m_find.is_root(v); }
|
||||
unsigned get_bv_size(app const * n) const { return m_util.get_bv_size(n); }
|
||||
unsigned get_bv_size(enode const * n) const { return m_util.get_bv_size(n->get_expr()); }
|
||||
unsigned get_bv_size(enode const * n) const { return m_util.get_bv_size(n->get_app()); }
|
||||
unsigned get_bv_size(theory_var v) const { return get_bv_size(get_enode(v)); }
|
||||
bool is_bv(app const* n) const { return m_util.is_bv_sort(n->get_sort()); }
|
||||
bool is_bv(enode const* n) const { return is_bv(n->get_expr()); }
|
||||
bool is_bv(enode const* n) const { return is_bv(n->get_app()); }
|
||||
bool is_bv(theory_var v) const { return is_bv(get_enode(v)); }
|
||||
region & get_region() { return m_trail_stack.get_region(); }
|
||||
|
||||
bool is_numeral(theory_var v) const { return m_util.is_numeral(get_enode(v)->get_expr()); }
|
||||
app * mk_bit2bool(app * bv, unsigned idx);
|
||||
bool is_numeral(theory_var v) const { return m_util.is_numeral(get_expr(v)); }
|
||||
app * mk_bit2bool(expr * bv, unsigned idx);
|
||||
void mk_bits(theory_var v);
|
||||
friend class mk_atom_trail;
|
||||
void mk_bit2bool(app * n);
|
||||
|
|
@ -217,7 +217,7 @@ namespace smt {
|
|||
void internalize_smul_no_overflow(app *n);
|
||||
void internalize_smul_no_underflow(app *n);
|
||||
|
||||
bool approximate_term(app* n);
|
||||
bool approximate_term(expr* e);
|
||||
|
||||
template<bool Signed>
|
||||
void internalize_le(app * atom);
|
||||
|
|
@ -240,7 +240,7 @@ namespace smt {
|
|||
void new_diseq_eh(theory_var v1, theory_var v2) override;
|
||||
virtual void expand_diseq(theory_var v1, theory_var v2);
|
||||
void assign_eh(bool_var v, bool is_true) override;
|
||||
void relevant_eh(app * n) override;
|
||||
void relevant_eh(expr * n) override;
|
||||
void push_scope_eh() override;
|
||||
void pop_scope_eh(unsigned num_scopes) override;
|
||||
final_check_status final_check_eh(unsigned) override;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue