mirror of
https://github.com/Z3Prover/z3
synced 2025-04-23 17:15:31 +00:00
guard expensive ite rewrites under configuration
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
8373bec6ad
commit
de454db58c
2 changed files with 19 additions and 15 deletions
|
@ -1085,7 +1085,7 @@ namespace opt {
|
|||
if (D.is_zero()) {
|
||||
throw default_exception("modulo 0 is not defined");
|
||||
}
|
||||
TRACE("opt", display(tout << "lcm: " << D << " tableau\n"););
|
||||
TRACE("opt1", display(tout << "lcm: " << D << " x: v" << x << " tableau\n"););
|
||||
rational val_x = m_var2value[x];
|
||||
rational u = mod(val_x, D);
|
||||
SASSERT(u.is_nonneg() && u < D);
|
||||
|
@ -1093,6 +1093,7 @@ namespace opt {
|
|||
replace_var(idx, x, u);
|
||||
SASSERT(invariant(idx, m_rows[idx]));
|
||||
}
|
||||
TRACE("opt1", display(tout << "tableau after replace x under mod\n"););
|
||||
//
|
||||
// update inequalities such that u is added to t and
|
||||
// D is multiplied to coefficient of x.
|
||||
|
@ -1114,6 +1115,7 @@ namespace opt {
|
|||
visited.insert(row_id);
|
||||
}
|
||||
}
|
||||
TRACE("opt1", display(tout << "tableau after replace x by y := v" << y << "\n"););
|
||||
def result = project(y, compute_def);
|
||||
if (compute_def) {
|
||||
result = (result * D) + u;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue