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:
parent
a7495876fd
commit
477fd3fba0
2 changed files with 7 additions and 18 deletions
|
@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
|
@ -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);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue