3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-07-27 17:32:45 +00:00
z3/src
Lev Nachmanson 475af3e5c5 opt: drop LP-relaxation infinitesimal on NLA maximize path
The nonlinear optimization path (max_with_nl) returned the linear-relaxation
optimum lp_val including its infinitesimal.  That infinitesimal is an artifact
of the strict bounds introduced by the linearization, not a genuine strict
optimum of the nonlinear problem.  Threading it into opt_solver::mk_ge made
theory_lra assert a delta-rational lower bound (r, -1) that coincides with the
column's existing strict upper bound (r, -1), fixing the objective column at a
delta value the LP core never snapped, tripping the
non_basic_columns_are_set_correctly assertion in a debug build (unit tests
max_reg / max_rev).

Project the infinitesimal away in both NLA branches (FC_DONE and FC_CONTINUE);
the rational part remains a sound bound for check_bound to validate.  The
genuinely-strict, NLA-free path (e.g. pure LP suprema and shared-symbol/EUF
objectives) is unaffected, so faithful validation of strict optima is preserved.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-07-07 15:30:05 -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 Fix debug-only well-sorted traversal freeing temporary assertions (#10067) 2026-07-07 13:26:44 -07:00
cmd_context reduce leaks for sorts 2026-07-07 12:04:14 -07:00
math opt: validate strict optimization optima faithfully with delta-rational bounds 2026-07-07 15:30:05 -07:00
model updates to tptp_frontend 2026-07-04 14:34:21 -07: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 opt: validate strict optimization optima faithfully with delta-rational bounds 2026-07-07 15:30:05 -07:00
params fix loop bug in ho_matching and add throttle configurations 2026-07-07 09:20:32 -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 opt: drop LP-relaxation infinitesimal on NLA maximize path 2026-07-07 15:30:05 -07:00
solver stop complaining abot Char in QF_S benchmarks 2026-07-04 14:27:34 -07:00
tactic [snapshot-regression-fix] Fix elim_uncnstr disabled by manager-wide has_type_vars() flag (iss-6260/small-2) (#10063) 2026-07-07 13:02:37 -07:00
test bugfixes to front-end and matcher 2026-07-06 17:14:41 -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