mirror of
https://github.com/Z3Prover/z3
synced 2025-04-10 19:27:06 +00:00
add ignore int to new arithmetic solvers
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
b1aa6b260b
commit
7497856ded
|
@ -1014,6 +1014,9 @@ namespace arith {
|
|||
return sat::check_result::CR_CONTINUE;
|
||||
case l_undef:
|
||||
TRACE("arith", tout << "check-lia giveup\n";);
|
||||
if (ctx.get_config().m_arith_ignore_int)
|
||||
return sat::check_result::CR_GIVEUP;
|
||||
|
||||
st = sat::check_result::CR_CONTINUE;
|
||||
break;
|
||||
}
|
||||
|
@ -1127,7 +1130,11 @@ namespace arith {
|
|||
if (!check_idiv_bounds())
|
||||
return l_false;
|
||||
|
||||
switch (m_lia->check(&m_explanation)) {
|
||||
auto cr = m_lia->check(&m_explanation);
|
||||
if (cr != lp::lia_move::sat && ctx.get_config().m_arith_ignore_int)
|
||||
return l_undef;
|
||||
|
||||
switch (cr) {
|
||||
case lp::lia_move::sat:
|
||||
lia_check = l_true;
|
||||
break;
|
||||
|
|
|
@ -1539,6 +1539,8 @@ public:
|
|||
return FC_CONTINUE;
|
||||
case l_undef:
|
||||
TRACE("arith", tout << "check-lia giveup\n";);
|
||||
if (ctx().get_fparams().m_arith_ignore_int)
|
||||
return FC_GIVEUP;
|
||||
st = FC_CONTINUE;
|
||||
break;
|
||||
}
|
||||
|
@ -1866,7 +1868,11 @@ public:
|
|||
return l_undef;
|
||||
}
|
||||
lbool lia_check = l_undef;
|
||||
switch (m_lia->check(&m_explanation)) {
|
||||
auto cr = m_lia->check(&m_explanation);
|
||||
if (cr != lp::lia_move::sat && ctx().get_fparams().m_arith_ignore_int)
|
||||
return l_undef;
|
||||
|
||||
switch (cr) {
|
||||
case lp::lia_move::sat:
|
||||
lia_check = l_true;
|
||||
break;
|
||||
|
@ -1896,6 +1902,8 @@ public:
|
|||
break;
|
||||
}
|
||||
case lp::lia_move::cut: {
|
||||
if (ctx().get_fparams().m_arith_ignore_int)
|
||||
return l_undef;
|
||||
TRACE("arith", tout << "cut\n";);
|
||||
++m_stats.m_gomory_cuts;
|
||||
// m_explanation implies term <= k
|
||||
|
|
Loading…
Reference in a new issue