mirror of
https://github.com/Z3Prover/z3
synced 2025-06-29 01:18:45 +00:00
the utility that computes case analysis is brittle when the body of a function contains ite expressions that are not relevant to recursive unfolding. The fold-rec occurrences that get inserted to harness large case splits work against throttling case generation: they get treated as recursive functions that have to be guarded.
This commit is contained in:
parent
972d35204c
commit
81ebd52f61
4 changed files with 21 additions and 9 deletions
|
@ -251,6 +251,8 @@ namespace recfun {
|
|||
bool is_macro(func_decl* f) { return is_defined(f) && get_def(f).is_macro(); }
|
||||
bool is_num_rounds(expr * e) const { return is_app_of(e, m_fid, OP_NUM_ROUNDS); }
|
||||
bool owns_app(app * e) const { return e->get_family_id() == m_fid; }
|
||||
bool contains_def(expr* e); // expression contains a def
|
||||
|
||||
|
||||
//<! don't use native theory if recursive function declarations are not populated with defs
|
||||
bool has_defs() const { return m_plugin->has_defs(); }
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue