mirror of
https://github.com/Z3Prover/z3
synced 2026-05-18 16:09:30 +00:00
Use subsolvers bounds rather than computing them inside nseq
This commit is contained in:
parent
af4677950b
commit
813a06fa38
5 changed files with 169 additions and 169 deletions
|
|
@ -267,8 +267,16 @@ namespace seq {
|
|||
// stride > 1 guaranteed from here onward.
|
||||
SASSERT(stride > 1);
|
||||
|
||||
unsigned lb = node.var_lb(mem.m_str);
|
||||
unsigned ub = node.var_ub(mem.m_str);
|
||||
rational lb_r, ub_r;
|
||||
if (!node.lower_bound(mem.m_str->get_expr(), lb_r) || !node.upper_bound(mem.m_str->get_expr(), ub_r))
|
||||
continue;
|
||||
|
||||
SASSERT(lb_r <= ub_r);
|
||||
if (ub_r > INT_MAX)
|
||||
continue;
|
||||
|
||||
const unsigned lb = (unsigned)lb_r.get_int32();
|
||||
const unsigned ub = (unsigned)ub_r.get_int32();
|
||||
|
||||
// Check: ∃k ≥ 0 such that lb ≤ min_len + stride * k ≤ ub ?
|
||||
//
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue