mirror of
https://github.com/Z3Prover/z3
synced 2025-06-28 08:58:44 +00:00
integrate lambda expressions
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
bf4edef761
commit
520ce9a5ee
139 changed files with 2243 additions and 1506 deletions
|
@ -27,7 +27,7 @@ class model_core {
|
|||
protected:
|
||||
typedef obj_map<func_decl, expr *> decl2expr;
|
||||
typedef obj_map<func_decl, func_interp*> decl2finterp;
|
||||
ast_manager & m_manager;
|
||||
ast_manager & m;
|
||||
unsigned m_ref_count;
|
||||
decl2expr m_interp; //!< interpretation for uninterpreted constants
|
||||
decl2finterp m_finterp; //!< interpretation for uninterpreted functions
|
||||
|
@ -36,11 +36,10 @@ protected:
|
|||
ptr_vector<func_decl> m_func_decls;
|
||||
|
||||
public:
|
||||
model_core(ast_manager & m):m_manager(m), m_ref_count(0) { }
|
||||
model_core(ast_manager & m):m(m), m_ref_count(0) { }
|
||||
virtual ~model_core();
|
||||
|
||||
ast_manager & get_manager() const { return m_manager; }
|
||||
ast_manager& m() const { return m_manager; }
|
||||
ast_manager & get_manager() const { return m; }
|
||||
|
||||
unsigned get_num_decls() const { return m_decls.size(); }
|
||||
func_decl * get_decl(unsigned i) const { return m_decls[i]; }
|
||||
|
@ -65,6 +64,11 @@ public:
|
|||
|
||||
virtual expr * get_some_value(sort * s) = 0;
|
||||
|
||||
expr * get_some_const_interp(func_decl * d) {
|
||||
expr * r = get_const_interp(d);
|
||||
if (r) return r;
|
||||
return get_some_value(d->get_range());
|
||||
}
|
||||
//
|
||||
// Reference counting
|
||||
//
|
||||
|
@ -78,4 +82,7 @@ public:
|
|||
|
||||
};
|
||||
|
||||
std::ostream& operator<<(std::ostream& out, model_core const& m);
|
||||
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue