Documentation

OptimizationTheoryAndMethods_SunYuan_2006.Chap01.Definition_1_2_1

class IsVectorNorm {n : } (f : (Fin n)) :

Source notion for Chapter01 Definition 1.2.1: a map f : (Fin n → ℝ) → ℝ is a vector norm on ℝ^n when it is nonnegative, vanishes exactly at 0, is absolutely homogeneous, and satisfies the triangle inequality.

  • nonneg (x : Fin n) : 0 f x
  • eq_zero_iff (x : Fin n) : f x = 0 x = 0
  • smul_eq (a : ) (x : Fin n) : f (a x) = |a| * f x
  • add_le (x y : Fin n) : f (x + y) f x + f y
Instances
    theorem isVectorNorm_iff {n : } (f : (Fin n)) :
    IsVectorNorm f (∀ (x : Fin n), 0 f x) (∀ (x : Fin n), f x = 0 x = 0) (∀ (a : ) (x : Fin n), f (a x) = |a| * f x) ∀ (x y : Fin n), f (x + y) f x + f y

    Unfolding formula for IsVectorNorm.

    theorem IsVectorNorm.map_zero {n : } {f : (Fin n)} (hf : IsVectorNorm f) :
    f 0 = 0

    Any vector norm vanishes at the zero vector.

    theorem IsVectorNorm.map_neg {n : } {f : (Fin n)} (hf : IsVectorNorm f) (x : Fin n) :
    f (-x) = f x

    Any vector norm is invariant under negation.

    noncomputable def IsVectorNorm.toSeminorm {n : } {f : (Fin n)} (hf : IsVectorNorm f) :
    Seminorm (Fin n)

    A vector norm on ℝ^n defines a real seminorm.

    Instances For
      @[simp]
      theorem IsVectorNorm.toSeminorm_apply {n : } {f : (Fin n)} (hf : IsVectorNorm f) (x : Fin n) :
      hf.toSeminorm x = f x
      theorem IsVectorNorm.toSeminorm_eq_zero_iff {n : } {f : (Fin n)} (hf : IsVectorNorm f) (x : Fin n) :
      hf.toSeminorm x = 0 x = 0

      The induced seminorm vanishes exactly at the zero vector.

      noncomputable def IsVectorNorm.toAddGroupNorm {n : } {f : (Fin n)} (hf : IsVectorNorm f) :
      AddGroupNorm (Fin n)

      A vector norm on ℝ^n defines an additive group norm.

      Instances For
        @[simp]
        theorem IsVectorNorm.toAddGroupNorm_apply {n : } {f : (Fin n)} (hf : IsVectorNorm f) (x : Fin n) :
        hf.toAddGroupNorm x = f x
        noncomputable def lpNorm {n : } (p : ENNReal) [Fact (1 p)] :
        (Fin n)

        The ℓ^p norm on ℝ^n for 1 ≤ p, implemented via the canonical PiLp norm on functions Fin n → ℝ.

        Instances For
          theorem lpNorm_eq_sum {n : } (p : ENNReal) [Fact (1 p)] (hp : 0 < p.toReal) (x : Fin n) :
          lpNorm p x = (∑ i : Fin n, |x i| ^ p.toReal) ^ (1 / p.toReal)

          For 0 < p.toReal, the ℓ^p norm is given by the usual finite-sum formula.

          instance lpNorm_isVectorNorm {n : } (p : ENNReal) [Fact (1 p)] :
          IsVectorNorm fun (x : Fin n) => lpNorm p x

          Chapter01 Definition 1.2.1: for 1 ≤ p, the ℓ^p norm is a vector norm on ℝ^n.

          noncomputable def linftyNorm {n : } :
          (Fin n)

          The ℓ^∞ norm on ℝ^n.

          Instances For
            noncomputable def l1Norm {n : } :
            (Fin n)

            The ℓ^1 norm on ℝ^n.

            Instances For
              noncomputable def l2Norm {n : } :
              (Fin n)

              The ℓ^2 norm on ℝ^n.

              Instances For
                def «term‖_‖∞» :
                Lean.ParserDescr
                Instances For
                  def «term‖_‖₁» :
                  Lean.ParserDescr
                  Instances For
                    def «term‖_‖₂» :
                    Lean.ParserDescr
                    Instances For
                      theorem linftyNorm_eq_finset_sup'_abs {n : } [Nonempty (Fin n)] (x : Fin n) :
                      x‖∞ = Finset.univ.sup' fun (i : Fin n) => |x i|

                      For n ≥ 1, the ℓ^∞ norm is the maximum of the coordinatewise absolute values.

                      theorem linftyNorm_eq_iSup_abs {n : } (x : Fin n) :
                      x‖∞ = ⨆ (i : Fin n), |x i|

                      The ℓ^∞ norm is the supremum of the coordinatewise absolute values.

                      instance linftyNorm_isVectorNorm {n : } :
                      IsVectorNorm fun (x : Fin n) => x‖∞

                      The ℓ^∞ norm is a vector norm on ℝ^n.

                      theorem l1Norm_eq_sum_abs {n : } (x : Fin n) :
                      x‖₁ = i : Fin n, |x i|

                      The ℓ^1 norm is the sum of the coordinatewise absolute values.

                      instance l1Norm_isVectorNorm {n : } :
                      IsVectorNorm fun (x : Fin n) => x‖₁

                      The ℓ^1 norm is a vector norm on ℝ^n.

                      theorem l2Norm_eq_sqrt_sum_sq {n : } (x : Fin n) :
                      x‖₂ = (∑ i : Fin n, |x i| ^ 2)

                      The ℓ^2 norm is the square root of the sum of the squared absolute values.

                      instance l2Norm_isVectorNorm {n : } :
                      IsVectorNorm fun (x : Fin n) => x‖₂

                      The ℓ^2 norm is a vector norm on ℝ^n.

                      noncomputable def ellipsoidNorm {n : } (A : Matrix (Fin n) (Fin n) ) :
                      (Fin n)

                      The ellipsoid norm attached to a real square matrix A. For positive-definite A, the corresponding theorem below upgrades it to a vector norm.

                      Instances For
                        theorem ellipsoidNorm_eq_sqrt_dotProduct_mulVec {n : } (A : Matrix (Fin n) (Fin n) ) (x : Fin n) :
                        ellipsoidNorm A x = (x ⬝ᵥ A.mulVec x)

                        The ellipsoid norm is given by sqrt (xᵀ A x).

                        theorem ellipsoidNorm_isVectorNorm {n : } (A : Matrix (Fin n) (Fin n) ) (hA : A.PosDef) :

                        With hA : A.PosDef, the ellipsoid norm is a vector norm on ℝ^n.