Documentation

Books.ConvexAnalysis_Rockafellar_1970.Chapters.Chap04.section20_part2

theorem helperForCorollary_20_0_3_attainment_target_eq_zero_of_empty_index {n : } (f : Fin 0(Fin n)EReal) {xStar : Fin n} (hAtt : ∃ (xStarFamily : Fin 0Fin n), i : Fin 0, xStarFamily i = xStar infimalConvolutionFamily (fun (i : Fin 0) => fenchelConjugate n (f i)) xStar = i : Fin 0, fenchelConjugate n (f i) (xStarFamily i)) :
xStar = 0

Helper for Corollary 20.0.3: with an empty index family, any split-sum attainment witness for the conjugate infimal convolution forces the target vector to be zero.

theorem helperForCorollary_20_0_3_exists_attainmentWitness_iff_target_eq_zero_of_empty_index {n : } (f : Fin 0(Fin n)EReal) (xStar : Fin n) :
(∃ (xStarFamily : Fin 0Fin n), i : Fin 0, xStarFamily i = xStar infimalConvolutionFamily (fun (i : Fin 0) => fenchelConjugate n (f i)) xStar = i : Fin 0, fenchelConjugate n (f i) (xStarFamily i)) xStar = 0

Helper for Corollary 20.0.3: for an empty index family, the split-attainment condition is equivalent to the target covector being zero.

theorem helperForCorollary_20_0_3_exists_attainmentWitness_iff_false_of_empty_index_of_ne_zero {n : } (f : Fin 0(Fin n)EReal) (xStar : Fin n) (hxStar : xStar 0) :
(∃ (xStarFamily : Fin 0Fin n), i : Fin 0, xStarFamily i = xStar infimalConvolutionFamily (fun (i : Fin 0) => fenchelConjugate n (f i)) xStar = i : Fin 0, fenchelConjugate n (f i) (xStarFamily i)) False

Helper for Corollary 20.0.3: with an empty index family, a nonzero target covector makes attainment-witness existence equivalent to False.

theorem helperForCorollary_20_0_3_no_split_sum_decomposition_of_empty_index_of_ne_zero {n : } {xStar : Fin n} (hxStar : xStar 0) :
¬∃ (xStarFamily : Fin 0Fin n), i : Fin 0, xStarFamily i = xStar

Helper for Corollary 20.0.3: with an empty index family, a nonzero target cannot admit any split-sum decomposition.

theorem helperForCorollary_20_0_3_no_attainment_witness_of_empty_index_of_ne_zero {n : } (f : Fin 0(Fin n)EReal) {xStar : Fin n} (hxStar : xStar 0) :
¬∃ (xStarFamily : Fin 0Fin n), i : Fin 0, xStarFamily i = xStar infimalConvolutionFamily (fun (i : Fin 0) => fenchelConjugate n (f i)) xStar = i : Fin 0, fenchelConjugate n (f i) (xStarFamily i)

Helper for Corollary 20.0.3: with an empty index family, a nonzero target cannot admit an attainment witness for the conjugate infimal convolution split.

theorem helperForCorollary_20_0_3_universalAttainment_impossible_of_empty_index_of_exists_ne_zero {n : } (f : Fin 0(Fin n)EReal) (hne : ∃ (xStar : Fin n), xStar 0) :
¬∀ (xStar : Fin n), ∃ (xStarFamily : Fin 0Fin n), i : Fin 0, xStarFamily i = xStar infimalConvolutionFamily (fun (i : Fin 0) => fenchelConjugate n (f i)) xStar = i : Fin 0, fenchelConjugate n (f i) (xStarFamily i)

Helper for Corollary 20.0.3: if an empty-index model has at least one nonzero covector, then the universal attainment claim is impossible.

Helper for Corollary 20.0.3: in dimension one, the constant-one covector is nonzero.

theorem helperForCorollary_20_0_3_constOneCovector_ne_zero_of_dim_ne_zero {n : } (hnZero : n 0) :
(fun (x : Fin n) => 1) 0

Helper for Corollary 20.0.3: in any nonzero dimension, the constant-one covector is nonzero.

theorem helperForCorollary_20_0_3_exists_nonzero_covector_of_dim_ne_zero {n : } (hnZero : n 0) :
∃ (xStar : Fin n), xStar 0

Helper for Corollary 20.0.3: in nonzero dimension there exists a nonzero covector.

theorem helperForCorollary_20_0_3_universal_splitSum_impossible_of_empty_index_of_dim_ne_zero {n : } (hnZero : n 0) :
¬∀ (xStar : Fin n), ∃ (xStarFamily : Fin 0Fin n), i : Fin 0, xStarFamily i = xStar

Helper for Corollary 20.0.3: with an empty index family and nonzero dimension, one cannot decompose every covector as a Fin 0-indexed split sum.

theorem helperForCorollary_20_0_3_no_attainment_witness_for_constOne_of_empty_index_of_dim_ne_zero {n : } (f : Fin 0(Fin n)EReal) (hnZero : n 0) :
¬∃ (xStarFamily : Fin 0Fin n), (i : Fin 0, xStarFamily i = fun (x : Fin n) => 1) (infimalConvolutionFamily (fun (i : Fin 0) => fenchelConjugate n (f i)) fun (x : Fin n) => 1) = i : Fin 0, fenchelConjugate n (f i) (xStarFamily i)

Helper for Corollary 20.0.3: with an empty index family and nonzero dimension, the constant-one covector admits no attainment witness for the conjugate split.

theorem helperForCorollary_20_0_3_exists_counterexample_no_attainment_of_empty_index_of_dim_ne_zero {n : } (f : Fin 0(Fin n)EReal) (hnZero : n 0) :
∃ (xStar : Fin n), ¬∃ (xStarFamily : Fin 0Fin n), i : Fin 0, xStarFamily i = xStar infimalConvolutionFamily (fun (i : Fin 0) => fenchelConjugate n (f i)) xStar = i : Fin 0, fenchelConjugate n (f i) (xStarFamily i)

Helper for Corollary 20.0.3: with an empty index family and nonzero dimension, the constant-one covector is an explicit target with no attainment witness.

theorem helperForCorollary_20_0_3_universalAttainment_impossible_of_empty_index_of_dim_ne_zero {n : } (f : Fin 0(Fin n)EReal) (hnZero : n 0) :
¬∀ (xStar : Fin n), ∃ (xStarFamily : Fin 0Fin n), i : Fin 0, xStarFamily i = xStar infimalConvolutionFamily (fun (i : Fin 0) => fenchelConjugate n (f i)) xStar = i : Fin 0, fenchelConjugate n (f i) (xStarFamily i)

Helper for Corollary 20.0.3: with an empty index family and nonzero dimension, the universal attainment claim is impossible.

theorem helperForCorollary_20_0_3_dim_eq_zero_of_empty_index_of_universalAttainment {n : } (f : Fin 0(Fin n)EReal) (hAll : ∀ (xStar : Fin n), ∃ (xStarFamily : Fin 0Fin n), i : Fin 0, xStarFamily i = xStar infimalConvolutionFamily (fun (i : Fin 0) => fenchelConjugate n (f i)) xStar = i : Fin 0, fenchelConjugate n (f i) (xStarFamily i)) :
n = 0

Helper for Corollary 20.0.3: in the empty-index case, if universal attainment holds, then the ambient dimension must be zero.

theorem helperForCorollary_20_0_3_universalAttainment_impossible_of_empty_index (f : Fin 0(Fin 1)EReal) :
¬∀ (xStar : Fin 1), ∃ (xStarFamily : Fin 0Fin 1), i : Fin 0, xStarFamily i = xStar infimalConvolutionFamily (fun (i : Fin 0) => fenchelConjugate 1 (f i)) xStar = i : Fin 0, fenchelConjugate 1 (f i) (xStarFamily i)

Helper for Corollary 20.0.3: with an empty index family, universal attainment fails already for the one-dimensional constant-one target covector.

Helper for Corollary 20.0.3: in zero dimension, every covector is zero.

theorem helperForCorollary_20_0_3_universalAttainment_iff_dim_zero_of_empty_index {n : } (f : Fin 0(Fin n)EReal) :
(∀ (xStar : Fin n), ∃ (xStarFamily : Fin 0Fin n), i : Fin 0, xStarFamily i = xStar infimalConvolutionFamily (fun (i : Fin 0) => fenchelConjugate n (f i)) xStar = i : Fin 0, fenchelConjugate n (f i) (xStarFamily i)) n = 0

Helper for Corollary 20.0.3: with an empty index family, universal attainment is equivalent to the ambient dimension being zero.

theorem helperForCorollary_20_0_3_refinement_and_universalAttainment_impossible_of_empty_index_of_dim_ne_zero {n : } (f : Fin 0(Fin n)EReal) (hnZero : n 0) :
¬(((fenchelConjugate n fun (x : Fin n) => i : Fin 0, f i x) = infimalConvolutionFamily fun (i : Fin 0) => fenchelConjugate n (f i)) ∀ (xStar : Fin n), ∃ (xStarFamily : Fin 0Fin n), i : Fin 0, xStarFamily i = xStar infimalConvolutionFamily (fun (i : Fin 0) => fenchelConjugate n (f i)) xStar = i : Fin 0, fenchelConjugate n (f i) (xStarFamily i))

Helper for Corollary 20.0.3: with an empty index family and nonzero dimension, the full refinement-plus-universal-attainment conclusion is impossible.

theorem helperForCorollary_20_0_3_exists_hypotheses_without_universalAttainment :
∃ (f : Fin 0(Fin 1)EReal), (∀ (i : Fin 0), IsPolyhedralConvexFunction 1 (f i)) (∀ (i : Fin 0), ProperConvexFunctionOn Set.univ (f i)) (⋂ (i : Fin 0), effectiveDomain Set.univ (f i)).Nonempty ¬∀ (xStar : Fin 1), ∃ (xStarFamily : Fin 0Fin 1), i : Fin 0, xStarFamily i = xStar infimalConvolutionFamily (fun (i : Fin 0) => fenchelConjugate 1 (f i)) xStar = i : Fin 0, fenchelConjugate 1 (f i) (xStarFamily i)

Helper for Corollary 20.0.3: there is explicit empty-index data satisfying all hypotheses while universal attainment fails in dimension one.

theorem helperForCorollary_20_0_3_not_imp_universalAttainment_in_empty_index_dim_one :
¬∀ (f : Fin 0(Fin 1)EReal), (∀ (i : Fin 0), IsPolyhedralConvexFunction 1 (f i))(∀ (i : Fin 0), ProperConvexFunctionOn Set.univ (f i))(⋂ (i : Fin 0), effectiveDomain Set.univ (f i)).Nonempty∀ (xStar : Fin 1), ∃ (xStarFamily : Fin 0Fin 1), i : Fin 0, xStarFamily i = xStar infimalConvolutionFamily (fun (i : Fin 0) => fenchelConjugate 1 (f i)) xStar = i : Fin 0, fenchelConjugate 1 (f i) (xStarFamily i)

Helper for Corollary 20.0.3: in the concrete branch m = 0, n = 1, the standard hypotheses do not imply universal split-attainment.

theorem helperForCorollary_20_0_3_not_imp_full_refinement_and_universalAttainment_in_empty_index_dim_one :
¬∀ (f : Fin 0(Fin 1)EReal), (∀ (i : Fin 0), IsPolyhedralConvexFunction 1 (f i))(∀ (i : Fin 0), ProperConvexFunctionOn Set.univ (f i))(⋂ (i : Fin 0), effectiveDomain Set.univ (f i)).Nonempty → ((fenchelConjugate 1 fun (x : Fin 1) => i : Fin 0, f i x) = infimalConvolutionFamily fun (i : Fin 0) => fenchelConjugate 1 (f i)) ∀ (xStar : Fin 1), ∃ (xStarFamily : Fin 0Fin 1), i : Fin 0, xStarFamily i = xStar infimalConvolutionFamily (fun (i : Fin 0) => fenchelConjugate 1 (f i)) xStar = i : Fin 0, fenchelConjugate 1 (f i) (xStarFamily i)

Helper for Corollary 20.0.3: in the concrete branch m = 0, n = 1, the full refinement-plus-universal-attainment conclusion cannot follow from the standard hypotheses.

theorem helperForCorollary_20_0_3_not_forall_dimensions_refinement_and_universalAttainment :
¬∀ (n m : ) (f : Fin m(Fin n)EReal), (∀ (i : Fin m), IsPolyhedralConvexFunction n (f i))(∀ (i : Fin m), ProperConvexFunctionOn Set.univ (f i))(⋂ (i : Fin m), effectiveDomain Set.univ (f i)).Nonempty → ((fenchelConjugate n fun (x : Fin n) => i : Fin m, f i x) = infimalConvolutionFamily fun (i : Fin m) => fenchelConjugate n (f i)) ∀ (xStar : Fin n), ∃ (xStarFamily : Fin mFin n), i : Fin m, xStarFamily i = xStar infimalConvolutionFamily (fun (i : Fin m) => fenchelConjugate n (f i)) xStar = i : Fin m, fenchelConjugate n (f i) (xStarFamily i)

Helper for Corollary 20.0.3: the hypotheses do not imply the full refinement-plus-universal-attainment conclusion in all dimensions/index sizes. The branch n = 1, m = 0 gives a concrete obstruction.

theorem helperForCorollary_20_0_3_no_split_sum_for_unitCovector_of_empty_index :
¬∃ (xStarFamily : Fin 0Fin 1), i : Fin 0, xStarFamily i = fun (x : Fin 1) => 1

Helper for Corollary 20.0.3: in the branch m = 0, n = 1, the constant-one target covector cannot be represented as a Fin 0-indexed split sum.

theorem helperForCorollary_20_0_3_universalAttainment_impossible_under_hypotheses_of_empty_index_of_dim_ne_zero {n : } (f : Fin 0(Fin n)EReal) (hnZero : n 0) (_hpoly : ∀ (i : Fin 0), IsPolyhedralConvexFunction n (f i)) (_hproper : ∀ (i : Fin 0), ProperConvexFunctionOn Set.univ (f i)) (_hdom : (⋂ (i : Fin 0), effectiveDomain Set.univ (f i)).Nonempty) :
¬∀ (xStar : Fin n), ∃ (xStarFamily : Fin 0Fin n), i : Fin 0, xStarFamily i = xStar infimalConvolutionFamily (fun (i : Fin 0) => fenchelConjugate n (f i)) xStar = i : Fin 0, fenchelConjugate n (f i) (xStarFamily i)

Helper for Corollary 20.0.3: in the branch m = 0 and n ≠ 0, the standard polyhedral/proper/domain hypotheses still do not imply universal split-attainment.

theorem helperForCorollary_20_0_3_refinement_and_universalAttainment_impossible_under_hypotheses_of_empty_index_of_dim_ne_zero {n : } (f : Fin 0(Fin n)EReal) (hnZero : n 0) (_hpoly : ∀ (i : Fin 0), IsPolyhedralConvexFunction n (f i)) (_hproper : ∀ (i : Fin 0), ProperConvexFunctionOn Set.univ (f i)) (_hdom : (⋂ (i : Fin 0), effectiveDomain Set.univ (f i)).Nonempty) :
¬(((fenchelConjugate n fun (x : Fin n) => i : Fin 0, f i x) = infimalConvolutionFamily fun (i : Fin 0) => fenchelConjugate n (f i)) ∀ (xStar : Fin n), ∃ (xStarFamily : Fin 0Fin n), i : Fin 0, xStarFamily i = xStar infimalConvolutionFamily (fun (i : Fin 0) => fenchelConjugate n (f i)) xStar = i : Fin 0, fenchelConjugate n (f i) (xStarFamily i))

Helper for Corollary 20.0.3: in the branch m = 0 and n ≠ 0, the full refinement-plus-universal-attainment conclusion is incompatible even under the standard polyhedral/proper/domain hypotheses.

theorem helperForCorollary_20_0_3_attainment_for_each_xStar_of_pos_m {n m : } (f : Fin m(Fin n)EReal) (hpoly : ∀ (i : Fin m), IsPolyhedralConvexFunction n (f i)) (hproper : ∀ (i : Fin m), ProperConvexFunctionOn Set.univ (f i)) (hdom : (⋂ (i : Fin m), effectiveDomain Set.univ (f i)).Nonempty) (hmPos : 0 < m) (xStar : Fin n) :
∃ (xStarFamily : Fin mFin n), i : Fin m, xStarFamily i = xStar infimalConvolutionFamily (fun (i : Fin m) => fenchelConjugate n (f i)) xStar = i : Fin m, fenchelConjugate n (f i) (xStarFamily i)

Helper for Corollary 20.0.3: when 0 < m, each covector admits an attaining split for the infimal convolution of conjugates.

theorem helperForCorollary_20_0_3_refinement_and_attainment_of_pos_m {n m : } (f : Fin m(Fin n)EReal) (hpoly : ∀ (i : Fin m), IsPolyhedralConvexFunction n (f i)) (hproper : ∀ (i : Fin m), ProperConvexFunctionOn Set.univ (f i)) (hdom : (⋂ (i : Fin m), effectiveDomain Set.univ (f i)).Nonempty) (hmPos : 0 < m) :
((fenchelConjugate n fun (x : Fin n) => i : Fin m, f i x) = infimalConvolutionFamily fun (i : Fin m) => fenchelConjugate n (f i)) ∀ (xStar : Fin n), ∃ (xStarFamily : Fin mFin n), i : Fin m, xStarFamily i = xStar infimalConvolutionFamily (fun (i : Fin m) => fenchelConjugate n (f i)) xStar = i : Fin m, fenchelConjugate n (f i) (xStarFamily i)

Helper for Corollary 20.0.3: if the index family is nonempty (0 < m), then the polyhedral sum-conjugate identity and universal attainment conclusion both hold.

theorem polyhedral_refinement_fenchelConjugate_sum_eq_infimalConvolutionFamily_and_attainment {n m : } (f : Fin m(Fin n)EReal) (hpoly : ∀ (i : Fin m), IsPolyhedralConvexFunction n (f i)) (hproper : ∀ (i : Fin m), ProperConvexFunctionOn Set.univ (f i)) (hdom : (⋂ (i : Fin m), effectiveDomain Set.univ (f i)).Nonempty) (hmPos : 0 < m) :
((fenchelConjugate n fun (x : Fin n) => i : Fin m, f i x) = infimalConvolutionFamily fun (i : Fin m) => fenchelConjugate n (f i)) ∀ (xStar : Fin n), ∃ (xStarFamily : Fin mFin n), i : Fin m, xStarFamily i = xStar infimalConvolutionFamily (fun (i : Fin m) => fenchelConjugate n (f i)) xStar = i : Fin m, fenchelConjugate n (f i) (xStarFamily i)

Corollary 20.0.3: In the polyhedral case, Theorem 20.0.1 yields the sum-conjugate/infimal-convolution identity without closure, under the simpler condition dom f₁ ∩ ⋯ ∩ dom fₘ ≠ ∅, and the infimum in the infimal convolution is attained.

theorem helperForTheorem_20_0_4_convexFunctionClosure_eq_self_of_mem_Ipoly {n m : } (f : Fin m(Fin n)EReal) (Ipoly : Set (Fin m)) (hpoly : ∀ (i : Fin m), i Ipoly IsPolyhedralConvexFunction n (f i)) (hproper : ∀ (i : Fin m), ProperConvexFunctionOn Set.univ (f i)) (i : Fin m) (hi : i Ipoly) :

Helper for Theorem 20.0.4: every summand indexed by Ipoly is closed proper polyhedral, hence equal to its convex-function closure.

theorem helperForTheorem_20_0_4_extract_witness_mixed_dom_ri {n m : } (f : Fin m(Fin n)EReal) (Ipoly : Set (Fin m)) (hdom_ri : ((⋂ (i : { i : Fin m // i Ipoly }), (fun (x : EuclideanSpace (Fin n)) => x.ofLp) ⁻¹' effectiveDomain Set.univ (f i)) ⋂ (i : { i : Fin m // iIpoly }), euclideanRelativeInterior n ((fun (x : EuclideanSpace (Fin n)) => x.ofLp) ⁻¹' effectiveDomain Set.univ (f i))).Nonempty) :
∃ (x0 : EuclideanSpace (Fin n)), (∀ iIpoly, x0 (fun (x : EuclideanSpace (Fin n)) => x.ofLp) ⁻¹' effectiveDomain Set.univ (f i)) iIpoly, x0 euclideanRelativeInterior n ((fun (x : EuclideanSpace (Fin n)) => x.ofLp) ⁻¹' effectiveDomain Set.univ (f i))

Helper for Theorem 20.0.4: unpack a witness from the mixed dom/ri-intersection assumption into pointwise membership facts.

theorem helperForTheorem_20_0_4_sum_split_filter_poly_nonpoly {α : Type u_1} [AddCommMonoid α] {m : } (Ipoly : Set (Fin m)) [DecidablePred fun (i : Fin m) => i Ipoly] (g : Fin mα) :
i : Fin m, g i = i : Fin m with i Ipoly, g i + i : Fin m with iIpoly, g i

Helper for Theorem 20.0.4: mixed dom/ri qualification should identify the sum-of-closures with the closure of the sum.

theorem helperForTheorem_20_0_4_splitSums_poly_nonpoly_blocks {n m : } (f : Fin m(Fin n)EReal) (Ipoly : Set (Fin m)) [DecidablePred fun (i : Fin m) => i Ipoly] (hpoly : ∀ (i : Fin m), i Ipoly IsPolyhedralConvexFunction n (f i)) (hproper : ∀ (i : Fin m), ProperConvexFunctionOn Set.univ (f i)) :
((fun (x : Fin n) => i : Fin m, convexFunctionClosure (f i) x) = fun (x : Fin n) => i : Fin m with i Ipoly, f i x + i : Fin m with iIpoly, convexFunctionClosure (f i) x) (fun (x : Fin n) => i : Fin m, f i x) = fun (x : Fin n) => i : Fin m with i Ipoly, f i x + i : Fin m with iIpoly, f i x

Helper for Theorem 20.0.4: rewrite both full sums into Ipoly and Ipolyᶜ filter blocks, and remove closures on the polyhedral block.

theorem helperForTheorem_20_0_4_nonpoly_hri_nonempty_iInter {n m : } (f : Fin m(Fin n)EReal) (Ipoly : Set (Fin m)) (hdom_ri : ((⋂ (i : { i : Fin m // i Ipoly }), (fun (x : EuclideanSpace (Fin n)) => x.ofLp) ⁻¹' effectiveDomain Set.univ (f i)) ⋂ (i : { i : Fin m // iIpoly }), euclideanRelativeInterior n ((fun (x : EuclideanSpace (Fin n)) => x.ofLp) ⁻¹' effectiveDomain Set.univ (f i))).Nonempty) :
(⋂ (i : { i : Fin m // iIpoly }), euclideanRelativeInterior n ((fun (x : EuclideanSpace (Fin n)) => x.ofLp) ⁻¹' effectiveDomain Set.univ (f i))).Nonempty

Helper for Theorem 20.0.4: the mixed hypothesis yields nonempty intersection of relative interiors on the nonpolyhedral block.

theorem helperForTheorem_20_0_4_nonpoly_common_effectiveDomain_point {n m : } (f : Fin m(Fin n)EReal) (Ipoly : Set (Fin m)) (hdom_ri : ((⋂ (i : { i : Fin m // i Ipoly }), (fun (x : EuclideanSpace (Fin n)) => x.ofLp) ⁻¹' effectiveDomain Set.univ (f i)) ⋂ (i : { i : Fin m // iIpoly }), euclideanRelativeInterior n ((fun (x : EuclideanSpace (Fin n)) => x.ofLp) ⁻¹' effectiveDomain Set.univ (f i))).Nonempty) :
(⋂ (i : { i : Fin m // iIpoly }), effectiveDomain Set.univ (f i)).Nonempty

Helper for Theorem 20.0.4: the mixed qualification provides a common effective-domain point for all nonpolyhedral indices.

theorem helperForTheorem_20_0_4_nonpoly_filter_block_proper {n m : } (f : Fin m(Fin n)EReal) (Ipoly : Set (Fin m)) [DecidablePred fun (i : Fin m) => i Ipoly] (hproper : ∀ (i : Fin m), ProperConvexFunctionOn Set.univ (f i)) (hdom_ri : ((⋂ (i : { i : Fin m // i Ipoly }), (fun (x : EuclideanSpace (Fin n)) => x.ofLp) ⁻¹' effectiveDomain Set.univ (f i)) ⋂ (i : { i : Fin m // iIpoly }), euclideanRelativeInterior n ((fun (x : EuclideanSpace (Fin n)) => x.ofLp) ⁻¹' effectiveDomain Set.univ (f i))).Nonempty) :
ProperConvexFunctionOn Set.univ fun (x : Fin n) => i : Fin m with iIpoly, f i x

Helper for Theorem 20.0.4: the filtered nonpolyhedral block is proper, using the common effective-domain point extracted from the mixed qualification.

theorem helperForTheorem_20_0_4_nonpoly_filter_block_sumClosure_eq_closure_sum {n m : } (f : Fin m(Fin n)EReal) (Ipoly : Set (Fin m)) [DecidablePred fun (i : Fin m) => i Ipoly] (hproper : ∀ (i : Fin m), ProperConvexFunctionOn Set.univ (f i)) (hdom_ri : ((⋂ (i : { i : Fin m // i Ipoly }), (fun (x : EuclideanSpace (Fin n)) => x.ofLp) ⁻¹' effectiveDomain Set.univ (f i)) ⋂ (i : { i : Fin m // iIpoly }), euclideanRelativeInterior n ((fun (x : EuclideanSpace (Fin n)) => x.ofLp) ⁻¹' effectiveDomain Set.univ (f i))).Nonempty) :
(fun (x : Fin n) => i : Fin m with iIpoly, convexFunctionClosure (f i) x) = convexFunctionClosure fun (x : Fin n) => i : Fin m with iIpoly, f i x

Helper for Theorem 20.0.4: the nonpolyhedral filtered block satisfies the Section 16 closure-of-sum identity under the extracted ri qualification.

theorem helperForTheorem_20_0_4_poly_filter_block_proper_and_dom_witness {n m : } (f : Fin m(Fin n)EReal) (Ipoly : Set (Fin m)) [DecidablePred fun (i : Fin m) => i Ipoly] (hproper : ∀ (i : Fin m), ProperConvexFunctionOn Set.univ (f i)) (hdom_ri : ((⋂ (i : { i : Fin m // i Ipoly }), (fun (x : EuclideanSpace (Fin n)) => x.ofLp) ⁻¹' effectiveDomain Set.univ (f i)) ⋂ (i : { i : Fin m // iIpoly }), euclideanRelativeInterior n ((fun (x : EuclideanSpace (Fin n)) => x.ofLp) ⁻¹' effectiveDomain Set.univ (f i))).Nonempty) :
(ProperConvexFunctionOn Set.univ fun (x : Fin n) => i : Fin m with i Ipoly, f i x) ∃ (x0 : Fin n), x0 effectiveDomain Set.univ fun (x : Fin n) => i : Fin m with i Ipoly, f i x

Helper for Theorem 20.0.4: the polyhedral filtered block is proper and has a domain witness extracted from the mixed qualification point.

theorem helperForTheorem_20_0_4_exists_dom_poly_and_ri_nonpoly_filtered_sum_witness {n m : } (f : Fin m(Fin n)EReal) (Ipoly : Set (Fin m)) [DecidablePred fun (i : Fin m) => i Ipoly] (hproper : ∀ (i : Fin m), ProperConvexFunctionOn Set.univ (f i)) (hdom_ri : ((⋂ (i : { i : Fin m // i Ipoly }), (fun (x : EuclideanSpace (Fin n)) => x.ofLp) ⁻¹' effectiveDomain Set.univ (f i)) ⋂ (i : { i : Fin m // iIpoly }), euclideanRelativeInterior n ((fun (x : EuclideanSpace (Fin n)) => x.ofLp) ⁻¹' effectiveDomain Set.univ (f i))).Nonempty) :
x0effectiveDomain Set.univ fun (x : Fin n) => i : Fin m with i Ipoly, f i x, (EuclideanSpace.equiv (Fin n) ).symm x0 euclideanRelativeInterior n ((fun (a : Fin n) => WithLp.toLp 2 a) '' effectiveDomain Set.univ fun (x : Fin n) => i : Fin m with iIpoly, f i x)

Helper for Theorem 20.0.4: the mixed qualification yields a single witness that lies in the polyhedral filtered-block effective domain and in the relative interior of the nonpolyhedral filtered-block effective domain.

theorem helperForTheorem_20_0_4_mixedQualification_sumClosure_bridge_filtered_of_Ipoly_empty {n m : } (f : Fin m(Fin n)EReal) (Ipoly : Set (Fin m)) [DecidablePred fun (i : Fin m) => i Ipoly] (hproper : ∀ (i : Fin m), ProperConvexFunctionOn Set.univ (f i)) (hdom_ri : ((⋂ (i : { i : Fin m // i Ipoly }), (fun (x : EuclideanSpace (Fin n)) => x.ofLp) ⁻¹' effectiveDomain Set.univ (f i)) ⋂ (i : { i : Fin m // iIpoly }), euclideanRelativeInterior n ((fun (x : EuclideanSpace (Fin n)) => x.ofLp) ⁻¹' effectiveDomain Set.univ (f i))).Nonempty) (hIpolyEmpty : Ipoly = ) :
(fun (x : Fin n) => i : Fin m with i Ipoly, f i x + i : Fin m with iIpoly, convexFunctionClosure (f i) x) = convexFunctionClosure fun (x : Fin n) => i : Fin m with i Ipoly, f i x + i : Fin m with iIpoly, f i x

Helper for Theorem 20.0.4: reduced mixed bridge after splitting into poly/nonpoly filter blocks.

theorem helperForTheorem_20_0_4_mixedQualification_sumClosure_bridge_filtered {n m : } (f : Fin m(Fin n)EReal) (Ipoly : Set (Fin m)) [DecidablePred fun (i : Fin m) => i Ipoly] (hpoly : ∀ (i : Fin m), i Ipoly IsPolyhedralConvexFunction n (f i)) (hproper : ∀ (i : Fin m), ProperConvexFunctionOn Set.univ (f i)) (hdom_ri : ((⋂ (i : { i : Fin m // i Ipoly }), (fun (x : EuclideanSpace (Fin n)) => x.ofLp) ⁻¹' effectiveDomain Set.univ (f i)) ⋂ (i : { i : Fin m // iIpoly }), euclideanRelativeInterior n ((fun (x : EuclideanSpace (Fin n)) => x.ofLp) ⁻¹' effectiveDomain Set.univ (f i))).Nonempty) :
(fun (x : Fin n) => i : Fin m with i Ipoly, f i x + i : Fin m with iIpoly, convexFunctionClosure (f i) x) = convexFunctionClosure fun (x : Fin n) => i : Fin m with i Ipoly, f i x + i : Fin m with iIpoly, f i x

Helper for Theorem 20.0.4: reduced mixed bridge after splitting into poly/nonpoly filter blocks.

theorem helperForTheorem_20_0_4_sum_convexFunctionClosure_eq_convexFunctionClosure_sum_mixed {n m : } (f : Fin m(Fin n)EReal) (Ipoly : Set (Fin m)) (hpoly : ∀ (i : Fin m), i Ipoly IsPolyhedralConvexFunction n (f i)) (hproper : ∀ (i : Fin m), ProperConvexFunctionOn Set.univ (f i)) (hdom_ri : ((⋂ (i : { i : Fin m // i Ipoly }), (fun (x : EuclideanSpace (Fin n)) => x.ofLp) ⁻¹' effectiveDomain Set.univ (f i)) ⋂ (i : { i : Fin m // iIpoly }), euclideanRelativeInterior n ((fun (x : EuclideanSpace (Fin n)) => x.ofLp) ⁻¹' effectiveDomain Set.univ (f i))).Nonempty) :
(fun (x : Fin n) => i : Fin m, convexFunctionClosure (f i) x) = convexFunctionClosure fun (x : Fin n) => i : Fin m, f i x
theorem fenchelConjugate_sum_eq_convexFunctionClosure_infimalConvolutionFamily_of_nonempty_iInter_dom_poly_iInter_ri_nonpoly {n m : } (f : Fin m(Fin n)EReal) (Ipoly : Set (Fin m)) (hpoly : ∀ (i : Fin m), i Ipoly IsPolyhedralConvexFunction n (f i)) (hproper : ∀ (i : Fin m), ProperConvexFunctionOn Set.univ (f i)) (hdom_ri : ((⋂ (i : { i : Fin m // i Ipoly }), (fun (x : EuclideanSpace (Fin n)) => x.ofLp) ⁻¹' effectiveDomain Set.univ (f i)) ⋂ (i : { i : Fin m // iIpoly }), euclideanRelativeInterior n ((fun (x : EuclideanSpace (Fin n)) => x.ofLp) ⁻¹' effectiveDomain Set.univ (f i))).Nonempty) :
(fenchelConjugate n fun (x : Fin n) => i : Fin m, f i x) = convexFunctionClosure (infimalConvolutionFamily fun (i : Fin m) => fenchelConjugate n (f i))

Theorem 20.0.4: Let f₁, …, fₘ be proper convex functions on ℝⁿ, let I_poly be the set of indices for which fᵢ is polyhedral, and let I_gen = I_polyᶜ. If

(⋂_{i ∈ I_poly} dom fᵢ) ∩ (⋂_{i ∈ I_gen} ri (dom fᵢ)) ≠ ∅,

then

(f₁ + ⋯ + fₘ)^* = cl (f₁^* □ ⋯ □ fₘ^*).

Here dom fᵢ is effectiveDomain univ (f i), ri is euclideanRelativeInterior, ^* is fenchelConjugate, is infimalConvolutionFamily, and cl is convexFunctionClosure.

theorem fenchelConjugate_sum_eq_infimalConvolutionFamily_of_first_polyhedral_and_nonempty_iInter_dom_iInter_ri {n m k : } (hk : k m) (f : Fin m(Fin n)EReal) (hpoly : ∀ (i : Fin m), i < kIsPolyhedralConvexFunction n (f i)) (hproper : ∀ (i : Fin m), ProperConvexFunctionOn Set.univ (f i)) (hdom_ri : ((⋂ (i : { i : Fin m // i < k }), (fun (x : EuclideanSpace (Fin n)) => x.ofLp) ⁻¹' effectiveDomain Set.univ (f i)) ⋂ (i : { i : Fin m // k i }), euclideanRelativeInterior n ((fun (x : EuclideanSpace (Fin n)) => x.ofLp) ⁻¹' effectiveDomain Set.univ (f i))).Nonempty) (hmPos : 0 < m) :
((fenchelConjugate n fun (x : Fin n) => i : Fin m, f i x) = infimalConvolutionFamily fun (i : Fin m) => fenchelConjugate n (f i)) ∀ (xStar : Fin n), ∃ (xStarFamily : Fin mFin n), i : Fin m, xStarFamily i = xStar infimalConvolutionFamily (fun (i : Fin m) => fenchelConjugate n (f i)) xStar = i : Fin m, fenchelConjugate n (f i) (xStarFamily i)

Theorem 20.1: Let f₁, …, fₘ be proper convex functions on ℝⁿ such that f₁, …, f_k are polyhedral. Assume

dom f₁ ∩ ⋯ ∩ dom f_k ∩ ri (dom f_{k+1}) ∩ ⋯ ∩ ri (dom fₘ) ≠ ∅.

Also assume 0 < m.

Then (f₁ + ⋯ + fₘ)^* = f₁^* □ ⋯ □ fₘ^*, and for each x⋆ the infimum in the infimal-convolution formula is attained by a decomposition x⋆ = x⋆₁ + ⋯ + x⋆ₘ.

theorem infimalConvolutionFamily_closed_proper_convex_and_attained_of_first_polyhedral_of_nonempty_iInter_dom_fenchelConjugate_iInter_ri {n m k : } (hk : k m) (f : Fin m(Fin n)EReal) (hclosed : ∀ (i : Fin m), ClosedConvexFunction (f i)) (hproper : ∀ (i : Fin m), ProperConvexFunctionOn Set.univ (f i)) (hpoly : ∀ (i : Fin m), i < kIsPolyhedralConvexFunction n (f i)) (hdomStar_ri : ((⋂ (i : { i : Fin m // i < k }), (fun (x : EuclideanSpace (Fin n)) => x.ofLp) ⁻¹' effectiveDomain Set.univ (fenchelConjugate n (f i))) ⋂ (i : { i : Fin m // k i }), euclideanRelativeInterior n ((fun (x : EuclideanSpace (Fin n)) => x.ofLp) ⁻¹' effectiveDomain Set.univ (fenchelConjugate n (f i)))).Nonempty) (hmPos : 0 < m) :
ClosedConvexFunction (infimalConvolutionFamily f) ProperConvexFunctionOn Set.univ (infimalConvolutionFamily f) ∀ (x : Fin n), ∃ (xFamily : Fin mFin n), i : Fin m, xFamily i = x infimalConvolutionFamily f x = i : Fin m, f i (xFamily i)

Corollary 20.1.1: Let f₁, …, fₘ be closed proper convex functions on ℝⁿ such that f₁, …, f_k are polyhedral. If

dom f₁^* ∩ ⋯ ∩ dom f_k^* ∩ ri (dom f_{k+1}^*) ∩ ⋯ ∩ ri (dom fₘ^*) ≠ ∅,

and 0 < m,

then f₁ □ ⋯ □ fₘ is closed proper convex, and for every x the infimum in the definition of f₁ □ ⋯ □ fₘ at x is attained.

theorem exists_hyperplaneSeparatesProperly_not_contains_right_iff_inter_intrinsicInterior_eq_empty_of_left_polyhedral {n : } (C₁ C₂ : Set (Fin n)) (hC₁ne : C₁.Nonempty) (hC₂ne : C₂.Nonempty) (hC₁conv : Convex C₁) (hC₂conv : Convex C₂) (hC₁poly : IsPolyhedralConvexSet n C₁) :
(∃ (H : Set (Fin n)), HyperplaneSeparatesProperly n H C₁ C₂ ¬C₂ H) C₁ intrinsicInterior C₂ =

Theorem 20.2: Let C₁ and C₂ be non-empty convex sets in ℝ^n, with C₁ polyhedral. There exists a hyperplane that separates C₁ and C₂ properly and does not contain C₂ if and only if C₁ ∩ ri C₂ = ∅ (with ri formalized as intrinsicInterior).

theorem nonempty_inter_intrinsicInterior_iff_forall_deltaStar_le_neg_deltaStar_neg_imp_eq_of_left_polyhedral {n : } (C₁ C₂ : Set (Fin n)) (hC₁ne : C₁.Nonempty) (hC₂ne : C₂.Nonempty) (hC₁conv : Convex C₁) (hC₂conv : Convex C₂) (hC₁poly : IsPolyhedralConvexSet n C₁) :
(C₁ intrinsicInterior C₂).Nonempty ∀ (xStar : Fin n), deltaStar C₁ xStar -deltaStar C₂ (-xStar)deltaStar C₁ xStar = deltaStar C₂ xStar

Corollary 20.2.1: Let C₁ and C₂ be non-empty convex sets in ℝ^n with C₁ polyhedral. Then C₁ ∩ ri C₂ is nonempty if and only if every x⋆ satisfying δ*(x⋆ | C₁) ≤ -δ*(-x⋆ | C₂) also satisfies δ*(x⋆ | C₁) = δ*(x⋆ | C₂) (formalized with ri = intrinsicInterior and δ* = deltaStar).

theorem isClosed_add_of_nonempty_convex_left_polyhedral_right_closed_of_opposite_recession_imp_right_recession {n : } (C₁ C₂ : Set (Fin n)) (hC₁ne : C₁.Nonempty) (hC₂ne : C₂.Nonempty) (hC₁conv : Convex C₁) (hC₂conv : Convex C₂) (hC₁poly : IsPolyhedralConvexSet n C₁) (hC₂closed : IsClosed C₂) (hlinear : zC₁.recessionCone, -z C₂.recessionConez C₂.recessionCone) :
IsClosed (C₁ + C₂)

Theorem 20.3: Let C₁ and C₂ be non-empty convex sets in ℝ^n, with C₁ polyhedral and C₂ closed. If every recession direction z of C₁ such that -z is a recession direction of C₂ is also a recession direction of C₂ (so C₂ is linear in that direction), then C₁ + C₂ is closed.

theorem exists_hyperplaneSeparatesStrongly_of_nonempty_convex_left_polyhedral_right_closed_of_inter_eq_empty_of_common_recession_imp_right_linear {n : } (C₁ C₂ : Set (Fin n)) (hC₁ne : C₁.Nonempty) (hC₂ne : C₂.Nonempty) (hC₁conv : Convex C₁) (hC₂conv : Convex C₂) (hC₁poly : IsPolyhedralConvexSet n C₁) (hC₂closed : IsClosed C₂) (hdisj : C₁ C₂ = ) (hcommon : zC₁.recessionCone, z C₂.recessionCone-z C₂.recessionCone) :
∃ (H : Set (Fin n)), HyperplaneSeparatesStrongly n H C₁ C₂

Corollary 20.3.1: Let C₁ and C₂ be non-empty convex sets in ℝ^n such that C₁ is polyhedral, C₂ is closed, and C₁ ∩ C₂ = ∅. Suppose C₁ and C₂ have no common recession directions except those in which C₂ is linear (formalized as: if z is a recession direction of both sets, then -z is also a recession direction of C₂). Then there exists a hyperplane separating C₁ and C₂ strongly.

theorem exists_polyhedralConvexSet_between_closed_bounded_convex_and_interior_convex_superset {n : } (C D : Set (Fin n)) (hCne : C.Nonempty) (hCclosed : IsClosed C) (hCbounded : Bornology.IsBounded C) (hCconv : Convex C) (hDconv : Convex D) (hCsubset : C interior D) :
∃ (P : Set (Fin n)), IsPolyhedralConvexSet n P P interior D C interior P

Theorem 20.4: Let C be a nonempty closed bounded convex set, and let D be a convex set with C ⊆ interior D. Then there exists a polyhedral convex set P such that P ⊆ interior D and C ⊆ interior P.

Theorem 20.5: Every polyhedral convex set is locally simplicial. In particular, every polytope is locally simplicial.