Documentation

Books.ConvexAnalysis_Rockafellar_1970.Chapters.Chap01.section05_part4

theorem infimumRepresentation_posHomogeneousHull {n : } {h : (Fin n)EReal} (hh : ConvexFunctionOn Set.univ h) (hfinite : ∃ (x : Fin n), h x ) :
have f := positivelyHomogeneousConvexFunctionGenerated h; (∀ (x : Fin n), f x = sInf {z : EReal | ∃ (lam : ), 0 lam z = rightScalarMultiple h lam x}) ∀ (x : Fin n), x 0 h 0 < f x = sInf {z : EReal | ∃ (lam : ), 0 < lam z = rightScalarMultiple h lam x}

Text 5.4.9 (Infimum representation of the positively homogeneous hull): Assume h is not identically +∞ and let f be the positively homogeneous convex function generated by h. Then f x = inf { (h λ)(x) | λ ≥ 0 } for all x. Moreover, λ = 0 may be omitted from the infimum if x ≠ 0 or if h(0) < +∞.

theorem convexFunctionOn_perspective_h {n : } {f : (Fin n)EReal} (hf : ConvexFunctionOn Set.univ f) :
ConvexFunctionOn Set.univ fun (y : Fin (n + 1)) => if y 0 = 1 then f fun (i : Fin n) => y i.succ else

The perspective kernel is convex when f is convex.

theorem first_coord_inv_smul_eq_one {n : } {lam : } (hlam : 0 < lam) (y : Fin (n + 1)) :
(lam⁻¹ y) 0 = 1 y 0 = lam

For positive lam, the first coordinate of lam⁻¹ • y equals 1 iff y 0 = lam.

theorem rightScalarMultiple_perspective_h_pos {n : } {f : (Fin n)EReal} (hf : ConvexFunctionOn Set.univ f) {lam : } (hlam : 0 < lam) (y : Fin (n + 1)) :
rightScalarMultiple (fun (y : Fin (n + 1)) => if y 0 = 1 then f fun (i : Fin n) => y i.succ else ) lam y = if y 0 = lam then lam * f (lam⁻¹ fun (i : Fin n) => y i.succ) else

Positive right scalar multiples of the perspective kernel simplify.

theorem ereal_mul_ne_bot_of_pos' {t : } (ht : 0 < t) {x : EReal} (hx : x ) :
t * x

A positive scalar multiple of a non-⊥ EReal is non-⊥.

theorem nonempty_epigraph_perspective_h {n : } {f : (Fin n)EReal} (hf : ProperConvexFunctionOn Set.univ f) :
(epigraph Set.univ fun (y : Fin (n + 1)) => if y 0 = 1 then f fun (i : Fin n) => y i.succ else ).Nonempty

The perspective kernel has a nonempty epigraph when f is proper.

theorem perspective_posHomogeneous_convex {n : } {f : (Fin n)EReal} (hf : ProperConvexFunctionOn Set.univ f) :
have g := fun (y : Fin (n + 1)) => if 0 y 0 then rightScalarMultiple f (y 0) fun (i : Fin n) => y i.succ else ; have h := fun (y : Fin (n + 1)) => if y 0 = 1 then f fun (i : Fin n) => y i.succ else ; ProperConvexFunctionOn Set.univ g PositivelyHomogeneous g g = positivelyHomogeneousConvexFunctionGenerated h

Text 5.4.9.1: Perspective as a positively homogeneous convex function. Let f be a proper convex function on ℝ^n. Define g(λ,x) = (f λ)(x) for λ ≥ 0 (with the closed perspective convention at λ = 0) and g(λ,x) = +∞ for λ < 0. Then g is proper, convex, and positively homogeneous on ℝ^{n+1}; moreover, g coincides with the positively homogeneous convex function generated by h(λ,x) = f(x) when λ = 1 and +∞ otherwise.

theorem properConvexFunctionOn_perspective_param {n : } {f : (Fin n)EReal} (hf : ProperConvexFunctionOn Set.univ f) (x : Fin n) :
x effectiveDomain Set.univ fProperConvexFunctionOn {t : Fin 1 | 0 t 0} fun (t : Fin 1) => rightScalarMultiple f (t 0) x

Text 5.4.9.1: For each fixed x ∈ dom f, the map λ ↦ (f λ)(x) is a proper convex function of λ on [0, ∞).

noncomputable def gaugeOfConvexSet {n : } (C : Set (Fin n)) :
(Fin n)

Text 5.4.10 (Gauge of a convex set): Let C ⊆ ℝ^n be a nonempty convex set. The gauge of C is the function gamma(·|C) : ℝ^n → [0,+∞] defined by gamma(x|C) = inf { lambda ≥ 0 | x ∈ lambda C }.

Equations
Instances For
    theorem gaugeOfConvexSet_eq_gauge {n : } (C : Set (Fin n)) :

    Text 5.4.10: The gauge of a convex set agrees with mathlib's gauge.

    theorem properConvexFunctionOn_const {n : } (c : ) :
    ProperConvexFunctionOn Set.univ fun (x : Fin n) => c

    A finite constant function is proper convex on Set.univ.

    theorem convexFunctionOn_indicator_add_const {n : } {C : Set (Fin n)} (hCne : C.Nonempty) (hCconv : Convex C) (c : ) :
    ConvexFunctionOn Set.univ fun (x : Fin n) => indicatorFunction C x + c

    The indicator function plus a real constant is convex on Set.univ.

    theorem indicatorFunction_image_smul_eq {n : } {C : Set (Fin n)} {lam : } (hlam : lam 0) (x : Fin n) :
    indicatorFunction ((fun (y : Fin n) => lam y) '' C) x = indicatorFunction C (lam⁻¹ x)

    The indicator of a scaled image is rewritten by inverse scaling when lam ≠ 0.

    theorem rightScalarMultiple_indicator_add_one_pos {n : } {C : Set (Fin n)} (hCne : C.Nonempty) (hCconv : Convex C) {lam : } (hlam : 0 < lam) (x : Fin n) :
    rightScalarMultiple (fun (y : Fin n) => indicatorFunction C y + 1) lam x = indicatorFunction ((fun (y : Fin n) => lam y) '' C) x + lam

    For positive lam, the right scalar multiple of indicatorFunction C + 1 is explicit.

    theorem rightScalarMultiple_indicator_add_one_zero {n : } {C : Set (Fin n)} (hCne : C.Nonempty) (hCconv : Convex C) (x : Fin n) :
    rightScalarMultiple (fun (y : Fin n) => indicatorFunction C y + 1) 0 x = indicatorFunction ((fun (y : Fin n) => 0 y) '' C) x + 0

    For lam = 0, the right scalar multiple of indicatorFunction C + 1 is an indicator.

    theorem rightScalarMultiple_indicator_add_one_nonneg {n : } {C : Set (Fin n)} (hCne : C.Nonempty) (hCconv : Convex C) {lam : } (hlam : 0 lam) (x : Fin n) :
    rightScalarMultiple (fun (y : Fin n) => indicatorFunction C y + 1) lam x = indicatorFunction ((fun (y : Fin n) => lam y) '' C) x + lam

    Nonnegative scalars give the explicit indicator formula.