mirror of
https://github.com/Z3Prover/z3
synced 2025-10-09 17:31:57 +00:00
Merge branch 'master' of https://github.com/Z3Prover/z3
This commit is contained in:
commit
596652ed36
42 changed files with 336 additions and 941 deletions
|
@ -494,6 +494,7 @@ namespace smt {
|
|||
|
||||
sort * string_sort = u.str.mk_string_sort();
|
||||
app * a = mk_fresh_const(name.c_str(), string_sort);
|
||||
m_trail.push_back(a);
|
||||
|
||||
TRACE("str", tout << "a->get_family_id() = " << a->get_family_id() << std::endl
|
||||
<< "this->get_family_id() = " << this->get_family_id() << std::endl;);
|
||||
|
@ -507,7 +508,6 @@ namespace smt {
|
|||
m_basicstr_axiom_todo.push_back(ctx.get_enode(a));
|
||||
TRACE("str", tout << "add " << mk_pp(a, m) << " to m_basicstr_axiom_todo" << std::endl;);
|
||||
|
||||
m_trail.push_back(a);
|
||||
variable_set.insert(a);
|
||||
internal_variable_set.insert(a);
|
||||
track_variable_scope(a);
|
||||
|
@ -521,6 +521,7 @@ namespace smt {
|
|||
|
||||
sort * string_sort = u.str.mk_string_sort();
|
||||
app * a = mk_fresh_const("regex", string_sort);
|
||||
m_trail.push_back(a);
|
||||
|
||||
ctx.internalize(a, false);
|
||||
SASSERT(ctx.get_enode(a) != NULL);
|
||||
|
@ -529,7 +530,6 @@ namespace smt {
|
|||
m_basicstr_axiom_todo.push_back(ctx.get_enode(a));
|
||||
TRACE("str", tout << "add " << mk_pp(a, m) << " to m_basicstr_axiom_todo" << std::endl;);
|
||||
|
||||
m_trail.push_back(a);
|
||||
variable_set.insert(a);
|
||||
//internal_variable_set.insert(a);
|
||||
regex_variable_set.insert(a);
|
||||
|
@ -7304,7 +7304,7 @@ namespace smt {
|
|||
TRACE("str", tout << "variable " << mk_ismt2_pp(ap, get_manager()) << " is #" << v << std::endl;);
|
||||
}
|
||||
}
|
||||
} else if (ex_sort == bool_sort) {
|
||||
} else if (ex_sort == bool_sort && !is_quantifier(ex)) {
|
||||
TRACE("str", tout << "setting up axioms for " << mk_ismt2_pp(ex, get_manager()) <<
|
||||
": expr is of sort Bool" << std::endl;);
|
||||
// set up axioms for boolean terms
|
||||
|
@ -7351,7 +7351,7 @@ namespace smt {
|
|||
|
||||
// if expr is an application, recursively inspect all arguments
|
||||
if (is_app(ex)) {
|
||||
app * term = (app*)ex;
|
||||
app * term = to_app(ex);
|
||||
unsigned num_args = term->get_num_args();
|
||||
for (unsigned i = 0; i < num_args; i++) {
|
||||
set_up_axioms(term->get_arg(i));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue