PO.ID.Partial.LP
The linear-programming representation of bound computations over finite outcome spaces.
ConicDuality 9 core · 2 supporting This file develops the conic linear-programming duality backbone for partial identification bounds. ★ farkas★ strong_duality_primal_attained★ strong_duality_zero_gap
Conic Duality
This file develops the conic linear-programming duality backbone for partial identification bounds. It treats sharp bounds as optimal values of linear programs over a cone in real Hilbert spaces and proves weak duality, a Farkas feasibility alternative, primal attainment under a closedness qualification, and zero duality gap under the same qualification.
The main structure ConicProgram packages the cone K, constraint operator
A, right-hand side b, and objective direction c. The predicates
PrimalFeasible and DualFeasible define the primal and dual feasible sets,
while primalValue and dualValue record the corresponding optimal values.
The theorem weak_duality gives the pointwise inequality, and
dualValue_le_primalValue lifts it to values.
The theorem farkas restates conic separation as a feasibility alternative.
The set augmentedImage is the closedness constraint qualification used by
strong_duality_primal_attained and strong_duality_zero_gap, which provide
primal attainment and no duality gap for feasible bounded-below programs.
The Hilbert-space formulation covers infinite-dimensional function spaces used by proxy and bridge problems. Measure-cone weak-star duality is intentionally left outside this module; the module note at the end explains the missing signed-measure and cone infrastructure.
Primal data of a conic linear program over real Hilbert spaces: minimize ⟪c, x⟫ subject to A x = b and x ∈ K.
Definition (Lean source)
In complete real inner-product decision and constraint spaces, for a conic program and a candidate decision vector, the primal-feasibility predicate holds precisely when the vector satisfies the program's linear equality constraint and belongs to its constraint cone.
Definition (Lean source)
In complete real inner-product decision and constraint spaces, for a conic program and a candidate dual multiplier, the dual-feasibility predicate holds precisely when the program's objective direction minus the adjoint constraint operator applied to that multiplier belongs to the dual of the constraint cone.
Definition (Lean source)
In complete real inner-product decision and constraint spaces, for a conic program, its primal optimal value is the infimum of the objective inner products over all primal-feasible decision vectors.
Definition (Lean source)
In complete real inner-product decision and constraint spaces, for a conic program, its dual optimal value is the supremum of the inner products between its right-hand side and all dual-feasible multipliers.
Definition (Lean source)
Farkas alternative / feasibility engine. For a target point b, b lies in the closed image cone A(K) if and only if every dual direction y whose pullback Aᵀ y lies in the dual cone of K pairs nonnegatively with b.
Formal statement
In complete real inner-product decision and constraint spaces, for a conic program, the augmented image is the set of pairs consisting of the constraint-operator image and objective inner product of each decision vector in its constraint cone.
Definition (Lean source)
Strong duality I — primal attainment (closedness CQ). For a conic program that is primal feasible and whose feasible objective values are bounded below, if the augmented image cone {(Ax, ⟪c,x⟫) : x ∈ K} is closed — the constraint qualification separating attained optima from mere infima — then the primal optimum is attained: some primal-feasible point x achieves the objective value ⟪c,x⟫ = primalValue exactly. This is the "there is an extremal data-generating distribution" half of sharpness.
Formal statement
Proof (Lean source)
Strong duality II — zero gap (closedness CQ). For a conic program that is primal feasible and whose feasible objective values are bounded below, if the augmented image cone is closed — the same constraint qualification as primal attainment — then there is no duality gap: the primal optimal value equals the dual optimal value, primalValue = dualValue.
Formal statement
Proof (Lean source)
2 supporting declarations (lemmas, instances)
-
weak_dualitytheorem — Weak duality (pointwise). Any dual-feasible objective value lower-bounds any primal-feasible objective value.hypothesesE :sharedType u_1F :sharedType u_2x :Ey :Fhx :P.PrimalFeasible xhy :P.DualFeasible yconclusion⟪P.b, y⟫ ≤ ⟪P.c, x⟫Proof (Lean source)
theorem weak_duality {x : E} {y : F} (hx : P.PrimalFeasible x) (hy : P.DualFeasible y) : ⟪P.b, y⟫ ≤ ⟪P.c, x⟫ := by -- Dual feasibility says `0 ≤ ⟪x, c - Aᵀ y⟫` for `x ∈ K`. have h0 : 0 ≤ ⟪x, P.c - (adjoint P.A) y⟫ := ProperCone.mem_innerDual.mp hy hx.2 have e1 : ⟪x, P.c - (adjoint P.A) y⟫ = ⟪x, P.c⟫ - ⟪P.A x, y⟫ := by rw [inner_sub_right, ContinuousLinearMap.adjoint_inner_right] rw [e1, hx.1] at h0 -- h0 : 0 ≤ ⟪x, P.c⟫ - ⟪P.b, y⟫ have ec := real_inner_comm x P.c linarith -
dualValue_le_primalValuetheorem — Weak duality (value form). When both programs are feasible, dualValue ≤ primalValue. (Boundedness is not needed: the pointwise bound exhibits primalValue as an explicit upper bound for the dual values.)hypothesesE :sharedType u_1F :sharedType u_2hP :{x | P.PrimalFeasible x}.NonemptyhD :{y | P.DualFeasible y}.NonemptyconclusionP.dualValue ≤ P.primalValueProof (Lean source)
theorem dualValue_le_primalValue (hP : {x | P.PrimalFeasible x}.Nonempty) (hD : {y | P.DualFeasible y}.Nonempty) : P.dualValue ≤ P.primalValue := by rw [dualValue, primalValue] refine csSup_le (hD.image _) ?_ rintro _ ⟨y, hy, rfl⟩ refine le_csInf (hP.image _) ?_ rintro _ ⟨x, hx, rfl⟩ exact P.weak_duality hx hy