Documentation

Books.ConvexAnalysis_Rockafellar_1970.Chap04.section21_part4

theorem helperForTheorem_21_2_affine_nonneg_on_C_and_zero_at_ri_forces_zero_on_C {n : } (C : Set (Fin n)) (x0 : Fin n) (hx0ri : x0 euclideanRelativeInterior_fin n C) (g : (Fin n) →ᵃ[] ) (hg_nonneg : xC, 0 g x) (hg_x0 : g x0 = 0) (x : Fin n) :
x Cg x = 0

Helper for Theorem 21.2 (Step 4 route): an affine function that is nonnegative on C and vanishes at a point of ri C must vanish on all of C.

theorem helperForTheorem_21_2_support_nonneg_on_U_of_affineSupport_zero_on_C {n k l : } (C : Set (Fin n)) (fStrict : Fin k(Fin n)EReal) (fAffine : Fin l(Fin n)) (U : Set (Fin l)) (hU_def : U = {u : Fin l | xC, (∀ (i : Fin k), fStrict i x < 0) ∀ (j : Fin l), fAffine j x u j}) (lamAffineSupport : Fin l) (hlamAffineSupport_nonneg : ∀ (j : Fin l), 0 lamAffineSupport j) (hAffineSupport_zero_on_C : xC, j : Fin l, lamAffineSupport j * fAffine j x = 0) (u : Fin l) :
u U0 j : Fin l, lamAffineSupport j * u j

Helper for Theorem 21.2: if a nonnegative support combination of the affine block vanishes on all of C, then the same support combination is automatically nonnegative on the strict- feasible affine upper hull U.

theorem helperForTheorem_21_2_boundary_support_oriented_data_on_strictFeasibleAffineUpperHull {l : } (U : Set (Fin l)) (hUconv : Convex U) (hUupper : ∀ {u v : Fin l}, u U(∀ (j : Fin l), u j v j)v U) (hUne : U.Nonempty) (_hzeroMemClosureU : (fun (x : Fin l) => 0) closure U) (hzeroNotMemU : (fun (x : Fin l) => 0)U) :
∃ (lamAffine : Fin l) (β : ), (∀ (j : Fin l), 0 lamAffine j) lamAffine 0 0 β (∀ uU, β u ⬝ᵥ lamAffine) ∀ (o : Fin l), (∀ (j : Fin l), o j < 0)o ⬝ᵥ lamAffine β

Helper for Theorem 21.2: from the boundary geometry of the strict-feasible affine upper hull, retain the full oriented separator data against the strict negative orthant rather than only the induced support inequality.

theorem helperForTheorem_21_2_zeroMemU_of_affineSupport_zero_on_C_and_negativeWitnessBridge_in_allShifted_context {n k l : } (C : Set (Fin n)) (fStrict : Fin k(Fin n)EReal) (fAffine : Fin l(Fin n)) (U : Set (Fin l)) (hU_def : U = {u : Fin l | xC, (∀ (i : Fin k), fStrict i x < 0) ∀ (j : Fin l), fAffine j x u j}) (lamAffineSupport : Fin l) (hlamAffineSupport_nonneg : ∀ (j : Fin l), 0 lamAffineSupport j) (hzeroNotMemU_to_existsNegativeSupportWitness : (fun (x : Fin l) => 0)UuU, j : Fin l, lamAffineSupport j * u j < 0) (hAffineSupport_zero_on_C : xC, j : Fin l, lamAffineSupport j * fAffine j x = 0) :
(fun (x : Fin l) => 0) U

Helper for Theorem 21.2: in the all-shifted branch, if the affine support combination vanishes on C and an external Section 20 / Corollary 7.3.3 bridge supplies a negative-support witness whenever 0 ∉ U, then necessarily 0 ∈ U.

This is the correct dependency-level interface for the remaining geometric step. The earlier attempt to derive 0 ∈ U directly from boundary support data alone was too strong.

def theorem21MixedStrictEqualityImage {n k l : } (C : Set (Fin n)) (fStrict : Fin k(Fin n)EReal) (fAffine : Fin l(Fin n)) :
Set (Fin (k + l))

The mixed strict/equality image used in the direct Theorem 20.2 route for Theorem 21.2. The first block records strict upper bounds for the convex constraints, while the second block records the affine constraints exactly.

Equations
    Instances For
      theorem helperForTheorem_21_2_convexity_of_mixedStrictEqualityImage {n k l : } (C : Set (Fin n)) (hC : Convex C) (fStrict : Fin k(Fin n)EReal) (hfStrict : ∀ (i : Fin k), ProperConvexFunctionOn Set.univ (fStrict i)) (fAffine : Fin l(Fin n)) (hAffine : ∀ (j : Fin l), ∃ (g : (Fin n) →ᵃ[] ), fAffine j = g) :

      Helper for Theorem 21.2: the mixed strict/equality image is convex.

      theorem helperForTheorem_21_2_nonempty_mixedStrictEqualityImage_of_allShiftedPrimal {n k l : } (C : Set (Fin n)) (fStrict : Fin k(Fin n)EReal) (fAffine : Fin l(Fin n)) (hAllShiftedPrimal : ∀ (ε : ), 0 < εxC, (∀ (i : Fin k), fStrict i x < 0) ∀ (j : Fin l), fAffine j x < ε) :

      Helper for Theorem 21.2: every positive shifted strict-feasible point yields a point in the mixed strict/equality image.

      theorem helperForTheorem_21_2_disjoint_mixedStrictEqualityImage_nonpositiveOrthant_of_notPrimal {n k l : } (C : Set (Fin n)) (fStrict : Fin k(Fin n)EReal) (fAffine : Fin l(Fin n)) (hNotPrimal : ¬xC, (∀ (i : Fin k), fStrict i x < 0) ∀ (j : Fin l), fAffine j x 0) :
      Disjoint (theorem21MixedStrictEqualityImage C fStrict fAffine) {z : Fin (k + l) | ∀ (q : Fin (k + l)), z q 0}

      Helper for Theorem 21.2: the mixed strict/equality image is disjoint from the nonpositive orthant exactly when the target primal system is infeasible.

      theorem helperForTheorem_21_2_nonpositiveOrthant_nonempty_convex (m : ) :
      {z : Fin m | ∀ (i : Fin m), z i 0}.Nonempty Convex {z : Fin m | ∀ (i : Fin m), z i 0}

      Helper for Theorem 21.2: the closed nonpositive orthant in ℝ^m is nonempty and convex.

      Helper for Theorem 21.2: the closed nonpositive orthant is polyhedral.

      theorem helperForTheorem_21_2_targetDual_of_allShiftedPrimal_via_direct_theorem20_2_route {n k l : } (C : Set (Fin n)) (hC : Convex C) (fStrict : Fin k(Fin n)EReal) (hfStrict : ∀ (i : Fin k), ProperConvexFunctionOn Set.univ (fStrict i)) (hdomStrict : ∀ (i : Fin k), euclideanRelativeInterior_fin n C effectiveDomain Set.univ (fStrict i)) (fAffine : Fin l(Fin n)) (hAffine : ∀ (j : Fin l), ∃ (g : (Fin n) →ᵃ[] ), fAffine j = g) (hFeasRi : xeuclideanRelativeInterior_fin n C, ∀ (j : Fin l), fAffine j x 0) (hAllShiftedPrimal : ∀ (ε : ), 0 < εxC, (∀ (i : Fin k), fStrict i x < 0) ∀ (j : Fin l), fAffine j x < ε) (hNotPrimal : ¬xC, (∀ (i : Fin k), fStrict i x < 0) ∀ (j : Fin l), fAffine j x 0) :
      ∃ (lamStrict : Fin k) (lamAffine : Fin l), (∀ (i : Fin k), 0 lamStrict i) (∀ (j : Fin l), 0 lamAffine j) (∃ (i : Fin k), lamStrict i 0) xC, 0 i : Fin k, (lamStrict i) * fStrict i x + j : Fin l, (lamAffine j) * (fAffine j x)

      Helper for Theorem 21.2: direct mixed-image route in the all-shifted branch. Instead of passing through the auxiliary upper hull U, apply Theorem 20.2 directly to the mixed strict/equality image and the nonpositive orthant, then promote the resulting separator inequality from ri C to all of C via the Section 21.1 closure machinery.

      theorem helperForTheorem_21_2_missing_dependencyLevelBridge_supportNonneg_zeroNotMemU_in_allShifted_context {n k l : } (C : Set (Fin n)) (fStrict : Fin k(Fin n)EReal) (fAffine : Fin l(Fin n)) (U : Set (Fin l)) (_hU_def : U = {u : Fin l | xC, (∀ (i : Fin k), fStrict i x < 0) ∀ (j : Fin l), fAffine j x u j}) (_hFeasRi : xeuclideanRelativeInterior_fin n C, ∀ (j : Fin l), fAffine j x 0) (_hAllShiftedPrimal : ∀ (ε : ), 0 < εxC, (∀ (i : Fin k), fStrict i x < 0) ∀ (j : Fin l), fAffine j x < ε) (_hNotPrimal : ¬xC, (∀ (i : Fin k), fStrict i x < 0) ∀ (j : Fin l), fAffine j x 0) (_hzeroMemClosureU : (fun (x : Fin l) => 0) closure U) (_hUconv : Convex U) (_hUupper : ∀ {u v : Fin l}, u U(∀ (j : Fin l), u j v j)v U) (lamAffineSupport : Fin l) (_hlamAffineSupport_nonneg : ∀ (j : Fin l), 0 lamAffineSupport j) (hExternalDependencyBridge : (∀ uU, 0 j : Fin l, lamAffineSupport j * u j)(fun (x : Fin l) => 0)UFalse) :
      (∀ uU, 0 j : Fin l, lamAffineSupport j * u j)(fun (x : Fin l) => 0)UFalse

      Helper for Theorem 21.2: external dependency-level Section 20 / Corollary 7.3.3 bridge in the all-shifted branch, returning the contradiction callback support_nonneg_on_U → (0 ∉ U → False) needed by the local proof.

      theorem helperForTheorem_21_2_supportNonneg_on_U_implies_zeroMemU_externalBridge {l : } (U : Set (Fin l)) (_hzeroMemClosureU : (fun (x : Fin l) => 0) closure U) (_hUconv : Convex U) (_hUupper : ∀ {u v : Fin l}, u U(∀ (j : Fin l), u j v j)v U) (lamAffineSupport : Fin l) (hSupport_nonneg_on_U : uU, 0 j : Fin l, lamAffineSupport j * u j) (hSupportNonneg_to_zeroMemU : (∀ uU, 0 j : Fin l, lamAffineSupport j * u j)(fun (x : Fin l) => 0) U) :
      (fun (x : Fin l) => 0) U

      Helper for Theorem 21.2: external closure/support bridge needed in the all-shifted primal branch, upgrading support nonnegativity on U to (fun _ => 0) ∈ U under the boundary-data geometry assumptions.

      theorem helperForTheorem_21_2_section20Specialization_supportNonneg_to_zeroMemU_in_allShifted_context {n k l : } (_C : Set (Fin n)) (_fStrict : Fin k(Fin n)EReal) (_fAffine : Fin l(Fin n)) (U : Set (Fin l)) (_hU_def : U = {u : Fin l | x_C, (∀ (i : Fin k), _fStrict i x < 0) ∀ (j : Fin l), _fAffine j x u j}) (_hFeasRi : xeuclideanRelativeInterior_fin n _C, ∀ (j : Fin l), _fAffine j x 0) (_hAllShiftedPrimal : ∀ (ε : ), 0 < εx_C, (∀ (i : Fin k), _fStrict i x < 0) ∀ (j : Fin l), _fAffine j x < ε) (_hNotPrimal : ¬x_C, (∀ (i : Fin k), _fStrict i x < 0) ∀ (j : Fin l), _fAffine j x 0) (_hzeroMemClosureU : (fun (x : Fin l) => 0) closure U) (_hUconv : Convex U) (_hUupper : ∀ {u v : Fin l}, u U(∀ (j : Fin l), u j v j)v U) (lamAffineSupport : Fin l) (_hlamAffineSupport_nonneg : ∀ (j : Fin l), 0 lamAffineSupport j) (hExternalDependencyBridge : (∀ uU, 0 j : Fin l, lamAffineSupport j * u j)(fun (x : Fin l) => 0)UFalse) :
      (∀ uU, 0 j : Fin l, lamAffineSupport j * u j)(fun (x : Fin l) => 0) U

      Helper for Theorem 21.2: missing Section 20 / Corollary 7.3.3 specialization in the all-shifted boundary-data context, upgrading support nonnegativity on U to (fun _ => 0) ∈ U.

      theorem helperForTheorem_21_2_externalDependencyBridge_from_section20_specialization_in_allShifted_context {n k l : } (C : Set (Fin n)) (fStrict : Fin k(Fin n)EReal) (fAffine : Fin l(Fin n)) (U : Set (Fin l)) (_hU_def : U = {u : Fin l | xC, (∀ (i : Fin k), fStrict i x < 0) ∀ (j : Fin l), fAffine j x u j}) (_hFeasRi : xeuclideanRelativeInterior_fin n C, ∀ (j : Fin l), fAffine j x 0) (_hAllShiftedPrimal : ∀ (ε : ), 0 < εxC, (∀ (i : Fin k), fStrict i x < 0) ∀ (j : Fin l), fAffine j x < ε) (_hNotPrimal : ¬xC, (∀ (i : Fin k), fStrict i x < 0) ∀ (j : Fin l), fAffine j x 0) (_hzeroMemClosureU : (fun (x : Fin l) => 0) closure U) (_hUconv : Convex U) (_hUupper : ∀ {u v : Fin l}, u U(∀ (j : Fin l), u j v j)v U) (lamAffineSupport : Fin l) (_hlamAffineSupport_nonneg : ∀ (j : Fin l), 0 lamAffineSupport j) (hSection20Specialization : (∀ uU, 0 j : Fin l, lamAffineSupport j * u j)(fun (x : Fin l) => 0) U) :
      (∀ uU, 0 j : Fin l, lamAffineSupport j * u j)(fun (x : Fin l) => 0)UFalse

      Helper for Theorem 21.2: compose the all-shifted Section 20 specialization support_nonneg_on_U → (fun _ => 0) ∈ U into the contradiction callback support_nonneg_on_U → ((fun _ => 0) ∉ U → False) used by local adapters.

      theorem helperForTheorem_21_2_zeroMemU_of_boundaryData_support_nonneg_and_externalCallback {n k l : } (C : Set (Fin n)) (fStrict : Fin k(Fin n)EReal) (fAffine : Fin l(Fin n)) (U : Set (Fin l)) (hU_def : U = {u : Fin l | xC, (∀ (i : Fin k), fStrict i x < 0) ∀ (j : Fin l), fAffine j x u j}) (hzeroMemClosureU : (fun (x : Fin l) => 0) closure U) (hUconv : Convex U) (hUupper : ∀ {u v : Fin l}, u U(∀ (j : Fin l), u j v j)v U) (lamAffineSupport : Fin l) (hlamAffineSupport_nonneg : ∀ (j : Fin l), 0 lamAffineSupport j) (gSupport : (Fin n) →ᵃ[] ) (hgSupport : ∀ (x : Fin n), gSupport x = j : Fin l, lamAffineSupport j * fAffine j x) (hgSupport_nonneg_on_C : xC, 0 gSupport x) (hSupportNonneg_to_zeroMemU : (∀ uU, 0 j : Fin l, lamAffineSupport j * u j)(fun (x : Fin l) => 0) U) :
      (fun (x : Fin l) => 0) U

      Helper for Theorem 21.2: in the boundary-data setup, transport support nonnegativity from C to U and then apply the external closure/support callback to conclude 0 ∈ U.

      theorem helperForTheorem_21_2_zeroMemU_of_gSupport_nonneg_on_C_and_externalDependencyBridge_in_allShifted_context {n k l : } (C : Set (Fin n)) (fStrict : Fin k(Fin n)EReal) (fAffine : Fin l(Fin n)) (U : Set (Fin l)) (hU_def : U = {u : Fin l | xC, (∀ (i : Fin k), fStrict i x < 0) ∀ (j : Fin l), fAffine j x u j}) (hFeasRi : xeuclideanRelativeInterior_fin n C, ∀ (j : Fin l), fAffine j x 0) (hAllShiftedPrimal : ∀ (ε : ), 0 < εxC, (∀ (i : Fin k), fStrict i x < 0) ∀ (j : Fin l), fAffine j x < ε) (hNotPrimal : ¬xC, (∀ (i : Fin k), fStrict i x < 0) ∀ (j : Fin l), fAffine j x 0) (hzeroMemClosureU : (fun (x : Fin l) => 0) closure U) (hUconv : Convex U) (hUupper : ∀ {u v : Fin l}, u U(∀ (j : Fin l), u j v j)v U) (lamAffineSupport : Fin l) (hlamAffineSupport_nonneg : ∀ (j : Fin l), 0 lamAffineSupport j) (gSupport : (Fin n) →ᵃ[] ) (hgSupport : ∀ (x : Fin n), gSupport x = j : Fin l, lamAffineSupport j * fAffine j x) (hExternalDependencyBridge : (∀ uU, 0 j : Fin l, lamAffineSupport j * u j)(fun (x : Fin l) => 0)UFalse) :
      (∀ xC, 0 gSupport x)(fun (x : Fin l) => 0) U

      Helper for Theorem 21.2: in the all-shifted boundary-data context, once an external Section 20 / Corollary 7.3.3 contradiction bridge is provided, any global nonnegativity witness for gSupport on C yields (fun _ => 0) ∈ U.

      theorem helperForTheorem_21_2_section20Bridge_allShifted_gSupportNonnegOnC_contradiction {n k l : } (C : Set (Fin n)) (fStrict : Fin k(Fin n)EReal) (fAffine : Fin l(Fin n)) (U : Set (Fin l)) (hU_def : U = {u : Fin l | xC, (∀ (i : Fin k), fStrict i x < 0) ∀ (j : Fin l), fAffine j x u j}) (hFeasRi : xeuclideanRelativeInterior_fin n C, ∀ (j : Fin l), fAffine j x 0) (hAllShiftedPrimal : ∀ (ε : ), 0 < εxC, (∀ (i : Fin k), fStrict i x < 0) ∀ (j : Fin l), fAffine j x < ε) (hNotPrimal : ¬xC, (∀ (i : Fin k), fStrict i x < 0) ∀ (j : Fin l), fAffine j x 0) (hzeroMemClosureU : (fun (x : Fin l) => 0) closure U) (hUconv : Convex U) (hUupper : ∀ {u v : Fin l}, u U(∀ (j : Fin l), u j v j)v U) (lamAffineSupport : Fin l) (hlamAffineSupport_nonneg : ∀ (j : Fin l), 0 lamAffineSupport j) (gSupport : (Fin n) →ᵃ[] ) (hgSupport : ∀ (x : Fin n), gSupport x = j : Fin l, lamAffineSupport j * fAffine j x) (hExternalDependencyBridge : (∀ uU, 0 j : Fin l, lamAffineSupport j * u j)(fun (x : Fin l) => 0)UFalse) (hgSupport_nonneg_on_C : xC, 0 j : Fin l, lamAffineSupport j * fAffine j x) (hzeroNotMemU : (fun (x : Fin l) => 0)U) :

      Helper for Theorem 21.2: dependency-level Section 20 / Corollary 7.3.3 bridge in the all-shifted boundary-data context.

      This is the exact local contradiction form needed in the muStrict = 0 branch: if the support-weighted affine sum is nonnegative on all of C, then 0 ∉ U is impossible.

      theorem helperForTheorem_21_2_all_shifted_primal_to_target_dual_via_closure_and_theorem20_2 {n k l : } (C : Set (Fin n)) (hC : Convex C) (fStrict : Fin k(Fin n)EReal) (hfStrict : ∀ (i : Fin k), ProperConvexFunctionOn Set.univ (fStrict i)) (hdomStrict : ∀ (i : Fin k), euclideanRelativeInterior_fin n C effectiveDomain Set.univ (fStrict i)) (fAffine : Fin l(Fin n)) (hAffine : ∀ (j : Fin l), ∃ (g : (Fin n) →ᵃ[] ), fAffine j = g) (hFeasRi : xeuclideanRelativeInterior_fin n C, ∀ (j : Fin l), fAffine j x 0) (hNotPrimal : ¬xC, (∀ (i : Fin k), fStrict i x < 0) ∀ (j : Fin l), fAffine j x 0) (hAllShiftedPrimal : ∀ (ε : ), 0 < εxC, (∀ (i : Fin k), fStrict i x < 0) ∀ (j : Fin l), fAffine j x < ε) :
      ∃ (lamStrict : Fin k) (lamAffine : Fin l), (∀ (i : Fin k), 0 lamStrict i) (∀ (j : Fin l), 0 lamAffine j) (∃ (i : Fin k), lamStrict i 0) xC, 0 i : Fin k, (lamStrict i) * fStrict i x + j : Fin l, (lamAffine j) * (fAffine j x)

      Helper for Theorem 21.2: if all positive shifts admit shifted-primal points but the target primal is false, closure/separation (Corollary 7.3.3 + Theorem 20.2 route) should produce a target dual certificate.

      theorem helperForTheorem_21_2_notPrimal_branch_dual_exists {n k l : } (C : Set (Fin n)) (hC : Convex C) (hklPos : 0 < k + l) (fStrict : Fin k(Fin n)EReal) (hfStrict : ∀ (i : Fin k), ProperConvexFunctionOn Set.univ (fStrict i)) (hdomStrict : ∀ (i : Fin k), euclideanRelativeInterior_fin n C effectiveDomain Set.univ (fStrict i)) (fAffine : Fin l(Fin n)) (hAffine : ∀ (j : Fin l), ∃ (g : (Fin n) →ᵃ[] ), fAffine j = g) (hFeasRi : xeuclideanRelativeInterior_fin n C, ∀ (j : Fin l), fAffine j x 0) (hNotPrimal : ¬xC, (∀ (i : Fin k), fStrict i x < 0) ∀ (j : Fin l), fAffine j x 0) :
      ∃ (lamStrict : Fin k) (lamAffine : Fin l), (∀ (i : Fin k), 0 lamStrict i) (∀ (j : Fin l), 0 lamAffine j) (∃ (i : Fin k), lamStrict i 0) xC, 0 i : Fin k, (lamStrict i) * fStrict i x + j : Fin l, (lamAffine j) * (fAffine j x)

      Helper for Theorem 21.2: in the branch ¬targetPrimal and 0 < k+l, either obtain one shifted dual witness and convert it, or use the all-shifted-primal closure route.

      theorem theorem21_mixed_convex_affine_alternative {n k l : } (C : Set (Fin n)) (hC : Convex C) (fStrict : Fin k(Fin n)EReal) (hfStrict : ∀ (i : Fin k), ProperConvexFunctionOn Set.univ (fStrict i)) (hdomStrict : ∀ (i : Fin k), euclideanRelativeInterior_fin n C effectiveDomain Set.univ (fStrict i)) (fAffine : Fin l(Fin n)) (hAffine : ∀ (j : Fin l), ∃ (g : (Fin n) →ᵃ[] ), fAffine j = g) (hFeasRi : xeuclideanRelativeInterior_fin n C, ∀ (j : Fin l), fAffine j x 0) :
      Xor' (∃ xC, (∀ (i : Fin k), fStrict i x < 0) ∀ (j : Fin l), fAffine j x 0) (∃ (lamStrict : Fin k) (lamAffine : Fin l), (∀ (i : Fin k), 0 lamStrict i) (∀ (j : Fin l), 0 lamAffine j) (∃ (i : Fin k), lamStrict i 0) xC, 0 i : Fin k, (lamStrict i) * fStrict i x + j : Fin l, (lamAffine j) * (fAffine j x))

      Theorem 21.2: Let C be convex, let f₁, ..., f_k be proper convex functions with dom fᵢ ⊇ ri C, and let f_{k+1}, ..., f_m be affine functions such that f_{k+1}(x) ≤ 0, ..., f_m(x) ≤ 0 has a solution in ri C. Then exactly one alternative holds: (a) there exists x ∈ C with f₁(x), ..., f_k(x) < 0 and f_{k+1}(x), ..., f_m(x) ≤ 0; or (b) there are nonnegative multipliers, with at least one multiplier in the first block nonzero, such that the weighted sum is nonnegative on all of C.

      Theorem 21.3 geometry shell #

      theorem helperForTheorem_21_3_nonpositiveSublevel_closed_convex {n : } (f : (Fin n)EReal) (hfProper : ProperConvexFunctionOn Set.univ f) (hfClosed : IsClosed {p : (Fin n) × | f p.1 p.2}) :
      IsClosed {x : Fin n | f x 0} Convex {x : Fin n | f x 0}

      Helper for Theorem 21.3: the nonpositive sublevel set of a closed proper convex function on ℝⁿ is closed and convex.

      theorem helperForTheorem_21_3_sublevel_closed_convex {n : } (f : (Fin n)EReal) (hfProper : ProperConvexFunctionOn Set.univ f) (hfClosed : IsClosed {p : (Fin n) × | f p.1 p.2}) (α : ) :
      IsClosed {x : Fin n | f x α} Convex {x : Fin n | f x α}

      Helper for Theorem 21.3: every real sublevel set of a closed proper convex function on ℝⁿ is closed and convex. This is the level-α version used in the shifted-shell route.

      theorem helperForTheorem_21_3_inter_nonpositiveSublevel_closed_convex {n : } {I : Type u_1} (C : Set (Fin n)) (hCclosed : IsClosed C) (hCconvex : Convex C) (f : I(Fin n)EReal) (hfProper : ∀ (i : I), ProperConvexFunctionOn Set.univ (f i)) (hfClosed : ∀ (i : I), IsClosed {p : (Fin n) × | f i p.1 p.2}) (i : I) :
      IsClosed (C {x : Fin n | f i x 0}) Convex (C {x : Fin n | f i x 0})

      Helper for Theorem 21.3: intersecting C with one nonpositive sublevel preserves closedness and convexity.

      Helper for Theorem 21.3: a proper convex function on univ can be viewed as a proper convex EReal-valued function in the Section 14 recession-function API.

      theorem helperForTheorem_21_3_lowerSemicontinuous_of_closedEpigraph {n : } (f : (Fin n)EReal) (hfClosed : IsClosed {p : (Fin n) × | f p.1 p.2}) :

      Helper for Theorem 21.3: closed epigraph implies lower semicontinuity.

      theorem helperForTheorem_21_3_exists_nonempty_real_sublevel {n : } (f : (Fin n)EReal) (hfProper : ProperConvexFunctionOn Set.univ f) :
      ∃ (α : ), {x : Fin n | f x α}.Nonempty

      Helper for Theorem 21.3: a proper convex function on univ has a nonempty real sublevel.

      theorem helperForTheorem_21_3_recessionConeEReal_eq_recessionCone_some_nonempty_sublevel {n : } (f : (Fin n)EReal) (hfProper : ProperConvexFunctionOn Set.univ f) (hfClosed : IsClosed {p : (Fin n) × | f p.1 p.2}) :
      ∃ (α : ), {x : Fin n | f x α}.Nonempty recessionConeEReal f = {x : Fin n | f x α}.recessionCone

      Helper for Theorem 21.3: for closed proper convex data, recessionConeEReal coincides with the recession cone of some nonempty real sublevel set.

      theorem helperForTheorem_21_3_recessionConeEReal_isClosed_fin {n : } (f : (Fin n)EReal) (hfProper : ProperConvexFunctionOn Set.univ f) (hfClosed : IsClosed {p : (Fin n) × | f p.1 p.2}) :

      Helper for Theorem 21.3: recessionConeEReal is closed in finite dimensions for closed proper convex data.

      theorem helperForTheorem_21_3_nonpositiveSublevel_ray_antitone {n : } (f : (Fin n)EReal) (hfProper : ProperConvexFunctionOn Set.univ f) (hfClosed : IsClosed {p : (Fin n) × | f p.1 p.2}) (hsub_nonempty : {x : Fin n | f x 0}.Nonempty) {d : Fin n} (hd : d {x : Fin n | f x 0}.recessionCone) (x : Fin n) (t : ) :
      0 tf (x + t d) f x

      Helper for Theorem 21.3: a recession direction of the nonpositive sublevel set of a closed proper convex function makes every ray nonincreasing.

      theorem helperForTheorem_21_3_sublevel_ray_antitone {n : } (f : (Fin n)EReal) (hfProper : ProperConvexFunctionOn Set.univ f) (hfClosed : IsClosed {p : (Fin n) × | f p.1 p.2}) (α : ) (hsub_nonempty : {x : Fin n | f x α}.Nonempty) {d : Fin n} (hd : d {x : Fin n | f x α}.recessionCone) (x : Fin n) (t : ) :
      0 tf (x + t d) f x

      Helper for Theorem 21.3: a recession direction of any nonempty real sublevel set of a closed proper convex function makes every ray nonincreasing. This is the shifted-level version needed for ε-shell arguments.

      theorem helperForTheorem_21_3_noCommonRecession_contradiction_of_common_nonpositiveSublevel {n : } {I : Type u_1} (C : Set (Fin n)) (f : I(Fin n)EReal) (hfProper : ∀ (i : I), ProperConvexFunctionOn Set.univ (f i)) (hfClosed : ∀ (i : I), IsClosed {p : (Fin n) × | f i p.1 p.2}) (hNoCommonRecession : ¬∃ (d : Fin n), d 0 d C.recessionCone ∀ (i : I) (x : Fin n) (t : ), 0 tf i (x + t d) f i x) {d : Fin n} (hd_ne : d 0) (hdC : d C.recessionCone) (hdSub : ∀ (i : I), d {x : Fin n | f i x 0}.recessionCone) (hsub_nonempty : ∀ (i : I), {x : Fin n | f i x 0}.Nonempty) :

      Helper for Theorem 21.3: any nonzero direction lying in the recession cone of C and in every nonpositive sublevel set would contradict the original no-common-recession hypothesis.

      theorem helperForTheorem_21_3_noCommonRecession_contradiction_of_common_sublevel {n : } {I : Type u_1} (C : Set (Fin n)) (f : I(Fin n)EReal) (hfProper : ∀ (i : I), ProperConvexFunctionOn Set.univ (f i)) (hfClosed : ∀ (i : I), IsClosed {p : (Fin n) × | f i p.1 p.2}) (hNoCommonRecession : ¬∃ (d : Fin n), d 0 d C.recessionCone ∀ (i : I) (x : Fin n) (t : ), 0 tf i (x + t d) f i x) (α : ) {d : Fin n} (hd_ne : d 0) (hdC : d C.recessionCone) (hdSub : ∀ (i : I), d {x : Fin n | f i x α}.recessionCone) (hsub_nonempty : ∀ (i : I), {x : Fin n | f i x α}.Nonempty) :

      Helper for Theorem 21.3: the no-common-recession contradiction is invariant under replacing the nonpositive sublevel sets {fᵢ ≤ 0} by any common real level sets {fᵢ ≤ α}.

      theorem helperForTheorem_21_3_primal_of_isEmpty {n : } {I : Type u_1} (C : Set (Fin n)) (hCnonempty : C.Nonempty) (f : I(Fin n)EReal) (hI : IsEmpty I) :
      xC, ∀ (i : I), f i x 0

      Helper for Theorem 21.3: if the index type is empty, primal feasibility is immediate from nonemptiness of C.

      theorem helperForTheorem_21_3_dual_impossible_of_isEmpty {n : } {I : Type u_1} (C : Set (Fin n)) (hCnonempty : C.Nonempty) (f : I(Fin n)EReal) (hI : IsEmpty I) :
      ¬∃ (lam : I →₀ ), (∀ (i : I), 0 lam i) ∃ (ε : ), 0 < ε xC, ε ilam.support, (lam i) * f i x

      Helper for Theorem 21.3: if the index type is empty, no dual certificate can exist, because every finitely-supported multiplier is zero and thus cannot dominate a positive ε.

      theorem helperForTheorem_21_3_primal_excludes_dual {n : } {I : Type u_1} (C : Set (Fin n)) (f : I(Fin n)EReal) (hPrimal : xC, ∀ (i : I), f i x 0) (hDual : ∃ (lam : I →₀ ), (∀ (i : I), 0 lam i) ∃ (ε : ), 0 < ε xC, ε ilam.support, (lam i) * f i x) :

      Helper for Theorem 21.3: a primal witness excludes every dual certificate.

      theorem helperForTheorem_21_3_finiteDual_margin_to_finsuppDual_margin {n : } {I : Type u_1} (C : Set (Fin n)) (f : I(Fin n)EReal) (hfinite : ∃ (m : ) (idx : Fin mI), Function.Injective idx ∃ (w : Fin m), (∀ (j : Fin m), 0 w j) ∃ (ε : ), 0 < ε xC, ε j : Fin m, (w j) * f (idx j) x) :
      ∃ (lam : I →₀ ), (∀ (i : I), 0 lam i) ∃ (ε : ), 0 < ε xC, ε ilam.support, (lam i) * f i x

      Helper for Theorem 21.3: package a finite-index margin certificate into the exact Finsupp dual-certificate shape used in the theorem statement.

      theorem helperForTheorem_21_3_finsuppDual_margin_to_finiteDual_margin {n : } {I : Type u_1} (C : Set (Fin n)) (f : I(Fin n)EReal) (hDual : ∃ (lam : I →₀ ), (∀ (i : I), 0 lam i) ∃ (ε : ), 0 < ε xC, ε ilam.support, (lam i) * f i x) :
      ∃ (m : ) (idx : Fin mI), Function.Injective idx ∃ (w : Fin m), (∀ (j : Fin m), 0 w j) ∃ (ε : ), 0 < ε xC, ε j : Fin m, (w j) * f (idx j) x

      Helper for Theorem 21.3: convert a Finsupp dual-margin certificate into a finite indexed certificate with injective indexing.

      theorem helperForTheorem_21_3_sparseFiniteDual_margin_to_supportBoundedFinsupp_margin {n : } {I : Type u_1} (C : Set (Fin n)) (f : I(Fin n)EReal) (hfiniteSparse : mn + 1, ∃ (idx : Fin mI), Function.Injective idx ∃ (w : Fin m), (∀ (j : Fin m), 0 w j) ∃ (ε : ), 0 < ε xC, ε j : Fin m, (w j) * f (idx j) x) :
      ∃ (lam : I →₀ ), (∀ (i : I), 0 lam i) lam.support.card n + 1 ∃ (ε : ), 0 < ε xC, ε ilam.support, (lam i) * f i x

      Helper for Theorem 21.3: package a sparse finite-index margin certificate into a support-bounded Finsupp certificate, preserving the cardinal bound ≤ n + 1.

      theorem helperForTheorem_21_3_finish_bridge_from_sparseFinsupp_margin {n : } {I : Type u_1} (C : Set (Fin n)) (f : I(Fin n)EReal) (hDualSparse : ∃ (lam : I →₀ ), (∀ (i : I), 0 lam i) lam.support.card n + 1 ∃ (ε : ), 0 < ε xC, ε ilam.support, (lam i) * f i x) :
      ∃ (lam : I →₀ ), (∀ (i : I), 0 lam i) lam.support.card n + 1 ∃ (ε : ), 0 < ε xC, ε ilam.support, (lam i) * f i x

      Helper for Theorem 21.3: once the sparse-support endpoint is available, it matches the exact bridge target shape without additional repackaging.

      theorem helperForTheorem_21_3_isClosed_finiteIntersection {n : } {I : Type u_1} (C : ISet (Fin n)) (t : Finset I) (hClosed : it, IsClosed (C i)) :
      IsClosed (⋂ it, C i)

      Helper for Theorem 21.3: finite intersections of closed sets remain closed.

      theorem helperForTheorem_21_3_convex_finiteIntersection {n : } {I : Type u_1} (C : ISet (Fin n)) (t : Finset I) (hConv : it, Convex (C i)) :
      Convex (⋂ it, C i)

      Helper for Theorem 21.3: finite intersections of convex sets remain convex.

      Helper for Theorem 21.3: in Fin n → ℝ, boundedness is equivalent to trivial recession cone for nonempty closed convex sets.

      Helper for Theorem 21.3: transport closedness of recession cones from Euclidean-space coordinates to the Fin n → ℝ model.

      theorem helperForTheorem_21_3_recessionCone_iInter_eq_iInter_fin {n : } {ι : Type u_1} (C : ιSet (Fin n)) (hCclosed : ∀ (i : ι), IsClosed (C i)) (hCconv : ∀ (i : ι), Convex (C i)) (hCne : (⋂ (i : ι), C i).Nonempty) :
      (⋂ (i : ι), C i).recessionCone = ⋂ (i : ι), (C i).recessionCone

      Helper for Theorem 21.3: transport recessionCone_iInter_eq_iInter from Euclidean-space coordinates to the Fin n → ℝ model.

      theorem helperForTheorem_21_3_recessionCone_inter_eq_fin {n : } {A B : Set (Fin n)} (hAclosed : IsClosed A) (hBclosed : IsClosed B) (hAconv : Convex A) (hBconv : Convex B) (hABne : (A B).Nonempty) :

      Helper for Theorem 21.3: recession cone of an intersection of two closed convex sets in Fin n → ℝ is the intersection of recession cones.

      theorem helperForTheorem_21_3_recessionFiniteInter_eq_finiteRecessionInter {n : } {I : Type u_1} (C : ISet (Fin n)) (t : Finset I) (hClosed : it, IsClosed (C i)) (hConv : it, Convex (C i)) (hNonemptyInter : (⋂ it, C i).Nonempty) :
      (⋂ it, C i).recessionCone = it, (C i).recessionCone

      Helper for Theorem 21.3: the recession cone of a finite nonempty intersection is the finite intersection of the recession cones.

      theorem helperForTheorem_21_3_finite_recession_subfamily_of_global_singleton {n : } {I : Type u_1} (C : ISet (Fin n)) (hClosed : ∀ (i : I), IsClosed (C i)) (hNoCommon : ⋂ (i : I), (C i).recessionCone = {0}) :
      ∃ (t : Finset I), it, (C i).recessionCone = {0}

      Helper for Theorem 21.3: compactness on the unit sphere yields a finite subfamily whose recession-cone intersection is already {0}.

      theorem helperForTheorem_21_3_exists_finite_restricted_noCommonRecession_subfamily_of_globalNoCommon {n : } {I : Type u_1} (C : Set (Fin n)) (hCclosed : IsClosed C) (f : I(Fin n)EReal) (hfProper : ∀ (i : I), ProperConvexFunctionOn Set.univ (f i)) (hfClosed : ∀ (i : I), IsClosed {p : (Fin n) × | f i p.1 p.2}) (hNoCommonRecession : ¬∃ (d : Fin n), d 0 d C.recessionCone ∀ (i : I) (x : Fin n) (t : ), 0 tf i (x + t d) f i x) :
      ∃ (u : Finset I), ¬∃ (d : Fin n), d 0 d C.recessionCone ∀ (i : u) (x : Fin n) (t : ), 0 tf (↑i) (x + t d) f (↑i) x

      Helper for Theorem 21.3: the global no-common-recession hypothesis already has a finite restricted subfamily witness. This separates the compactness-on-directions reduction from the later infeasibility/margin extraction.

      theorem helperForTheorem_21_3_exists_finite_infeasible_subfamily_of_notPrimal {n : } {I : Type u_1} (C : Set (Fin n)) (hCclosed : IsClosed C) (hCconvex : Convex C) (f : I(Fin n)EReal) (hfProper : ∀ (i : I), ProperConvexFunctionOn Set.univ (f i)) (hfClosed : ∀ (i : I), IsClosed {p : (Fin n) × | f i p.1 p.2}) (hNoCommonRecession : ¬∃ (d : Fin n), d 0 d C.recessionCone ∀ (i : I) (x : Fin n) (t : ), 0 tf i (x + t d) f i x) (hInonempty : ¬IsEmpty I) (hNotPrimal : ¬xC, ∀ (i : I), f i x 0) :
      ∃ (t : Finset I), ¬(⋂ it, C {x : Fin n | f i x 0}).Nonempty

      Helper for Theorem 21.3: if the global primal system is infeasible, some finite subsystem is already infeasible. This isolates the infinite-to-finite reduction from the remaining finite-family analytic core.

      theorem helperForTheorem_21_3_support_normal_of_upwardClosed_contains_zero_disjoint_negativeOrthant {m : } (U : Set (Fin m)) (hUconv : Convex U) (hzeroMemU : (fun (x : Fin m) => 0) U) (hUO_disjoint : Disjoint U {o : Fin m | ∀ (j : Fin m), o j < 0}) :
      ∃ (lam : Fin m), (∀ (j : Fin m), 0 lam j) lam 0 uU, 0 j : Fin m, lam j * u j

      Helper for Theorem 21.3: if an upward-closed convex set contains the origin and is disjoint from the strict negative orthant, then it admits a nonnegative nontrivial support normal at the origin.

      theorem helperForTheorem_21_3_restricted_noCommonRecession_of_finite_nonpositiveMembers_and_trivialRecession {n : } {I : Type u_1} (C : Set (Fin n)) (f : I(Fin n)EReal) (t : Finset I) (hRecZero : it, (C {x : Fin n | f i x 0}).recessionCone = {0}) :
      ¬∃ (d : Fin n), d 0 d C.recessionCone ∀ (i : t) (x : Fin n) (s : ), 0 sf (↑i) (x + s d) f (↑i) x

      Helper for Theorem 21.3: if the nonpositive sublevel members of a finite family are all nonempty and have trivial common recession cone, then that finite family already satisfies the restricted no-common-recession condition needed by the shifted-shell argument.

      theorem helperForTheorem_21_3_exists_positive_shift_infeasible_of_finite_notPrimal_and_noCommonRecession {n : } {I : Type u_1} (C : Set (Fin n)) (hCclosed : IsClosed C) (hCconvex : Convex C) (f : I(Fin n)EReal) (hfProper : ∀ (i : I), ProperConvexFunctionOn Set.univ (f i)) (hfClosed : ∀ (i : I), IsClosed {p : (Fin n) × | f i p.1 p.2}) (t : Finset I) (htNonempty : t.Nonempty) (hNoCommonRestricted : ¬∃ (d : Fin n), d 0 d C.recessionCone ∀ (i : t) (x : Fin n) (s : ), 0 sf (↑i) (x + s d) f (↑i) x) (htNotPrimal : ¬(⋂ it, C {x : Fin n | f i x 0}).Nonempty) :
      ∃ (ε : ), 0 < ε ¬(⋂ it, C {x : Fin n | f i x ε}).Nonempty

      Helper for Theorem 21.3: under the finite restricted no-common-recession package, failure of the zero-level finite primal system forces a positive common level ε whose shifted finite system is already infeasible.

      theorem helperForTheorem_21_3_exists_positive_shift_infeasible_of_finite_nonpositiveMembers_and_trivialRecession {n : } {I : Type u_1} (C : Set (Fin n)) (hCclosed : IsClosed C) (hCconvex : Convex C) (f : I(Fin n)EReal) (hfProper : ∀ (i : I), ProperConvexFunctionOn Set.univ (f i)) (hfClosed : ∀ (i : I), IsClosed {p : (Fin n) × | f i p.1 p.2}) (t : Finset I) (htNonempty : t.Nonempty) (hRecZero : it, (C {x : Fin n | f i x 0}).recessionCone = {0}) (htNotPrimal : ¬(⋂ it, C {x : Fin n | f i x 0}).Nonempty) :
      ∃ (ε : ), 0 < ε ¬(⋂ it, C {x : Fin n | f i x ε}).Nonempty

      Helper for Theorem 21.3: under the finite restricted no-common-recession package, failure of the zero-level finite primal system forces a positive common level ε whose shifted finite system is already infeasible.

      theorem helperForTheorem_21_3_convexity_of_finiteValueUpperHull {n m : } (C : Set (Fin n)) (hCconvex : Convex C) (g : Fin m(Fin n)EReal) (hgProper : ∀ (j : Fin m), ProperConvexFunctionOn Set.univ (g j)) :
      Convex {u : Fin m | xC, ∀ (j : Fin m), g j x (u j)}

      Helper for Theorem 21.3: the finite real upper hull of a finite family of proper convex functions over a convex set C is convex.

      theorem helperForTheorem_21_3_upperClosed_finiteValueUpperHull {n m : } (C : Set (Fin n)) (g : Fin m(Fin n)EReal) {u v : Fin m} (hu : u {u : Fin m | xC, ∀ (j : Fin m), g j x (u j)}) (huv : ∀ (j : Fin m), u j v j) :
      v {u : Fin m | xC, ∀ (j : Fin m), g j x (u j)}

      Helper for Theorem 21.3: the finite real upper hull is upward-closed under coordinatewise order.

      theorem helperForTheorem_21_3_zero_not_mem_finiteValueUpperHull_of_infeasible {n m : } (C : Set (Fin n)) (g : Fin m(Fin n)EReal) (hNotFeasible : ¬(⋂ (j : Fin m), C {x : Fin n | g j x 0}).Nonempty) :
      (fun (x : Fin m) => 0){u : Fin m | xC, ∀ (j : Fin m), g j x (u j)}

      Helper for Theorem 21.3: if the zero-level finite primal system is infeasible, then the origin is not contained in the corresponding finite real upper hull.

      theorem helperForTheorem_21_3_constant_vector_mem_finiteValueUpperHull {n m : } (C : Set (Fin n)) (g : Fin m(Fin n)EReal) (hm : 0 < m) (hAllShiftedFeasible : ∀ (ε : ), 0 < ε(⋂ (j : Fin m), C {x : Fin n | g j x ε}).Nonempty) (ε : ) :
      0 < ε(fun (x : Fin m) => ε) {u : Fin m | xC, ∀ (j : Fin m), g j x (u j)}

      Helper for Theorem 21.3: every positive common real shift that is feasible for a finite family yields the corresponding constant vector in the finite real upper hull.

      theorem helperForTheorem_21_3_zero_mem_closure_finiteValueUpperHull {n m : } (C : Set (Fin n)) (g : Fin m(Fin n)EReal) (hm : 0 < m) (hAllShiftedFeasible : ∀ (ε : ), 0 < ε(⋂ (j : Fin m), C {x : Fin n | g j x ε}).Nonempty) :
      (fun (x : Fin m) => 0) closure {u : Fin m | xC, ∀ (j : Fin m), g j x (u j)}

      Helper for Theorem 21.3: if every positive common shift is feasible for a finite family, then the origin lies in the closure of the associated finite real upper hull.

      theorem helperForTheorem_21_3_convexity_of_shiftedFiniteValueUpperHull {n m : } (C : Set (Fin n)) (hCconvex : Convex C) (g : Fin m(Fin n)EReal) (hgProper : ∀ (j : Fin m), ProperConvexFunctionOn Set.univ (g j)) (ε : ) :
      Convex {u : Fin m | xC, ∀ (j : Fin m), g j x ↑(u j + ε)}

      Helper for Theorem 21.3: the translated finite real upper hull at level ε is convex.

      theorem helperForTheorem_21_3_upperClosed_shiftedFiniteValueUpperHull {n m : } (C : Set (Fin n)) (g : Fin m(Fin n)EReal) (ε : ) {u v : Fin m} (hu : u {u : Fin m | xC, ∀ (j : Fin m), g j x ↑(u j + ε)}) (huv : ∀ (j : Fin m), u j v j) :
      v {u : Fin m | xC, ∀ (j : Fin m), g j x ↑(u j + ε)}

      Helper for Theorem 21.3: the translated finite real upper hull at level ε is upward-closed under coordinatewise order.

      theorem helperForTheorem_21_3_nonempty_shiftedFiniteValueUpperHull {n m : } (C : Set (Fin n)) (g : Fin m(Fin n)EReal) (ε : ) (hUpperHullNonempty : {u : Fin m | xC, ∀ (j : Fin m), g j x (u j)}.Nonempty) :
      {u : Fin m | xC, ∀ (j : Fin m), g j x ↑(u j + ε)}.Nonempty

      Helper for Theorem 21.3: a witness to the unshifted finite upper hull yields a witness to the translated upper hull at level ε.

      theorem helperForTheorem_21_3_zero_not_mem_shiftedFiniteValueUpperHull_of_shiftGap {n m : } (C : Set (Fin n)) (g : Fin m(Fin n)EReal) (ε : ) (hShiftGap : ¬(⋂ (j : Fin m), C {x : Fin n | g j x ε}).Nonempty) :
      (fun (x : Fin m) => 0){u : Fin m | xC, ∀ (j : Fin m), g j x ↑(u j + ε)}

      Helper for Theorem 21.3: infeasibility of the common shifted system means the origin does not belong to the translated finite upper hull.

      theorem helperForTheorem_21_3_positive_support_lower_bound_of_upperClosed_zero_not_mem_closure {m : } (U : Set (Fin m)) (hUconv : Convex U) (hUne : U.Nonempty) (hUupper : ∀ {u v : Fin m}, u U(∀ (j : Fin m), u j v j)v U) (hzeroNotMemClosureU : (fun (x : Fin m) => 0)closure U) :
      ∃ (lam : Fin m) (δ : ), (∀ (j : Fin m), 0 lam j) lam 0 0 < δ uU, δ u ⬝ᵥ lam

      Helper for Theorem 21.3: if an upper-closed convex set U is nonempty and its closure does not contain the origin, then a strictly positive nonnegative support functional exists on U.

      theorem helperForTheorem_21_3_sparseFiniteDual_margin_of_empty_finiteValueUpperHull {n m : } (C : Set (Fin n)) (hCconvex : Convex C) (g : Fin m(Fin n)EReal) (hgProper : ∀ (j : Fin m), ProperConvexFunctionOn Set.univ (g j)) (hm : 0 < m) (hUempty : {u : Fin m | xC, ∀ (j : Fin m), g j x (u j)} = ) :
      pn + 1, ∃ (idx : Fin pFin m), Function.Injective idx ∃ (w : Fin p), (∀ (j : Fin p), 0 w j) ∃ (ε : ), 0 < ε xC, ε j : Fin p, (w j) * g (idx j) x

      Helper for Theorem 21.3: if the finite real upper hull is empty, Helly yields a sparse subfamily whose every point in C forces some coordinate to be ; taking unit weights then gives an immediate positive-margin certificate.

      theorem helperForTheorem_21_3_sparseFiniteDual_margin_of_single_empty_shifted_sublevel {n p : } (C : Set (Fin n)) (g : Fin p(Fin n)EReal) (j0 : Fin p) (ε : ) ( : 0 < ε) (hEmpty : ¬(C {x : Fin n | g j0 x ε}).Nonempty) :
      mn + 1, ∃ (idx : Fin mFin p), Function.Injective idx ∃ (w : Fin m), (∀ (j : Fin m), 0 w j) ∃ (ε' : ), 0 < ε' xC, ε' j : Fin m, (w j) * g (idx j) x

      Helper for Theorem 21.3: if one shifted sublevel is already empty at level ε, a single-coordinate witness gives an immediate sparse positive-margin certificate.

      theorem helperForTheorem_21_3_exists_small_shifted_infeasible_subfamily_fin {n p : } (C : Set (Fin n)) (hCclosed : IsClosed C) (hCconvex : Convex C) (g : Fin p(Fin n)EReal) (hgProper : ∀ (j : Fin p), ProperConvexFunctionOn Set.univ (g j)) (hgClosed : ∀ (j : Fin p), IsClosed {q : (Fin n) × | g j q.1 q.2}) (ε : ) (hShiftGap : ¬(⋂ (j : Fin p), C {x : Fin n | g j x ε}).Nonempty) :
      mn + 1, ∃ (idx : Fin mFin p), Function.Injective idx ¬(⋂ (j : Fin m), C {x : Fin n | g (idx j) x ε}).Nonempty

      Helper for Theorem 21.3: after excluding the easy empty-sublevel and empty-upper-hull branches, Helly yields a shifted-infeasible finite subfamily of cardinal at most n + 1.

      theorem helperForTheorem_21_3_exists_small_zero_infeasible_subfamily_fin {n p : } (C : Set (Fin n)) (hCclosed : IsClosed C) (hCconvex : Convex C) (g : Fin p(Fin n)EReal) (hgProper : ∀ (j : Fin p), ProperConvexFunctionOn Set.univ (g j)) (hgClosed : ∀ (j : Fin p), IsClosed {q : (Fin n) × | g j q.1 q.2}) (hZeroGap : ¬(⋂ (j : Fin p), C {x : Fin n | g j x 0}).Nonempty) :
      mn + 1, ∃ (idx : Fin mFin p), Function.Injective idx ¬(⋂ (j : Fin m), C {x : Fin n | g (idx j) x 0}).Nonempty

      Helper for Theorem 21.3: Helly also yields a zero-level infeasible finite subfamily of cardinality at most n + 1. This is the correct reduction for the final finite analytic core, because a mere positive-shift gap is not enough by itself to force a positive dual margin.

      theorem helperForTheorem_21_3_erealWeightedSum_eq_coeRealWeightedSum_of_supportFinite {n p : } (g : Fin p(Fin n)EReal) (hgProper : ∀ (j : Fin p), ProperConvexFunctionOn Set.univ (g j)) (lam : Fin p) (x : Fin n) (hSupportFinite : ∀ (j : Fin p), lam j 0g j x ) :
      j : Fin p, (lam j) * g j x = (∑ j : Fin p, lam j * (g j x).toReal)

      Helper for Theorem 21.3: if every active coordinate of x is finite, the weighted EReal sum agrees with the coercion of the corresponding real sum of toReal values.

      theorem helperForTheorem_21_3_shiftedEReal_properConvex {n : } {g : (Fin n)EReal} (hg : ProperConvexFunctionOn Set.univ g) (ε : ) :
      ProperConvexFunctionOn Set.univ fun (x : Fin n) => g x - ε

      Helper for Theorem 21.3: subtracting a finite real constant preserves proper convexity.

      theorem helperForTheorem_21_3_positive_margin_of_shiftedLowerBound_and_supportExtension {n p : } (C : Set (Fin n)) (g : Fin p(Fin n)EReal) (hgProper : ∀ (j : Fin p), ProperConvexFunctionOn Set.univ (g j)) (ε : ) ( : 0 < ε) (lam : Fin p) (hlam_nonneg : ∀ (j : Fin p), 0 lam j) (hlam_ne_zero : lam 0) (α : ) (hα_nonneg : 0 α) (hLower : ∀ (u : Fin p), (∃ yC, ∀ (j : Fin p), g j y ↑(u j + ε))α u ⬝ᵥ lam) (hSupportExtend : xC, (∀ (j : Fin p), lam j 0g j x )∃ (u : Fin p), (∃ yC, ∀ (j : Fin p), g j y ↑(u j + ε)) ∀ (j : Fin p), lam j 0u j + ε = (g j x).toReal) :
      ∃ (ε' : ), 0 < ε' xC, ε' j : Fin p, (lam j) * g j x

      Helper for Theorem 21.3: once translated-upper-hull geometry yields a real lower bound, the remaining deterministic analytic step is to extend support-finite points of C to shifted upper-hull points with matching active coordinates.

      theorem helperForTheorem_21_3_positive_margin_of_shiftedLowerBound_and_fullSupport {n p : } (C : Set (Fin n)) (g : Fin p(Fin n)EReal) (hgProper : ∀ (j : Fin p), ProperConvexFunctionOn Set.univ (g j)) (hp : 0 < p) (ε : ) ( : 0 < ε) (lam : Fin p) (hlam_pos : ∀ (j : Fin p), 0 < lam j) (α : ) (hα_nonneg : 0 α) (hLower : ∀ (u : Fin p), (∃ yC, ∀ (j : Fin p), g j y ↑(u j + ε))α u ⬝ᵥ lam) :
      ∃ (ε' : ), 0 < ε' xC, ε' j : Fin p, (lam j) * g j x

      Helper for Theorem 21.3: if the translated finite upper hull admits a lower bound by a strictly positive weight vector on every coordinate, then no support-extension argument is needed. Points outside the common effective domain are automatically handled because some active coordinate contributes , while common-domain points can be plugged directly into the translated hull.

      theorem helperForTheorem_21_3_positive_coord_of_positive_shiftedLowerBound_of_almostNonpositive_point {n p : } (C : Set (Fin n)) (g : Fin p(Fin n)EReal) (ε : ) (lam : Fin p) (hlam_nonneg : ∀ (i : Fin p), 0 lam i) (δ : ) (hδ_pos : 0 < δ) (hLower : ∀ (u : Fin p), (∃ yC, ∀ (i : Fin p), g i y ↑(u i + ε))δ u ⬝ᵥ lam) (j : Fin p) (u : Fin p) (hu_mem : yC, ∀ (i : Fin p), g i y ↑(u i + ε)) (hu_nonpos : ∀ (i : Fin p), i ju i 0) :
      0 < lam j

      Helper for Theorem 21.3: in the strictly positive lower-bound branch, any actual translated-upper-hull point whose coordinates are nonpositive off j forces the j-th coefficient of the support vector to be strictly positive.

      theorem helperForTheorem_21_3_beta_eq_zero_of_zero_coord_and_almostNonpositive_point {n p : } (C : Set (Fin n)) (g : Fin p(Fin n)EReal) (ε : ) (lam : Fin p) (hlam_nonneg : ∀ (i : Fin p), 0 lam i) (β : ) (hβ_nonneg : 0 β) (hLower : ∀ (u : Fin p), (∃ yC, ∀ (i : Fin p), g i y ↑(u i + ε))β u ⬝ᵥ lam) (j : Fin p) (hj0 : lam j = 0) (u : Fin p) (hu_mem : yC, ∀ (i : Fin p), g i y ↑(u i + ε)) (hu_nonpos : ∀ (i : Fin p), i ju i 0) :
      β = 0

      Helper for Theorem 21.3: in the boundary (β ≥ 0) branch, an actual translated-upper-hull point which is nonpositive off j shows that any zero coefficient at j forces β = 0.

      def theorem21ShiftedExtendedUpperHull {n p : } (C : Set (Fin n)) (g : Fin p(Fin n)EReal) (ε : ) :
      Set (Fin pEReal)

      The extended translated upper hull used in the last Theorem 21.3 support-upgrade step. Unlike the real upper hull, this version also records witnesses with some coordinates equal to , which is exactly what the erase-feasible data naturally produces.

      Equations
        Instances For
          theorem helperForTheorem_21_3_singleTop_mem_shiftedExtendedUpperHull_of_eraseFeasible {n p : } (C : Set (Fin n)) (g : Fin p(Fin n)EReal) (ε : ) (hSublevelNonempty : ∀ (j : Fin p), (C {x : Fin n | g j x ε}).Nonempty) (hEraseFeasible : ∀ (j : Fin p), (⋂ (i : { i : Fin p // i j }), C {x : Fin n | g (↑i) x ε}).Nonempty) (j : Fin p) :
          have uTop := fun (i : Fin p) => if i = j then else 0; uTop theorem21ShiftedExtendedUpperHull C g ε uTop j = ∀ (i : Fin p), i juTop i = 0

          Helper for Theorem 21.3: erase-feasibility gives a canonical single-top point of the extended translated upper hull. All deleted coordinates are 0, while the retained coordinate is allowed to be . This is the precise extended-valued witness behind the remaining full-support upgrade gap.

          theorem helperForTheorem_21_3_erealWeightedSum_singleTop_eq_zero_of_zero_coord {p : } (lam : Fin p) (j : Fin p) (hj0 : lam j = 0) :
          (∑ i : Fin p, (lam i) * if i = j then else 0) = 0

          Helper for Theorem 21.3: the EReal weighted sum of the canonical single-top vector is 0 as soon as the corresponding coefficient vanishes.

          theorem helperForTheorem_21_3_nontrivial_shiftedLowerBound_data_of_shiftedUpperHull_geometry {n p : } (C : Set (Fin n)) (hCconvex : Convex C) (g : Fin p(Fin n)EReal) (hgProper : ∀ (j : Fin p), ProperConvexFunctionOn Set.univ (g j)) (ε : ) (hShiftGap : ¬(⋂ (j : Fin p), C {x : Fin n | g j x ε}).Nonempty) (hUpperHullNonempty : {u : Fin p | xC, ∀ (j : Fin p), g j x (u j)}.Nonempty) :
          ∃ (lam : Fin p), (∀ (j : Fin p), 0 lam j) lam 0 ((∃ (β : ), 0 β ∀ (u : Fin p), (∃ yC, ∀ (j : Fin p), g j y ↑(u j + ε))β u ⬝ᵥ lam) ∃ (δ : ), 0 < δ ∀ (u : Fin p), (∃ yC, ∀ (j : Fin p), g j y ↑(u j + ε))δ u ⬝ᵥ lam)

          Helper for Theorem 21.3: the genuine remaining finite minimal-core gap is to show that the translated-upper-hull separation data can be upgraded to a separator whose coefficients are strictly positive on every coordinate. Once this is available, the margin extraction is formal and no support-extension bridge is needed.

          theorem helperForTheorem_21_3_indicatorEpigraphClosed {n : } (C : Set (Fin n)) (hCclosed : IsClosed C) :
          IsClosed {p : (Fin n) × | indicatorFunction C p.1 p.2}

          Original-route bridge for Theorem 21.3: this is the genuine remaining second half of Rockafellar's proof. After adjoining the indicator of C, one should define h = conv {fᵢ^*} and its positively homogeneous hull k, prove from ¬primal plus no-common-recession that k(0) = (cl k)(0) = ⊥, hence h(0) < 0, and then feed the Carathéodory/conjugate argument already formalized below.

          theorem helperForTheorem_21_3_indicatorMonotoneAlong_d_implies_recessionMembership {n : } (C : Set (Fin n)) {d : Fin n} (hmono : ∀ (x : Fin n) (t : ), 0 tindicatorFunction C (x + t d) indicatorFunction C x) :

          The indicator monotonicity used in the C-augmentation route is exactly recession-cone membership in C.

          theorem helperForTheorem_21_3_originalRoute_univ_convexHullConjugate_zero_neg {n : } {I : Type u_1} (f : I(Fin n)EReal) (hfProper : ∀ (i : I), ProperConvexFunctionOn Set.univ (f i)) (hfClosed : ∀ (i : I), IsClosed {p : (Fin n) × | f i p.1 p.2}) (hNoCommonRecession : ¬∃ (d : Fin n), d 0 d Set.univ.recessionCone ∀ (i : I) (x : Fin n) (t : ), 0 tf i (x + t d) f i x) (hInonempty : ¬IsEmpty I) (hNotPrimal : ¬∃ (x : Fin n), ∀ (i : I), f i x 0) :
          convexHullFunctionFamily (fun (i : I) => fenchelConjugate n (f i)) 0 < 0

          Original-route helper for Theorem 21.3: in the C = R^n case, Rockafellar's h := conv {fᵢ^*} satisfies h(0) < 0 under ¬ primal and the no-common-recession hypothesis.

          theorem helperForTheorem_21_3_noninjectiveSparseDual_margin_on_univ_to_supportBoundedFinsupp_margin {n : } {I : Type u_1} (f : I(Fin n)EReal) (hfinite : mn + 1, ∃ (idx : Fin mI) (w : Fin m), (∀ (j : Fin m), 0 w j) ∃ (ε : ), 0 < ε ∀ (x : Fin n), ε j : Fin m, (w j) * f (idx j) x) :
          ∃ (lam : I →₀ ), (∀ (i : I), 0 lam i) lam.support.card n + 1 ∃ (ε : ), 0 < ε ∀ (x : Fin n), ε ilam.support, (lam i) * f i x

          Package a sparse nonnegative margin witness on R^n into the support-bounded Finsupp format, allowing a noninjective finite index map and aggregating duplicates fiberwise.

          theorem helperForTheorem_21_3_sparse_conjugate_origin_witness_of_convexHullConjugate_zero_neg {n : } {I : Type u_1} (f : I(Fin n)EReal) (hfProper : ∀ (i : I), ProperConvexFunctionOn Set.univ (f i)) (hHullZeroNeg : convexHullFunctionFamily (fun (i : I) => fenchelConjugate n (f i)) 0 < 0) :
          mn + 1, ∃ (idx : Fin mI) (xStar : Fin mFin n) (w : Fin m), IsConvexWeights m w (∀ (j : Fin m), w j 0) 0 = convexCombination n m xStar w AffineIndependent xStar j : Fin m, (w j) * fenchelConjugate n (f (idx j)) (xStar j) < 0

          Local pre-copy of the original-route Carathéodory step, placed before the univ-case bridge so the file can follow Rockafellar's proof order without depending on later declarations.

          theorem helperForTheorem_21_3_margin_on_univ_of_sparse_conjugate_origin_witness {n m : } {I : Type u_1} (f : I(Fin n)EReal) (hfProper : ∀ (i : I), ProperConvexFunctionOn Set.univ (f i)) (idx : Fin mI) (xStar : Fin mFin n) (w : Fin m) (hw : IsConvexWeights m w) (hwnz : ∀ (j : Fin m), w j 0) (hx0 : 0 = convexCombination n m xStar w) (hObjNeg : j : Fin m, (w j) * fenchelConjugate n (f (idx j)) (xStar j) < 0) :
          ∃ (ε : ), 0 < ε ∀ (x : Fin n), ε j : Fin m, (w j) * f (idx j) x

          Local pre-copy of the original-route margin extraction step, placed before the univ-case bridge so the theorem at 4307 can stay on the textbook route.

          theorem helperForTheorem_21_3_sparse_dual_margin_on_univ_of_convexHullConjugate_zero_neg {n : } {I : Type u_1} (f : I(Fin n)EReal) (hfProper : ∀ (i : I), ProperConvexFunctionOn Set.univ (f i)) (hHullZeroNeg : convexHullFunctionFamily (fun (i : I) => fenchelConjugate n (f i)) 0 < 0) :
          mn + 1, ∃ (idx : Fin mI) (w : Fin m), (∀ (j : Fin m), 0 w j) ∃ (ε : ), 0 < ε ∀ (x : Fin n), ε j : Fin m, (w j) * f (idx j) x

          Local pre-copy of the original-route sparse dual extraction, placed before the univ-case bridge so the bridge itself can use the textbook h(0) < 0 -> Carathéodory -> margin route.

          theorem helperForTheorem_21_3_originalRoute_univ_notPrimal_to_supportBoundedFinsupp_margin {n : } {I : Type u_1} (f : I(Fin n)EReal) (hfProper : ∀ (i : I), ProperConvexFunctionOn Set.univ (f i)) (hfClosed : ∀ (i : I), IsClosed {p : (Fin n) × | f i p.1 p.2}) (hNoCommonRecession : ¬∃ (d : Fin n), d 0 d Set.univ.recessionCone ∀ (i : I) (x : Fin n) (t : ), 0 tf i (x + t d) f i x) (hInonempty : ¬IsEmpty I) (hNotPrimal : ¬∃ (x : Fin n), ∀ (i : I), f i x 0) :
          ∃ (lam : I →₀ ), (∀ (i : I), 0 lam i) lam.support.card n + 1 ∃ (ε : ), 0 < ε ∀ (x : Fin n), ε ilam.support, (lam i) * f i x

          Original-route univ-case core for Theorem 21.3. This is the sole remaining second-half bridge after the indicatorFunction C augmentation has been factored out. It should follow the textbook route through

          h = conv {fᵢ^*}, the positively homogeneous hull k, Theorems 13.5 and 16.5, the proof that k(0) = (cl k)(0) = ⊥, and finally the sparse Carathéodory/conjugate machinery already proved below.

          theorem helperForTheorem_21_3_project_augmentedSupportBoundedFinsupp_margin {n : } {I : Type u_1} [DecidableEq I] (C : Set (Fin n)) (f : I(Fin n)EReal) (hAug : ∃ (lamAug : Option I →₀ ), (∀ (j : Option I), 0 lamAug j) lamAug.support.card n + 1 ∃ (ε : ), 0 < ε ∀ (x : Fin n), ε jlamAug.support, (lamAug j) * (match (motive := Option I(Fin n)EReal) j with | none => indicatorFunction C | some i => f i) x) :
          ∃ (lam : I →₀ ), (∀ (i : I), 0 lam i) lam.support.card n + 1 ∃ (ε : ), 0 < ε xC, ε ilam.support, (lam i) * f i x

          Project the sparse witness produced on the augmented index type Option I (none = indicatorFunction C) back to the original family indexed by I.

          theorem helperForTheorem_21_3_originalRoute_notPrimal_to_supportBoundedFinsupp_margin {n : } {I : Type u_1} (C : Set (Fin n)) (hCnonempty : C.Nonempty) (hCclosed : IsClosed C) (hCconvex : Convex C) (f : I(Fin n)EReal) (hfProper : ∀ (i : I), ProperConvexFunctionOn Set.univ (f i)) (hfClosed : ∀ (i : I), IsClosed {p : (Fin n) × | f i p.1 p.2}) (hNoCommonRecession : ¬∃ (d : Fin n), d 0 d C.recessionCone ∀ (i : I) (x : Fin n) (t : ), 0 tf i (x + t d) f i x) (_hInonempty : ¬IsEmpty I) (hNotPrimal : ¬xC, ∀ (i : I), f i x 0) :
          ∃ (lam : I →₀ ), (∀ (i : I), 0 lam i) lam.support.card n + 1 ∃ (ε : ), 0 < ε xC, ε ilam.support, (lam i) * f i x

          Original-route bridge for Theorem 21.3: this is the genuine remaining second half of Rockafellar's proof. After adjoining the indicator of C, one reduces to the C = R^n core above and then projects the sparse witness back from the augmented index type Option I.

          theorem helperForTheorem_21_3_notPrimal_to_finsuppDual_margin_with_supportBound_bridge {n : } {I : Type u_1} (C : Set (Fin n)) (hCnonempty : C.Nonempty) (hCclosed : IsClosed C) (hCconvex : Convex C) (f : I(Fin n)EReal) (hfProper : ∀ (i : I), ProperConvexFunctionOn Set.univ (f i)) (hfClosed : ∀ (i : I), IsClosed {p : (Fin n) × | f i p.1 p.2}) (hNoCommonRecession : ¬∃ (d : Fin n), d 0 d C.recessionCone ∀ (i : I) (x : Fin n) (t : ), 0 tf i (x + t d) f i x) (hInonempty : ¬IsEmpty I) (hNotPrimal : ¬xC, ∀ (i : I), f i x 0) :
          ∃ (lam : I →₀ ), (∀ (i : I), 0 lam i) lam.support.card n + 1 ∃ (ε : ), 0 < ε xC, ε ilam.support, (lam i) * f i x

          Helper for Theorem 21.3: bridge ¬primal plus no-common-recession assumptions to a support-bounded Finsupp dual-margin certificate. This now delegates to the original k / h / conjugate / Carathéodory route.

          theorem helperForTheorem_21_3_supportBoundedFinsupp_margin_forget_bound {n : } {I : Type u_1} (C : Set (Fin n)) (f : I(Fin n)EReal) (hDualSparse : ∃ (lam : I →₀ ), (∀ (i : I), 0 lam i) lam.support.card n + 1 ∃ (ε : ), 0 < ε xC, ε ilam.support, (lam i) * f i x) :
          ∃ (lam : I →₀ ), (∀ (i : I), 0 lam i) ∃ (ε : ), 0 < ε xC, ε ilam.support, (lam i) * f i x

          Helper for Theorem 21.3: forgetting the support-card bound of a sparse Finsupp dual-margin certificate yields the plain dual certificate used in alternative (b).

          theorem helperForTheorem_21_3_supportBoundedFinsupp_to_finiteDual_margin {n : } {I : Type u_1} (C : Set (Fin n)) (f : I(Fin n)EReal) (hDualSparse : ∃ (lam : I →₀ ), (∀ (i : I), 0 lam i) lam.support.card n + 1 ∃ (ε : ), 0 < ε xC, ε ilam.support, (lam i) * f i x) :
          mn + 1, ∃ (idx : Fin mI), Function.Injective idx ∃ (w : Fin m), (∀ (j : Fin m), 0 w j) ∃ (ε : ), 0 < ε xC, ε j : Fin m, (w j) * f (idx j) x

          Helper for Theorem 21.3: convert a support-bounded Finsupp margin certificate into a finite-index certificate with injective indexing and the same m ≤ n + 1 bound.

          theorem helperForTheorem_21_3_supportBoundedFinsupp_margin_to_finiteAndPlainDual {n : } {I : Type u_1} (C : Set (Fin n)) (f : I(Fin n)EReal) (hDualSparse : ∃ (lam : I →₀ ), (∀ (i : I), 0 lam i) lam.support.card n + 1 ∃ (ε : ), 0 < ε xC, ε ilam.support, (lam i) * f i x) :
          (∃ mn + 1, ∃ (idx : Fin mI), Function.Injective idx ∃ (w : Fin m), (∀ (j : Fin m), 0 w j) ∃ (ε : ), 0 < ε xC, ε j : Fin m, (w j) * f (idx j) x) ∃ (lam : I →₀ ), (∀ (i : I), 0 lam i) ∃ (ε : ), 0 < ε xC, ε ilam.support, (lam i) * f i x

          Helper for Theorem 21.3: one sparse Finsupp dual-margin witness can be projected to both downstream dual formats used later in this section (finite/injective and plain Finsupp).

          theorem helperForTheorem_21_3_notPrimal_to_finiteDual_margin {n : } {I : Type u_1} (C : Set (Fin n)) (hCnonempty : C.Nonempty) (hCclosed : IsClosed C) (hCconvex : Convex C) (f : I(Fin n)EReal) (hfProper : ∀ (i : I), ProperConvexFunctionOn Set.univ (f i)) (hfClosed : ∀ (i : I), IsClosed {p : (Fin n) × | f i p.1 p.2}) (hNoCommonRecession : ¬∃ (d : Fin n), d 0 d C.recessionCone ∀ (i : I) (x : Fin n) (t : ), 0 tf i (x + t d) f i x) (hInonempty : ¬IsEmpty I) (hNotPrimal : ¬xC, ∀ (i : I), f i x 0) :
          mn + 1, ∃ (idx : Fin mI), Function.Injective idx ∃ (w : Fin m), (∀ (j : Fin m), 0 w j) ∃ (ε : ), 0 < ε xC, ε j : Fin m, (w j) * f (idx j) x

          Helper for Theorem 21.3: extract a finite-index margin certificate from ¬primal.