Documentation

Mathlib.Analysis.Seminorm

Seminorms #

This file defines seminorms.

A seminorm is a function to the reals which is positive-semidefinite, absolutely homogeneous, and subadditive. They are closely related to convex sets, and a topological vector space is locally convex if and only if its topology is induced by a family of seminorms.

Main declarations #

For a module over a normed ring:

References #

Tags #

seminorm, locally convex, LCTVS

structure Seminorm (π•œ : Type u_13) (E : Type u_14) [SeminormedRing π•œ] [AddGroup E] [SMul π•œ E] extends AddGroupSeminorm :
Type u_14

A seminorm on a module over a normed ring is a function to the reals that is positive semidefinite, positive homogeneous, and subadditive.

  • toFun : E β†’ ℝ
  • map_zero' : self.toAddGroupSeminorm.toFun 0 = 0
  • add_le' : βˆ€ (r s : E), self.toAddGroupSeminorm.toFun (r + s) ≀ self.toAddGroupSeminorm.toFun r + self.toAddGroupSeminorm.toFun s
  • neg' : βˆ€ (r : E), self.toAddGroupSeminorm.toFun (-r) = self.toAddGroupSeminorm.toFun r
  • smul' : βˆ€ (a : π•œ) (x : E), self.toAddGroupSeminorm.toFun (a β€’ x) = β€–aβ€– * self.toAddGroupSeminorm.toFun x

    The seminorm of a scalar multiplication is the product of the absolute value of the scalar and the original seminorm.

Instances For
    class SeminormClass (F : Type u_13) (π•œ : outParam (Type u_14)) (E : outParam (Type u_15)) [SeminormedRing π•œ] [AddGroup E] [SMul π•œ E] [FunLike F E ℝ] extends AddGroupSeminormClass :

    SeminormClass F π•œ E states that F is a type of seminorms on the π•œ-module E.

    You should extend this class when you extend Seminorm.

    • map_add_le_add : βˆ€ (f : F) (a b : E), f (a + b) ≀ f a + f b
    • map_zero : βˆ€ (f : F), f 0 = 0
    • map_neg_eq_map : βˆ€ (f : F) (a : E), f (-a) = f a
    • map_smul_eq_mul : βˆ€ (f : F) (a : π•œ) (x : E), f (a β€’ x) = β€–aβ€– * f x

      The seminorm of a scalar multiplication is the product of the absolute value of the scalar and the original seminorm.

    Instances
      def Seminorm.of {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddCommGroup E] [Module π•œ E] (f : E β†’ ℝ) (add_le : βˆ€ (x y : E), f (x + y) ≀ f x + f y) (smul : βˆ€ (a : π•œ) (x : E), f (a β€’ x) = β€–aβ€– * f x) :
      Seminorm π•œ E

      Alternative constructor for a Seminorm on an AddCommGroup E that is a module over a SeminormedRing π•œ.

      Equations
      • Seminorm.of f add_le smul = { toAddGroupSeminorm := { toFun := f, map_zero' := (_ : f 0 = 0), add_le' := add_le, neg' := (_ : βˆ€ (x : E), f (-x) = f x) }, smul' := smul }
      Instances For
        def Seminorm.ofSMulLE {π•œ : Type u_3} {E : Type u_7} [NormedField π•œ] [AddCommGroup E] [Module π•œ E] (f : E β†’ ℝ) (map_zero : f 0 = 0) (add_le : βˆ€ (x y : E), f (x + y) ≀ f x + f y) (smul_le : βˆ€ (r : π•œ) (x : E), f (r β€’ x) ≀ β€–rβ€– * f x) :
        Seminorm π•œ E

        Alternative constructor for a Seminorm over a normed field π•œ that only assumes f 0 = 0 and an inequality for the scalar multiplication.

        Equations
        Instances For
          instance Seminorm.instFunLike {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddGroup E] [SMul π•œ E] :
          FunLike (Seminorm π•œ E) E ℝ
          Equations
          • One or more equations did not get rendered due to their size.
          instance Seminorm.instSeminormClass {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddGroup E] [SMul π•œ E] :
          SeminormClass (Seminorm π•œ E) π•œ E
          Equations
          theorem Seminorm.ext {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddGroup E] [SMul π•œ E] {p : Seminorm π•œ E} {q : Seminorm π•œ E} (h : βˆ€ (x : E), p x = q x) :
          p = q
          instance Seminorm.instZero {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddGroup E] [SMul π•œ E] :
          Zero (Seminorm π•œ E)
          Equations
          • Seminorm.instZero = { zero := let src := Zero.zero; { toAddGroupSeminorm := src, smul' := (_ : βˆ€ (x : π•œ), E β†’ 0 = β€–xβ€– * 0) } }
          @[simp]
          theorem Seminorm.coe_zero {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddGroup E] [SMul π•œ E] :
          ⇑0 = 0
          @[simp]
          theorem Seminorm.zero_apply {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddGroup E] [SMul π•œ E] (x : E) :
          0 x = 0
          instance Seminorm.instInhabitedSeminorm {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddGroup E] [SMul π•œ E] :
          Inhabited (Seminorm π•œ E)
          Equations
          • Seminorm.instInhabitedSeminorm = { default := 0 }
          instance Seminorm.instSMul {R : Type u_1} {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddGroup E] [SMul π•œ E] [SMul R ℝ] [SMul R NNReal] [IsScalarTower R NNReal ℝ] :
          SMul R (Seminorm π•œ E)

          Any action on ℝ which factors through ℝβ‰₯0 applies to a seminorm.

          Equations
          • One or more equations did not get rendered due to their size.
          instance Seminorm.instIsScalarTowerSeminormInstSMulInstSMul {R : Type u_1} {R' : Type u_2} {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddGroup E] [SMul π•œ E] [SMul R ℝ] [SMul R NNReal] [IsScalarTower R NNReal ℝ] [SMul R' ℝ] [SMul R' NNReal] [IsScalarTower R' NNReal ℝ] [SMul R R'] [IsScalarTower R R' ℝ] :
          IsScalarTower R R' (Seminorm π•œ E)
          Equations
          theorem Seminorm.coe_smul {R : Type u_1} {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddGroup E] [SMul π•œ E] [SMul R ℝ] [SMul R NNReal] [IsScalarTower R NNReal ℝ] (r : R) (p : Seminorm π•œ E) :
          ⇑(r β€’ p) = r β€’ ⇑p
          @[simp]
          theorem Seminorm.smul_apply {R : Type u_1} {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddGroup E] [SMul π•œ E] [SMul R ℝ] [SMul R NNReal] [IsScalarTower R NNReal ℝ] (r : R) (p : Seminorm π•œ E) (x : E) :
          (r β€’ p) x = r β€’ p x
          instance Seminorm.instAdd {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddGroup E] [SMul π•œ E] :
          Add (Seminorm π•œ E)
          Equations
          • One or more equations did not get rendered due to their size.
          theorem Seminorm.coe_add {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddGroup E] [SMul π•œ E] (p : Seminorm π•œ E) (q : Seminorm π•œ E) :
          ⇑(p + q) = ⇑p + ⇑q
          @[simp]
          theorem Seminorm.add_apply {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddGroup E] [SMul π•œ E] (p : Seminorm π•œ E) (q : Seminorm π•œ E) (x : E) :
          (p + q) x = p x + q x
          instance Seminorm.instAddMonoid {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddGroup E] [SMul π•œ E] :
          AddMonoid (Seminorm π•œ E)
          Equations
          • One or more equations did not get rendered due to their size.
          instance Seminorm.instOrderedCancelAddCommMonoid {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddGroup E] [SMul π•œ E] :
          Equations
          • One or more equations did not get rendered due to their size.
          instance Seminorm.instMulAction {R : Type u_1} {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddGroup E] [SMul π•œ E] [Monoid R] [MulAction R ℝ] [SMul R NNReal] [IsScalarTower R NNReal ℝ] :
          MulAction R (Seminorm π•œ E)
          Equations
          • One or more equations did not get rendered due to their size.
          @[simp]
          theorem Seminorm.coeFnAddMonoidHom_apply (π•œ : Type u_3) (E : Type u_7) [SeminormedRing π•œ] [AddGroup E] [SMul π•œ E] :
          βˆ€ (a : Seminorm π•œ E) (a_1 : E), (Seminorm.coeFnAddMonoidHom π•œ E) a a_1 = a a_1
          def Seminorm.coeFnAddMonoidHom (π•œ : Type u_3) (E : Type u_7) [SeminormedRing π•œ] [AddGroup E] [SMul π•œ E] :
          Seminorm π•œ E β†’+ E β†’ ℝ

          coeFn as an AddMonoidHom. Helper definition for showing that Seminorm π•œ E is a module.

          Equations
          • Seminorm.coeFnAddMonoidHom π•œ E = { toZeroHom := { toFun := DFunLike.coe, map_zero' := (_ : ⇑0 = 0) }, map_add' := (_ : βˆ€ (p q : Seminorm π•œ E), ⇑(p + q) = ⇑p + ⇑q) }
          Instances For
            theorem Seminorm.coeFnAddMonoidHom_injective (π•œ : Type u_3) (E : Type u_7) [SeminormedRing π•œ] [AddGroup E] [SMul π•œ E] :
            instance Seminorm.instDistribMulAction {R : Type u_1} {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddGroup E] [SMul π•œ E] [Monoid R] [DistribMulAction R ℝ] [SMul R NNReal] [IsScalarTower R NNReal ℝ] :
            DistribMulAction R (Seminorm π•œ E)
            Equations
            • One or more equations did not get rendered due to their size.
            instance Seminorm.instModule {R : Type u_1} {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddGroup E] [SMul π•œ E] [Semiring R] [Module R ℝ] [SMul R NNReal] [IsScalarTower R NNReal ℝ] :
            Module R (Seminorm π•œ E)
            Equations
            • One or more equations did not get rendered due to their size.
            instance Seminorm.instSup {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddGroup E] [SMul π•œ E] :
            Sup (Seminorm π•œ E)
            Equations
            • One or more equations did not get rendered due to their size.
            @[simp]
            theorem Seminorm.coe_sup {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddGroup E] [SMul π•œ E] (p : Seminorm π•œ E) (q : Seminorm π•œ E) :
            ⇑(p βŠ” q) = ⇑p βŠ” ⇑q
            theorem Seminorm.sup_apply {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddGroup E] [SMul π•œ E] (p : Seminorm π•œ E) (q : Seminorm π•œ E) (x : E) :
            (p βŠ” q) x = p x βŠ” q x
            theorem Seminorm.smul_sup {R : Type u_1} {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddGroup E] [SMul π•œ E] [SMul R ℝ] [SMul R NNReal] [IsScalarTower R NNReal ℝ] (r : R) (p : Seminorm π•œ E) (q : Seminorm π•œ E) :
            instance Seminorm.instPartialOrder {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddGroup E] [SMul π•œ E] :
            PartialOrder (Seminorm π•œ E)
            Equations
            @[simp]
            theorem Seminorm.coe_le_coe {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddGroup E] [SMul π•œ E] {p : Seminorm π•œ E} {q : Seminorm π•œ E} :
            ⇑p ≀ ⇑q ↔ p ≀ q
            @[simp]
            theorem Seminorm.coe_lt_coe {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddGroup E] [SMul π•œ E] {p : Seminorm π•œ E} {q : Seminorm π•œ E} :
            ⇑p < ⇑q ↔ p < q
            theorem Seminorm.le_def {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddGroup E] [SMul π•œ E] {p : Seminorm π•œ E} {q : Seminorm π•œ E} :
            p ≀ q ↔ βˆ€ (x : E), p x ≀ q x
            theorem Seminorm.lt_def {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddGroup E] [SMul π•œ E] {p : Seminorm π•œ E} {q : Seminorm π•œ E} :
            p < q ↔ p ≀ q ∧ βˆƒ (x : E), p x < q x
            instance Seminorm.instSemilatticeSup {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddGroup E] [SMul π•œ E] :
            Equations
            • One or more equations did not get rendered due to their size.
            Equations
            def Seminorm.comp {π•œ : Type u_3} {π•œβ‚‚ : Type u_4} {E : Type u_7} {Eβ‚‚ : Type u_8} [SeminormedRing π•œ] [SeminormedRing π•œβ‚‚] {σ₁₂ : π•œ β†’+* π•œβ‚‚} [RingHomIsometric σ₁₂] [AddCommGroup E] [AddCommGroup Eβ‚‚] [Module π•œ E] [Module π•œβ‚‚ Eβ‚‚] (p : Seminorm π•œβ‚‚ Eβ‚‚) (f : E β†’β‚›β‚—[σ₁₂] Eβ‚‚) :
            Seminorm π•œ E

            Composition of a seminorm with a linear map is a seminorm.

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              theorem Seminorm.coe_comp {π•œ : Type u_3} {π•œβ‚‚ : Type u_4} {E : Type u_7} {Eβ‚‚ : Type u_8} [SeminormedRing π•œ] [SeminormedRing π•œβ‚‚] {σ₁₂ : π•œ β†’+* π•œβ‚‚} [RingHomIsometric σ₁₂] [AddCommGroup E] [AddCommGroup Eβ‚‚] [Module π•œ E] [Module π•œβ‚‚ Eβ‚‚] (p : Seminorm π•œβ‚‚ Eβ‚‚) (f : E β†’β‚›β‚—[σ₁₂] Eβ‚‚) :
              ⇑(Seminorm.comp p f) = ⇑p ∘ ⇑f
              @[simp]
              theorem Seminorm.comp_apply {π•œ : Type u_3} {π•œβ‚‚ : Type u_4} {E : Type u_7} {Eβ‚‚ : Type u_8} [SeminormedRing π•œ] [SeminormedRing π•œβ‚‚] {σ₁₂ : π•œ β†’+* π•œβ‚‚} [RingHomIsometric σ₁₂] [AddCommGroup E] [AddCommGroup Eβ‚‚] [Module π•œ E] [Module π•œβ‚‚ Eβ‚‚] (p : Seminorm π•œβ‚‚ Eβ‚‚) (f : E β†’β‚›β‚—[σ₁₂] Eβ‚‚) (x : E) :
              (Seminorm.comp p f) x = p (f x)
              @[simp]
              theorem Seminorm.comp_id {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddCommGroup E] [Module π•œ E] (p : Seminorm π•œ E) :
              Seminorm.comp p LinearMap.id = p
              @[simp]
              theorem Seminorm.comp_zero {π•œ : Type u_3} {π•œβ‚‚ : Type u_4} {E : Type u_7} {Eβ‚‚ : Type u_8} [SeminormedRing π•œ] [SeminormedRing π•œβ‚‚] {σ₁₂ : π•œ β†’+* π•œβ‚‚} [RingHomIsometric σ₁₂] [AddCommGroup E] [AddCommGroup Eβ‚‚] [Module π•œ E] [Module π•œβ‚‚ Eβ‚‚] (p : Seminorm π•œβ‚‚ Eβ‚‚) :
              @[simp]
              theorem Seminorm.zero_comp {π•œ : Type u_3} {π•œβ‚‚ : Type u_4} {E : Type u_7} {Eβ‚‚ : Type u_8} [SeminormedRing π•œ] [SeminormedRing π•œβ‚‚] {σ₁₂ : π•œ β†’+* π•œβ‚‚} [RingHomIsometric σ₁₂] [AddCommGroup E] [AddCommGroup Eβ‚‚] [Module π•œ E] [Module π•œβ‚‚ Eβ‚‚] (f : E β†’β‚›β‚—[σ₁₂] Eβ‚‚) :
              theorem Seminorm.comp_comp {π•œ : Type u_3} {π•œβ‚‚ : Type u_4} {π•œβ‚ƒ : Type u_5} {E : Type u_7} {Eβ‚‚ : Type u_8} {E₃ : Type u_9} [SeminormedRing π•œ] [SeminormedRing π•œβ‚‚] [SeminormedRing π•œβ‚ƒ] {σ₁₂ : π•œ β†’+* π•œβ‚‚} [RingHomIsometric σ₁₂] {σ₂₃ : π•œβ‚‚ β†’+* π•œβ‚ƒ} [RingHomIsometric σ₂₃] {σ₁₃ : π•œ β†’+* π•œβ‚ƒ} [RingHomIsometric σ₁₃] [AddCommGroup E] [AddCommGroup Eβ‚‚] [AddCommGroup E₃] [Module π•œ E] [Module π•œβ‚‚ Eβ‚‚] [Module π•œβ‚ƒ E₃] [RingHomCompTriple σ₁₂ σ₂₃ σ₁₃] (p : Seminorm π•œβ‚ƒ E₃) (g : Eβ‚‚ β†’β‚›β‚—[σ₂₃] E₃) (f : E β†’β‚›β‚—[σ₁₂] Eβ‚‚) :
              theorem Seminorm.add_comp {π•œ : Type u_3} {π•œβ‚‚ : Type u_4} {E : Type u_7} {Eβ‚‚ : Type u_8} [SeminormedRing π•œ] [SeminormedRing π•œβ‚‚] {σ₁₂ : π•œ β†’+* π•œβ‚‚} [RingHomIsometric σ₁₂] [AddCommGroup E] [AddCommGroup Eβ‚‚] [Module π•œ E] [Module π•œβ‚‚ Eβ‚‚] (p : Seminorm π•œβ‚‚ Eβ‚‚) (q : Seminorm π•œβ‚‚ Eβ‚‚) (f : E β†’β‚›β‚—[σ₁₂] Eβ‚‚) :
              theorem Seminorm.comp_add_le {π•œ : Type u_3} {π•œβ‚‚ : Type u_4} {E : Type u_7} {Eβ‚‚ : Type u_8} [SeminormedRing π•œ] [SeminormedRing π•œβ‚‚] {σ₁₂ : π•œ β†’+* π•œβ‚‚} [RingHomIsometric σ₁₂] [AddCommGroup E] [AddCommGroup Eβ‚‚] [Module π•œ E] [Module π•œβ‚‚ Eβ‚‚] (p : Seminorm π•œβ‚‚ Eβ‚‚) (f : E β†’β‚›β‚—[σ₁₂] Eβ‚‚) (g : E β†’β‚›β‚—[σ₁₂] Eβ‚‚) :
              theorem Seminorm.smul_comp {R : Type u_1} {π•œ : Type u_3} {π•œβ‚‚ : Type u_4} {E : Type u_7} {Eβ‚‚ : Type u_8} [SeminormedRing π•œ] [SeminormedRing π•œβ‚‚] {σ₁₂ : π•œ β†’+* π•œβ‚‚} [RingHomIsometric σ₁₂] [AddCommGroup E] [AddCommGroup Eβ‚‚] [Module π•œ E] [Module π•œβ‚‚ Eβ‚‚] [SMul R ℝ] [SMul R NNReal] [IsScalarTower R NNReal ℝ] (p : Seminorm π•œβ‚‚ Eβ‚‚) (f : E β†’β‚›β‚—[σ₁₂] Eβ‚‚) (c : R) :
              theorem Seminorm.comp_mono {π•œ : Type u_3} {π•œβ‚‚ : Type u_4} {E : Type u_7} {Eβ‚‚ : Type u_8} [SeminormedRing π•œ] [SeminormedRing π•œβ‚‚] {σ₁₂ : π•œ β†’+* π•œβ‚‚} [RingHomIsometric σ₁₂] [AddCommGroup E] [AddCommGroup Eβ‚‚] [Module π•œ E] [Module π•œβ‚‚ Eβ‚‚] {p : Seminorm π•œβ‚‚ Eβ‚‚} {q : Seminorm π•œβ‚‚ Eβ‚‚} (f : E β†’β‚›β‚—[σ₁₂] Eβ‚‚) (hp : p ≀ q) :
              @[simp]
              theorem Seminorm.pullback_apply {π•œ : Type u_3} {π•œβ‚‚ : Type u_4} {E : Type u_7} {Eβ‚‚ : Type u_8} [SeminormedRing π•œ] [SeminormedRing π•œβ‚‚] {σ₁₂ : π•œ β†’+* π•œβ‚‚} [RingHomIsometric σ₁₂] [AddCommGroup E] [AddCommGroup Eβ‚‚] [Module π•œ E] [Module π•œβ‚‚ Eβ‚‚] (f : E β†’β‚›β‚—[σ₁₂] Eβ‚‚) (p : Seminorm π•œβ‚‚ Eβ‚‚) :
              def Seminorm.pullback {π•œ : Type u_3} {π•œβ‚‚ : Type u_4} {E : Type u_7} {Eβ‚‚ : Type u_8} [SeminormedRing π•œ] [SeminormedRing π•œβ‚‚] {σ₁₂ : π•œ β†’+* π•œβ‚‚} [RingHomIsometric σ₁₂] [AddCommGroup E] [AddCommGroup Eβ‚‚] [Module π•œ E] [Module π•œβ‚‚ Eβ‚‚] (f : E β†’β‚›β‚—[σ₁₂] Eβ‚‚) :
              Seminorm π•œβ‚‚ Eβ‚‚ β†’+ Seminorm π•œ E

              The composition as an AddMonoidHom.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                instance Seminorm.instOrderBot {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddCommGroup E] [Module π•œ E] :
                OrderBot (Seminorm π•œ E)
                Equations
                @[simp]
                theorem Seminorm.coe_bot {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddCommGroup E] [Module π•œ E] :
                ⇑βŠ₯ = 0
                theorem Seminorm.bot_eq_zero {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddCommGroup E] [Module π•œ E] :
                theorem Seminorm.smul_le_smul {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddCommGroup E] [Module π•œ E] {p : Seminorm π•œ E} {q : Seminorm π•œ E} {a : NNReal} {b : NNReal} (hpq : p ≀ q) (hab : a ≀ b) :
                theorem Seminorm.finset_sup_apply {π•œ : Type u_3} {E : Type u_7} {ΞΉ : Type u_12} [SeminormedRing π•œ] [AddCommGroup E] [Module π•œ E] (p : ΞΉ β†’ Seminorm π•œ E) (s : Finset ΞΉ) (x : E) :
                (Finset.sup s p) x = ↑(Finset.sup s fun (i : ΞΉ) => { val := (p i) x, property := (_ : 0 ≀ (p i) x) })
                theorem Seminorm.exists_apply_eq_finset_sup {π•œ : Type u_3} {E : Type u_7} {ΞΉ : Type u_12} [SeminormedRing π•œ] [AddCommGroup E] [Module π•œ E] (p : ΞΉ β†’ Seminorm π•œ E) {s : Finset ΞΉ} (hs : s.Nonempty) (x : E) :
                βˆƒ i ∈ s, (Finset.sup s p) x = (p i) x
                theorem Seminorm.zero_or_exists_apply_eq_finset_sup {π•œ : Type u_3} {E : Type u_7} {ΞΉ : Type u_12} [SeminormedRing π•œ] [AddCommGroup E] [Module π•œ E] (p : ΞΉ β†’ Seminorm π•œ E) (s : Finset ΞΉ) (x : E) :
                (Finset.sup s p) x = 0 ∨ βˆƒ i ∈ s, (Finset.sup s p) x = (p i) x
                theorem Seminorm.finset_sup_smul {π•œ : Type u_3} {E : Type u_7} {ΞΉ : Type u_12} [SeminormedRing π•œ] [AddCommGroup E] [Module π•œ E] (p : ΞΉ β†’ Seminorm π•œ E) (s : Finset ΞΉ) (C : NNReal) :
                theorem Seminorm.finset_sup_le_sum {π•œ : Type u_3} {E : Type u_7} {ΞΉ : Type u_12} [SeminormedRing π•œ] [AddCommGroup E] [Module π•œ E] (p : ΞΉ β†’ Seminorm π•œ E) (s : Finset ΞΉ) :
                Finset.sup s p ≀ Finset.sum s fun (i : ΞΉ) => p i
                theorem Seminorm.finset_sup_apply_le {π•œ : Type u_3} {E : Type u_7} {ΞΉ : Type u_12} [SeminormedRing π•œ] [AddCommGroup E] [Module π•œ E] {p : ΞΉ β†’ Seminorm π•œ E} {s : Finset ΞΉ} {x : E} {a : ℝ} (ha : 0 ≀ a) (h : βˆ€ i ∈ s, (p i) x ≀ a) :
                theorem Seminorm.le_finset_sup_apply {π•œ : Type u_3} {E : Type u_7} {ΞΉ : Type u_12} [SeminormedRing π•œ] [AddCommGroup E] [Module π•œ E] {p : ΞΉ β†’ Seminorm π•œ E} {s : Finset ΞΉ} {x : E} {i : ΞΉ} (hi : i ∈ s) :
                (p i) x ≀ (Finset.sup s p) x
                theorem Seminorm.finset_sup_apply_lt {π•œ : Type u_3} {E : Type u_7} {ΞΉ : Type u_12} [SeminormedRing π•œ] [AddCommGroup E] [Module π•œ E] {p : ΞΉ β†’ Seminorm π•œ E} {s : Finset ΞΉ} {x : E} {a : ℝ} (ha : 0 < a) (h : βˆ€ i ∈ s, (p i) x < a) :
                (Finset.sup s p) x < a
                theorem Seminorm.norm_sub_map_le_sub {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddCommGroup E] [Module π•œ E] (p : Seminorm π•œ E) (x : E) (y : E) :
                β€–p x - p yβ€– ≀ p (x - y)
                theorem Seminorm.comp_smul {π•œ : Type u_3} {π•œβ‚‚ : Type u_4} {E : Type u_7} {Eβ‚‚ : Type u_8} [SeminormedRing π•œ] [SeminormedCommRing π•œβ‚‚] {σ₁₂ : π•œ β†’+* π•œβ‚‚} [RingHomIsometric σ₁₂] [AddCommGroup E] [AddCommGroup Eβ‚‚] [Module π•œ E] [Module π•œβ‚‚ Eβ‚‚] (p : Seminorm π•œβ‚‚ Eβ‚‚) (f : E β†’β‚›β‚—[σ₁₂] Eβ‚‚) (c : π•œβ‚‚) :
                theorem Seminorm.comp_smul_apply {π•œ : Type u_3} {π•œβ‚‚ : Type u_4} {E : Type u_7} {Eβ‚‚ : Type u_8} [SeminormedRing π•œ] [SeminormedCommRing π•œβ‚‚] {σ₁₂ : π•œ β†’+* π•œβ‚‚} [RingHomIsometric σ₁₂] [AddCommGroup E] [AddCommGroup Eβ‚‚] [Module π•œ E] [Module π•œβ‚‚ Eβ‚‚] (p : Seminorm π•œβ‚‚ Eβ‚‚) (f : E β†’β‚›β‚—[σ₁₂] Eβ‚‚) (c : π•œβ‚‚) (x : E) :
                (Seminorm.comp p (c β€’ f)) x = β€–cβ€– * p (f x)
                theorem Seminorm.bddBelow_range_add {π•œ : Type u_3} {E : Type u_7} [NormedField π•œ] [AddCommGroup E] [Module π•œ E] {p : Seminorm π•œ E} {q : Seminorm π•œ E} {x : E} :
                BddBelow (Set.range fun (u : E) => p u + q (x - u))

                Auxiliary lemma to show that the infimum of seminorms is well-defined.

                noncomputable instance Seminorm.instInf {π•œ : Type u_3} {E : Type u_7} [NormedField π•œ] [AddCommGroup E] [Module π•œ E] :
                Inf (Seminorm π•œ E)
                Equations
                • One or more equations did not get rendered due to their size.
                @[simp]
                theorem Seminorm.inf_apply {π•œ : Type u_3} {E : Type u_7} [NormedField π•œ] [AddCommGroup E] [Module π•œ E] (p : Seminorm π•œ E) (q : Seminorm π•œ E) (x : E) :
                (p βŠ“ q) x = β¨… (u : E), p u + q (x - u)
                noncomputable instance Seminorm.instLattice {π•œ : Type u_3} {E : Type u_7} [NormedField π•œ] [AddCommGroup E] [Module π•œ E] :
                Lattice (Seminorm π•œ E)
                Equations
                • One or more equations did not get rendered due to their size.
                theorem Seminorm.smul_inf {R : Type u_1} {π•œ : Type u_3} {E : Type u_7} [NormedField π•œ] [AddCommGroup E] [Module π•œ E] [SMul R ℝ] [SMul R NNReal] [IsScalarTower R NNReal ℝ] (r : R) (p : Seminorm π•œ E) (q : Seminorm π•œ E) :
                noncomputable instance Seminorm.instSupSet {π•œ : Type u_3} {E : Type u_7} [NormedField π•œ] [AddCommGroup E] [Module π•œ E] :
                SupSet (Seminorm π•œ E)

                We define the supremum of an arbitrary subset of Seminorm π•œ E as follows:

                • if s is BddAbove as a set of functions E β†’ ℝ (that is, if s is pointwise bounded above), we take the pointwise supremum of all elements of s, and we prove that it is indeed a seminorm.
                • otherwise, we take the zero seminorm βŠ₯.

                There are two things worth mentioning here:

                • First, it is not trivial at first that s being bounded above by a function implies being bounded above as a seminorm. We show this in Seminorm.bddAbove_iff by using that the Sup s as defined here is then a bounding seminorm for s. So it is important to make the case disjunction on BddAbove ((↑) '' s : Set (E β†’ ℝ)) and not BddAbove s.
                • Since the pointwise Sup already gives 0 at points where a family of functions is not bounded above, one could hope that just using the pointwise Sup would work here, without the need for an additional case disjunction. As discussed on Zulip, this doesn't work because this can give a function which does not satisfy the seminorm axioms (typically sub-additivity).
                Equations
                • One or more equations did not get rendered due to their size.
                theorem Seminorm.coe_sSup_eq' {π•œ : Type u_3} {E : Type u_7} [NormedField π•œ] [AddCommGroup E] [Module π•œ E] {s : Set (Seminorm π•œ E)} (hs : BddAbove (DFunLike.coe '' s)) :
                ⇑(sSup s) = ⨆ (p : ↑s), ⇑↑p
                theorem Seminorm.bddAbove_iff {π•œ : Type u_3} {E : Type u_7} [NormedField π•œ] [AddCommGroup E] [Module π•œ E] {s : Set (Seminorm π•œ E)} :
                BddAbove s ↔ BddAbove (DFunLike.coe '' s)
                theorem Seminorm.bddAbove_range_iff {π•œ : Type u_3} {E : Type u_7} {ΞΉ : Type u_12} [NormedField π•œ] [AddCommGroup E] [Module π•œ E] {p : ΞΉ β†’ Seminorm π•œ E} :
                BddAbove (Set.range p) ↔ βˆ€ (x : E), BddAbove (Set.range fun (i : ΞΉ) => (p i) x)
                theorem Seminorm.coe_sSup_eq {π•œ : Type u_3} {E : Type u_7} [NormedField π•œ] [AddCommGroup E] [Module π•œ E] {s : Set (Seminorm π•œ E)} (hs : BddAbove s) :
                ⇑(sSup s) = ⨆ (p : ↑s), ⇑↑p
                theorem Seminorm.coe_iSup_eq {π•œ : Type u_3} {E : Type u_7} [NormedField π•œ] [AddCommGroup E] [Module π•œ E] {ΞΉ : Type u_13} {p : ΞΉ β†’ Seminorm π•œ E} (hp : BddAbove (Set.range p)) :
                ⇑(⨆ (i : ΞΉ), p i) = ⨆ (i : ΞΉ), ⇑(p i)
                theorem Seminorm.sSup_apply {π•œ : Type u_3} {E : Type u_7} [NormedField π•œ] [AddCommGroup E] [Module π•œ E] {s : Set (Seminorm π•œ E)} (hp : BddAbove s) {x : E} :
                (sSup s) x = ⨆ (p : ↑s), ↑p x
                theorem Seminorm.iSup_apply {π•œ : Type u_3} {E : Type u_7} [NormedField π•œ] [AddCommGroup E] [Module π•œ E] {ΞΉ : Type u_13} {p : ΞΉ β†’ Seminorm π•œ E} (hp : BddAbove (Set.range p)) {x : E} :
                (⨆ (i : ΞΉ), p i) x = ⨆ (i : ΞΉ), (p i) x
                theorem Seminorm.sSup_empty {π•œ : Type u_3} {E : Type u_7} [NormedField π•œ] [AddCommGroup E] [Module π•œ E] :
                noncomputable instance Seminorm.instConditionallyCompleteLattice {π•œ : Type u_3} {E : Type u_7} [NormedField π•œ] [AddCommGroup E] [Module π•œ E] :

                Seminorm π•œ E is a conditionally complete lattice.

                Note that, while inf, sup and sSup have good definitional properties (corresponding to the instances given here for Inf, Sup and SupSet respectively), sInf s is just defined as the supremum of the lower bounds of s, which is not really useful in practice. If you need to use sInf on seminorms, then you should probably provide a more workable definition first, but this is unlikely to happen so we keep the "bad" definition for now.

                Equations

                Seminorm ball #

                def Seminorm.ball {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddCommGroup E] [SMul π•œ E] (p : Seminorm π•œ E) (x : E) (r : ℝ) :
                Set E

                The ball of radius r at x with respect to seminorm p is the set of elements y with p (y - x) < r.

                Equations
                Instances For
                  def Seminorm.closedBall {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddCommGroup E] [SMul π•œ E] (p : Seminorm π•œ E) (x : E) (r : ℝ) :
                  Set E

                  The closed ball of radius r at x with respect to seminorm p is the set of elements y with p (y - x) ≀ r.

                  Equations
                  Instances For
                    @[simp]
                    theorem Seminorm.mem_ball {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddCommGroup E] [SMul π•œ E] (p : Seminorm π•œ E) {x : E} {y : E} {r : ℝ} :
                    y ∈ Seminorm.ball p x r ↔ p (y - x) < r
                    @[simp]
                    theorem Seminorm.mem_closedBall {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddCommGroup E] [SMul π•œ E] (p : Seminorm π•œ E) {x : E} {y : E} {r : ℝ} :
                    theorem Seminorm.mem_ball_self {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddCommGroup E] [SMul π•œ E] (p : Seminorm π•œ E) {x : E} {r : ℝ} (hr : 0 < r) :
                    theorem Seminorm.mem_closedBall_self {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddCommGroup E] [SMul π•œ E] (p : Seminorm π•œ E) {x : E} {r : ℝ} (hr : 0 ≀ r) :
                    theorem Seminorm.mem_ball_zero {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddCommGroup E] [SMul π•œ E] (p : Seminorm π•œ E) {y : E} {r : ℝ} :
                    theorem Seminorm.mem_closedBall_zero {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddCommGroup E] [SMul π•œ E] (p : Seminorm π•œ E) {y : E} {r : ℝ} :
                    theorem Seminorm.ball_zero_eq {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddCommGroup E] [SMul π•œ E] (p : Seminorm π•œ E) {r : ℝ} :
                    Seminorm.ball p 0 r = {y : E | p y < r}
                    theorem Seminorm.closedBall_zero_eq {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddCommGroup E] [SMul π•œ E] (p : Seminorm π•œ E) {r : ℝ} :
                    Seminorm.closedBall p 0 r = {y : E | p y ≀ r}
                    theorem Seminorm.ball_subset_closedBall {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddCommGroup E] [SMul π•œ E] (p : Seminorm π•œ E) (x : E) (r : ℝ) :
                    theorem Seminorm.closedBall_eq_biInter_ball {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddCommGroup E] [SMul π•œ E] (p : Seminorm π•œ E) (x : E) (r : ℝ) :
                    Seminorm.closedBall p x r = β‹‚ (ρ : ℝ), β‹‚ (_ : ρ > r), Seminorm.ball p x ρ
                    @[simp]
                    theorem Seminorm.ball_zero' {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddCommGroup E] [SMul π•œ E] {r : ℝ} (x : E) (hr : 0 < r) :
                    Seminorm.ball 0 x r = Set.univ
                    @[simp]
                    theorem Seminorm.closedBall_zero' {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddCommGroup E] [SMul π•œ E] {r : ℝ} (x : E) (hr : 0 < r) :
                    Seminorm.closedBall 0 x r = Set.univ
                    theorem Seminorm.ball_smul {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddCommGroup E] [SMul π•œ E] (p : Seminorm π•œ E) {c : NNReal} (hc : 0 < c) (r : ℝ) (x : E) :
                    Seminorm.ball (c β€’ p) x r = Seminorm.ball p x (r / ↑c)
                    theorem Seminorm.closedBall_smul {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddCommGroup E] [SMul π•œ E] (p : Seminorm π•œ E) {c : NNReal} (hc : 0 < c) (r : ℝ) (x : E) :
                    theorem Seminorm.ball_sup {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddCommGroup E] [SMul π•œ E] (p : Seminorm π•œ E) (q : Seminorm π•œ E) (e : E) (r : ℝ) :
                    theorem Seminorm.closedBall_sup {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddCommGroup E] [SMul π•œ E] (p : Seminorm π•œ E) (q : Seminorm π•œ E) (e : E) (r : ℝ) :
                    theorem Seminorm.ball_finset_sup' {π•œ : Type u_3} {E : Type u_7} {ΞΉ : Type u_12} [SeminormedRing π•œ] [AddCommGroup E] [SMul π•œ E] (p : ΞΉ β†’ Seminorm π•œ E) (s : Finset ΞΉ) (H : s.Nonempty) (e : E) (r : ℝ) :
                    Seminorm.ball (Finset.sup' s H p) e r = Finset.inf' s H fun (i : ΞΉ) => Seminorm.ball (p i) e r
                    theorem Seminorm.closedBall_finset_sup' {π•œ : Type u_3} {E : Type u_7} {ΞΉ : Type u_12} [SeminormedRing π•œ] [AddCommGroup E] [SMul π•œ E] (p : ΞΉ β†’ Seminorm π•œ E) (s : Finset ΞΉ) (H : s.Nonempty) (e : E) (r : ℝ) :
                    Seminorm.closedBall (Finset.sup' s H p) e r = Finset.inf' s H fun (i : ΞΉ) => Seminorm.closedBall (p i) e r
                    theorem Seminorm.ball_mono {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddCommGroup E] [SMul π•œ E] {x : E} {p : Seminorm π•œ E} {r₁ : ℝ} {rβ‚‚ : ℝ} (h : r₁ ≀ rβ‚‚) :
                    Seminorm.ball p x r₁ βŠ† Seminorm.ball p x rβ‚‚
                    theorem Seminorm.closedBall_mono {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddCommGroup E] [SMul π•œ E] {x : E} {p : Seminorm π•œ E} {r₁ : ℝ} {rβ‚‚ : ℝ} (h : r₁ ≀ rβ‚‚) :
                    theorem Seminorm.ball_antitone {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddCommGroup E] [SMul π•œ E] {x : E} {r : ℝ} {p : Seminorm π•œ E} {q : Seminorm π•œ E} (h : q ≀ p) :
                    theorem Seminorm.closedBall_antitone {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddCommGroup E] [SMul π•œ E] {x : E} {r : ℝ} {p : Seminorm π•œ E} {q : Seminorm π•œ E} (h : q ≀ p) :
                    theorem Seminorm.ball_add_ball_subset {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddCommGroup E] [SMul π•œ E] (p : Seminorm π•œ E) (r₁ : ℝ) (rβ‚‚ : ℝ) (x₁ : E) (xβ‚‚ : E) :
                    Seminorm.ball p x₁ r₁ + Seminorm.ball p xβ‚‚ rβ‚‚ βŠ† Seminorm.ball p (x₁ + xβ‚‚) (r₁ + rβ‚‚)
                    theorem Seminorm.closedBall_add_closedBall_subset {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddCommGroup E] [SMul π•œ E] (p : Seminorm π•œ E) (r₁ : ℝ) (rβ‚‚ : ℝ) (x₁ : E) (xβ‚‚ : E) :
                    Seminorm.closedBall p x₁ r₁ + Seminorm.closedBall p xβ‚‚ rβ‚‚ βŠ† Seminorm.closedBall p (x₁ + xβ‚‚) (r₁ + rβ‚‚)
                    theorem Seminorm.sub_mem_ball {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddCommGroup E] [SMul π•œ E] (p : Seminorm π•œ E) (x₁ : E) (xβ‚‚ : E) (y : E) (r : ℝ) :
                    x₁ - xβ‚‚ ∈ Seminorm.ball p y r ↔ x₁ ∈ Seminorm.ball p (xβ‚‚ + y) r
                    theorem Seminorm.vadd_ball {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddCommGroup E] [SMul π•œ E] {x : E} {y : E} {r : ℝ} (p : Seminorm π•œ E) :

                    The image of a ball under addition with a singleton is another ball.

                    theorem Seminorm.vadd_closedBall {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddCommGroup E] [SMul π•œ E] {x : E} {y : E} {r : ℝ} (p : Seminorm π•œ E) :

                    The image of a closed ball under addition with a singleton is another closed ball.

                    theorem Seminorm.ball_comp {π•œ : Type u_3} {π•œβ‚‚ : Type u_4} {E : Type u_7} {Eβ‚‚ : Type u_8} [SeminormedRing π•œ] [AddCommGroup E] [Module π•œ E] [SeminormedRing π•œβ‚‚] [AddCommGroup Eβ‚‚] [Module π•œβ‚‚ Eβ‚‚] {σ₁₂ : π•œ β†’+* π•œβ‚‚} [RingHomIsometric σ₁₂] (p : Seminorm π•œβ‚‚ Eβ‚‚) (f : E β†’β‚›β‚—[σ₁₂] Eβ‚‚) (x : E) (r : ℝ) :
                    theorem Seminorm.closedBall_comp {π•œ : Type u_3} {π•œβ‚‚ : Type u_4} {E : Type u_7} {Eβ‚‚ : Type u_8} [SeminormedRing π•œ] [AddCommGroup E] [Module π•œ E] [SeminormedRing π•œβ‚‚] [AddCommGroup Eβ‚‚] [Module π•œβ‚‚ Eβ‚‚] {σ₁₂ : π•œ β†’+* π•œβ‚‚} [RingHomIsometric σ₁₂] (p : Seminorm π•œβ‚‚ Eβ‚‚) (f : E β†’β‚›β‚—[σ₁₂] Eβ‚‚) (x : E) (r : ℝ) :
                    theorem Seminorm.preimage_metric_ball {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddCommGroup E] [Module π•œ E] (p : Seminorm π•œ E) {r : ℝ} :
                    ⇑p ⁻¹' Metric.ball 0 r = {x : E | p x < r}
                    theorem Seminorm.preimage_metric_closedBall {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddCommGroup E] [Module π•œ E] (p : Seminorm π•œ E) {r : ℝ} :
                    ⇑p ⁻¹' Metric.closedBall 0 r = {x : E | p x ≀ r}
                    theorem Seminorm.ball_zero_eq_preimage_ball {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddCommGroup E] [Module π•œ E] (p : Seminorm π•œ E) {r : ℝ} :
                    theorem Seminorm.closedBall_zero_eq_preimage_closedBall {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddCommGroup E] [Module π•œ E] (p : Seminorm π•œ E) {r : ℝ} :
                    @[simp]
                    theorem Seminorm.ball_bot {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddCommGroup E] [Module π•œ E] {r : ℝ} (x : E) (hr : 0 < r) :
                    Seminorm.ball βŠ₯ x r = Set.univ
                    @[simp]
                    theorem Seminorm.closedBall_bot {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddCommGroup E] [Module π•œ E] {r : ℝ} (x : E) (hr : 0 < r) :
                    theorem Seminorm.balanced_ball_zero {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddCommGroup E] [Module π•œ E] (p : Seminorm π•œ E) (r : ℝ) :
                    Balanced π•œ (Seminorm.ball p 0 r)

                    Seminorm-balls at the origin are balanced.

                    theorem Seminorm.balanced_closedBall_zero {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddCommGroup E] [Module π•œ E] (p : Seminorm π•œ E) (r : ℝ) :
                    Balanced π•œ (Seminorm.closedBall p 0 r)

                    Closed seminorm-balls at the origin are balanced.

                    theorem Seminorm.ball_finset_sup_eq_iInter {π•œ : Type u_3} {E : Type u_7} {ΞΉ : Type u_12} [SeminormedRing π•œ] [AddCommGroup E] [Module π•œ E] (p : ΞΉ β†’ Seminorm π•œ E) (s : Finset ΞΉ) (x : E) {r : ℝ} (hr : 0 < r) :
                    Seminorm.ball (Finset.sup s p) x r = β‹‚ i ∈ s, Seminorm.ball (p i) x r
                    theorem Seminorm.closedBall_finset_sup_eq_iInter {π•œ : Type u_3} {E : Type u_7} {ΞΉ : Type u_12} [SeminormedRing π•œ] [AddCommGroup E] [Module π•œ E] (p : ΞΉ β†’ Seminorm π•œ E) (s : Finset ΞΉ) (x : E) {r : ℝ} (hr : 0 ≀ r) :
                    Seminorm.closedBall (Finset.sup s p) x r = β‹‚ i ∈ s, Seminorm.closedBall (p i) x r
                    theorem Seminorm.ball_finset_sup {π•œ : Type u_3} {E : Type u_7} {ΞΉ : Type u_12} [SeminormedRing π•œ] [AddCommGroup E] [Module π•œ E] (p : ΞΉ β†’ Seminorm π•œ E) (s : Finset ΞΉ) (x : E) {r : ℝ} (hr : 0 < r) :
                    Seminorm.ball (Finset.sup s p) x r = Finset.inf s fun (i : ΞΉ) => Seminorm.ball (p i) x r
                    theorem Seminorm.closedBall_finset_sup {π•œ : Type u_3} {E : Type u_7} {ΞΉ : Type u_12} [SeminormedRing π•œ] [AddCommGroup E] [Module π•œ E] (p : ΞΉ β†’ Seminorm π•œ E) (s : Finset ΞΉ) (x : E) {r : ℝ} (hr : 0 ≀ r) :
                    Seminorm.closedBall (Finset.sup s p) x r = Finset.inf s fun (i : ΞΉ) => Seminorm.closedBall (p i) x r
                    @[simp]
                    theorem Seminorm.ball_eq_emptyset {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddCommGroup E] [Module π•œ E] (p : Seminorm π•œ E) {x : E} {r : ℝ} (hr : r ≀ 0) :
                    @[simp]
                    theorem Seminorm.closedBall_eq_emptyset {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddCommGroup E] [Module π•œ E] (p : Seminorm π•œ E) {x : E} {r : ℝ} (hr : r < 0) :
                    theorem Seminorm.closedBall_smul_ball {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddCommGroup E] [Module π•œ E] (p : Seminorm π•œ E) {r₁ : ℝ} (hr₁ : r₁ β‰  0) (rβ‚‚ : ℝ) :
                    Metric.closedBall 0 r₁ β€’ Seminorm.ball p 0 rβ‚‚ βŠ† Seminorm.ball p 0 (r₁ * rβ‚‚)
                    theorem Seminorm.ball_smul_closedBall {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddCommGroup E] [Module π•œ E] (p : Seminorm π•œ E) (r₁ : ℝ) {rβ‚‚ : ℝ} (hrβ‚‚ : rβ‚‚ β‰  0) :
                    Metric.ball 0 r₁ β€’ Seminorm.closedBall p 0 rβ‚‚ βŠ† Seminorm.ball p 0 (r₁ * rβ‚‚)
                    theorem Seminorm.ball_smul_ball {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddCommGroup E] [Module π•œ E] (p : Seminorm π•œ E) (r₁ : ℝ) (rβ‚‚ : ℝ) :
                    Metric.ball 0 r₁ β€’ Seminorm.ball p 0 rβ‚‚ βŠ† Seminorm.ball p 0 (r₁ * rβ‚‚)
                    theorem Seminorm.closedBall_smul_closedBall {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddCommGroup E] [Module π•œ E] (p : Seminorm π•œ E) (r₁ : ℝ) (rβ‚‚ : ℝ) :
                    Metric.closedBall 0 r₁ β€’ Seminorm.closedBall p 0 rβ‚‚ βŠ† Seminorm.closedBall p 0 (r₁ * rβ‚‚)
                    theorem Seminorm.neg_mem_ball_zero {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddCommGroup E] [Module π•œ E] (p : Seminorm π•œ E) {r : ℝ} {x : E} :
                    @[simp]
                    theorem Seminorm.neg_ball {π•œ : Type u_3} {E : Type u_7} [SeminormedRing π•œ] [AddCommGroup E] [Module π•œ E] (p : Seminorm π•œ E) (r : ℝ) (x : E) :
                    theorem Seminorm.closedBall_iSup {π•œ : Type u_3} {E : Type u_7} {ΞΉ : Type u_12} [NormedField π•œ] [AddCommGroup E] [Module π•œ E] {p : ΞΉ β†’ Seminorm π•œ E} (hp : BddAbove (Set.range p)) (e : E) {r : ℝ} (hr : 0 < r) :
                    Seminorm.closedBall (⨆ (i : ΞΉ), p i) e r = β‹‚ (i : ΞΉ), Seminorm.closedBall (p i) e r
                    theorem Seminorm.ball_norm_mul_subset {π•œ : Type u_3} {E : Type u_7} [NormedField π•œ] [AddCommGroup E] [Module π•œ E] {p : Seminorm π•œ E} {k : π•œ} {r : ℝ} :
                    theorem Seminorm.smul_ball_zero {π•œ : Type u_3} {E : Type u_7} [NormedField π•œ] [AddCommGroup E] [Module π•œ E] {p : Seminorm π•œ E} {k : π•œ} {r : ℝ} (hk : k β‰  0) :
                    theorem Seminorm.smul_closedBall_subset {π•œ : Type u_3} {E : Type u_7} [NormedField π•œ] [AddCommGroup E] [Module π•œ E] {p : Seminorm π•œ E} {k : π•œ} {r : ℝ} :
                    theorem Seminorm.smul_closedBall_zero {π•œ : Type u_3} {E : Type u_7} [NormedField π•œ] [AddCommGroup E] [Module π•œ E] {p : Seminorm π•œ E} {k : π•œ} {r : ℝ} (hk : 0 < β€–kβ€–) :
                    theorem Seminorm.ball_zero_absorbs_ball_zero {π•œ : Type u_3} {E : Type u_7} [NormedField π•œ] [AddCommGroup E] [Module π•œ E] (p : Seminorm π•œ E) {r₁ : ℝ} {rβ‚‚ : ℝ} (hr₁ : 0 < r₁) :
                    Absorbs π•œ (Seminorm.ball p 0 r₁) (Seminorm.ball p 0 rβ‚‚)
                    theorem Seminorm.absorbent_ball_zero {π•œ : Type u_3} {E : Type u_7} [NormedField π•œ] [AddCommGroup E] [Module π•œ E] (p : Seminorm π•œ E) {r : ℝ} (hr : 0 < r) :
                    Absorbent π•œ (Seminorm.ball p 0 r)

                    Seminorm-balls at the origin are absorbent.

                    theorem Seminorm.absorbent_closedBall_zero {π•œ : Type u_3} {E : Type u_7} [NormedField π•œ] [AddCommGroup E] [Module π•œ E] (p : Seminorm π•œ E) {r : ℝ} (hr : 0 < r) :

                    Closed seminorm-balls at the origin are absorbent.

                    theorem Seminorm.absorbent_ball {π•œ : Type u_3} {E : Type u_7} [NormedField π•œ] [AddCommGroup E] [Module π•œ E] (p : Seminorm π•œ E) {r : ℝ} {x : E} (hpr : p x < r) :
                    Absorbent π•œ (Seminorm.ball p x r)

                    Seminorm-balls containing the origin are absorbent.

                    theorem Seminorm.absorbent_closedBall {π•œ : Type u_3} {E : Type u_7} [NormedField π•œ] [AddCommGroup E] [Module π•œ E] (p : Seminorm π•œ E) {r : ℝ} {x : E} (hpr : p x < r) :

                    Seminorm-balls containing the origin are absorbent.

                    @[simp]
                    theorem Seminorm.smul_ball_preimage {π•œ : Type u_3} {E : Type u_7} [NormedField π•œ] [AddCommGroup E] [Module π•œ E] (p : Seminorm π•œ E) (y : E) (r : ℝ) (a : π•œ) (ha : a β‰  0) :
                    theorem Seminorm.convexOn {π•œ : Type u_3} {E : Type u_7} [NormedField π•œ] [AddCommGroup E] [NormedSpace ℝ π•œ] [Module π•œ E] [SMul ℝ E] [IsScalarTower ℝ π•œ E] (p : Seminorm π•œ E) :
                    ConvexOn ℝ Set.univ ⇑p

                    A seminorm is convex. Also see convexOn_norm.

                    theorem Seminorm.convex_ball {π•œ : Type u_3} {E : Type u_7} [NormedField π•œ] [AddCommGroup E] [NormedSpace ℝ π•œ] [Module π•œ E] [Module ℝ E] [IsScalarTower ℝ π•œ E] (p : Seminorm π•œ E) (x : E) (r : ℝ) :

                    Seminorm-balls are convex.

                    theorem Seminorm.convex_closedBall {π•œ : Type u_3} {E : Type u_7} [NormedField π•œ] [AddCommGroup E] [NormedSpace ℝ π•œ] [Module π•œ E] [Module ℝ E] [IsScalarTower ℝ π•œ E] (p : Seminorm π•œ E) (x : E) (r : ℝ) :

                    Closed seminorm-balls are convex.

                    def Seminorm.restrictScalars (π•œ : Type u_3) {E : Type u_7} {π•œ' : Type u_13} [NormedField π•œ] [SeminormedRing π•œ'] [NormedAlgebra π•œ π•œ'] [NormOneClass π•œ'] [AddCommGroup E] [Module π•œ' E] [SMul π•œ E] [IsScalarTower π•œ π•œ' E] (p : Seminorm π•œ' E) :
                    Seminorm π•œ E

                    Reinterpret a seminorm over a field π•œ' as a seminorm over a smaller field π•œ. This will typically be used with IsROrC π•œ' and π•œ = ℝ.

                    Equations
                    Instances For
                      @[simp]
                      theorem Seminorm.coe_restrictScalars (π•œ : Type u_3) {E : Type u_7} {π•œ' : Type u_13} [NormedField π•œ] [SeminormedRing π•œ'] [NormedAlgebra π•œ π•œ'] [NormOneClass π•œ'] [AddCommGroup E] [Module π•œ' E] [SMul π•œ E] [IsScalarTower π•œ π•œ' E] (p : Seminorm π•œ' E) :
                      ⇑(Seminorm.restrictScalars π•œ p) = ⇑p
                      @[simp]
                      theorem Seminorm.restrictScalars_ball (π•œ : Type u_3) {E : Type u_7} {π•œ' : Type u_13} [NormedField π•œ] [SeminormedRing π•œ'] [NormedAlgebra π•œ π•œ'] [NormOneClass π•œ'] [AddCommGroup E] [Module π•œ' E] [SMul π•œ E] [IsScalarTower π•œ π•œ' E] (p : Seminorm π•œ' E) :
                      @[simp]
                      theorem Seminorm.restrictScalars_closedBall (π•œ : Type u_3) {E : Type u_7} {π•œ' : Type u_13} [NormedField π•œ] [SeminormedRing π•œ'] [NormedAlgebra π•œ π•œ'] [NormOneClass π•œ'] [AddCommGroup E] [Module π•œ' E] [SMul π•œ E] [IsScalarTower π•œ π•œ' E] (p : Seminorm π•œ' E) :

                      Continuity criterions for seminorms #

                      theorem Seminorm.continuousAt_zero_of_forall' {𝕝 : Type u_6} {E : Type u_7} [SeminormedRing 𝕝] [AddCommGroup E] [Module 𝕝 E] [TopologicalSpace E] {p : Seminorm 𝕝 E} (hp : βˆ€ r > 0, Seminorm.closedBall p 0 r ∈ nhds 0) :
                      ContinuousAt (⇑p) 0

                      A seminorm is continuous at 0 if p.closedBall 0 r ∈ 𝓝 0 for all r > 0. Over a NontriviallyNormedField it is actually enough to check that this is true for some r, see Seminorm.continuousAt_zero'.

                      theorem Seminorm.continuousAt_zero' {π•œ : Type u_3} {E : Type u_7} [NontriviallyNormedField π•œ] [AddCommGroup E] [Module π•œ E] [TopologicalSpace E] [ContinuousConstSMul π•œ E] {p : Seminorm π•œ E} {r : ℝ} (hp : Seminorm.closedBall p 0 r ∈ nhds 0) :
                      ContinuousAt (⇑p) 0
                      theorem Seminorm.continuousAt_zero_of_forall {𝕝 : Type u_6} {E : Type u_7} [SeminormedRing 𝕝] [AddCommGroup E] [Module 𝕝 E] [TopologicalSpace E] {p : Seminorm 𝕝 E} (hp : βˆ€ r > 0, Seminorm.ball p 0 r ∈ nhds 0) :
                      ContinuousAt (⇑p) 0

                      A seminorm is continuous at 0 if p.ball 0 r ∈ 𝓝 0 for all r > 0. Over a NontriviallyNormedField it is actually enough to check that this is true for some r, see Seminorm.continuousAt_zero'.

                      theorem Seminorm.continuousAt_zero {π•œ : Type u_3} {E : Type u_7} [NontriviallyNormedField π•œ] [AddCommGroup E] [Module π•œ E] [TopologicalSpace E] [ContinuousConstSMul π•œ E] {p : Seminorm π•œ E} {r : ℝ} (hp : Seminorm.ball p 0 r ∈ nhds 0) :
                      ContinuousAt (⇑p) 0
                      theorem Seminorm.uniformContinuous_of_continuousAt_zero {𝕝 : Type u_6} {E : Type u_7} [SeminormedRing 𝕝] [AddCommGroup E] [Module 𝕝 E] [UniformSpace E] [UniformAddGroup E] {p : Seminorm 𝕝 E} (hp : ContinuousAt (⇑p) 0) :
                      theorem Seminorm.continuous_of_continuousAt_zero {𝕝 : Type u_6} {E : Type u_7} [SeminormedRing 𝕝] [AddCommGroup E] [Module 𝕝 E] [TopologicalSpace E] [TopologicalAddGroup E] {p : Seminorm 𝕝 E} (hp : ContinuousAt (⇑p) 0) :
                      Continuous ⇑p
                      theorem Seminorm.uniformContinuous_of_forall {𝕝 : Type u_6} {E : Type u_7} [SeminormedRing 𝕝] [AddCommGroup E] [Module 𝕝 E] [UniformSpace E] [UniformAddGroup E] {p : Seminorm 𝕝 E} (hp : βˆ€ r > 0, Seminorm.ball p 0 r ∈ nhds 0) :

                      A seminorm is uniformly continuous if p.ball 0 r ∈ 𝓝 0 for all r > 0. Over a NontriviallyNormedField it is actually enough to check that this is true for some r, see Seminorm.uniformContinuous.

                      theorem Seminorm.uniformContinuous {π•œ : Type u_3} {E : Type u_7} [NontriviallyNormedField π•œ] [AddCommGroup E] [Module π•œ E] [UniformSpace E] [UniformAddGroup E] [ContinuousConstSMul π•œ E] {p : Seminorm π•œ E} {r : ℝ} (hp : Seminorm.ball p 0 r ∈ nhds 0) :
                      theorem Seminorm.uniformContinuous_of_forall' {𝕝 : Type u_6} {E : Type u_7} [SeminormedRing 𝕝] [AddCommGroup E] [Module 𝕝 E] [UniformSpace E] [UniformAddGroup E] {p : Seminorm 𝕝 E} (hp : βˆ€ r > 0, Seminorm.closedBall p 0 r ∈ nhds 0) :

                      A seminorm is uniformly continuous if p.closedBall 0 r ∈ 𝓝 0 for all r > 0. Over a NontriviallyNormedField it is actually enough to check that this is true for some r, see Seminorm.uniformContinuous'.

                      theorem Seminorm.uniformContinuous' {π•œ : Type u_3} {E : Type u_7} [NontriviallyNormedField π•œ] [AddCommGroup E] [Module π•œ E] [UniformSpace E] [UniformAddGroup E] [ContinuousConstSMul π•œ E] {p : Seminorm π•œ E} {r : ℝ} (hp : Seminorm.closedBall p 0 r ∈ nhds 0) :
                      theorem Seminorm.continuous_of_forall {𝕝 : Type u_6} {E : Type u_7} [SeminormedRing 𝕝] [AddCommGroup E] [Module 𝕝 E] [TopologicalSpace E] [TopologicalAddGroup E] {p : Seminorm 𝕝 E} (hp : βˆ€ r > 0, Seminorm.ball p 0 r ∈ nhds 0) :
                      Continuous ⇑p

                      A seminorm is continuous if p.ball 0 r ∈ 𝓝 0 for all r > 0. Over a NontriviallyNormedField it is actually enough to check that this is true for some r, see Seminorm.continuous.

                      theorem Seminorm.continuous {π•œ : Type u_3} {E : Type u_7} [NontriviallyNormedField π•œ] [AddCommGroup E] [Module π•œ E] [TopologicalSpace E] [TopologicalAddGroup E] [ContinuousConstSMul π•œ E] {p : Seminorm π•œ E} {r : ℝ} (hp : Seminorm.ball p 0 r ∈ nhds 0) :
                      Continuous ⇑p
                      theorem Seminorm.continuous_of_forall' {𝕝 : Type u_6} {E : Type u_7} [SeminormedRing 𝕝] [AddCommGroup E] [Module 𝕝 E] [TopologicalSpace E] [TopologicalAddGroup E] {p : Seminorm 𝕝 E} (hp : βˆ€ r > 0, Seminorm.closedBall p 0 r ∈ nhds 0) :
                      Continuous ⇑p

                      A seminorm is continuous if p.closedBall 0 r ∈ 𝓝 0 for all r > 0. Over a NontriviallyNormedField it is actually enough to check that this is true for some r, see Seminorm.continuous'.

                      theorem Seminorm.continuous' {π•œ : Type u_3} {E : Type u_7} [NontriviallyNormedField π•œ] [AddCommGroup E] [Module π•œ E] [TopologicalSpace E] [TopologicalAddGroup E] [ContinuousConstSMul π•œ E] {p : Seminorm π•œ E} {r : ℝ} (hp : Seminorm.closedBall p 0 r ∈ nhds 0) :
                      Continuous ⇑p
                      theorem Seminorm.continuous_of_le {𝕝 : Type u_6} {E : Type u_7} [SeminormedRing 𝕝] [AddCommGroup E] [Module 𝕝 E] [TopologicalSpace E] [TopologicalAddGroup E] {p : Seminorm 𝕝 E} {q : Seminorm 𝕝 E} (hq : Continuous ⇑q) (hpq : p ≀ q) :
                      Continuous ⇑p
                      theorem Seminorm.ball_mem_nhds {𝕝 : Type u_6} {E : Type u_7} [SeminormedRing 𝕝] [AddCommGroup E] [Module 𝕝 E] [TopologicalSpace E] {p : Seminorm 𝕝 E} (hp : Continuous ⇑p) {r : ℝ} (hr : 0 < r) :
                      theorem Seminorm.uniformSpace_eq_of_hasBasis {π•œ : Type u_3} {E : Type u_7} [NontriviallyNormedField π•œ] [AddCommGroup E] [Module π•œ E] {ΞΉ : Sort u_13} [UniformSpace E] [UniformAddGroup E] [ContinuousConstSMul π•œ E] {p' : ΞΉ β†’ Prop} {s : ΞΉ β†’ Set E} (p : Seminorm π•œ E) (hb : Filter.HasBasis (nhds 0) p' s) (h₁ : βˆƒ (r : ℝ), Seminorm.closedBall p 0 r ∈ nhds 0) (hβ‚‚ : βˆ€ (i : ΞΉ), p' i β†’ βˆƒ r > 0, Seminorm.ball p 0 r βŠ† s i) :
                      inst✝² = PseudoMetricSpace.toUniformSpace
                      theorem Seminorm.uniformity_eq_of_hasBasis {π•œ : Type u_3} {E : Type u_7} [NontriviallyNormedField π•œ] [AddCommGroup E] [Module π•œ E] {ΞΉ : Sort u_13} [UniformSpace E] [UniformAddGroup E] [ContinuousConstSMul π•œ E] {p' : ΞΉ β†’ Prop} {s : ΞΉ β†’ Set E} (p : Seminorm π•œ E) (hb : Filter.HasBasis (nhds 0) p' s) (h₁ : βˆƒ (r : ℝ), Seminorm.closedBall p 0 r ∈ nhds 0) (hβ‚‚ : βˆ€ (i : ΞΉ), p' i β†’ βˆƒ r > 0, Seminorm.ball p 0 r βŠ† s i) :
                      uniformity E = β¨… (r : ℝ), β¨… (_ : r > 0), Filter.principal {x : E Γ— E | p (x.1 - x.2) < r}
                      theorem Seminorm.rescale_to_shell_zpow {π•œ : Type u_3} {E : Type u_7} [NormedField π•œ] [AddCommGroup E] [Module π•œ E] (p : Seminorm π•œ E) {c : π•œ} (hc : 1 < β€–cβ€–) {Ξ΅ : ℝ} (Ξ΅pos : 0 < Ξ΅) {x : E} (hx : p x β‰  0) :
                      βˆƒ (n : β„€), c ^ n β‰  0 ∧ p (c ^ n β€’ x) < Ξ΅ ∧ Ξ΅ / β€–cβ€– ≀ p (c ^ n β€’ x) ∧ β€–c ^ n‖⁻¹ ≀ Ρ⁻¹ * β€–cβ€– * p x

                      Let p be a seminorm on a vector space over a NormedField. If there is a scalar c with β€–cβ€–>1, then any x such that p x β‰  0 can be moved by scalar multiplication to any p-shell of width β€–cβ€–. Also recap information on the value of p on the rescaling element that shows up in applications.

                      theorem Seminorm.rescale_to_shell {π•œ : Type u_3} {E : Type u_7} [NormedField π•œ] [AddCommGroup E] [Module π•œ E] (p : Seminorm π•œ E) {c : π•œ} (hc : 1 < β€–cβ€–) {Ξ΅ : ℝ} (Ξ΅pos : 0 < Ξ΅) {x : E} (hx : p x β‰  0) :
                      βˆƒ (d : π•œ), d β‰  0 ∧ p (d β€’ x) < Ξ΅ ∧ Ξ΅ / β€–cβ€– ≀ p (d β€’ x) ∧ β€–d‖⁻¹ ≀ Ρ⁻¹ * β€–cβ€– * p x

                      Let p be a seminorm on a vector space over a NormedField. If there is a scalar c with β€–cβ€–>1, then any x such that p x β‰  0 can be moved by scalar multiplication to any p-shell of width β€–cβ€–. Also recap information on the value of p on the rescaling element that shows up in applications.

                      theorem Seminorm.bound_of_shell {π•œ : Type u_3} {E : Type u_7} [NormedField π•œ] [AddCommGroup E] [Module π•œ E] (p : Seminorm π•œ E) (q : Seminorm π•œ E) {Ξ΅ : ℝ} {C : ℝ} (Ξ΅_pos : 0 < Ξ΅) {c : π•œ} (hc : 1 < β€–cβ€–) (hf : βˆ€ (x : E), Ξ΅ / β€–cβ€– ≀ p x β†’ p x < Ξ΅ β†’ q x ≀ C * p x) {x : E} (hx : p x β‰  0) :
                      q x ≀ C * p x

                      Let p and q be two seminorms on a vector space over a nontrivially_normed_field. If we have q x ≀ C * p x on some shell of the form {x | Ξ΅/β€–cβ€– ≀ p x < Ξ΅} (where Ξ΅ > 0 and β€–cβ€– > 1), then we also have q x ≀ C * p x for all x such that p x β‰  0.

                      theorem Seminorm.bound_of_shell_smul {π•œ : Type u_3} {E : Type u_7} [NormedField π•œ] [AddCommGroup E] [Module π•œ E] (p : Seminorm π•œ E) (q : Seminorm π•œ E) {Ξ΅ : ℝ} {C : NNReal} (Ξ΅_pos : 0 < Ξ΅) {c : π•œ} (hc : 1 < β€–cβ€–) (hf : βˆ€ (x : E), Ξ΅ / β€–cβ€– ≀ p x β†’ p x < Ξ΅ β†’ q x ≀ (C β€’ p) x) {x : E} (hx : p x β‰  0) :
                      q x ≀ (C β€’ p) x

                      A version of Seminorm.bound_of_shell expressed using pointwise scalar multiplication of seminorms.

                      theorem Seminorm.bound_of_shell_sup {π•œ : Type u_3} {E : Type u_7} {ΞΉ : Type u_12} [NormedField π•œ] [AddCommGroup E] [Module π•œ E] (p : ΞΉ β†’ Seminorm π•œ E) (s : Finset ΞΉ) (q : Seminorm π•œ E) {Ξ΅ : ℝ} {C : NNReal} (Ξ΅_pos : 0 < Ξ΅) {c : π•œ} (hc : 1 < β€–cβ€–) (hf : βˆ€ (x : E), (βˆ€ i ∈ s, (p i) x < Ξ΅) β†’ βˆ€ j ∈ s, Ξ΅ / β€–cβ€– ≀ (p j) x β†’ q x ≀ (C β€’ p j) x) {x : E} (hx : βˆƒ j ∈ s, (p j) x β‰  0) :
                      q x ≀ (C β€’ Finset.sup s p) x
                      theorem Seminorm.bddAbove_of_absorbent {π•œ : Type u_3} {E : Type u_7} {ΞΉ : Type u_12} [NontriviallyNormedField π•œ] [AddCommGroup E] [Module π•œ E] {p : ΞΉ β†’ Seminorm π•œ E} {s : Set E} (hs : Absorbent π•œ s) (h : βˆ€ x ∈ s, BddAbove (Set.range fun (x_1 : ΞΉ) => (p x_1) x)) :

                      Let p i be a family of seminorms on E. Let s be an absorbent set in π•œ. If all seminorms are uniformly bounded at every point of s, then they are bounded in the space of seminorms.

                      The norm as a seminorm #

                      def normSeminorm (π•œ : Type u_3) (E : Type u_7) [NormedField π•œ] [SeminormedAddCommGroup E] [NormedSpace π•œ E] :
                      Seminorm π•œ E

                      The norm of a seminormed group as a seminorm.

                      Equations
                      Instances For
                        @[simp]
                        theorem coe_normSeminorm (π•œ : Type u_3) (E : Type u_7) [NormedField π•œ] [SeminormedAddCommGroup E] [NormedSpace π•œ E] :
                        ⇑(normSeminorm π•œ E) = norm
                        @[simp]
                        theorem ball_normSeminorm (π•œ : Type u_3) (E : Type u_7) [NormedField π•œ] [SeminormedAddCommGroup E] [NormedSpace π•œ E] :
                        Seminorm.ball (normSeminorm π•œ E) = Metric.ball
                        theorem absorbent_ball_zero {π•œ : Type u_3} {E : Type u_7} [NormedField π•œ] [SeminormedAddCommGroup E] [NormedSpace π•œ E] {r : ℝ} (hr : 0 < r) :
                        Absorbent π•œ (Metric.ball 0 r)

                        Balls at the origin are absorbent.

                        theorem absorbent_ball {π•œ : Type u_3} {E : Type u_7} [NormedField π•œ] [SeminormedAddCommGroup E] [NormedSpace π•œ E] {r : ℝ} {x : E} (hx : β€–xβ€– < r) :
                        Absorbent π•œ (Metric.ball x r)

                        Balls containing the origin are absorbent.

                        theorem balanced_ball_zero {π•œ : Type u_3} {E : Type u_7} [NormedField π•œ] [SeminormedAddCommGroup E] [NormedSpace π•œ E] {r : ℝ} :
                        Balanced π•œ (Metric.ball 0 r)

                        Balls at the origin are balanced.

                        theorem rescale_to_shell_semi_normed_zpow {π•œ : Type u_3} {E : Type u_7} [NormedField π•œ] [SeminormedAddCommGroup E] [NormedSpace π•œ E] {c : π•œ} (hc : 1 < β€–cβ€–) {Ξ΅ : ℝ} (Ξ΅pos : 0 < Ξ΅) {x : E} (hx : β€–xβ€– β‰  0) :

                        If there is a scalar c with β€–cβ€–>1, then any element with nonzero norm can be moved by scalar multiplication to any shell of width β€–cβ€–. Also recap information on the norm of the rescaling element that shows up in applications.

                        theorem rescale_to_shell_semi_normed {π•œ : Type u_3} {E : Type u_7} [NormedField π•œ] [SeminormedAddCommGroup E] [NormedSpace π•œ E] {c : π•œ} (hc : 1 < β€–cβ€–) {Ξ΅ : ℝ} (Ξ΅pos : 0 < Ξ΅) {x : E} (hx : β€–xβ€– β‰  0) :

                        If there is a scalar c with β€–cβ€–>1, then any element with nonzero norm can be moved by scalar multiplication to any shell of width β€–cβ€–. Also recap information on the norm of the rescaling element that shows up in applications.

                        theorem rescale_to_shell_zpow {π•œ : Type u_3} {F : Type u_10} [NormedField π•œ] [NormedAddCommGroup F] [NormedSpace π•œ F] {c : π•œ} (hc : 1 < β€–cβ€–) {Ξ΅ : ℝ} (Ξ΅pos : 0 < Ξ΅) {x : F} (hx : x β‰  0) :
                        theorem rescale_to_shell {π•œ : Type u_3} {F : Type u_10} [NormedField π•œ] [NormedAddCommGroup F] [NormedSpace π•œ F] {c : π•œ} (hc : 1 < β€–cβ€–) {Ξ΅ : ℝ} (Ξ΅pos : 0 < Ξ΅) {x : F} (hx : x β‰  0) :

                        If there is a scalar c with β€–cβ€–>1, then any element can be moved by scalar multiplication to any shell of width β€–cβ€–. Also recap information on the norm of the rescaling element that shows up in applications.