mirror of
https://github.com/Z3Prover/z3
synced 2025-07-20 03:12:03 +00:00
parent
7caae3f5d2
commit
e1027790ae
1 changed files with 14 additions and 15 deletions
|
@ -676,8 +676,7 @@ bool seq_rewriter::is_suffix(expr* s, expr* offset, expr* len) {
|
||||||
(a.neg(), m_autil.is_numeral(offset, b) &&
|
(a.neg(), m_autil.is_numeral(offset, b) &&
|
||||||
b.is_pos() &&
|
b.is_pos() &&
|
||||||
a == b &&
|
a == b &&
|
||||||
lens.size() == 1 &&
|
lens.contains(s));
|
||||||
lens[0] == s);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool seq_rewriter::sign_is_determined(expr* e, sign& s) {
|
bool seq_rewriter::sign_is_determined(expr* e, sign& s) {
|
||||||
|
@ -696,18 +695,6 @@ bool seq_rewriter::sign_is_determined(expr* e, sign& s) {
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if (m_util.str.is_length(e)) {
|
|
||||||
s = sign_pos;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
rational pos;
|
|
||||||
if (m_autil.is_numeral(e, pos)) {
|
|
||||||
if (pos.is_pos())
|
|
||||||
s = sign_pos;
|
|
||||||
else if (pos.is_neg())
|
|
||||||
s = sign_neg;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
if (m_autil.is_mul(e)) {
|
if (m_autil.is_mul(e)) {
|
||||||
for (expr* arg : *to_app(e)) {
|
for (expr* arg : *to_app(e)) {
|
||||||
sign s1;
|
sign s1;
|
||||||
|
@ -726,7 +713,19 @@ bool seq_rewriter::sign_is_determined(expr* e, sign& s) {
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
if (m_util.str.is_length(e)) {
|
||||||
|
s = sign_pos;
|
||||||
return true;
|
return true;
|
||||||
|
}
|
||||||
|
rational r;
|
||||||
|
if (m_autil.is_numeral(e, r)) {
|
||||||
|
if (r.is_pos())
|
||||||
|
s = sign_pos;
|
||||||
|
else if (r.is_neg())
|
||||||
|
s = sign_neg;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
br_status seq_rewriter::mk_seq_extract(expr* a, expr* b, expr* c, expr_ref& result) {
|
br_status seq_rewriter::mk_seq_extract(expr* a, expr* b, expr* c, expr_ref& result) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue