3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-06-19 15:16:29 +00:00

Address PR review comments: cache, simplify_ite_rec, itos

- Cache now indexes by (ele, r) pair using obj_pair_map
- Remove eval() function; operator()(ele, r) handles all cases
- Rewrite simplify_ite_rec with path vector of signed conditions
- Add range-based simplification: (lo <= x, false) + (x <= hi, false)
  eliminates ite(x = v, t, e) when v is outside [lo, hi]
- Add is_itos case in derive_to_re: guards on n >= 0, digit range,
  and first character match
- Port is_reverse normalization (previous commit)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
Nikolaj Bjorner 2026-06-03 17:16:23 -07:00
parent 3a22994b80
commit 2e3dd32b90
3 changed files with 140 additions and 47 deletions

View file

@ -2959,9 +2959,7 @@ expr_ref seq_rewriter::mk_brz_derivative(expr* r) {
}
expr_ref seq_rewriter::mk_derivative(expr* ele, expr* r) {
// Compute symbolic derivative (cached per regex), then evaluate for concrete element
expr_ref d = m_derive(r);
return m_derive.eval(ele, d);
return m_derive(ele, r);
}