mirror of
https://github.com/Z3Prover/z3
synced 2026-06-19 15:16:29 +00:00
Add simplify_ite_rec and eval for two-phase derivative
- Add simplify_ite post-processing in operator() to simplify ITE conditions - Add simplify_ite_rec(cond, sign, r) for propagating condition truth values - Handles c == cond, x=ch1 vs x=ch2 with different constants - Add eval(ele, d) for efficient two-phase: symbolic derivative + concrete eval - mk_derivative uses two-phase pattern: m_derive(r) then m_derive.eval(ele, d) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
parent
a59a7296fb
commit
2b06d6ddb2
3 changed files with 150 additions and 1 deletions
|
|
@ -2959,7 +2959,9 @@ expr_ref seq_rewriter::mk_brz_derivative(expr* r) {
|
|||
}
|
||||
|
||||
expr_ref seq_rewriter::mk_derivative(expr* ele, expr* r) {
|
||||
return m_derive(ele, r);
|
||||
// Compute symbolic derivative (cached per regex), then evaluate for concrete element
|
||||
expr_ref d = m_derive(r);
|
||||
return m_derive.eval(ele, d);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue