mirror of
https://github.com/Z3Prover/z3
synced 2025-04-24 01:25:31 +00:00
parent
bd59fceaec
commit
dde0c9bd0d
7 changed files with 39 additions and 25 deletions
|
@ -1883,6 +1883,22 @@ public:
|
|||
|
||||
app * mk_app(func_decl * decl, unsigned num_args, expr * const * args);
|
||||
|
||||
app* mk_app(func_decl* decl, ref_vector<expr, ast_manager> const& args) {
|
||||
return mk_app(decl, args.size(), args.c_ptr());
|
||||
}
|
||||
|
||||
app* mk_app(func_decl* decl, ref_vector<app, ast_manager> const& args) {
|
||||
return mk_app(decl, args.size(), (expr*const*)args.c_ptr());
|
||||
}
|
||||
|
||||
app * mk_app(func_decl * decl, ptr_vector<expr> const& args) {
|
||||
return mk_app(decl, args.size(), args.c_ptr());
|
||||
}
|
||||
|
||||
app * mk_app(func_decl * decl, ptr_vector<app> const& args) {
|
||||
return mk_app(decl, args.size(), (expr*const*)args.c_ptr());
|
||||
}
|
||||
|
||||
app * mk_app(func_decl * decl, expr * const * args) {
|
||||
return mk_app(decl, decl->get_arity(), args);
|
||||
}
|
||||
|
|
|
@ -85,10 +85,10 @@ void expr_abstractor::operator()(unsigned base, unsigned num_bound, expr* const*
|
|||
unsigned new_base = base + q->get_num_decls();
|
||||
|
||||
for (unsigned i = 0; i < q->get_num_patterns(); ++i) {
|
||||
expr_abstract(m, new_base, num_bound, bound, q->get_pattern(i), result1);
|
||||
result1 = expr_abstract(m, new_base, num_bound, bound, q->get_pattern(i));
|
||||
patterns.push_back(result1.get());
|
||||
}
|
||||
expr_abstract(m, new_base, num_bound, bound, q->get_expr(), result1);
|
||||
result1 = expr_abstract(m, new_base, num_bound, bound, q->get_expr());
|
||||
b = m.update_quantifier(q, patterns.size(), patterns.c_ptr(), result1.get());
|
||||
m_pinned.push_back(b);
|
||||
m_map.insert(curr, b);
|
||||
|
|
|
@ -34,6 +34,8 @@ public:
|
|||
|
||||
void expr_abstract(ast_manager& m, unsigned base, unsigned num_bound, expr* const* bound, expr* n, expr_ref& result);
|
||||
inline expr_ref expr_abstract(ast_manager& m, unsigned base, unsigned num_bound, expr* const* bound, expr* n) { expr_ref r(m); expr_abstract(m, base, num_bound, bound, n, r); return r; }
|
||||
inline expr_ref expr_abstract(expr_ref_vector const& bound, expr* n) { return expr_abstract(bound.m(), 0, bound.size(), bound.c_ptr(), n); }
|
||||
inline expr_ref expr_abstract(app_ref_vector const& bound, expr* n) { return expr_abstract(bound.m(), 0, bound.size(), (expr*const*)bound.c_ptr(), n); }
|
||||
expr_ref mk_forall(ast_manager& m, unsigned num_bound, app* const* bound, expr* n);
|
||||
expr_ref mk_exists(ast_manager& m, unsigned num_bound, app* const* bound, expr* n);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue