Explore related knowledge and questions →

Question 25881: A Feasible Zero-Gap Pair Certifies Both Primal and Dual Optimality

On this page
  1. Original question and givens
  2. Definition and scope
  3. Step-by-step derivation
  4. Reverse checks
  5. Result
  6. This question review and source binding

Return to catalogue page 130

← Question derivation index · Original question batch

R0050-25881 · q-20261015-advance-20261115-r04-linear-program-duality-0056

Original question and givens

Fix only primal maximize c^T*x with A*x≤b,x≥0 and dual minimize b^T*y with A^T*y≥c,y≥0. Exact A=[[1, 0], [0, 1]], b=[7, 8], c=[2, 1]. Candidate x=[7, 8], y=[2, 1]. Give (x, y, Ax, transpose_A_y, primal_feasible, dual_feasible, primal_objective, middle_value, dual_objective, first_inequality, second_inequality, zero_gap, primal_optimal, dual_optimal, certificate).

  • G001 — Fix only primal maximize c^T*x with A*x≤b,x≥0 and dual minimize b^T*y with A^T*y≥c,y≥0. Exact A=[[1, 0], [0, 1]], b=[7, 8], c=[2, 1]. Candidate x=[7, 8], y=[2, 1]. Give (x, y, Ax, transpose_A_y, primal_feasible, dual_feasible, primal_objective, middle_value, dual_objective, first_inequality, second_inequality, zero_gap, primal_optimal, dual_optimal, certificate).

Definition and scope

Use the original question domain, assumptions and cited MKO definitions. This item has second-context mathematical and bilingual review, with the model, answer and every arithmetic step independently recomputed from the original parameters; the source question remains a candidate.

Step-by-step derivation

S001 · implies

Before

source roles = [lpdual-zero-gap-certificate]

After

derived = [[x, y, Ax, transpose_A_y, primal_feasible, dual_feasible, primal_objective, middle_value, dual_objective, first_inequality, second_inequality, zero_gap, primal_optimal, dual_optimal, certificate]]

Conditions: none

List the full source field order without JavaScript.LP weak uses13 fields,zero/strong15;premises and roles follow the original operation/mode without padding.

Step identifiers and dependencies

Rule: source_ordered_fields_without_JS · Uses: G001

S002 · implies

Before

source roles = [[[1, 0], [0, 1]], [7, 8], [2, 1]]

After

derived = [2, 2, [[1, 0], [0, 1]], primal:max_cTx_Ax_le_b_x_ge_0, dual:min_bTy_ATy_ge_c_y_ge_0, Yes]

Conditions: none

The fixed max/<=/x>=0 convention pairs with min/>=/y>=0.The dual has m variables and n constraints.Transpose every position;either coefficient sign is legal and dimensions do not imply feasibility.

Step identifiers and dependencies

Rule: LPdual_fixed_conventions_complete_transpose_and_dimensions · Uses: G001, S001

S003 · calculation

Before

LPdual ORIGINAL Ax row0 product0 := mul(1, 7)

After

LPdual ORIGINAL Ax row0 product0 = 7

Conditions: none

Substitute original roles and established intermediates exactly,without floats;extra teaching identities do not impose new source numeric restrictions.

Step identifiers and dependencies

Rule: exact_rational_arithmetic · Uses: G001, S002

S004 · calculation

Before

LPdual ORIGINAL Ax row0 product1 := mul(0, 8)

After

LPdual ORIGINAL Ax row0 product1 = 0

Conditions: none

Substitute original roles and established intermediates exactly,without floats;extra teaching identities do not impose new source numeric restrictions.

Step identifiers and dependencies

Rule: exact_rational_arithmetic · Uses: G001, S003

S005 · calculation

Before

LPdual ORIGINAL Ax row0 sum := sum(7, 0)

After

LPdual ORIGINAL Ax row0 sum = 7

Conditions: none

Substitute original roles and established intermediates exactly,without floats;extra teaching identities do not impose new source numeric restrictions.

Step identifiers and dependencies

Rule: exact_rational_arithmetic · Uses: G001, S004

S006 · calculation

Before

LPdual ORIGINAL Ax row1 product0 := mul(0, 7)

After

LPdual ORIGINAL Ax row1 product0 = 0

Conditions: none

Substitute original roles and established intermediates exactly,without floats;extra teaching identities do not impose new source numeric restrictions.

Step identifiers and dependencies

Rule: exact_rational_arithmetic · Uses: G001, S005

S007 · calculation

Before

LPdual ORIGINAL Ax row1 product1 := mul(1, 8)

After

LPdual ORIGINAL Ax row1 product1 = 8

Conditions: none

Substitute original roles and established intermediates exactly,without floats;extra teaching identities do not impose new source numeric restrictions.

Step identifiers and dependencies

Rule: exact_rational_arithmetic · Uses: G001, S006

S008 · calculation

Before

LPdual ORIGINAL Ax row1 sum := sum(0, 8)

After

LPdual ORIGINAL Ax row1 sum = 8

Conditions: none

Substitute original roles and established intermediates exactly,without floats;extra teaching identities do not impose new source numeric restrictions.

Step identifiers and dependencies

Rule: exact_rational_arithmetic · Uses: G001, S007

S009 · calculation

Before

LPdual ORIGINAL ATy row0 product0 := mul(1, 2)

After

LPdual ORIGINAL ATy row0 product0 = 2

Conditions: none

Substitute original roles and established intermediates exactly,without floats;extra teaching identities do not impose new source numeric restrictions.

Step identifiers and dependencies

Rule: exact_rational_arithmetic · Uses: G001, S008

S010 · calculation

Before

LPdual ORIGINAL ATy row0 product1 := mul(0, 1)

After

LPdual ORIGINAL ATy row0 product1 = 0

Conditions: none

Substitute original roles and established intermediates exactly,without floats;extra teaching identities do not impose new source numeric restrictions.

Step identifiers and dependencies

Rule: exact_rational_arithmetic · Uses: G001, S009

S011 · calculation

Before

LPdual ORIGINAL ATy row0 sum := sum(2, 0)

After

LPdual ORIGINAL ATy row0 sum = 2

Conditions: none

Substitute original roles and established intermediates exactly,without floats;extra teaching identities do not impose new source numeric restrictions.

Step identifiers and dependencies

Rule: exact_rational_arithmetic · Uses: G001, S010

S012 · calculation

Before

LPdual ORIGINAL ATy row1 product0 := mul(0, 2)

After

LPdual ORIGINAL ATy row1 product0 = 0

Conditions: none

Substitute original roles and established intermediates exactly,without floats;extra teaching identities do not impose new source numeric restrictions.

Step identifiers and dependencies

Rule: exact_rational_arithmetic · Uses: G001, S011

S013 · calculation

Before

LPdual ORIGINAL ATy row1 product1 := mul(1, 1)

After

LPdual ORIGINAL ATy row1 product1 = 1

Conditions: none

Substitute original roles and established intermediates exactly,without floats;extra teaching identities do not impose new source numeric restrictions.

Step identifiers and dependencies

Rule: exact_rational_arithmetic · Uses: G001, S012

S014 · calculation

Before

LPdual ORIGINAL ATy row1 sum := sum(0, 1)

After

LPdual ORIGINAL ATy row1 sum = 1

Conditions: none

Substitute original roles and established intermediates exactly,without floats;extra teaching identities do not impose new source numeric restrictions.

Step identifiers and dependencies

Rule: exact_rational_arithmetic · Uses: G001, S013

S015 · calculation

Before

LPdual ORIGINAL primal objective product0 := mul(2, 7)

After

LPdual ORIGINAL primal objective product0 = 14

Conditions: none

Substitute original roles and established intermediates exactly,without floats;extra teaching identities do not impose new source numeric restrictions.

Step identifiers and dependencies

Rule: exact_rational_arithmetic · Uses: G001, S014

S016 · calculation

Before

LPdual ORIGINAL primal objective product1 := mul(1, 8)

After

LPdual ORIGINAL primal objective product1 = 8

Conditions: none

Substitute original roles and established intermediates exactly,without floats;extra teaching identities do not impose new source numeric restrictions.

Step identifiers and dependencies

Rule: exact_rational_arithmetic · Uses: G001, S015

S017 · calculation

Before

LPdual ORIGINAL primal objective sum := sum(14, 8)

After

LPdual ORIGINAL primal objective sum = 22

Conditions: none

Substitute original roles and established intermediates exactly,without floats;extra teaching identities do not impose new source numeric restrictions.

Step identifiers and dependencies

Rule: exact_rational_arithmetic · Uses: G001, S016

S018 · calculation

Before

LPdual ORIGINAL middle yTAx product0 := mul(2, 7)

After

LPdual ORIGINAL middle yTAx product0 = 14

Conditions: none

Substitute original roles and established intermediates exactly,without floats;extra teaching identities do not impose new source numeric restrictions.

Step identifiers and dependencies

Rule: exact_rational_arithmetic · Uses: G001, S017

S019 · calculation

Before

LPdual ORIGINAL middle yTAx product1 := mul(1, 8)

After

LPdual ORIGINAL middle yTAx product1 = 8

Conditions: none

Substitute original roles and established intermediates exactly,without floats;extra teaching identities do not impose new source numeric restrictions.

Step identifiers and dependencies

Rule: exact_rational_arithmetic · Uses: G001, S018

S020 · calculation

Before

LPdual ORIGINAL middle yTAx sum := sum(14, 8)

After

LPdual ORIGINAL middle yTAx sum = 22

Conditions: none

Substitute original roles and established intermediates exactly,without floats;extra teaching identities do not impose new source numeric restrictions.

Step identifiers and dependencies

Rule: exact_rational_arithmetic · Uses: G001, S019

S021 · calculation

Before

LPdual ORIGINAL dual objective product0 := mul(7, 2)

After

LPdual ORIGINAL dual objective product0 = 14

Conditions: none

Substitute original roles and established intermediates exactly,without floats;extra teaching identities do not impose new source numeric restrictions.

Step identifiers and dependencies

Rule: exact_rational_arithmetic · Uses: G001, S020

S022 · calculation

Before

LPdual ORIGINAL dual objective product1 := mul(8, 1)

After

LPdual ORIGINAL dual objective product1 = 8

Conditions: none

Substitute original roles and established intermediates exactly,without floats;extra teaching identities do not impose new source numeric restrictions.

Step identifiers and dependencies

Rule: exact_rational_arithmetic · Uses: G001, S021

S023 · calculation

Before

LPdual ORIGINAL dual objective sum := sum(14, 8)

After

LPdual ORIGINAL dual objective sum = 22

Conditions: none

Substitute original roles and established intermediates exactly,without floats;extra teaching identities do not impose new source numeric restrictions.

Step identifiers and dependencies

Rule: exact_rational_arithmetic · Uses: G001, S022

S024 · implies

Before

source roles = [[7, 8], [2, 1], [7, 8], [2, 1], [7, 8], [2, 1]]

After

derived = [Yes, Yes, 22, 22, 22, [[0, 0, 2, 1, 7, 14], [0, 1, 2, 0, 8, 0], [1, 0, 1, 0, 7, 0], [1, 1, 1, 1, 8, 8]], 22, [[0, 7, 0, 0], [1, 8, 0, 0]], 0, [[0, 2, 0, 0], [1, 1, 0, 0]], 0, Yes, Yes, Yes]

Conditions: none

Check both feasibilities separately.Expanding the double sum proves(ATy)Tx=yTAx.The first gap is sum x_j((ATy)_j−c_j),the second sum y_i(b_i−(Ax)_i).Only with both feasibility premises do nonnegative factors establish the weak chain.With missing premises,numerical inequalities may be accidental.Teaching residuals impose no new source numeric bounds.

Step identifiers and dependencies

Rule: LPdual_ALL_feasibilities_exact_pairings_residuals_and_conditional_weak_chain · Uses: G001, S023

S025 · implies

Before

source roles = [Yes, Yes, 22, 22]

After

derived = [Yes, Yes, Yes]

Conditions: none

For any feasible primal z,weak duality gives cTz<=bTy=cTx,so x is maximum.For any feasible dual u,bTu>=cTx=bTy,so y is minimum.These universal competitor bounds,not bare equality,certify both points;they do not prove general strong-duality existence.

Step identifiers and dependencies

Rule: LPdual_ZERO_gap_plus_BOTH_feasible_GENERAL_competitor_bounds · Uses: G001, S024

Reverse checks

  • S025 · premise_and_result_audit — Check against the original data and this step's premises; a one-way implication is not an equivalence.
  • S024 · premise_and_result_audit — Check against the original data and this step's premises; a one-way implication is not an equivalence.
  • S023 · premise_and_result_audit — Recompute LPdual ORIGINAL dual objective sum with exact rational arithmetic, not rounded decimals.
  • S022 · premise_and_result_audit — Recompute LPdual ORIGINAL dual objective product1 with exact rational arithmetic, not rounded decimals.
  • S021 · premise_and_result_audit — Recompute LPdual ORIGINAL dual objective product0 with exact rational arithmetic, not rounded decimals.
  • S020 · premise_and_result_audit — Recompute LPdual ORIGINAL middle yTAx sum with exact rational arithmetic, not rounded decimals.
  • S019 · premise_and_result_audit — Recompute LPdual ORIGINAL middle yTAx product1 with exact rational arithmetic, not rounded decimals.
  • S018 · premise_and_result_audit — Recompute LPdual ORIGINAL middle yTAx product0 with exact rational arithmetic, not rounded decimals.
  • S017 · premise_and_result_audit — Recompute LPdual ORIGINAL primal objective sum with exact rational arithmetic, not rounded decimals.
  • S016 · premise_and_result_audit — Recompute LPdual ORIGINAL primal objective product1 with exact rational arithmetic, not rounded decimals.
  • S015 · premise_and_result_audit — Recompute LPdual ORIGINAL primal objective product0 with exact rational arithmetic, not rounded decimals.
  • S014 · premise_and_result_audit — Recompute LPdual ORIGINAL ATy row1 sum with exact rational arithmetic, not rounded decimals.
  • S013 · premise_and_result_audit — Recompute LPdual ORIGINAL ATy row1 product1 with exact rational arithmetic, not rounded decimals.
  • S012 · premise_and_result_audit — Recompute LPdual ORIGINAL ATy row1 product0 with exact rational arithmetic, not rounded decimals.
  • S011 · premise_and_result_audit — Recompute LPdual ORIGINAL ATy row0 sum with exact rational arithmetic, not rounded decimals.
  • S010 · premise_and_result_audit — Recompute LPdual ORIGINAL ATy row0 product1 with exact rational arithmetic, not rounded decimals.
  • S009 · premise_and_result_audit — Recompute LPdual ORIGINAL ATy row0 product0 with exact rational arithmetic, not rounded decimals.
  • S008 · premise_and_result_audit — Recompute LPdual ORIGINAL Ax row1 sum with exact rational arithmetic, not rounded decimals.
  • S007 · premise_and_result_audit — Recompute LPdual ORIGINAL Ax row1 product1 with exact rational arithmetic, not rounded decimals.
  • S006 · premise_and_result_audit — Recompute LPdual ORIGINAL Ax row1 product0 with exact rational arithmetic, not rounded decimals.
  • S005 · premise_and_result_audit — Recompute LPdual ORIGINAL Ax row0 sum with exact rational arithmetic, not rounded decimals.
  • S004 · premise_and_result_audit — Recompute LPdual ORIGINAL Ax row0 product1 with exact rational arithmetic, not rounded decimals.
  • S003 · premise_and_result_audit — Recompute LPdual ORIGINAL Ax row0 product0 with exact rational arithmetic, not rounded decimals.
  • S002 · premise_and_result_audit — Check against the original data and this step's premises; a one-way implication is not an equivalence.
  • S001 · premise_and_result_audit — Check against the original data and this step's premises; a one-way implication is not an equivalence.

Result

([7, 8], [2, 1], [7, 8], [2, 1], Yes, Yes, 22, 22, 22, Yes, Yes, Yes, Yes, Yes, feasible_equal_objectives_certify_both_points_optimal_by_weak_duality)

The full substitutions and premise checks give the original answer; source identity,format and status are unchanged.

This question review and source binding

Review date: 2026-10-26

Original questions, answers, step expressions, numeric ASTs and historical records are retained. Source candidate labels remain historical and are not overwritten as formal proof.

Source hashes and review receipts
  • input commit: 0f7be61e2c22317a4075561dc822c87d881a50db
  • original question SHA-256: 7ded564efcef7f8a48dcd3b3c6eec0025efe75ac95bea019b13875d53aa3c1bb
  • candidate record SHA-256: cc24ceb61ef6dcb38776ae9400cff83799f0fd21d08e03f9dc31f43aaf5020f2
  • semantic review receipt SHA-256: 74c63a2c12285a3b2073f8d9f102bc2ba5fb7ed890c5b7c3b8afa94f032eda82
  • question-first witness SHA-256: 6d56428610f8e86c45fd00a2ad3b27ad9c052956946f0b91d71a68536f79d95f
  • Lean: NOT_RUN · human review: NOT_PERFORMED
Same-source full JSON