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

integrate lambda expressions

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2018-06-26 07:23:04 -07:00
parent bf4edef761
commit 520ce9a5ee
139 changed files with 2243 additions and 1506 deletions

View file

@ -57,6 +57,7 @@ public:
expr * get_result() const { return m_result; }
expr * get_arg(unsigned idx) const { return m_args[idx]; }
expr * const * get_args() const { return m_args; }
/**
\brief Return true if m.are_equal(m_args[i], args[i]) for all i in [0, arity)
*/
@ -101,6 +102,8 @@ public:
func_entry * get_entry(expr * const * args) const;
bool eval_else(expr * const * args, expr_ref & result) const;
unsigned num_entries() const { return m_entries.size(); }
ptr_vector<func_entry>::const_iterator begin() const { return m_entries.begin(); }
ptr_vector<func_entry>::const_iterator end() const { return m_entries.end(); }
func_entry const * const * get_entries() const { return m_entries.c_ptr(); }
func_entry const * get_entry(unsigned idx) const { return m_entries[idx]; }
@ -113,6 +116,7 @@ public:
private:
bool is_fi_entry_expr(expr * e, ptr_vector<expr> & args);
bool is_identity() const;
};
#endif