pounce-presolve 0.2.0

Algorithmic NLP preprocessing as a TNLP wrapper for POUNCE: bound tightening, redundant-constraint removal, LICQ degeneracy detection.
Documentation
# pounce-presolve

Algorithmic NLP preprocessing for POUNCE, exposed as a TNLP wrapper.

Internal crate. Wraps a user [`TNLP`](../pounce-nlp) and applies
presolve passes before the IPM ever sees the problem:

- **Bound tightening** — propagates implied bounds from linear
  constraints back onto variable boxes.
- **Redundant-constraint removal** — drops constraints that are
  implied by the variable bounds.
- **LICQ degeneracy detection** — flags rank-deficient constraint
  Jacobians so the algorithm can pick a more robust strategy (e.g.
  the ℓ₁ exact penalty-barrier in `pounce-l1penalty`).

Opt-in. Off by default; enable via `SolverOptions::presolve = true`.

## Status

Scaffolding. Bound tightening and redundant-row elimination land
first; the LICQ detector is wired against the algorithm crate's
inertia signal.

## License

EPL-2.0.