Documentation

Mathlib.Analysis.NormedSpace.ENormedSpace

Extended norm #

In this file we define a structure ENormedSpace š•œ V representing an extended norm (i.e., a norm that can take the value āˆž) on a vector space V over a normed field š•œ. We do not use class for an ENormedSpace because the same space can have more than one extended norm. For example, the space of measurable functions f : Ī± ā†’ ā„ has a family of L_p extended norms.

We prove some basic inequalities, then define

The last definition is an instance because the type involves e.

Implementation notes #

We do not define extended normed groups. They can be added to the chain once someone will need them.

Tags #

normed space, extended norm

structure ENormedSpace (š•œ : Type u_1) (V : Type u_2) [NormedField š•œ] [AddCommGroup V] [Module š•œ V] :
Type u_2

Extended norm on a vector space. As in the case of normed spaces, we require only ā€–c ā€¢ xā€– ā‰¤ ā€–cā€– * ā€–xā€– in the definition, then prove an equality in map_smul.

  • toFun : V ā†’ ENNReal

    The norm of an ENormedspace, taking values into ā„ā‰„0āˆž.

  • eq_zero' (x : V) : ā†‘self x = 0 ā†’ x = 0
  • map_add_le' (x y : V) : ā†‘self (x + y) ā‰¤ ā†‘self x + ā†‘self y
  • map_smul_le' (c : š•œ) (x : V) : ā†‘self (c ā€¢ x) ā‰¤ ā†‘ā€–cā€–ā‚Š * ā†‘self x
Instances For
    instance ENormedSpace.instCoeFunForallENNReal {š•œ : Type u_1} {V : Type u_2} [NormedField š•œ] [AddCommGroup V] [Module š•œ V] :
    CoeFun (ENormedSpace š•œ V) fun (x : ENormedSpace š•œ V) => V ā†’ ENNReal
    Equations
    • ENormedSpace.instCoeFunForallENNReal = { coe := ENormedSpace.toFun }
    theorem ENormedSpace.coeFn_injective {š•œ : Type u_1} {V : Type u_2} [NormedField š•œ] [AddCommGroup V] [Module š•œ V] :
    Function.Injective ENormedSpace.toFun
    theorem ENormedSpace.ext {š•œ : Type u_1} {V : Type u_2} [NormedField š•œ] [AddCommGroup V] [Module š•œ V] {eā‚ eā‚‚ : ENormedSpace š•œ V} (h : āˆ€ (x : V), ā†‘eā‚ x = ā†‘eā‚‚ x) :
    eā‚ = eā‚‚
    @[simp]
    theorem ENormedSpace.coe_inj {š•œ : Type u_1} {V : Type u_2} [NormedField š•œ] [AddCommGroup V] [Module š•œ V] {eā‚ eā‚‚ : ENormedSpace š•œ V} :
    ā†‘eā‚ = ā†‘eā‚‚ ā†” eā‚ = eā‚‚
    @[simp]
    theorem ENormedSpace.map_smul {š•œ : Type u_1} {V : Type u_2} [NormedField š•œ] [AddCommGroup V] [Module š•œ V] (e : ENormedSpace š•œ V) (c : š•œ) (x : V) :
    ā†‘e (c ā€¢ x) = ā†‘ā€–cā€–ā‚Š * ā†‘e x
    @[simp]
    theorem ENormedSpace.map_zero {š•œ : Type u_1} {V : Type u_2} [NormedField š•œ] [AddCommGroup V] [Module š•œ V] (e : ENormedSpace š•œ V) :
    ā†‘e 0 = 0
    @[simp]
    theorem ENormedSpace.eq_zero_iff {š•œ : Type u_1} {V : Type u_2} [NormedField š•œ] [AddCommGroup V] [Module š•œ V] (e : ENormedSpace š•œ V) {x : V} :
    ā†‘e x = 0 ā†” x = 0
    @[simp]
    theorem ENormedSpace.map_neg {š•œ : Type u_1} {V : Type u_2} [NormedField š•œ] [AddCommGroup V] [Module š•œ V] (e : ENormedSpace š•œ V) (x : V) :
    ā†‘e (-x) = ā†‘e x
    theorem ENormedSpace.map_sub_rev {š•œ : Type u_1} {V : Type u_2} [NormedField š•œ] [AddCommGroup V] [Module š•œ V] (e : ENormedSpace š•œ V) (x y : V) :
    ā†‘e (x - y) = ā†‘e (y - x)
    theorem ENormedSpace.map_add_le {š•œ : Type u_1} {V : Type u_2} [NormedField š•œ] [AddCommGroup V] [Module š•œ V] (e : ENormedSpace š•œ V) (x y : V) :
    ā†‘e (x + y) ā‰¤ ā†‘e x + ā†‘e y
    theorem ENormedSpace.map_sub_le {š•œ : Type u_1} {V : Type u_2} [NormedField š•œ] [AddCommGroup V] [Module š•œ V] (e : ENormedSpace š•œ V) (x y : V) :
    ā†‘e (x - y) ā‰¤ ā†‘e x + ā†‘e y
    instance ENormedSpace.partialOrder {š•œ : Type u_1} {V : Type u_2} [NormedField š•œ] [AddCommGroup V] [Module š•œ V] :
    Equations
    noncomputable instance ENormedSpace.instTop {š•œ : Type u_1} {V : Type u_2} [NormedField š•œ] [AddCommGroup V] [Module š•œ V] :
    Top (ENormedSpace š•œ V)

    The ENormedSpace sending each non-zero vector to infinity.

    Equations
    • ENormedSpace.instTop = { top := { toFun := fun (x : V) => if x = 0 then 0 else āŠ¤, eq_zero' := ā‹Æ, map_add_le' := ā‹Æ, map_smul_le' := ā‹Æ } }
    noncomputable instance ENormedSpace.instInhabited {š•œ : Type u_1} {V : Type u_2} [NormedField š•œ] [AddCommGroup V] [Module š•œ V] :
    Inhabited (ENormedSpace š•œ V)
    Equations
    • ENormedSpace.instInhabited = { default := āŠ¤ }
    theorem ENormedSpace.top_map {š•œ : Type u_1} {V : Type u_2} [NormedField š•œ] [AddCommGroup V] [Module š•œ V] {x : V} (hx : x ā‰  0) :
    ā†‘āŠ¤ x = āŠ¤
    noncomputable instance ENormedSpace.instOrderTop {š•œ : Type u_1} {V : Type u_2} [NormedField š•œ] [AddCommGroup V] [Module š•œ V] :
    OrderTop (ENormedSpace š•œ V)
    Equations
    noncomputable instance ENormedSpace.instSemilatticeSup {š•œ : Type u_1} {V : Type u_2} [NormedField š•œ] [AddCommGroup V] [Module š•œ V] :
    Equations
    • One or more equations did not get rendered due to their size.
    @[simp]
    theorem ENormedSpace.coe_max {š•œ : Type u_1} {V : Type u_2} [NormedField š•œ] [AddCommGroup V] [Module š•œ V] (eā‚ eā‚‚ : ENormedSpace š•œ V) :
    ā†‘(eā‚ āŠ” eā‚‚) = fun (x : V) => ā†‘eā‚ x āŠ” ā†‘eā‚‚ x
    theorem ENormedSpace.max_map {š•œ : Type u_1} {V : Type u_2} [NormedField š•œ] [AddCommGroup V] [Module š•œ V] (eā‚ eā‚‚ : ENormedSpace š•œ V) (x : V) :
    ā†‘(eā‚ āŠ” eā‚‚) x = ā†‘eā‚ x āŠ” ā†‘eā‚‚ x
    @[reducible, inline]
    abbrev ENormedSpace.emetricSpace {š•œ : Type u_1} {V : Type u_2} [NormedField š•œ] [AddCommGroup V] [Module š•œ V] (e : ENormedSpace š•œ V) :

    Structure of an EMetricSpace defined by an extended norm.

    Equations
    Instances For
      def ENormedSpace.finiteSubspace {š•œ : Type u_1} {V : Type u_2} [NormedField š•œ] [AddCommGroup V] [Module š•œ V] (e : ENormedSpace š•œ V) :
      Subspace š•œ V

      The subspace of vectors with finite ENormedSpace.

      Equations
      • e.finiteSubspace = { carrier := {x : V | ā†‘e x < āŠ¤}, add_mem' := ā‹Æ, zero_mem' := ā‹Æ, smul_mem' := ā‹Æ }
      Instances For
        instance ENormedSpace.metricSpace {š•œ : Type u_1} {V : Type u_2} [NormedField š•œ] [AddCommGroup V] [Module š•œ V] (e : ENormedSpace š•œ V) :
        MetricSpace ā†„e.finiteSubspace

        Metric space structure on e.finiteSubspace. We use EMetricSpace.toMetricSpace to ensure that this definition agrees with e.emetricSpace.

        Equations
        theorem ENormedSpace.finite_dist_eq {š•œ : Type u_1} {V : Type u_2} [NormedField š•œ] [AddCommGroup V] [Module š•œ V] (e : ENormedSpace š•œ V) (x y : ā†„e.finiteSubspace) :
        dist x y = (ā†‘e (ā†‘x - ā†‘y)).toReal
        theorem ENormedSpace.finite_edist_eq {š•œ : Type u_1} {V : Type u_2} [NormedField š•œ] [AddCommGroup V] [Module š•œ V] (e : ENormedSpace š•œ V) (x y : ā†„e.finiteSubspace) :
        edist x y = ā†‘e (ā†‘x - ā†‘y)
        instance ENormedSpace.normedAddCommGroup {š•œ : Type u_1} {V : Type u_2} [NormedField š•œ] [AddCommGroup V] [Module š•œ V] (e : ENormedSpace š•œ V) :
        NormedAddCommGroup ā†„e.finiteSubspace

        Normed group instance on e.finiteSubspace.

        Equations
        theorem ENormedSpace.finite_norm_eq {š•œ : Type u_1} {V : Type u_2} [NormedField š•œ] [AddCommGroup V] [Module š•œ V] (e : ENormedSpace š•œ V) (x : ā†„e.finiteSubspace) :
        ā€–xā€– = (ā†‘e ā†‘x).toReal
        instance ENormedSpace.normedSpace {š•œ : Type u_1} {V : Type u_2} [NormedField š•œ] [AddCommGroup V] [Module š•œ V] (e : ENormedSpace š•œ V) :
        NormedSpace š•œ ā†„e.finiteSubspace

        Normed space instance on e.finiteSubspace.

        Equations