3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-07-15 11:35:42 +00:00

Remove temporary LP batching parameter and make batched explanation unconditional (#10066)

This removes the temporary `lp.batch_explain_fixed_in_row` knob added
with the recent LP changes. The batched fixed-column explanation path is
kept as the only implementation, matching the follow-up review comments.

- **Problem**
- The new LP setting exposed a temporary fallback path that is no longer
needed.
- Keeping both paths added parameter surface area and settings plumbing
without a lasting behavioral distinction.

- **Changes**
  - **Remove parameter definition**
- Delete `lp.batch_explain_fixed_in_row` from LP parameter generation.
  - **Remove settings plumbing**
- Drop the stored field, accessor methods, and parameter update wiring
from `lp_settings`.
  - **Keep batched explanation as default behavior**
    - Remove the runtime branch in `lar_solver::explain_fixed_in_row`.
- Always linearize fixed-column witnesses together in a single
dependency pass.

- **Resulting simplification**
- The solver no longer carries a dead configuration toggle for fixed-row
explanation.
- The batched dependency-linearization path remains intact and is now
the sole code path.

```c++
void lar_solver::explain_fixed_in_row(unsigned row, explanation& ex) {
    auto& witnesses = m_imp->m_tmp_witnesses;
    witnesses.reset();
    for (auto const& c : get_row(row)) {
        if (!column_is_fixed(c.var()))
            continue;
        const column& ul = m_imp->m_columns[c.var()];
        witnesses.push_back(ul.lower_bound_witness());
        witnesses.push_back(ul.upper_bound_witness());
    }
    m_imp->m_tmp_dependencies.reset();
    m_imp->m_dependencies.linearize(witnesses, m_imp->m_tmp_dependencies);
    for (auto ci : m_imp->m_tmp_dependencies)
        ex.push_back(ci);
}
```

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Copilot 2026-07-07 13:01:10 -07:00 committed by GitHub
parent 334f4fa32b
commit 5f70ba10a9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -3025,4 +3025,3 @@ namespace lp {
}
} // namespace lp