mirror of
https://github.com/Z3Prover/z3
synced 2026-05-30 21:57:46 +00:00
turn on constraint integrity checking
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
d7ee475bc3
commit
684cb23b40
2 changed files with 10 additions and 11 deletions
|
|
@ -287,7 +287,7 @@ namespace seq {
|
||||||
expr* v = s.m_var->arg(0)->get_expr();
|
expr* v = s.m_var->arg(0)->get_expr();
|
||||||
expr* repl = s.m_replacement->arg(0)->get_expr();
|
expr* repl = s.m_replacement->arg(0)->get_expr();
|
||||||
expr* eq = sg.get_manager().mk_eq(v, repl);
|
expr* eq = sg.get_manager().mk_eq(v, repl);
|
||||||
m_constraints.push_back(constraint(eq, s.m_dep, sg.get_manager()));
|
add_constraint(constraint(eq, s.m_dep, sg.get_manager()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1496,12 +1496,7 @@ namespace seq {
|
||||||
if (!node->is_extended()) {
|
if (!node->is_extended()) {
|
||||||
bool ext = generate_extensions(node);
|
bool ext = generate_extensions(node);
|
||||||
IF_VERBOSE(1, display(verbose_stream(), node));
|
IF_VERBOSE(1, display(verbose_stream(), node));
|
||||||
if (!ext) {
|
CTRACE(seq, !ext, display(tout, node) << to_dot() << "\n");
|
||||||
#ifdef Z3DEBUG
|
|
||||||
std::string dot = to_dot();
|
|
||||||
std::cout << dot << std::endl;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
VERIFY(ext);
|
VERIFY(ext);
|
||||||
node->set_extended(true);
|
node->set_extended(true);
|
||||||
++m_stats.m_num_extensions;
|
++m_stats.m_num_extensions;
|
||||||
|
|
|
||||||
|
|
@ -90,7 +90,7 @@ namespace smt {
|
||||||
if (is_not)
|
if (is_not)
|
||||||
lit.neg();
|
lit.neg();
|
||||||
if (ctx.get_assignment(lit) == l_false) {
|
if (ctx.get_assignment(lit) == l_false) {
|
||||||
IF_VERBOSE(1, verbose_stream() << "literal_if_false: " << lit << " " << mk_pp(e, m) << " is assigned false\n");
|
TRACE(seq, tout << "literal_if_false: " << lit << " " << mk_pp(e, m) << " is assigned false\n");
|
||||||
return lit;
|
return lit;
|
||||||
}
|
}
|
||||||
return sat::null_literal;
|
return sat::null_literal;
|
||||||
|
|
@ -626,18 +626,20 @@ namespace smt {
|
||||||
|
|
||||||
|
|
||||||
bool theory_nseq::add_nielsen_assumptions() {
|
bool theory_nseq::add_nielsen_assumptions() {
|
||||||
return true;
|
// return true;
|
||||||
bool has_undef = false;
|
bool has_undef = false;
|
||||||
bool has_false = false;
|
bool has_false = false;
|
||||||
for (auto const& c : m_nielsen.sat_node()->constraints()) {
|
for (auto const& c : m_nielsen.sat_node()->constraints()) {
|
||||||
auto lit = mk_literal(c.fml);
|
auto lit = mk_literal(c.fml);
|
||||||
switch (ctx.get_assignment(lit)) {
|
switch (ctx.get_assignment(lit)) {
|
||||||
case l_true: break;
|
case l_true:
|
||||||
|
break;
|
||||||
case l_undef:
|
case l_undef:
|
||||||
has_undef = true;
|
has_undef = true;
|
||||||
ctx.force_phase(lit);
|
ctx.force_phase(lit);
|
||||||
IF_VERBOSE(0, verbose_stream() <<
|
IF_VERBOSE(2, verbose_stream() <<
|
||||||
"nseq final_check: adding nielsen assumption " << c.fml << "\n";);
|
"nseq final_check: adding nielsen assumption " << c.fml << "\n";);
|
||||||
|
TRACE(seq, tout << "assign: " << c.fml << "\n");
|
||||||
break;
|
break;
|
||||||
case l_false:
|
case l_false:
|
||||||
// do we really expect this to happen?
|
// do we really expect this to happen?
|
||||||
|
|
@ -645,6 +647,8 @@ namespace smt {
|
||||||
IF_VERBOSE(0, verbose_stream()
|
IF_VERBOSE(0, verbose_stream()
|
||||||
<< "nseq final_check: nielsen assumption " << c.fml << " is false\n";);
|
<< "nseq final_check: nielsen assumption " << c.fml << " is false\n";);
|
||||||
ctx.force_phase(lit);
|
ctx.force_phase(lit);
|
||||||
|
TRACE(seq, tout << "assigned to false: " << c.fml << "\n");
|
||||||
|
UNREACHABLE();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue