3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-03 18:00:23 +00:00
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2019-04-13 16:15:32 -07:00
parent a27f083177
commit 1123b47fb7
13 changed files with 613 additions and 4 deletions

View file

@ -250,7 +250,7 @@ namespace smt {
return theory_array::internalize_term(n);
}
if (!is_const(n) && !is_default(n) && !is_map(n) && !is_as_array(n)) {
if (!is_const(n) && !is_default(n) && !is_map(n) && !is_as_array(n) && !is_set_has_size(n)) {
if (!is_array_ext(n))
found_unsupported_op(n);
return false;
@ -274,6 +274,12 @@ namespace smt {
mk_var(arg0);
}
}
else if (is_set_has_size(n)) {
if (!m_bapa) {
m_bapa = alloc(theory_array_bapa, *this);
}
m_bapa->internalize_size(n);
}
enode* node = ctx.get_enode(n);
if (!is_attached_to_var(node)) {
@ -748,6 +754,10 @@ namespace smt {
assert_axiom(eq);
r = FC_CONTINUE;
}
if (r == FC_DONE && m_bapa) {
r = m_bapa->final_check();
}
if (r == FC_DONE && m_found_unsupported_op)
r = FC_GIVEUP;
return r;