Summary
The ILP solver finds a valid target solution for ConsecutiveOnesSubmatrix (Or(true)), but extract_solution maps back to a source config that evaluates to Or(false) for HamiltonianPath.
Reproduction
pred create --example HamiltonianPath -o hp.json
pred reduce hp.json --to ConsecutiveOnesSubmatrix -o bundle.json
pred solve bundle.json
Target evaluates to Or(true), extracted source config evaluates to Or(false).
Origin
Reduction implemented in PR #779.
Discovery Method
This bug was found by systematically running the full CLI round-trip pipeline (pred create --example → pred reduce → pred solve → pred evaluate) across all 43 reduction rules from PRs #777, #779, #804, #972. The existing Rust closed-loop unit tests pass because they test the direct API, but the CLI pipeline exercises serialization, registry lookup, and dynamic ILP path finding — a different code path that exposes extraction bugs.
Recommendation: Add a CI step or make target that runs this round-trip check for every rule with a canonical example. See #1005 for the proposal.