mirror of
https://github.com/Z3Prover/z3
synced 2025-04-23 09:05:31 +00:00
deal with regression break
This commit is contained in:
parent
4f0c743e2b
commit
b80ba24ba6
4 changed files with 176 additions and 4 deletions
|
@ -18,6 +18,7 @@ Revision History:
|
|||
--*/
|
||||
#pragma once
|
||||
|
||||
#include "ast/ast_pp.h"
|
||||
#include "smt/smt_enode.h"
|
||||
#include "smt/smt_quantifier.h"
|
||||
#include "util/obj_hashtable.h"
|
||||
|
@ -527,7 +528,7 @@ namespace smt {
|
|||
ast_manager& m = get_manager();
|
||||
if (lhs->get_id() > rhs->get_id())
|
||||
std::swap(lhs, rhs);
|
||||
if (m.are_distinct(lhs, rhs))
|
||||
if (m.are_distinct(lhs, rhs))
|
||||
return m.mk_false();
|
||||
if (m.are_equal(lhs, rhs))
|
||||
return m.mk_true();
|
||||
|
|
|
@ -279,9 +279,10 @@ namespace smt {
|
|||
if (opt_VerifyFinalCheckProgress) {
|
||||
finalCheckProgressIndicator = true;
|
||||
}
|
||||
|
||||
if (get_manager().is_true(_e)) return;
|
||||
ast_manager& m = get_manager();
|
||||
SASSERT(!m.is_true(_e));
|
||||
|
||||
if (m.is_true(_e)) return;
|
||||
TRACE("str", tout << "asserting " << mk_ismt2_pp(_e, m) << std::endl;);
|
||||
expr_ref e(_e, m);
|
||||
//th_rewriter rw(m);
|
||||
|
@ -1974,7 +1975,7 @@ namespace smt {
|
|||
// inconsistency check: value
|
||||
if (!can_two_nodes_eq(eqc_nn1, eqc_nn2)) {
|
||||
TRACE("str", tout << "inconsistency detected: " << mk_pp(eqc_nn1, m) << " cannot be equal to " << mk_pp(eqc_nn2, m) << std::endl;);
|
||||
expr_ref to_assert(mk_not(m, ctx.mk_eq_atom(eqc_nn1, eqc_nn2)), m);
|
||||
expr_ref to_assert(mk_not(m, m.mk_eq(eqc_nn1, eqc_nn2)), m);
|
||||
assert_axiom(to_assert);
|
||||
// this shouldn't use the integer theory at all, so we don't allow the option of quick-return
|
||||
return false;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue