mirror of
https://github.com/Z3Prover/z3
synced 2025-07-18 02:16:40 +00:00
fix bugs uncovered from running non-Horn SDV samples
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
cefa2d7650
commit
646ace6842
4 changed files with 36 additions and 22 deletions
|
@ -608,6 +608,7 @@ namespace pdr {
|
|||
best effort evaluator of extensional array equality.
|
||||
*/
|
||||
void model_evaluator::eval_array_eq(app* e, expr* arg1, expr* arg2) {
|
||||
TRACE("pdr", tout << "array equality: " << mk_pp(e, m) << "\n";);
|
||||
expr_ref v1(m), v2(m);
|
||||
m_model->eval(arg1, v1);
|
||||
m_model->eval(arg2, v2);
|
||||
|
@ -633,7 +634,10 @@ namespace pdr {
|
|||
|
||||
if (else1 != else2) {
|
||||
if (m.is_value(else1) && m.is_value(else2)) {
|
||||
set_bool(e, false);
|
||||
TRACE("pdr", tout
|
||||
<< "defaults are different: " << mk_pp(e, m) << " "
|
||||
<< mk_pp(else1, m) << " " << mk_pp(else2, m) << "\n";);
|
||||
set_false(e);
|
||||
}
|
||||
else {
|
||||
TRACE("pdr", tout << "equality is unknown: " << mk_pp(e, m) << "\n";);
|
||||
|
@ -659,7 +663,10 @@ namespace pdr {
|
|||
continue;
|
||||
}
|
||||
else if (m.is_value(w1) && m.is_value(w2)) {
|
||||
set_bool(e, false);
|
||||
TRACE("pdr", tout << "Equality evaluation: " << mk_pp(e, m) << "\n";
|
||||
tout << mk_pp(s1, m) << " |-> " << mk_pp(w1, m) << "\n";
|
||||
tout << mk_pp(s2, m) << " |-> " << mk_pp(w2, m) << "\n";);
|
||||
set_false(e);
|
||||
return;
|
||||
}
|
||||
else {
|
||||
|
@ -668,7 +675,7 @@ namespace pdr {
|
|||
return;
|
||||
}
|
||||
}
|
||||
set_bool(e, true);
|
||||
set_true(e);
|
||||
}
|
||||
|
||||
void model_evaluator::eval_eq(app* e, expr* arg1, expr* arg2) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue