3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-07-15 03:25:43 +00:00
z3/src
Lev Nachmanson 3101b5f771
Fix MBQI completeness regression for array-valued universal variables
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>
2026-07-03 04:37:23 -07:00
..
ackermannization block ackermann over nested selects 2026-06-19 10:41:56 -07:00
api Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
ast [snapshot-regression-fix] Keep symbolic re.range non-empty; fix soundness regression on range membership (#10017) 2026-07-02 14:00:51 -07:00
cmd_context update epsilon encoding 2026-07-02 15:23:36 -07:00
math Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
model Term enumeration (#9908) 2026-06-20 18:14:44 -06:00
muz Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
nlsat Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
opt Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
params Porting seq_split to master (#9840) 2026-06-30 10:18:28 -07:00
parsers Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
qe Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
sat Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
shell Fixes necessary to compile z3 included in clang-tidy via FetchContents. (#9768) 2026-06-08 19:44:01 -07:00
smt Fix MBQI completeness regression for array-valued universal variables 2026-07-03 04:37:23 -07:00
solver Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
tactic Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
test [snapshot-regression-fix] Keep symbolic re.range non-empty; fix soundness regression on range membership (#10017) 2026-07-02 14:00:51 -07:00
util Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
CMakeLists.txt git bindings v1.0 2026-02-18 21:02:25 -08:00