Documentation

Books.ConvexAnalysis_Rockafellar_1970.Chapters.Chap03.section16_part1

theorem section16_dotProduct_add_left {n : } (u v w : Fin n) :
(u + v) ⬝ᵥ w = u ⬝ᵥ w + v ⬝ᵥ w

Dot product is additive in the left argument.

theorem section16_range_fenchelConjugate_translate {n : } (h : (Fin n)EReal) (a xStar : Fin n) :
(Set.range fun (x : Fin n) => ↑(x ⬝ᵥ xStar) - h (x - a)) = (fun (z : EReal) => z + ↑(a ⬝ᵥ xStar)) '' Set.range fun (y : Fin n) => ↑(y ⬝ᵥ xStar) - h y

Translate the Fenchel conjugate range under x ↦ x - a.

theorem section16_fenchelConjugate_translate {n : } (h : (Fin n)EReal) (a : Fin n) :
(fenchelConjugate n fun (x : Fin n) => h (x - a)) = fun (xStar : Fin n) => fenchelConjugate n h xStar + ↑(a ⬝ᵥ xStar)

Text 16.0.1: Basic operations on a convex function and their effect on the Fenchel conjugate.

  • If h is translated by a, i.e. f x = h (x - a), then f* x* = h* x* + ⟪a, x*⟫.
  • If a linear functional is added, i.e. f x = h x + ⟪x, a*⟫, then f* x* = h* (x* - a*).
  • For a real constant α, the conjugate of h + α is h* - α.

As a special case, for a set C, the support function of the translate C + a is supportFunctionEReal C + ⟪a, ·⟫, since the support function is the conjugate of the indicator function.

theorem section16_affine_piece_add_linear {n : } (h : (Fin n)EReal) (aStar x xStar : Fin n) :
↑(x ⬝ᵥ xStar) - (h x + ↑(x ⬝ᵥ aStar)) = ↑(x ⬝ᵥ (xStar - aStar)) - h x

Rewriting the affine piece after adding a linear functional.

theorem section16_range_fenchelConjugate_add_linear {n : } (h : (Fin n)EReal) (aStar xStar : Fin n) :
(Set.range fun (x : Fin n) => ↑(x ⬝ᵥ xStar) - (h x + ↑(x ⬝ᵥ aStar))) = Set.range fun (x : Fin n) => ↑(x ⬝ᵥ (xStar - aStar)) - h x

Range rewrite for adding a linear functional inside fenchelConjugate.

theorem section16_fenchelConjugate_add_linear {n : } (h : (Fin n)EReal) (aStar : Fin n) :
(fenchelConjugate n fun (x : Fin n) => h x + ↑(x ⬝ᵥ aStar)) = fun (xStar : Fin n) => fenchelConjugate n h (xStar - aStar)
theorem section16_affine_piece_add_const {n : } (h : (Fin n)EReal) (α : ) (x xStar : Fin n) :
↑(x ⬝ᵥ xStar) - (h x + α) = ↑(x ⬝ᵥ xStar) - h x + ↑(-α)

Rewriting the affine piece after adding a constant.

theorem section16_range_fenchelConjugate_add_const {n : } (h : (Fin n)EReal) (α : ) (xStar : Fin n) :
(Set.range fun (x : Fin n) => ↑(x ⬝ᵥ xStar) - (h x + α)) = (fun (z : EReal) => z + ↑(-α)) '' Set.range fun (x : Fin n) => ↑(x ⬝ᵥ xStar) - h x

Range rewrite for adding a constant inside fenchelConjugate.

theorem section16_fenchelConjugate_add_const {n : } (h : (Fin n)EReal) (α : ) :
(fenchelConjugate n fun (x : Fin n) => h x + α) = fun (xStar : Fin n) => fenchelConjugate n h xStar - α
theorem section16_supportFunctionEReal_translate {n : } (C : Set (Fin n)) (a : Fin n) :
supportFunctionEReal ((fun (x : Fin n) => x + a) '' C) = fun (xStar : Fin n) => supportFunctionEReal C xStar + ↑(a ⬝ᵥ xStar)
theorem section16_polar_eq_sublevel_deltaStar {n : } (C : Set (Fin n)) :
{xStar : Fin n | xC, x ⬝ᵥ xStar 1} = {xStar : Fin n | supportFunctionEReal C xStar 1}

Text 16.0.2: The polar of a convex set C is a ≤ 1 level set of the support function δ^*(· | C), namely

C^∘ = {x^* | δ^*(x^* | C) ≤ 1}.

The conjugate of the constant zero function is the indicator of {0}.

theorem section16_fenchelConjugate_precomp_smul {n : } (f : (Fin n)EReal) {lam : } (hlam : lam 0) :
(fenchelConjugate n fun (x : Fin n) => f (lam⁻¹ x)) = fun (xStar : Fin n) => fenchelConjugate n f (lam xStar)

Scaling precomposition inside a Fenchel conjugate.

The conjugate of the singleton indicator is the constant zero function.

theorem section16_fenchelConjugate_scaling {n : } (f : (Fin n)EReal) (hf : ProperConvexFunctionOn Set.univ f) {lam : } (hlam : 0 lam) :
(fenchelConjugate n fun (x : Fin n) => lam * f x) = rightScalarMultiple (fenchelConjugate n f) lam fenchelConjugate n (rightScalarMultiple f lam) = fun (xStar : Fin n) => lam * fenchelConjugate n f xStar

Theorem 16.1: For any proper convex function f, one has (λ f)^* = f^* λ and (f λ)^* = λ f^*, 0 ≤ λ < ∞.

Here f^* is the Fenchel conjugate fenchelConjugate n f, λ f is pointwise multiplication x ↦ (λ : EReal) * f x, and f λ is the right scalar multiple rightScalarMultiple f λ.

theorem section16_image_dotProduct_smul_set {n : } (C : Set (Fin n)) (lam : ) (xStar : Fin n) :
(fun (x : Fin n) => x ⬝ᵥ xStar) '' (lam C) = lam (fun (x : Fin n) => x ⬝ᵥ xStar) '' C

Scaling the dot-product image-set commutes with set scaling.

theorem section16_deltaStar_scaling {n : } (C : Set (Fin n)) {lam : } (hlam : 0 lam) :
deltaStar (lam C) = fun (xStar : Fin n) => lam * deltaStar C xStar

Corollary 16.1.1. For any non-empty convex set C, one has δ^*(x^* | λ C) = λ δ^*(x^* | C), 0 ≤ λ < ∞.

theorem section16_mem_inv_smul_set_iff {n : } {lam : } (hlam0 : lam 0) (S : Set (Fin n)) (x : Fin n) :
x lam⁻¹ S lam x S

Membership in an inverse-scaled set can be rewritten using the original scaling.

theorem section16_polar_smul_iff {n : } (C : Set (Fin n)) {lam : } (xStar : Fin n) :
(∀ xlam C, x ⬝ᵥ xStar 1) xC, x ⬝ᵥ lam xStar 1

The polar inequality for a scaled set is equivalent to a scaled dual variable.

theorem section16_polar_scaling {n : } (C : Set (Fin n)) {lam : } (hlam : 0 < lam) :
{xStar : Fin n | xlam C, x ⬝ᵥ xStar 1} = lam⁻¹ {xStar : Fin n | xC, x ⬝ᵥ xStar 1}

Corollary 16.1.2. For any non-empty convex set C one has (λ C)^∘ = λ^{-1} C^∘ for 0 < λ < ∞.

The intrinsic interior of a submodule (as a set) is the submodule itself.

Nonempty intersection in Euclidean space corresponds to non-disjoint intrinsic interiors.

theorem section16_sInf_sSup_image_dotProduct_submodule {n : } (L : Submodule (Fin n)) (b : Fin n) :
(sInf ((fun (x : Fin n) => ↑(x ⬝ᵥ b)) '' L) = if b orthogonalComplement n L then 0 else ) sSup ((fun (x : Fin n) => ↑(x ⬝ᵥ b)) '' L) = if b orthogonalComplement n L then 0 else

The dot-product image over a submodule has sInf/sSup determined by orthogonality.

theorem section16_sInf_lt_zero_iff_sSup_neg_gt_zero {n : } (C : Set (Fin n)) (b : Fin n) :
0 > sInf ((fun (x : Fin n) => ↑(x ⬝ᵥ b)) '' C) sSup ((fun (x : Fin n) => ↑(x ⬝ᵥ -b)) '' C) > 0

Negating the dual variable swaps the sign of the dot-product infimum condition.

Proper separation of a submodule and an effective domain in terms of recession inequalities.

Lemma 16.2. Let L be a subspace of ℝ^n and let f be a proper convex function. Then L meets ri (dom f) if and only if there exists no vector xStar ∈ L^⊥ such that (f^*0^+)(xStar) ≤ 0 and (f^*0^+)(-xStar) > 0.

Here dom f is the effective domain effectiveDomain univ f, ri is euclideanRelativeInterior, and (f^*0^+) is represented as recessionFunction (fenchelConjugate n f).

Coordinate form of a Euclidean linear map, viewed as a map into Fin m → ℝ.

Equations
Instances For

    Characterize the orthogonal complement of a range via the adjoint.