3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-07-17 20:45:45 +00:00
z3/src/qe/mbp
Hari Govind V K 922f49e187
Fix MBP QEL soundness bug in datatype accessor elimination (#9571) (#9692)
Two fixes for mbp_dt_tg::apply() when encountering an accessor whose
argument has a different constructor in the model:

1. Don't call rm_accessor (which would assert a contradictory
recognizer, making the formula false). This prevents the original bug
where QEL returned 'false' for satisfiable formulas.

2. Branch on the model-assigned constructor for the accessor's argument.

The correct output should include the literal introduced in (2).
However, this fix does not produce it. Spacer is sound with this
over-approximation, as long as the counter example does not depend on
value of mismatched accessors (e.g. (tl nil)).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-03 07:23:21 -07:00
..
CMakeLists.txt bug fixes and cleanup in projection functions 2025-02-15 14:11:20 -08:00
mbp_arith.cpp handle build warnings 2025-06-06 15:13:31 +02:00
mbp_arith.h handle build warnings 2025-06-06 15:13:31 +02:00
mbp_arrays.cpp Fix true positive critical bugs from static analysis discussion #8764 2026-02-25 00:41:59 +00:00
mbp_arrays.h Refactor and fix uninitialized variables and improve function consistency across multiple modules 2024-09-23 13:34:33 +01:00
mbp_arrays_tg.cpp Standardize for-loop increments to prefix form (++i) (#8199) 2026-01-14 19:55:31 -08:00
mbp_arrays_tg.h QEL: Fast Approximated Quantifier Elimination (#6820) 2023-08-02 09:34:06 -07:00
mbp_basic_tg.cpp Centralize and document TRACE tags using X-macros (#7657) 2025-05-28 14:31:25 +01:00
mbp_basic_tg.h bug fixes and cleanup in projection functions 2025-02-15 14:11:20 -08:00
mbp_datatypes.cpp Centralize and document TRACE tags using X-macros (#7657) 2025-05-28 14:31:25 +01:00
mbp_datatypes.h Refactor and fix uninitialized variables and improve function consistency across multiple modules 2024-09-23 13:34:33 +01:00
mbp_dt_tg.cpp Fix MBP QEL soundness bug in datatype accessor elimination (#9571) (#9692) 2026-06-03 07:23:21 -07:00
mbp_dt_tg.h QEL: Fast Approximated Quantifier Elimination (#6820) 2023-08-02 09:34:06 -07:00
mbp_euf.cpp Replace empty destructors with = default for compiler optimization (#8189) 2026-01-13 10:50:10 -08:00
mbp_euf.h Remove redundant overridden default destructors (#8191) 2026-01-14 18:41:26 +00:00
mbp_plugin.cpp Centralize and document TRACE tags using X-macros (#7657) 2025-05-28 14:31:25 +01:00
mbp_plugin.h handle build warnings 2025-06-06 15:13:31 +02:00
mbp_qel.cpp Centralize and document TRACE tags using X-macros (#7657) 2025-05-28 14:31:25 +01:00
mbp_qel.h QEL: Fast Approximated Quantifier Elimination (#6820) 2023-08-02 09:34:06 -07:00
mbp_qel_util.cpp taking a look at mbp_qel for arrays 2025-02-18 16:28:49 -08:00
mbp_qel_util.h QEL: Fast Approximated Quantifier Elimination (#6820) 2023-08-02 09:34:06 -07:00
mbp_solve_plugin.cpp Refactor mk_concat call sites to use std::initializer_list (#8494) 2026-02-04 13:45:20 -08:00
mbp_solve_plugin.h Use = default for virtual constructors. 2022-08-05 18:11:46 +03:00
mbp_term_graph.cpp Centralize and document TRACE tags using X-macros (#7657) 2025-05-28 14:31:25 +01:00
mbp_term_graph.h bug fixes and cleanup in projection functions 2025-02-15 14:11:20 -08:00
mbp_tg_plugins.h bug fixes and cleanup in projection functions 2025-02-15 14:11:20 -08:00