mirror of
https://github.com/Z3Prover/z3
synced 2025-05-14 03:04:44 +00:00
refine the safety check for leaving basis. As long as all base variables are unbounded in compatible directions as the non-basic variable we can detect unbounded variables. This partial check fixes integer divergence in a case exposed by Karpenov. Establishing or converting this to a check that always identifies unbounded integer variables is left for further analysis.
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
ef57e4abe5
commit
52c6f7c3b1
2 changed files with 14 additions and 9 deletions
|
@ -874,7 +874,7 @@ namespace smt {
|
|||
|
||||
void add_tmp_row(row & r1, numeral const & coeff, row const & r2);
|
||||
theory_var pick_var_to_leave(bool has_int, theory_var x_j, bool inc, numeral & a_ij, inf_numeral & gain, bool& skiped_row);
|
||||
bool is_safe_to_leave(theory_var x, bool& has_int, bool& is_shared);
|
||||
bool is_safe_to_leave(theory_var x, bool inc, bool& has_int, bool& is_shared);
|
||||
bool move_to_bound(theory_var x_i, bool inc);
|
||||
template<bool invert>
|
||||
void add_tmp_row_entry(row & r, numeral const & coeff, theory_var v);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue