3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-06-06 06:03:23 +00:00

remove model initialization all-together because assumption literals are not connected with model

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2020-03-25 04:00:21 -07:00
parent a7495876fd
commit 477fd3fba0
2 changed files with 7 additions and 18 deletions

View file

@ -129,16 +129,6 @@ namespace opt {
for (auto & soft : m_soft) { for (auto & soft : m_soft) {
soft.set_value(l_undef); soft.set_value(l_undef);
} }
model_ref mdl;
s().get_model(mdl);
if (mdl) {
for (auto & soft : m_soft) {
if (!mdl->is_true(soft.s)) {
break;
}
soft.set_value(l_true);
}
}
} }
// //

View file

@ -357,11 +357,6 @@ final_check_status theory_seq::final_check_eh() {
TRACEFIN("solve_eqs"); TRACEFIN("solve_eqs");
return FC_CONTINUE; return FC_CONTINUE;
} }
if (check_contains()) {
++m_stats.m_propagate_contains;
TRACEFIN("propagate_contains");
return FC_CONTINUE;
}
if (check_lts()) { if (check_lts()) {
TRACEFIN("check_lts"); TRACEFIN("check_lts");
return FC_CONTINUE; return FC_CONTINUE;
@ -371,6 +366,11 @@ final_check_status theory_seq::final_check_eh() {
TRACEFIN("solve_nqs"); TRACEFIN("solve_nqs");
return FC_CONTINUE; return FC_CONTINUE;
} }
if (check_contains()) {
++m_stats.m_propagate_contains;
TRACEFIN("propagate_contains");
return FC_CONTINUE;
}
if (fixed_length(true)) { if (fixed_length(true)) {
++m_stats.m_fixed_length; ++m_stats.m_fixed_length;
TRACEFIN("zero_length"); TRACEFIN("zero_length");
@ -3483,7 +3483,8 @@ bool theory_seq::solve_nc(unsigned idx) {
expr_ref head(m), tail(m); expr_ref head(m), tail(m);
literal pre, cnt, ctail, emp; literal pre, cnt, ctail, emp;
lbool is_gt = ctx.get_assignment(len_gt); lbool is_gt = ctx.get_assignment(len_gt);
TRACE("seq", ctx.display_literal_smt2(tout << len_gt << " := " << is_gt << "\n", len_gt) << "\n";); TRACE("seq", ctx.display_literal_smt2(tout << len_gt << " := " << is_gt << "\n", len_gt) << "\n";);
switch (is_gt) { switch (is_gt) {
case l_true: case l_true:
add_length_to_eqc(a); add_length_to_eqc(a);
@ -3499,7 +3500,6 @@ bool theory_seq::solve_nc(unsigned idx) {
cnt = mk_literal(n.contains()); cnt = mk_literal(n.contains());
ctail = mk_literal(m_util.str.mk_contains(tail, b)); ctail = mk_literal(m_util.str.mk_contains(tail, b));
emp = mk_literal(m_util.str.mk_is_empty(a)); emp = mk_literal(m_util.str.mk_is_empty(a));
//expr_ref one(m_autil.mk_int(1), m);
add_axiom(cnt, ~pre); add_axiom(cnt, ~pre);
add_axiom(cnt, ~ctail); add_axiom(cnt, ~ctail);
add_axiom(emp, mk_eq(a, m_util.str.mk_concat(head, tail), false)); add_axiom(emp, mk_eq(a, m_util.str.mk_concat(head, tail), false));
@ -3529,7 +3529,6 @@ bool theory_seq::solve_nc(unsigned idx) {
return true; return true;
} }
if (m.is_eq(c, a, b)) { if (m.is_eq(c, a, b)) {
literal eq = mk_eq(a, b, false); literal eq = mk_eq(a, b, false);
ctx.mark_as_relevant(eq); ctx.mark_as_relevant(eq);