mirror of
https://github.com/Z3Prover/z3
synced 2026-07-03 05:46:08 +00:00
don't unfold recursive defs if there is an uninterpreted subterm, #7671
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
b6e8f2b033
commit
3669dc37b3
1 changed files with 3 additions and 0 deletions
|
|
@ -34,6 +34,9 @@ br_status recfun_rewriter::mk_app_core(func_decl * f, unsigned num_args, expr *
|
||||||
for (unsigned i = 0; i < num_args; ++i)
|
for (unsigned i = 0; i < num_args; ++i)
|
||||||
if (!m.is_value(args[i]))
|
if (!m.is_value(args[i]))
|
||||||
safe_to_subst = false;
|
safe_to_subst = false;
|
||||||
|
for (auto t : subterms::all(expr_ref(r, m)))
|
||||||
|
if (is_uninterp(t))
|
||||||
|
return BR_FAILED;
|
||||||
|
|
||||||
// check if there is an argument that is a constructor
|
// check if there is an argument that is a constructor
|
||||||
// such that the recursive function can be partially evaluated.
|
// such that the recursive function can be partially evaluated.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue