mirror of
https://github.com/Z3Prover/z3
synced 2025-04-22 16:45:31 +00:00
add complexity throttle
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
f5164d166b
commit
1287572f4f
2 changed files with 6 additions and 0 deletions
|
@ -126,6 +126,8 @@ namespace dd {
|
|||
if (simplify_source_target(eq, *target, changed_leading_term)) {
|
||||
if (is_trivial(*target))
|
||||
to_delete.push_back(target);
|
||||
else if (is_too_complex(*target))
|
||||
to_delete.push_back(target);
|
||||
else if (check_conflict(*target))
|
||||
return false;
|
||||
else if (changed_leading_term && target->is_processed()) {
|
||||
|
@ -170,6 +172,7 @@ namespace dd {
|
|||
if (!m.try_spoly(eq1.poly(), eq2.poly(), r)) return;
|
||||
m_stats.m_superposed++;
|
||||
if (r.is_zero()) return;
|
||||
if (is_too_complex(r)) return;
|
||||
equation* eq = alloc(equation, r, m_dep_manager.mk_join(eq1.dep(), eq2.dep()), m_equations.size());
|
||||
m_equations.push_back(eq);
|
||||
update_stats_max_degree_and_size(*eq);
|
||||
|
|
|
@ -119,6 +119,9 @@ private:
|
|||
bool is_simpler(equation const& eq1, equation const& eq2) { return eq1.poly() < eq2.poly(); }
|
||||
bool check_conflict(equation const& eq) { return eq.poly().is_val() && !is_trivial(eq) && (set_conflict(), true); }
|
||||
void set_conflict() { m_conflict = true; }
|
||||
bool is_too_complex(const equation& eq) const { return is_too_complex(eq.poly()); }
|
||||
bool is_too_complex(const pdd& p) const { return p.tree_size() > m_config.m_expr_size_limit; }
|
||||
|
||||
|
||||
void del_equations(unsigned old_size);
|
||||
void del_equation(equation* eq);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue