mirror of
https://github.com/Z3Prover/z3
synced 2026-07-15 03:25:43 +00:00
Commit "Term enumeration (#9908)" routed array-valued universal variables in the model finder through a new ho_var qinfo. Its populate_inst_sets fills the variable's instantiation set with synthesized/enumerated array terms. restrict_sks_to_inst_set in smt_model_checker then builds a large disjunction over that polluted set, which can make the auxiliary model-check return l_undef. When that happens the decisive instantiation that the ordinary instantiation sets already provide is discarded, and MBQI reports unknown instead of the correct result. Do not route array-valued universal variables through the term-enumeration ho_var path; keep the prior behaviour of only marking m_is_auf = false. This restores completeness on inputs/issues/iss-5336/bug-5.smt2, which regressed from unsat to unknown. Validated by rebuilding z3 and re-running the benchmark with -T:20: it now returns unsat (byte-exact with the recorded oracle). A sample of other quantifier benchmarks was unaffected. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> |
||
|---|---|---|
| .. | ||
| ackermannization | ||
| api | ||
| ast | ||
| cmd_context | ||
| math | ||
| model | ||
| muz | ||
| nlsat | ||
| opt | ||
| params | ||
| parsers | ||
| qe | ||
| sat | ||
| shell | ||
| smt | ||
| solver | ||
| tactic | ||
| test | ||
| util | ||
| CMakeLists.txt | ||