3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-10 19:27:06 +00:00
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2019-08-15 21:03:56 -07:00
parent 3074e2b80c
commit fcc7bd35e5
3 changed files with 17 additions and 13 deletions

View file

@ -202,7 +202,7 @@ extern "C" {
func_decl* d = mk_c(c)->m().mk_fresh_func_decl(prefix,
domain_size,
reinterpret_cast<sort*const*>(domain),
to_sort(range));
to_sort(range), false);
mk_c(c)->save_ast_trail(d);
RETURN_Z3(of_func_decl(d));
@ -216,7 +216,7 @@ extern "C" {
if (prefix == nullptr) {
prefix = "";
}
app* a = mk_c(c)->m().mk_fresh_const(prefix, to_sort(ty));
app* a = mk_c(c)->m().mk_fresh_const(prefix, to_sort(ty), false);
mk_c(c)->save_ast_trail(a);
RETURN_Z3(of_ast(a));
Z3_CATCH_RETURN(nullptr);

View file

@ -2346,10 +2346,10 @@ app * ast_manager::mk_app(func_decl * decl, unsigned num_args, expr * const * ar
func_decl * ast_manager::mk_fresh_func_decl(symbol const & prefix, symbol const & suffix, unsigned arity,
sort * const * domain, sort * range) {
sort * const * domain, sort * range, bool skolem) {
func_decl_info info(null_family_id, null_decl_kind);
info.m_skolem = true;
SASSERT(info.is_skolem());
info.m_skolem = skolem;
SASSERT(skolem == info.is_skolem());
func_decl * d;
if (prefix == symbol::null && suffix == symbol::null) {
d = mk_func_decl(symbol(m_fresh_id), arity, domain, range, &info);
@ -2368,7 +2368,7 @@ func_decl * ast_manager::mk_fresh_func_decl(symbol const & prefix, symbol const
}
m_fresh_id++;
SASSERT(d->get_info());
SASSERT(d->is_skolem());
SASSERT(skolem == d->is_skolem());
return d;
}

View file

@ -1921,20 +1921,24 @@ public:
}
func_decl * mk_fresh_func_decl(symbol const & prefix, symbol const & suffix, unsigned arity,
sort * const * domain, sort * range);
sort * const * domain, sort * range, bool skolem = true);
func_decl * mk_fresh_func_decl(unsigned arity, sort * const * domain, sort * range) { return mk_fresh_func_decl(symbol::null, symbol::null, arity, domain, range); }
func_decl * mk_fresh_func_decl(unsigned arity, sort * const * domain, sort * range, bool skolem = true) {
return mk_fresh_func_decl(symbol::null, symbol::null, arity, domain, range, skolem);
}
func_decl * mk_fresh_func_decl(char const * prefix, char const * suffix, unsigned arity,
sort * const * domain, sort * range) {
return mk_fresh_func_decl(symbol(prefix), symbol(suffix), arity, domain, range);
sort * const * domain, sort * range, bool skolem = true) {
return mk_fresh_func_decl(symbol(prefix), symbol(suffix), arity, domain, range, skolem);
}
func_decl * mk_fresh_func_decl(char const * prefix, unsigned arity, sort * const * domain, sort * range) {
return mk_fresh_func_decl(symbol(prefix), symbol::null, arity, domain, range);
func_decl * mk_fresh_func_decl(char const * prefix, unsigned arity, sort * const * domain, sort * range, bool skolem = true) {
return mk_fresh_func_decl(symbol(prefix), symbol::null, arity, domain, range, skolem);
}
app * mk_fresh_const(char const * prefix, sort * s) { return mk_const(mk_fresh_func_decl(prefix, 0, nullptr, s)); }
app * mk_fresh_const(char const * prefix, sort * s, bool skolem = true) {
return mk_const(mk_fresh_func_decl(prefix, 0, nullptr, s, skolem));
}
symbol mk_fresh_var_name(char const * prefix = nullptr);