The two-way point correspondence for slack variables

On this page
  1. Goal and scope
  2. Givens and symbols
  3. Rules and sources
  4. Main derivation
  5. Substeps and lemmas
  6. Reverse audits
  7. Error controls and negative controls
  8. Result and limitations
  9. Verification and source binding

← Guide index · Original MKO

derivation-mko-linear-program-standard-form-01 · ocme-new142-reader-adoption-20261021

Goal and scope

Convert a fixed maximize/≤/nonnegative LP to equality slack form and verify both feasible-point directions and objective.

Representation conversion only, not universal feasibility, boundedness or existence of optima.

Givens and symbols

  • algebra
  • lp_form
  • G1 — A=[[1,1],[2,1]], b=(4,5), c=(3,2); maximize 3*x_1+2*x_2 subject to A*x≤b,x≥0.
  • G2 — Candidate x=(1,2).
  • s — nonnegative slack
  • z^+,z^- — nonnegative split of a free variable

Rules and sources

  • mko_definition · cited — A is an exact rational m-by-n matrix with matching b,c and decision vector x. Qualify dimensions and the chosen sign convention first. Nonnegative slack s=b−A*x converts A*x≤b to A*x+s=b, preserving feasibility and c^T*x in both directions between original and slack points. A free variable splits as x_plus−x_minus with both parts nonnegative; negate a ≥ constraint, replace equality by opposite ≤ rows, and negate a minimization objective. These conversions do not prove feasibility, boundedness or an optimal solution, and another standard-form convention is not silently substituted. · mko-linear-program-standard-form
  • algebra · prerequisite — Use real-field identities; division requires a nonzero denominator and multiplication by a positive number preserves inequalities.
  • lp_form · prerequisite — Fix the primal as maximize c^T*x subject to A*x≤b,x≥0; its slack equality form is A*x+s=b,x,s≥0 with s=b-A*x; the dual minimizes b^T*y subject to A^T*y≥c,y≥0.

Main derivation

S01 · definition

Before

A\in\mathbb Q^{2\times2},\quad b,c,x\in\mathbb R^2

After

\max c^Tx\quad\text{s.t. }Ax\le b,\ x\ge0

Conditions: none

Rule: lp_form · Uses: G1

Leaf basis: lp_form

Align two constraints, two decision coordinates and the objective with one convention.

S02 · implies

Before

Ax=\begin{pmatrix}1&1\\2&1\end{pmatrix}\binom12

After

Ax=(3,4)\le(4,5),\quad x\ge0

Conditions: none

Rule: algebra · Uses: G1, G2

Leaf basis: algebra

Multiply each row and check nonnegativity to qualify the candidate as primal feasible.

S03 · equivalent

Before

s=b-Ax

After

s=(1,1)\ge0,\quad Ax+s=b

Conditions: none

Rule: algebra · Uses: G1, G2, S02

Leaf basis: algebra

Slack is each row's unused capacity and is unique for a fixed x.

S04 · implies

Before

x\ge0,\ Ax\le b

After

(x,s)=(x,b-Ax)\ge0,\quad Ax+s=b

Conditions: none

Rule: algebra · Uses: G1

Leaf basis: algebra

For an arbitrary original feasible point, nonnegative slack gives an equality-form feasible point.

S05 · implies

Before

x,s\ge0,\quad Ax+s=b

After

Ax=b-s\le b,\quad s=b-Ax

Conditions: none

Rule: algebra · Uses: G1, S04

Leaf basis: algebra

Projection back to x is feasible and recovers the same unique slack, giving a bijective correspondence of feasible points.

S06 · equivalent

Before

(c,0)^T(x,s)=c^Tx

After

(3,2,0,0)\cdot(1,2,1,1)=7

Conditions: none

Rule: algebra · Uses: G1, G2, S03

Leaf basis: algebra

New slack variables have zero objective coefficients, preserving the value at every corresponding point.

S07 · implies

Before

z\in\mathbb R\text{ free}

After

z=z^+-z^-,\quad z^+,z^-\ge0

Conditions: none

Rule: algebra · Uses: G1

Leaf basis: algebra

Positive/negative splitting represents a free variable with nonnegative coordinates; -2=0-2=1-3 shows nonuniqueness.

S08 · equivalent

Before

a^Tx\ge d;\quad a^Tx=d;\quad\min c^Tx

After

-a^Tx\le-d;\quad a^Tx\le d,\ -a^Tx\le-d;\quad\max(-c)^Tx

Conditions: none

Rule: algebra · Uses: G1, S04, S05

Leaf basis: algebra

List the separate conversions for ≥, equality and minimization; the first two preserve feasible points, while the last reverses the objective sign and optimization direction.

Substeps and lemmas

No substeps in this guide.

Reverse audits

  • S08 · inverse_equivalence · G1, S04, S05 — Representation changes do not supply certificates of feasibility, boundedness or attained optima.
  • S07 · premise_audit · G1 — Do not confuse nonunique free-variable splitting with unique slack for a fixed x.
  • S06 · inverse_equivalence · G1, G2, S03 — Adding slack to the objective would change the problem.
  • S05 · premise_audit · G1, S04 — Two-way correspondence does not assert that either feasible set is nonempty.
  • S04 · premise_audit · G1 — This quantifies arbitrary x, not only the candidate (1,2).
  • S03 · inverse_equivalence · G1, G2, S02 — The slack sign is b-A*x, not its negative.
  • S02 · premise_audit · G1, G2 — An objective value alone does not check feasibility.
  • S01 · premise_audit · G1 — A different minimize/≥ convention is not silently substituted.

Error controls and negative controls

Sign convention

Keep maximize, ≤ and nonnegative variables fixed.

Two-way point map

Specify forward slack and reverse projection, and check the objective separately.

  • s=A*x-b is slack for this ≤ convention. → reject — Nonnegative slack is b-A*x.
  • Conversion proves every LP feasible. → reject — It preserves a feasible set without proving it nonempty.
  • Both a free split and slack are unique. → reject — -2=0-2=1-3 makes the free split nonunique.

Result and limitations

Slack form preserves feasible points and objectives in both directions; the candidate has slack (1,1) and value 7, while a free split may be nonunique.

    Verification and source binding

    1 declared checks for this guide; only the listed expressions are covered.

    • source commit: b1b2f1dcf8c50d67a93fe52d95f8eef7b3abba9f
    • adopted source SHA-256: 62dd1386a20c65128c0e6a272ab6a528814d264fa4a1b559339f03e3bf70feff
    • original source SHA-256: 62dd1386a20c65128c0e6a272ab6a528814d264fa4a1b559339f03e3bf70feff
    • Lean: NOT_RUN · independent AI: SCOPED_LEAD_AND_BILINGUAL_CONTEXT_REVIEW

    Same-source full JSON (formulas, ASTs, controls and revision log)