Documentation

Books.ConvexAnalysis_Rockafellar_1970.Chapters.Chap03.section13_part11

theorem section13_dotProduct_head_succ {n : } (v w : Fin (n + 1)) :
v ⬝ᵥ w = v 0 * w 0 + (fun (i : Fin n) => v i.succ) ⬝ᵥ fun (i : Fin n) => w i.succ

Splitting a dot product in ℝ^{n+1} into its head and tail parts.

def section13_supportSet {n : } (f : (Fin n)EReal) :
Set (Fin (n + 1))

The set C = { (λ^*, x^*) | λ^* ≤ -f^*(x^*) } ⊆ ℝ^{n+1} from Corollary 13.5.1.

Equations
Instances For
    theorem section13_supportFunctionEReal_supportSet_pos {n : } (f : (Fin n)EReal) (hf_proper : ProperConvexFunctionOn Set.univ f) (v : Fin (n + 1)) (hpos : 0 < v 0) :
    supportFunctionEReal (section13_supportSet f) v = fenchelConjugate n (fun (xStar : Fin n) => (v 0) * fenchelConjugate n f xStar) fun (i : Fin n) => v i.succ

    For λ > 0, the support function of section13_supportSet f at (λ,x) is the Fenchel conjugate of the scaled conjugate λ • f^*.

    theorem section13_supportFunctionEReal_supportSet_pos_eq_rightScalarMultiple {n : } (f : (Fin n)EReal) (hf_closed : ClosedConvexFunction f) (hf_proper : ProperConvexFunctionOn Set.univ f) (v : Fin (n + 1)) (hpos : 0 < v 0) :

    For λ > 0, supportFunctionEReal (section13_supportSet f) matches the rightScalarMultiple branch of Corollary 13.5.1.

    For λ = 0, the support function of section13_supportSet f reduces to the support function of dom f^*, evaluated at the tail vector.

    theorem section13_supportFunctionEReal_supportSet_neg {n : } (f : (Fin n)EReal) (hf_proper : ProperConvexFunctionOn Set.univ f) (v : Fin (n + 1)) (hneg : v 0 < 0) :

    For λ < 0, the support function of section13_supportSet f is .

    theorem supportFunctionEReal_setOf_le_neg_fenchelConjugate_eq_piecewise_rightScalarMultiple {n : } (f : (Fin n)EReal) (hf_closed : ClosedConvexFunction f) (hf_proper : ProperConvexFunctionOn Set.univ f) :
    have k := fun (v : Fin (n + 1)) => have lam := v 0; have x := fun (i : Fin n) => v i.succ; if _hpos : 0 < lam then rightScalarMultiple f lam x else if _hzero : lam = 0 then recessionFunction f x else ; have C := {vStar : Fin (n + 1) | (vStar 0) -fenchelConjugate n f fun (i : Fin n) => vStar i.succ}; k = supportFunctionEReal C

    Corollary 13.5.1. Let f be a closed proper convex function on ℝ^n. Define a function k : ℝ^{n+1} → (-∞, +∞] by

    k(λ, x) = (f λ)(x) if λ > 0, k(0, x) = (f0^+)(x) if λ = 0, and k(λ, x) = +∞ if λ < 0.

    Then k is the support function of the set C = { (λ^*, x^*) | λ^* ≤ -f^*(x^*) } ⊆ ℝ^{n+1}.

    theorem section13_dotProduct_mulVec_right {n : } (A : Matrix (Fin n) (Fin n) ) (x y : Fin n) :

    Move mulVec from the right argument of dotProduct to the left.

    theorem section13_deltaStar_image_mulVec {n : } (A : Matrix (Fin n) (Fin n) ) (C : Set (Fin n)) (xStar : Fin n) :
    deltaStar ((fun (y : Fin n) => A.mulVec y) '' C) xStar = deltaStar C (A.transpose.mulVec xStar)

    Support function under a linear image y ↦ A y: δ^*(x | A '' C) = δ^*(Aᵀ x | C).

    theorem section13_deltaStar_singleton {n : } (a xStar : Fin n) :
    deltaStar {a} xStar = xStar ⬝ᵥ a

    The support function of a singleton is just the dot product.

    theorem section13_posDef_dotProduct_mulVec_nonneg {n : } {Q : Matrix (Fin n) (Fin n) } (hQ : Q.PosDef) (x : Fin n) :
    0 x ⬝ᵥ Q.mulVec x

    Quadratic forms from positive definite matrices are nonnegative.

    theorem section13_posDef_exists_isUnit_transpose_mul_self {n : } {Q : Matrix (Fin n) (Fin n) } (hQ : Q.PosDef) :
    ∃ (B : Matrix (Fin n) (Fin n) ), IsUnit B Q = B.transpose * B

    A real positive definite matrix factors as Bᵀ * B with B invertible.

    theorem section13_ellipticSet_completeSquare_mem {n : } (Q : Matrix (Fin n) (Fin n) ) (a : Fin n) (α : ) (hQ : Q.PosDef) :
    have C := {x : Fin n | 1 / 2 * x ⬝ᵥ Q.mulVec x + a ⬝ᵥ x + α 0}; have b := -Q⁻¹.mulVec a; have β := 1 / 2 * a ⬝ᵥ Q⁻¹.mulVec a - α; ∀ (x : Fin n), x C 1 / 2 * (x - b) ⬝ᵥ Q.mulVec (x - b) β

    Completing the square for the elliptic quadratic inequality.

    theorem section13_beta_nonneg_of_nonempty {n : } (Q : Matrix (Fin n) (Fin n) ) (a : Fin n) (α : ) (hQ : Q.PosDef) :
    have C := {x : Fin n | 1 / 2 * x ⬝ᵥ Q.mulVec x + a ⬝ᵥ x + α 0}; have β := 1 / 2 * a ⬝ᵥ Q⁻¹.mulVec a - α; C.Nonempty0 β

    Nonemptiness of the elliptic set forces the radius parameter β to be nonnegative.

    theorem section13_setOf_half_dotProduct_self_le_eq_smul_unitEuclideanBall {n : } (β : ) ( : 0 β) :
    {z : Fin n | 1 / 2 * z ⬝ᵥ z β} = (2 * β) {y : Fin n | (y ⬝ᵥ y) 1}

    The set {z | (1/2) * ⟪z, z⟫ ≤ β} is a scaling of the unit Euclidean ball.

    theorem section13_bddAbove_image_dotProduct_centeredSublevel_posDef {n : } (Q : Matrix (Fin n) (Fin n) ) (β : ) (xStar : Fin n) (hQ : Q.PosDef) ( : 0 β) :
    BddAbove ((fun (x : Fin n) => x ⬝ᵥ xStar) '' {x : Fin n | 1 / 2 * x ⬝ᵥ Q.mulVec x β})

    Boundedness in direction xStar for the centered ellipsoid {x | (1/2) ⟪x, Qx⟫ ≤ β}.

    theorem section13_deltaStar_centeredSublevel_posDef {n : } (Q : Matrix (Fin n) (Fin n) ) (β : ) (xStar : Fin n) (hQ : Q.PosDef) ( : 0 β) :
    deltaStar {x : Fin n | 1 / 2 * x ⬝ᵥ Q.mulVec x β} xStar = (2 * β * xStar ⬝ᵥ Q⁻¹.mulVec xStar)

    Support function of the centered ellipsoid {x | (1/2) ⟪x, Qx⟫ ≤ β} for positive definite Q.

    theorem deltaStar_ellipticSet_eq {n : } (Q : Matrix (Fin n) (Fin n) ) (a : Fin n) (α : ) (xStar : Fin n) (hQ : Q.PosDef) :
    have C := {x : Fin n | 1 / 2 * x ⬝ᵥ Q.mulVec x + a ⬝ᵥ x + α 0}; have b := -Q⁻¹.mulVec a; have β := 1 / 2 * a ⬝ᵥ Q⁻¹.mulVec a - α; C.NonemptydeltaStar C xStar = xStar ⬝ᵥ b + (2 * β * xStar ⬝ᵥ Q⁻¹.mulVec xStar)

    Text 13.5.2: For the “elliptic” convex set

    C = {x | (1/2) ⟪x, Qx⟫ + ⟪a, x⟫ + α ≤ 0},

    where Q is a positive definite symmetric matrix, one has (assuming C ≠ ∅)

    δ^*(xStar | C) = ⟪b, xStar⟫ + (2β ⟪xStar, Q⁻¹ xStar⟫)^{1/2},

    where b = -Q⁻¹ a and β = (1/2) ⟪a, Q⁻¹ a⟫ - α.