mirror of
https://github.com/Z3Prover/z3
synced 2025-08-11 13:40:52 +00:00
Treat arguments to recursive functions as beta redexes
An argument to a recursive function would escape the scope of the function application when the recursive function definitions are unfolded. Therefore, such argument occurrences need not be considered for extensional equality / equality sharing. This filter is mostly relevant for recursive functions that take a lambda expression as argument. Lambda expressions / arrays that occur in shared occurrences are checked for extensionality.
This commit is contained in:
parent
25ad5cb073
commit
637120ced5
4 changed files with 16 additions and 0 deletions
|
@ -99,6 +99,7 @@ namespace smt {
|
|||
bool can_propagate() override;
|
||||
void propagate() override;
|
||||
bool should_research(expr_ref_vector &) override;
|
||||
bool is_beta_redex(enode* p, enode* n) const override;
|
||||
|
||||
void new_eq_eh(theory_var v1, theory_var v2) override {}
|
||||
void new_diseq_eh(theory_var v1, theory_var v2) override {}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue