mirror of
https://github.com/Z3Prover/z3
synced 2025-04-23 17:15:31 +00:00
bugbash
fix missing justification in explain_slice tune intblast solver with some simplifications bypass conflicts if the state is already conflicting
This commit is contained in:
parent
cb672c7992
commit
c4b7061590
6 changed files with 68 additions and 26 deletions
|
@ -401,6 +401,7 @@ public:
|
|||
|
||||
// return true if \c n is a term of the form (* -1 r)
|
||||
bool is_zero(expr const* n) const { rational val; return is_numeral(n, val) && val.is_zero(); }
|
||||
bool is_one(expr const* n) const{ rational val; return is_numeral(n, val) && val.is_one(); }
|
||||
bool is_minus_one(expr* n) const { rational tmp; return is_numeral(n, tmp) && tmp.is_minus_one(); }
|
||||
bool is_times_minus_one(expr* n, expr*& r) const {
|
||||
if (is_mul(n) && to_app(n)->get_num_args() == 2 && is_minus_one(to_app(n)->get_arg(0))) {
|
||||
|
|
|
@ -491,6 +491,8 @@ namespace euf {
|
|||
continue;
|
||||
offsets.push_back(offs);
|
||||
if (n->get_root() == b->get_root() && offs == offset) {
|
||||
if (n != b)
|
||||
consumer(n, b);
|
||||
while (j != UINT_MAX) {
|
||||
auto [x, y, j2] = just[j];
|
||||
if (x != y)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue