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