Documentation

Books.ConvexAnalysis_Rockafellar_1970.Chapters.Chap02.section09_part10

theorem closedConvexFunction_precomp_linearMap {n m : } {g : (Fin m)EReal} (A : (Fin n) →ₗ[] Fin m) :
ClosedConvexFunction gClosedConvexFunction fun (x : Fin n) => g (A x)

Precomposition with a linear map preserves closedness of convex functions.

theorem effectiveDomain_precomp_linearMap {n m : } {g : (Fin m)EReal} (A : (Fin n) →ₗ[] Fin m) :
(effectiveDomain Set.univ fun (x : Fin n) => g (A x)) = A ⁻¹' effectiveDomain Set.univ g

Effective domain of a precomposition is a preimage.

theorem ri_effectiveDomain_preimage_linearMap {n m : } {g : (Fin m)EReal} (hgproper : ProperConvexFunctionOn Set.univ g) (A : (Fin n) →ₗ[] Fin m) (hri : ∃ (x : Fin n), (EuclideanSpace.equiv (Fin m) ).symm (A x) euclideanRelativeInterior m ((EuclideanSpace.equiv (Fin m) ).symm '' effectiveDomain Set.univ g)) :
have e_n := EuclideanSpace.equiv (Fin n) ; have e_m := EuclideanSpace.equiv (Fin m) ; have A_e := e_m.symm.toLinearEquiv ∘ₗ A ∘ₗ e_n.toLinearEquiv; euclideanRelativeInterior n (e_n.symm '' effectiveDomain Set.univ fun (x : Fin n) => g (A x)) = A_e ⁻¹' euclideanRelativeInterior m (e_m.symm '' effectiveDomain Set.univ g)

Relative interior of the effective domain under a linear preimage.

Relative interior of the effective domain in preimage form under a linear map.

Relative interior of the effective domain is preserved by convex closure.

theorem convexFunctionClosure_precomp_linearMap_eq {n m : } {g : (Fin m)EReal} (hgproper : ProperConvexFunctionOn Set.univ g) (A : (Fin n) →ₗ[] Fin m) (hri : ∃ (x : Fin n), (EuclideanSpace.equiv (Fin m) ).symm (A x) euclideanRelativeInterior m ((EuclideanSpace.equiv (Fin m) ).symm '' effectiveDomain Set.univ g)) :
(convexFunctionClosure fun (x : Fin n) => g (A x)) = fun (x : Fin n) => convexFunctionClosure g (A x)

Closure commutes with linear precomposition under a relative-interior preimage point.

theorem linearMap_comp_closed_recession_and_closure {n m : } {g g0_plus : (Fin m)EReal} (hgproper : ProperConvexFunctionOn Set.univ g) (A : (Fin n) →ₗ[] Fin m) (_hfinite : ∃ (x : Fin n), g (A x) ) :
have gA := fun (x : Fin n) => g (A x); have gA0_plus := fun (x : Fin n) => g0_plus (A x); (ClosedConvexFunction gClosedConvexFunction gA gA0_plus = fun (x : Fin n) => g0_plus (A x)) (¬ClosedConvexFunction g(∃ (x : Fin n), (EuclideanSpace.equiv (Fin m) ).symm (A x) euclideanRelativeInterior m ((EuclideanSpace.equiv (Fin m) ).symm '' effectiveDomain Set.univ g))convexFunctionClosure gA = fun (x : Fin n) => convexFunctionClosure g (A x))

Theorem 9.5. Let A be a linear transformation from ℝ^n to ℝ^m, and let g be a proper convex function on ℝ^m such that g ∘ A is not identically +∞. If g is closed, then g ∘ A is closed and (g ∘ A)0^+ = (g0^+) ∘ A. If g is not closed, but A x lies in ri (dom g) for some x, then cl (g ∘ A) = (cl g) ∘ A.

theorem tail_kernel_closure_cone_zero {n : } {C : Set (Fin n)} (hCne : C.Nonempty) (hCclosed : IsClosed C) (hCconv : Convex C) (hC0 : 0C) :
have e := EuclideanSpace.equiv (Fin n) ; have C' := e.symm '' C; have coords := (EuclideanSpace.equiv (Fin (1 + n)) ); have first := fun (v : EuclideanSpace (Fin (1 + n))) => coords v 0; have tail := fun (v : EuclideanSpace (Fin (1 + n))) => (EuclideanSpace.equiv (Fin n) ).symm fun (i : Fin n) => coords v (Fin.natAdd 1 i); have S := {v : EuclideanSpace (Fin (1 + n)) | first v = 1 tail v C'}; have K := (ConvexCone.hull S); vclosure K, tail v = 0v = 0

In the lifted cone, a closure point with zero tail must be the origin.

theorem closure_tail_image_cone_eq_union_recession {n : } {C : Set (Fin n)} (hCne : C.Nonempty) (hCclosed : IsClosed C) (hCconv : Convex C) (hC0 : 0C) :
have e := EuclideanSpace.equiv (Fin n) ; have C' := e.symm '' C; have coords := (EuclideanSpace.equiv (Fin (1 + n)) ); have first := fun (v : EuclideanSpace (Fin (1 + n))) => coords v 0; have tail := fun (v : EuclideanSpace (Fin (1 + n))) => (EuclideanSpace.equiv (Fin n) ).symm fun (i : Fin n) => coords v (Fin.natAdd 1 i); have S := {v : EuclideanSpace (Fin (1 + n)) | first v = 1 tail v C'}; have K := (ConvexCone.hull S); have A := LinearMap.snd (EuclideanSpace (Fin 1)) (EuclideanSpace (Fin n)) ∘ₗ (appendAffineEquiv 1 n).symm.linear; closure (A '' K) = A '' K C'.recessionCone

The tail image of the lifted cone closes by adjoining recession directions.

theorem convexConeGenerated_union_recession_eq_iUnion_pos {n : } {C : Set (Fin n)} (hCconv : Convex C) {recC : Set (Fin n)} (hrec0 : 0 recC) :
have K := convexConeGenerated n C; K recC = (⋃ (t : ), ⋃ (_ : 0 < t), t C) recC

The generated cone equals positive scalings, up to union with a set containing 0.

theorem closure_convexConeGenerated_eq_union_recessionCone {n : } {C : Set (Fin n)} (hCne : C.Nonempty) (hCclosed : IsClosed C) (hCconv : Convex C) (hC0 : 0C) :
have e := EuclideanSpace.equiv (Fin n) ; have C' := e.symm '' C; have recC := e '' C'.recessionCone; have K := convexConeGenerated n C; closure K = K recC K recC = (⋃ (t : ), ⋃ (_ : 0 < t), t C) recC

Theorem 9.6. Let C be a non-empty closed convex set not containing the origin, and let K be the convex cone generated by C. Then closure K = K ∪ 0^+ C, and this set equals ⋃ { λ C | λ > 0 or λ = 0^+ }.

theorem recCone_eq_singleton_zero_of_bounded_image {n : } {C : Set (Fin n)} (hCne : C.Nonempty) (hCclosed : IsClosed C) (hCconv : Convex C) (hCbdd : Bornology.IsBounded C) :
have e := EuclideanSpace.equiv (Fin n) ; have C' := e.symm '' C; C'.recessionCone = {0}

Boundedness forces the recession cone of the Euclidean image to be {0}.

theorem closed_convexConeGenerated_of_bounded {n : } {C : Set (Fin n)} (hCne : C.Nonempty) (hCclosed : IsClosed C) (hCbdd : Bornology.IsBounded C) (hCconv : Convex C) (hC0 : 0C) :

Corollary 9.6.1. If C is a non-empty closed bounded convex set not containing the origin, then the convex cone K generated by C is closed.

theorem lineSet_eq_first_coord :
{x : Fin 2 | ∃ (t : ), x = ![1, 0] + t ![0, 1]} = {x : Fin 2 | x 0 = 1}

The vertical line through ![1, 0] is the set of points with first coordinate 1.

theorem closed_lineSet :
IsClosed {x : Fin 2 | ∃ (t : ), x = ![1, 0] + t ![0, 1]}

The vertical line {(1, t)} is closed.

theorem convex_lineSet :
Convex {x : Fin 2 | ∃ (t : ), x = ![1, 0] + t ![0, 1]}

The vertical line {(1, t)} is convex.

theorem cone_line_pos_first {x : Fin 2} (hx : x convexConeGenerated 2 {x : Fin 2 | ∃ (t : ), x = ![1, 0] + t ![0, 1]}) (hx0 : x 0) :
0 < x 0

Nonzero points in the cone over the vertical line have positive first coordinate.

theorem pos_first_mem_cone_line {x : Fin 2} (hx : 0 < x 0) :
x convexConeGenerated 2 {x : Fin 2 | ∃ (t : ), x = ![1, 0] + t ![0, 1]}

Points with positive first coordinate lie in the cone over the vertical line.

theorem closure_cone_line_has_point :
![0, 1] closure (convexConeGenerated 2 {x : Fin 2 | ∃ (t : ), x = ![1, 0] + t ![0, 1]})

The point (0, 1) lies in the closure of the cone over the vertical line.