3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-18 09:12:16 +00:00

add option to selectively disable variable solving for only ground expressions

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2025-07-25 19:15:20 -07:00
parent 1a488bb67a
commit e54928679f
3 changed files with 10 additions and 1 deletions

View file

@ -119,7 +119,10 @@ namespace euf {
SASSERT(j == var2id(v));
if (m_fmls.frozen(v))
continue;
if (!m_config.m_enable_non_ground && has_quantifiers(t))
continue;
bool is_safe = true;
unsigned todo_sz = todo.size();
@ -127,7 +130,10 @@ namespace euf {
// all time-stamps must be at or above current level
// unexplored variables that are part of substitution are appended to work list.
SASSERT(m_todo.empty());
m_todo.push_back(t);
verbose_stream() << "check " << mk_pp(t, m) << "\n";
expr_fast_mark1 visited;
while (!m_todo.empty()) {
expr* e = m_todo.back();
@ -336,6 +342,7 @@ namespace euf {
m_rewriter.updt_params(p);
smt_params_helper sp(p);
m_config.m_enabled = sp.solve_eqs();
m_config.m_enable_non_ground = sp.solve_eqs_non_ground();
}
void solve_eqs::collect_param_descrs(param_descrs& r) {

View file

@ -42,6 +42,7 @@ namespace euf {
bool m_context_solve = true;
unsigned m_max_occs = UINT_MAX;
bool m_enabled = true;
bool m_enable_non_ground = true;
};
stats m_stats;