doc-next-gen

Mathlib.Analysis.Normed.Module.Basic

Module docstring

{"# Normed spaces

In this file we define (semi)normed spaces and algebras. We also prove some theorems about these definitions. ","### Structures for constructing new normed spaces

This section contains tools meant for constructing new normed spaces. These allow one to easily construct all the relevant instances (distances measures, etc) while proving only a minimal set of axioms. Furthermore, tools are provided to add a norm structure to a type that already has a preexisting uniformity or bornology: in such cases, it is necessary to keep the preexisting instances, while ensuring that the norm induces the same uniformity/bornology. "}

NormedSpace structure
(π•œ : Type*) (E : Type*) [NormedField π•œ] [SeminormedAddCommGroup E] extends Module π•œ E
Full source
/-- A normed space over a normed field is a vector space endowed with a norm which satisfies the
equality `β€–c β€’ xβ€– = β€–cβ€– β€–xβ€–`. We require only `β€–c β€’ xβ€– ≀ β€–cβ€– β€–xβ€–` in the definition, then prove
`β€–c β€’ xβ€– = β€–cβ€– β€–xβ€–` in `norm_smul`.

Note that since this requires `SeminormedAddCommGroup` and not `NormedAddCommGroup`, this
typeclass can be used for "semi normed spaces" too, just as `Module` can be used for
"semi modules". -/
class NormedSpace (π•œ : Type*) (E : Type*) [NormedField π•œ] [SeminormedAddCommGroup E]
    extends Module π•œ E where
  protected norm_smul_le : βˆ€ (a : π•œ) (b : E), β€–a β€’ bβ€– ≀ β€–aβ€– * β€–bβ€–
Normed space
Informal description
A normed space over a normed field $\mathbb{K}$ is a vector space $E$ equipped with a seminorm such that the scalar multiplication satisfies the inequality $\|c \cdot x\| \leq \|c\| \cdot \|x\|$ for all $c \in \mathbb{K}$ and $x \in E$. This structure extends the module structure of $E$ over $\mathbb{K}$.
NormedSpace.isBoundedSMul instance
[NormedSpace π•œ E] : IsBoundedSMul π•œ E
Full source
instance (priority := 100) NormedSpace.isBoundedSMul [NormedSpace π•œ E] : IsBoundedSMul π•œ E :=
  IsBoundedSMul.of_norm_smul_le NormedSpace.norm_smul_le
Bounded Scalar Multiplication in Normed Spaces
Informal description
For any normed space $E$ over a normed field $\mathbb{K}$, the scalar multiplication operation is bounded. That is, there exists a constant $C$ such that for all $c \in \mathbb{K}$ and $x \in E$, the norm of the scalar product satisfies $\|c \cdot x\| \leq C \cdot \|c\| \cdot \|x\|$.
NormedField.toNormedSpace instance
: NormedSpace π•œ π•œ
Full source
instance NormedField.toNormedSpace : NormedSpace π•œ π•œ where norm_smul_le a b := norm_mul_le a b
Normed Fields as Normed Spaces over Themselves
Informal description
Every normed field $\mathbb{K}$ is a normed space over itself.
NormedField.to_isBoundedSMul instance
: IsBoundedSMul π•œ π•œ
Full source
instance NormedField.to_isBoundedSMul : IsBoundedSMul π•œ π•œ :=
  NormedSpace.isBoundedSMul
Bounded Scalar Multiplication in Normed Fields
Informal description
Every normed field $\mathbb{K}$ has bounded scalar multiplication when viewed as a normed space over itself. That is, there exists a constant $C$ such that for all $a, b \in \mathbb{K}$, the norm satisfies $\|a \cdot b\| \leq C \cdot \|a\| \cdot \|b\|$.
norm_zsmul theorem
(n : β„€) (x : E) : β€–n β€’ xβ€– = β€–(n : π•œ)β€– * β€–xβ€–
Full source
theorem norm_zsmul (n : β„€) (x : E) : β€–n β€’ xβ€– = β€–(n : π•œ)β€– * β€–xβ€– := by
  rw [← norm_smul, ← Int.smul_one_eq_cast, smul_assoc, one_smul]
Norm of Integer Scalar Multiplication in Normed Spaces
Informal description
For any integer $n$ and any element $x$ in a normed space $E$ over a normed field $\mathbb{K}$, the norm of the integer scalar multiple $n \cdot x$ is equal to the product of the norm of $n$ (viewed as an element of $\mathbb{K}$) and the norm of $x$, i.e., $\|n \cdot x\| = \|n\| \cdot \|x\|$.
eventually_nhds_norm_smul_sub_lt theorem
(c : π•œ) (x : E) {Ξ΅ : ℝ} (h : 0 < Ξ΅) : βˆ€αΆ  y in 𝓝 x, β€–c β€’ (y - x)β€– < Ξ΅
Full source
theorem eventually_nhds_norm_smul_sub_lt (c : π•œ) (x : E) {Ξ΅ : ℝ} (h : 0 < Ξ΅) :
    βˆ€αΆ  y in 𝓝 x, β€–c β€’ (y - x)β€– < Ξ΅ :=
  have : Tendsto (fun y ↦ β€–c β€’ (y - x)β€–) (𝓝 x) (𝓝 0) :=
    Continuous.tendsto' (by fun_prop) _ _ (by simp)
  this.eventually (gt_mem_nhds h)
Neighborhood Condition for Scaled Differences in Normed Spaces
Informal description
For any scalar $c$ in a normed field $\mathbb{K}$, any point $x$ in a normed space $E$ over $\mathbb{K}$, and any positive real number $\varepsilon > 0$, there exists a neighborhood of $x$ such that for all $y$ in this neighborhood, the norm of the scaled difference $\|c \cdot (y - x)\|$ is less than $\varepsilon$.
Filter.Tendsto.zero_smul_isBoundedUnder_le theorem
{f : Ξ± β†’ π•œ} {g : Ξ± β†’ E} {l : Filter Ξ±} (hf : Tendsto f l (𝓝 0)) (hg : IsBoundedUnder (Β· ≀ Β·) l (Norm.norm ∘ g)) : Tendsto (fun x => f x β€’ g x) l (𝓝 0)
Full source
theorem Filter.Tendsto.zero_smul_isBoundedUnder_le {f : Ξ± β†’ π•œ} {g : Ξ± β†’ E} {l : Filter Ξ±}
    (hf : Tendsto f l (𝓝 0)) (hg : IsBoundedUnder (Β· ≀ Β·) l (Norm.normNorm.norm ∘ g)) :
    Tendsto (fun x => f x β€’ g x) l (𝓝 0) :=
  hf.op_zero_isBoundedUnder_le hg (Β· β€’ Β·) norm_smul_le
Bounded Norm Implies Zero Scalar Multiplication Limit
Informal description
Let $\mathbb{K}$ be a normed field and $E$ a normed space over $\mathbb{K}$. Given functions $f : \alpha \to \mathbb{K}$ and $g : \alpha \to E$ and a filter $l$ on $\alpha$, if $f$ tends to $0$ along $l$ and the norms $\|g(x)\|$ are bounded above along $l$, then the function $x \mapsto f(x) \cdot g(x)$ tends to $0$ along $l$.
Filter.IsBoundedUnder.smul_tendsto_zero theorem
{f : Ξ± β†’ π•œ} {g : Ξ± β†’ E} {l : Filter Ξ±} (hf : IsBoundedUnder (Β· ≀ Β·) l (norm ∘ f)) (hg : Tendsto g l (𝓝 0)) : Tendsto (fun x => f x β€’ g x) l (𝓝 0)
Full source
theorem Filter.IsBoundedUnder.smul_tendsto_zero {f : Ξ± β†’ π•œ} {g : Ξ± β†’ E} {l : Filter Ξ±}
    (hf : IsBoundedUnder (Β· ≀ Β·) l (normnorm ∘ f)) (hg : Tendsto g l (𝓝 0)) :
    Tendsto (fun x => f x β€’ g x) l (𝓝 0) :=
  hg.op_zero_isBoundedUnder_le hf (flip (Β· β€’ Β·)) fun x y =>
    (norm_smul_le y x).trans_eq (mul_comm _ _)
Bounded scalar multiplication tends to zero when second factor tends to zero
Informal description
Let $\mathbb{K}$ be a normed field and $E$ a normed space over $\mathbb{K}$. Given functions $f : \alpha \to \mathbb{K}$ and $g : \alpha \to E$, and a filter $l$ on $\alpha$, if the norms of $f$ are bounded under $l$ and $g$ tends to $0$ along $l$, then the scalar product $f(x) \cdot g(x)$ tends to $0$ along $l$.
NormedSpace.discreteTopology_zmultiples instance
{E : Type*} [NormedAddCommGroup E] [NormedSpace β„š E] (e : E) : DiscreteTopology <| AddSubgroup.zmultiples e
Full source
instance NormedSpace.discreteTopology_zmultiples
    {E : Type*} [NormedAddCommGroup E] [NormedSpace β„š E] (e : E) :
    DiscreteTopology <| AddSubgroup.zmultiples e := by
  rcases eq_or_ne e 0 with (rfl | he)
  Β· rw [AddSubgroup.zmultiples_zero_eq_bot]
    exact Subsingleton.discreteTopology (Ξ± := ↑(βŠ₯ : Subspace β„š E))
  Β· rw [discreteTopology_iff_isOpen_singleton_zero, isOpen_induced_iff]
    refine ⟨Metric.ball 0 β€–eβ€–, Metric.isOpen_ball, ?_⟩
    ext ⟨x, hx⟩
    obtain ⟨k, rfl⟩ := AddSubgroup.mem_zmultiples_iff.mp hx
    rw [mem_preimage, mem_ball_zero_iff, AddSubgroup.coe_mk, mem_singleton_iff, Subtype.ext_iff,
      AddSubgroup.coe_mk, AddSubgroup.coe_zero, norm_zsmul β„š k e, Int.norm_cast_rat,
      Int.norm_eq_abs, mul_lt_iff_lt_one_left (norm_pos_iff.mpr he), ← @Int.cast_one ℝ _,
      ← Int.cast_abs, Int.cast_lt, Int.abs_lt_one_iff, smul_eq_zero, or_iff_left he]
Discrete Topology on Cyclic Subgroups in Rational Normed Spaces
Informal description
For any normed additive commutative group $E$ that is also a normed space over the rational numbers $\mathbb{Q}$, and for any element $e \in E$, the additive subgroup generated by $e$ (i.e., the set of all integer multiples of $e$) has the discrete topology.
ULift.normedSpace instance
: NormedSpace π•œ (ULift E)
Full source
instance ULift.normedSpace : NormedSpace π•œ (ULift E) :=
  { __ := ULift.seminormedAddCommGroup (E := E),
    __ := ULift.module'
    norm_smul_le := fun s x => (norm_smul_le s x.down :) }
Normed Space Structure on Lifted Spaces
Informal description
For any normed field $\mathbb{K}$ and normed space $E$ over $\mathbb{K}$, the lifted space $\text{ULift}\, E$ is a normed space over $\mathbb{K}$ with the same norm structure.
Prod.normedSpace instance
: NormedSpace π•œ (E Γ— F)
Full source
/-- The product of two normed spaces is a normed space, with the sup norm. -/
instance Prod.normedSpace : NormedSpace π•œ (E Γ— F) :=
  { Prod.seminormedAddCommGroup (E := E) (F := F), Prod.instModule with
    norm_smul_le := fun s x => by
      simp only [norm_smul, Prod.norm_def, Prod.smul_snd, Prod.smul_fst,
        mul_max_of_nonneg, norm_nonneg, le_rfl] }
Normed Space Structure on Product Spaces
Informal description
For any normed field $\mathbb{K}$ and normed spaces $E$ and $F$ over $\mathbb{K}$, the product space $E \times F$ is a normed space over $\mathbb{K}$ with the supremum norm.
Pi.normedSpace instance
{ΞΉ : Type*} {E : ΞΉ β†’ Type*} [Fintype ΞΉ] [βˆ€ i, SeminormedAddCommGroup (E i)] [βˆ€ i, NormedSpace π•œ (E i)] : NormedSpace π•œ (βˆ€ i, E i)
Full source
/-- The product of finitely many normed spaces is a normed space, with the sup norm. -/
instance Pi.normedSpace {ΞΉ : Type*} {E : ΞΉ β†’ Type*} [Fintype ΞΉ] [βˆ€ i, SeminormedAddCommGroup (E i)]
    [βˆ€ i, NormedSpace π•œ (E i)] : NormedSpace π•œ (βˆ€ i, E i) where
  norm_smul_le a f := by
    simp_rw [← coe_nnnorm, ← NNReal.coe_mul, NNReal.coe_le_coe, Pi.nnnorm_def,
      NNReal.mul_finset_sup]
    exact Finset.sup_mono_fun fun _ _ => norm_smul_le a _
Normed Space Structure on Finite Product Spaces
Informal description
For a finite index type $\iota$ and a family of seminormed additive commutative groups $(E_i)_{i \in \iota}$ each equipped with a normed space structure over a normed field $\mathbb{K}$, the product space $\prod_{i \in \iota} E_i$ is a normed space over $\mathbb{K}$ with the supremum norm.
SeparationQuotient.instNormedSpace instance
: NormedSpace π•œ (SeparationQuotient E)
Full source
instance SeparationQuotient.instNormedSpace : NormedSpace π•œ (SeparationQuotient E) where
  norm_smul_le := norm_smul_le
Normed Space Structure on Separation Quotients
Informal description
For any normed field $\mathbb{K}$ and seminormed additive commutative group $E$, the separation quotient of $E$ is a normed space over $\mathbb{K}$.
MulOpposite.instNormedSpace instance
: NormedSpace π•œ Eᡐᡒᡖ
Full source
instance MulOpposite.instNormedSpace : NormedSpace π•œ Eᡐᡒᡖ where
  norm_smul_le _ x := norm_smul_le _ x.unop
Normed Space Structure on the Multiplicative Opposite
Informal description
For any normed field $\mathbb{K}$ and normed space $E$ over $\mathbb{K}$, the multiplicative opposite $E^\text{op}$ is also a normed space over $\mathbb{K}$ with the same norm structure.
Submodule.normedSpace instance
{π•œ R : Type*} [SMul π•œ R] [NormedField π•œ] [Ring R] {E : Type*} [SeminormedAddCommGroup E] [NormedSpace π•œ E] [Module R E] [IsScalarTower π•œ R E] (s : Submodule R E) : NormedSpace π•œ s
Full source
/-- A subspace of a normed space is also a normed space, with the restriction of the norm. -/
instance Submodule.normedSpace {π•œ R : Type*} [SMul π•œ R] [NormedField π•œ] [Ring R] {E : Type*}
    [SeminormedAddCommGroup E] [NormedSpace π•œ E] [Module R E] [IsScalarTower π•œ R E]
    (s : Submodule R E) : NormedSpace π•œ s where
  norm_smul_le c x := norm_smul_le c (x : E)
Normed Space Structure on Submodules
Informal description
For any normed field $\mathbb{K}$, ring $R$, and normed space $E$ over $\mathbb{K}$ that is also an $R$-module with compatible scalar multiplication, every $R$-submodule $s$ of $E$ inherits a normed space structure over $\mathbb{K}$.
SubmoduleClass.toNormedSpace instance
: NormedSpace π•œ s
Full source
instance (priority := 75) SubmoduleClass.toNormedSpace : NormedSpace π•œ s where
  norm_smul_le c x := norm_smul_le c (x : E)
Normed Space Structure on Scalar-Multiplication-Closed Subsets
Informal description
For any subset $s$ of a normed space $E$ over a normed field $\mathbb{K}$ that is closed under scalar multiplication, $s$ inherits a normed space structure over $\mathbb{K}$.
NormedSpace.induced abbrev
{F : Type*} (π•œ E G : Type*) [NormedField π•œ] [AddCommGroup E] [Module π•œ E] [SeminormedAddCommGroup G] [NormedSpace π•œ G] [FunLike F E G] [LinearMapClass F π•œ E G] (f : F) : @NormedSpace π•œ E _ (SeminormedAddCommGroup.induced E G f)
Full source
/-- A linear map from a `Module` to a `NormedSpace` induces a `NormedSpace` structure on the
domain, using the `SeminormedAddCommGroup.induced` norm.

See note [reducible non-instances] -/
abbrev NormedSpace.induced {F : Type*} (π•œ E G : Type*) [NormedField π•œ] [AddCommGroup E] [Module π•œ E]
    [SeminormedAddCommGroup G] [NormedSpace π•œ G] [FunLike F E G] [LinearMapClass F π•œ E G] (f : F) :
    @NormedSpace π•œ E _ (SeminormedAddCommGroup.induced E G f) :=
  let _ := SeminormedAddCommGroup.induced E G f
  ⟨fun a b ↦ by simpa only [← map_smul f a b] using norm_smul_le a (f b)⟩
Induced Normed Space via Linear Map
Informal description
Given a normed field $\mathbb{K}$, an $\mathbb{K}$-module $E$, and a normed space $G$ over $\mathbb{K}$, any $\mathbb{K}$-linear map $f \colon E \to G$ induces a normed space structure on $E$ via the seminorm $\|x\| := \|f(x)\|$ for $x \in E$.
NormedSpace.exists_lt_norm theorem
(c : ℝ) : βˆƒ x : E, c < β€–xβ€–
Full source
/-- If `E` is a nontrivial normed space over a nontrivially normed field `π•œ`, then `E` is unbounded:
for any `c : ℝ`, there exists a vector `x : E` with norm strictly greater than `c`. -/
theorem NormedSpace.exists_lt_norm (c : ℝ) : βˆƒ x : E, c < β€–xβ€– := by
  rcases exists_ne (0 : E) with ⟨x, hx⟩
  rcases NormedField.exists_lt_norm π•œ (c / β€–xβ€–) with ⟨r, hr⟩
  use r β€’ x
  rwa [norm_smul, ← div_lt_iffβ‚€]
  rwa [norm_pos_iff]
Unboundedness of Nontrivial Normed Spaces: $\forall c \in \mathbb{R}, \exists x \in E, \|x\| > c$
Informal description
For any real number $c$ and any nontrivial normed space $E$ over a nontrivially normed field $\mathbb{K}$, there exists a vector $x \in E$ such that its norm satisfies $\|x\| > c$.
NormedSpace.unbounded_univ theorem
: Β¬Bornology.IsBounded (univ : Set E)
Full source
protected theorem NormedSpace.unbounded_univ : Β¬Bornology.IsBounded (univ : Set E) := fun h =>
  let ⟨R, hR⟩ := isBounded_iff_forall_norm_le.1 h
  let ⟨x, hx⟩ := NormedSpace.exists_lt_norm π•œ E R
  hx.not_le (hR x trivial)
Unboundedness of the Universal Set in a Normed Space
Informal description
The universal set of a nontrivial normed space $E$ is not bounded, i.e., there is no real number $c$ such that $\|x\| \leq c$ for all $x \in E$.
NontriviallyNormedField.cobounded_neBot instance
: NeBot (cobounded π•œ)
Full source
instance (priority := 100) NontriviallyNormedField.cobounded_neBot : NeBot (cobounded π•œ) :=
  NormedSpace.cobounded_neBot π•œ π•œ
Nonemptiness of Cobounded Sets in Nontrivially Normed Fields
Informal description
In a nontrivially normed field $\mathbb{K}$, the filter of cobounded sets is nonempty.
NormedSpace.noncompactSpace theorem
: NoncompactSpace E
Full source
/-- A normed vector space over an infinite normed field is a noncompact space.
This cannot be an instance because in order to apply it,
Lean would have to search for `NormedSpace π•œ E` with unknown `π•œ`.
We register this as an instance in two cases: `π•œ = E` and `π•œ = ℝ`. -/
protected theorem NormedSpace.noncompactSpace : NoncompactSpace E := by
  by_cases H : βˆƒ c : π•œ, c β‰  0 ∧ β€–cβ€– β‰  1
  Β· letI := NontriviallyNormedField.ofNormNeOne H
    exact ⟨fun h ↦ NormedSpace.unbounded_univ π•œ E h.isBounded⟩
  Β· push_neg at H
    rcases exists_ne (0 : E) with ⟨x, hx⟩
    suffices IsClosedEmbedding (Infinite.natEmbedding π•œ Β· β€’ x) from this.noncompactSpace
    refine isClosedEmbedding_of_pairwise_le_dist (norm_pos_iff.2 hx) fun k n hne ↦ ?_
    simp only [dist_eq_norm, ← sub_smul, norm_smul]
    rw [H, one_mul]
    rwa [sub_ne_zero, (Embedding.injective _).ne_iff]
Noncompactness of Normed Spaces over Infinite Fields
Informal description
A normed vector space $E$ over an infinite normed field $\mathbb{K}$ is noncompact.
NormedAlgebra structure
(π•œ : Type*) (π•œ' : Type*) [NormedField π•œ] [SeminormedRing π•œ'] extends Algebra π•œ π•œ'
Full source
/-- A normed algebra `π•œ'` over `π•œ` is normed module that is also an algebra.

See the implementation notes for `Algebra` for a discussion about non-unital algebras. Following
the strategy there, a non-unital *normed* algebra can be written as:
```lean
variable [NormedField π•œ] [NonUnitalSeminormedRing π•œ']
variable [NormedSpace π•œ π•œ'] [SMulCommClass π•œ π•œ' π•œ'] [IsScalarTower π•œ π•œ' π•œ']
```
-/
class NormedAlgebra (π•œ : Type*) (π•œ' : Type*) [NormedField π•œ] [SeminormedRing π•œ'] extends
  Algebra π•œ π•œ' where
  norm_smul_le : βˆ€ (r : π•œ) (x : π•œ'), β€–r β€’ xβ€– ≀ β€–rβ€– * β€–xβ€–
Normed algebra
Informal description
A normed algebra over a normed field $\mathbb{K}$ is a seminormed ring $\mathbb{K}'$ equipped with an algebra structure over $\mathbb{K}$ and a normed space structure over $\mathbb{K}$, such that the norm satisfies $\|\alpha \cdot x\| = |\alpha| \cdot \|x\|$ for all $\alpha \in \mathbb{K}$ and $x \in \mathbb{K}'$.
norm_algebraMap theorem
(x : π•œ) : β€–algebraMap π•œ π•œ' xβ€– = β€–xβ€– * β€–(1 : π•œ')β€–
Full source
theorem norm_algebraMap (x : π•œ) : β€–algebraMap π•œ π•œ' xβ€– = β€–xβ€– * β€–(1 : π•œ')β€– := by
  rw [Algebra.algebraMap_eq_smul_one]
  exact norm_smul _ _
Norm of Algebra Map: $\|\text{algebraMap}(x)\| = \|x\| \cdot \|1\|$
Informal description
For any element $x$ in a normed field $\mathbb{K}$, the norm of the algebra map $\text{algebraMap}_{\mathbb{K}}^{\mathbb{K}'}(x)$ in the normed algebra $\mathbb{K}'$ is equal to the product of the norm of $x$ in $\mathbb{K}$ and the norm of the multiplicative identity $1$ in $\mathbb{K}'$, i.e., \[ \|\text{algebraMap}_{\mathbb{K}}^{\mathbb{K}'}(x)\| = \|x\| \cdot \|1_{\mathbb{K}'}\|. \]
nnnorm_algebraMap theorem
(x : π•œ) : β€–algebraMap π•œ π•œ' xβ€–β‚Š = β€–xβ€–β‚Š * β€–(1 : π•œ')β€–β‚Š
Full source
theorem nnnorm_algebraMap (x : π•œ) : β€–algebraMap π•œ π•œ' xβ€–β‚Š = β€–xβ€–β‚Š * β€–(1 : π•œ')β€–β‚Š :=
  Subtype.ext <| norm_algebraMap π•œ' x
Seminorm of Algebra Map: $\|\text{algebraMap}(x)\|_+ = \|x\|_+ \cdot \|1\|_+$
Informal description
For any element $x$ in a normed field $\mathbb{K}$, the seminorm of the algebra map $\text{algebraMap}_{\mathbb{K}}^{\mathbb{K}'}(x)$ in the normed algebra $\mathbb{K}'$ is equal to the product of the seminorm of $x$ in $\mathbb{K}$ and the seminorm of the multiplicative identity $1$ in $\mathbb{K}'$, i.e., \[ \|\text{algebraMap}_{\mathbb{K}}^{\mathbb{K}'}(x)\|_+ = \|x\|_+ \cdot \|1_{\mathbb{K}'}\|_+. \]
dist_algebraMap theorem
(x y : π•œ) : (dist (algebraMap π•œ π•œ' x) (algebraMap π•œ π•œ' y)) = dist x y * β€–(1 : π•œ')β€–
Full source
theorem dist_algebraMap (x y : π•œ) :
    (dist (algebraMap π•œ π•œ' x) (algebraMap π•œ π•œ' y)) = dist x y * β€–(1 : π•œ')β€– := by
  simp only [dist_eq_norm, ← map_sub, norm_algebraMap]
Distance of Algebra Map: $\text{dist}(\text{algebraMap}(x), \text{algebraMap}(y)) = \text{dist}(x, y) \cdot \|1\|$
Informal description
For any elements $x$ and $y$ in a normed field $\mathbb{K}$, the distance between their images under the algebra map $\text{algebraMap}_{\mathbb{K}}^{\mathbb{K}'}$ in the normed algebra $\mathbb{K}'$ is equal to the product of the distance between $x$ and $y$ in $\mathbb{K}$ and the norm of the multiplicative identity $1$ in $\mathbb{K}'$, i.e., \[ \text{dist}(\text{algebraMap}_{\mathbb{K}}^{\mathbb{K}'}(x), \text{algebraMap}_{\mathbb{K}}^{\mathbb{K}'}(y)) = \text{dist}(x, y) \cdot \|1_{\mathbb{K}'}\|. \]
norm_algebraMap' theorem
[NormOneClass π•œ'] (x : π•œ) : β€–algebraMap π•œ π•œ' xβ€– = β€–xβ€–
Full source
/-- This is a simpler version of `norm_algebraMap` when `β€–1β€– = 1` in `π•œ'`. -/
@[simp]
theorem norm_algebraMap' [NormOneClass π•œ'] (x : π•œ) : β€–algebraMap π•œ π•œ' xβ€– = β€–xβ€– := by
  rw [norm_algebraMap, norm_one, mul_one]
Simplified Norm of Algebra Map: $\|\text{algebraMap}(x)\| = \|x\|$ when $\|1\| = 1$
Informal description
Let $\mathbb{K}$ be a normed field and $\mathbb{K}'$ be a normed algebra over $\mathbb{K}$ with $\|1_{\mathbb{K}'}\| = 1$. Then for any $x \in \mathbb{K}$, the norm of the algebra map $\text{algebraMap}_{\mathbb{K}}^{\mathbb{K}'}(x)$ satisfies $\|\text{algebraMap}_{\mathbb{K}}^{\mathbb{K}'}(x)\| = \|x\|$.
nnnorm_algebraMap' theorem
[NormOneClass π•œ'] (x : π•œ) : β€–algebraMap π•œ π•œ' xβ€–β‚Š = β€–xβ€–β‚Š
Full source
/-- This is a simpler version of `nnnorm_algebraMap` when `β€–1β€– = 1` in `π•œ'`. -/
@[simp]
theorem nnnorm_algebraMap' [NormOneClass π•œ'] (x : π•œ) : β€–algebraMap π•œ π•œ' xβ€–β‚Š = β€–xβ€–β‚Š :=
  Subtype.ext <| norm_algebraMap' _ _
Nonnegative Norm Identity: $\|\text{algebraMap}(x)\|_{\mathbb{R}_{\geq 0}} = \|x\|_{\mathbb{R}_{\geq 0}}$ when $\|1\| = 1$
Informal description
Let $\mathbb{K}$ be a normed field and $\mathbb{K}'$ be a normed algebra over $\mathbb{K}$ with $\|1_{\mathbb{K}'}\| = 1$. Then for any $x \in \mathbb{K}$, the nonnegative norm of the algebra map $\text{algebraMap}_{\mathbb{K}}^{\mathbb{K}'}(x)$ satisfies $\|\text{algebraMap}_{\mathbb{K}}^{\mathbb{K}'}(x)\|_{\mathbb{R}_{\geq 0}} = \|x\|_{\mathbb{R}_{\geq 0}}$.
dist_algebraMap' theorem
[NormOneClass π•œ'] (x y : π•œ) : (dist (algebraMap π•œ π•œ' x) (algebraMap π•œ π•œ' y)) = dist x y
Full source
/-- This is a simpler version of `dist_algebraMap` when `β€–1β€– = 1` in `π•œ'`. -/
@[simp]
theorem dist_algebraMap' [NormOneClass π•œ'] (x y : π•œ) :
    (dist (algebraMap π•œ π•œ' x) (algebraMap π•œ π•œ' y)) = dist x y := by
  simp only [dist_eq_norm, ← map_sub, norm_algebraMap']
Distance Preservation of Algebra Map: $\text{dist}(\text{algebraMap}(x), \text{algebraMap}(y)) = \text{dist}(x, y)$ when $\|1\| = 1$
Informal description
Let $\mathbb{K}$ be a normed field and $\mathbb{K}'$ be a normed algebra over $\mathbb{K}$ with $\|1_{\mathbb{K}'}\| = 1$. Then for any $x, y \in \mathbb{K}$, the distance between the images of $x$ and $y$ under the algebra map $\text{algebraMap}_{\mathbb{K}}^{\mathbb{K}'}$ satisfies $\text{dist}(\text{algebraMap}_{\mathbb{K}}^{\mathbb{K}'}(x), \text{algebraMap}_{\mathbb{K}}^{\mathbb{K}'}(y)) = \text{dist}(x, y)$.
norm_algebraMap_nnreal theorem
(x : ℝβ‰₯0) : β€–algebraMap ℝβ‰₯0 π•œ' xβ€– = x
Full source
@[simp]
theorem norm_algebraMap_nnreal (x : ℝβ‰₯0) : β€–algebraMap ℝβ‰₯0 π•œ' xβ€– = x :=
  (norm_algebraMap' π•œ' (x : ℝ)).symm β–Έ Real.norm_of_nonneg x.prop
Norm of Algebra Map for Nonnegative Reals: $\|\text{algebraMap}(x)\| = x$
Informal description
For any nonnegative real number $x \in \mathbb{R}_{\geq 0}$ and any normed algebra $\mathbb{K}'$ over $\mathbb{R}_{\geq 0}$, the norm of the algebra map $\text{algebraMap}_{\mathbb{R}_{\geq 0}}^{\mathbb{K}'}(x)$ is equal to $x$, i.e., $\|\text{algebraMap}(x)\| = x$.
nnnorm_algebraMap_nnreal theorem
(x : ℝβ‰₯0) : β€–algebraMap ℝβ‰₯0 π•œ' xβ€–β‚Š = x
Full source
@[simp]
theorem nnnorm_algebraMap_nnreal (x : ℝβ‰₯0) : β€–algebraMap ℝβ‰₯0 π•œ' xβ€–β‚Š = x :=
  Subtype.ext <| norm_algebraMap_nnreal π•œ' x
Seminorm Identity for Nonnegative Real Algebra Maps: $\|\text{algebraMap}(x)\| = x$
Informal description
For any nonnegative real number $x \in \mathbb{R}_{\geq 0}$ and any normed algebra $\mathbb{K}'$ over $\mathbb{R}_{\geq 0}$, the seminorm of the algebra map $\text{algebraMap}_{\mathbb{R}_{\geq 0}}^{\mathbb{K}'}(x)$ is equal to $x$, i.e., $\|\text{algebraMap}(x)\|_{\mathbb{K}'} = x$.
algebraMap_isometry theorem
[NormOneClass π•œ'] : Isometry (algebraMap π•œ π•œ')
Full source
/-- In a normed algebra, the inclusion of the base field in the extended field is an isometry. -/
theorem algebraMap_isometry [NormOneClass π•œ'] : Isometry (algebraMap π•œ π•œ') := by
  refine Isometry.of_dist_eq fun x y => ?_
  rw [dist_eq_norm, dist_eq_norm, ← RingHom.map_sub, norm_algebraMap']
Isometry Property of the Algebra Map in Normed Algebras
Informal description
Let $\mathbb{K}$ be a normed field and $\mathbb{K}'$ be a normed algebra over $\mathbb{K}$ with $\|1_{\mathbb{K}'}\| = 1$. Then the algebra map $\text{algebraMap}_{\mathbb{K}}^{\mathbb{K}'} : \mathbb{K} \to \mathbb{K}'$ is an isometry, meaning it preserves distances: for any $x, y \in \mathbb{K}$, the distance between $\text{algebraMap}(x)$ and $\text{algebraMap}(y)$ in $\mathbb{K}'$ equals the distance between $x$ and $y$ in $\mathbb{K}$.
NormedAlgebra.id instance
: NormedAlgebra π•œ π•œ
Full source
instance NormedAlgebra.id : NormedAlgebra π•œ π•œ :=
  { NormedField.toNormedSpace, Algebra.id π•œ with }
Normed Field as Normed Algebra over Itself
Informal description
Every normed field $\mathbb{K}$ is a normed algebra over itself.
normedAlgebraRat instance
{π•œ} [NormedDivisionRing π•œ] [CharZero π•œ] [NormedAlgebra ℝ π•œ] : NormedAlgebra β„š π•œ
Full source
/-- Any normed characteristic-zero division ring that is a normed algebra over the reals is also a
normed algebra over the rationals.

Phrased another way, if `π•œ` is a normed algebra over the reals, then `AlgebraRat` respects that
norm. -/
instance normedAlgebraRat {π•œ} [NormedDivisionRing π•œ] [CharZero π•œ] [NormedAlgebra ℝ π•œ] :
    NormedAlgebra β„š π•œ where
  norm_smul_le q x := by
    rw [← smul_one_smul ℝ q x, Rat.smul_one_eq_cast, norm_smul, Rat.norm_cast_real]
Normed Algebra Structure over Rationals for Characteristic-Zero Normed Division Rings
Informal description
For any normed division ring $\mathbb{K}$ of characteristic zero that is a normed algebra over the real numbers $\mathbb{R}$, $\mathbb{K}$ is also a normed algebra over the rational numbers $\mathbb{Q}$. In other words, the algebra structure over $\mathbb{Q}$ respects the norm on $\mathbb{K}$.
PUnit.normedAlgebra instance
: NormedAlgebra π•œ PUnit
Full source
instance PUnit.normedAlgebra : NormedAlgebra π•œ PUnit where
  norm_smul_le q _ := by simp only [norm_eq_zero, mul_zero, le_refl]
Normed Algebra Structure on the Trivial Type
Informal description
The trivial type `PUnit` is a normed algebra over any normed field $\mathbb{K}$, equipped with the trivial norm structure.
instNormedAlgebraULift instance
: NormedAlgebra π•œ (ULift π•œ')
Full source
instance : NormedAlgebra π•œ (ULift π•œ') :=
  { ULift.normedSpace, ULift.algebra with }
Normed Algebra Structure on Lifted Algebras
Informal description
For any normed field $\mathbb{K}$ and normed algebra $\mathbb{K}'$ over $\mathbb{K}$, the lifted type $\text{ULift}\,\mathbb{K}'$ is also a normed algebra over $\mathbb{K}$.
Prod.normedAlgebra instance
{E F : Type*} [SeminormedRing E] [SeminormedRing F] [NormedAlgebra π•œ E] [NormedAlgebra π•œ F] : NormedAlgebra π•œ (E Γ— F)
Full source
/-- The product of two normed algebras is a normed algebra, with the sup norm. -/
instance Prod.normedAlgebra {E F : Type*} [SeminormedRing E] [SeminormedRing F] [NormedAlgebra π•œ E]
    [NormedAlgebra π•œ F] : NormedAlgebra π•œ (E Γ— F) :=
  { Prod.normedSpace, Prod.algebra π•œ E F with }
Normed Algebra Structure on Product Spaces
Informal description
For any normed field $\mathbb{K}$ and normed algebras $E$ and $F$ over $\mathbb{K}$, the product space $E \times F$ is a normed algebra over $\mathbb{K}$ with the supremum norm.
Pi.normedAlgebra instance
{ΞΉ : Type*} {E : ΞΉ β†’ Type*} [Fintype ΞΉ] [βˆ€ i, SeminormedRing (E i)] [βˆ€ i, NormedAlgebra π•œ (E i)] : NormedAlgebra π•œ (βˆ€ i, E i)
Full source
/-- The product of finitely many normed algebras is a normed algebra, with the sup norm. -/
instance Pi.normedAlgebra {ΞΉ : Type*} {E : ΞΉ β†’ Type*} [Fintype ΞΉ] [βˆ€ i, SeminormedRing (E i)]
    [βˆ€ i, NormedAlgebra π•œ (E i)] : NormedAlgebra π•œ (βˆ€ i, E i) :=
  { Pi.normedSpace, Pi.algebra _ E with }
Normed Algebra Structure on Finite Product Spaces
Informal description
For a finite index set $\iota$ and a family of seminormed rings $(E_i)_{i \in \iota}$ each equipped with a normed algebra structure over a normed field $\mathbb{K}$, the product space $\prod_{i \in \iota} E_i$ is a normed algebra over $\mathbb{K}$ with the supremum norm.
SeparationQuotient.instNormedAlgebra instance
: NormedAlgebra π•œ (SeparationQuotient E)
Full source
instance SeparationQuotient.instNormedAlgebra : NormedAlgebra π•œ (SeparationQuotient E) where
  __ : NormedSpace π•œ (SeparationQuotient E) := inferInstance
  __ : Algebra π•œ (SeparationQuotient E) := inferInstance
Normed Algebra Structure on Separation Quotients
Informal description
For any normed field $\mathbb{K}$ and seminormed ring $E$ that is a normed algebra over $\mathbb{K}$, the separation quotient of $E$ is also a normed algebra over $\mathbb{K}$.
MulOpposite.instNormedAlgebra instance
{E : Type*} [SeminormedRing E] [NormedAlgebra π•œ E] : NormedAlgebra π•œ Eᡐᡒᡖ
Full source
instance MulOpposite.instNormedAlgebra {E : Type*} [SeminormedRing E] [NormedAlgebra π•œ E] :
    NormedAlgebra π•œ Eᡐᡒᡖ where
  __ := instAlgebra
  __ := instNormedSpace
Normed Algebra Structure on the Multiplicative Opposite
Informal description
For any normed field $\mathbb{K}$ and seminormed ring $E$ that is a normed algebra over $\mathbb{K}$, the multiplicative opposite $E^\text{op}$ is also a normed algebra over $\mathbb{K}$ with the same norm structure.
NormedAlgebra.induced abbrev
{F : Type*} (π•œ R S : Type*) [NormedField π•œ] [Ring R] [Algebra π•œ R] [SeminormedRing S] [NormedAlgebra π•œ S] [FunLike F R S] [NonUnitalAlgHomClass F π•œ R S] (f : F) : @NormedAlgebra π•œ R _ (SeminormedRing.induced R S f)
Full source
/-- A non-unital algebra homomorphism from an `Algebra` to a `NormedAlgebra` induces a
`NormedAlgebra` structure on the domain, using the `SeminormedRing.induced` norm.

See note [reducible non-instances] -/
abbrev NormedAlgebra.induced {F : Type*} (π•œ R S : Type*) [NormedField π•œ] [Ring R] [Algebra π•œ R]
    [SeminormedRing S] [NormedAlgebra π•œ S] [FunLike F R S] [NonUnitalAlgHomClass F π•œ R S]
    (f : F) :
    @NormedAlgebra π•œ R _ (SeminormedRing.induced R S f) :=
  letI := SeminormedRing.induced R S f
  ⟨fun a b ↦ show β€–f (a β€’ b)β€– ≀ β€–aβ€– * β€–f bβ€– from (map_smul f a b).symm β–Έ norm_smul_le a (f b)⟩
Induced Normed Algebra Structure via Non-Unital Algebra Homomorphism
Informal description
Given a normed field $\mathbb{K}$, a ring $R$ with an algebra structure over $\mathbb{K}$, a seminormed ring $S$ with a normed algebra structure over $\mathbb{K}$, and a non-unital algebra homomorphism $f \colon R \to S$, the ring $R$ can be equipped with a normed algebra structure over $\mathbb{K}$ induced by $f$. The norm on $R$ is defined by $\|x\|_R = \|f(x)\|_S$ for all $x \in R$.
Subalgebra.toNormedAlgebra instance
{π•œ A : Type*} [SeminormedRing A] [NormedField π•œ] [NormedAlgebra π•œ A] (S : Subalgebra π•œ A) : NormedAlgebra π•œ S
Full source
instance Subalgebra.toNormedAlgebra {π•œ A : Type*} [SeminormedRing A] [NormedField π•œ]
    [NormedAlgebra π•œ A] (S : Subalgebra π•œ A) : NormedAlgebra π•œ S :=
  NormedAlgebra.induced π•œ S A S.val
Subalgebras Inherit Normed Algebra Structure
Informal description
For any normed field $\mathbb{K}$ and seminormed ring $A$ that is a normed algebra over $\mathbb{K}$, every subalgebra $S$ of $A$ inherits a normed algebra structure over $\mathbb{K}$.
SubalgebraClass.toNormedAlgebra instance
: NormedAlgebra π•œ s
Full source
instance (priority := 75) SubalgebraClass.toNormedAlgebra : NormedAlgebra π•œ s where
  norm_smul_le c x := norm_smul_le c (x : E)
Normed Algebra Structure on Subalgebras
Informal description
For any subalgebra $s$ of a normed algebra $\mathbb{K}'$ over a normed field $\mathbb{K}$, the subalgebra $s$ inherits a normed algebra structure over $\mathbb{K}$.
instSeminormedAddCommGroupRestrictScalars instance
[I : SeminormedAddCommGroup E] : SeminormedAddCommGroup (RestrictScalars π•œ π•œ' E)
Full source
instance [I : SeminormedAddCommGroup E] :
    SeminormedAddCommGroup (RestrictScalars π•œ π•œ' E) :=
  I
Seminormed Structure on Restricted Scalars
Informal description
For any seminormed additive commutative group $E$ and scalar fields $\mathbb{k}$ and $\mathbb{k}'$, the restricted scalars $\text{RestrictScalars}\, \mathbb{k}\, \mathbb{k}'\, E$ form a seminormed additive commutative group, inheriting the seminorm structure from $E$.
instNormedAddCommGroupRestrictScalars instance
[I : NormedAddCommGroup E] : NormedAddCommGroup (RestrictScalars π•œ π•œ' E)
Full source
instance [I : NormedAddCommGroup E] :
    NormedAddCommGroup (RestrictScalars π•œ π•œ' E) :=
  I
Normed Commutative Group Structure under Scalar Restriction
Informal description
For any normed commutative group $E$ over a scalar field $\mathbb{K}'$, the restriction of scalars to a subfield $\mathbb{K}$ of $\mathbb{K}'$ yields a normed commutative group structure on $E$.
instNonUnitalSeminormedRingRestrictScalars instance
[I : NonUnitalSeminormedRing E] : NonUnitalSeminormedRing (RestrictScalars π•œ π•œ' E)
Full source
instance [I : NonUnitalSeminormedRing E] :
    NonUnitalSeminormedRing (RestrictScalars π•œ π•œ' E) :=
  I
Non-unital Seminormed Ring Structure under Scalar Restriction
Informal description
For any non-unital seminormed ring $E$ and scalar fields $\mathbb{k}$ and $\mathbb{k}'$, the restricted scalars $\text{RestrictScalars}\, \mathbb{k}\, \mathbb{k}'\, E$ form a non-unital seminormed ring, inheriting the seminorm structure from $E$.
instNonUnitalNormedRingRestrictScalars instance
[I : NonUnitalNormedRing E] : NonUnitalNormedRing (RestrictScalars π•œ π•œ' E)
Full source
instance [I : NonUnitalNormedRing E] :
    NonUnitalNormedRing (RestrictScalars π•œ π•œ' E) :=
  I
Non-unital Normed Ring Structure under Scalar Restriction
Informal description
For any non-unital normed ring $E$ over a scalar field $\mathbb{K}'$, the restriction of scalars to a subfield $\mathbb{K}$ of $\mathbb{K}'$ yields a non-unital normed ring structure on $E$.
instSeminormedRingRestrictScalars instance
[I : SeminormedRing E] : SeminormedRing (RestrictScalars π•œ π•œ' E)
Full source
instance [I : SeminormedRing E] :
    SeminormedRing (RestrictScalars π•œ π•œ' E) :=
  I
Seminormed Ring Structure on Scalar-Restricted Rings
Informal description
For any seminormed ring $E$ and scalar fields $\mathbb{k}$ and $\mathbb{k}'$, the ring $\text{RestrictScalars}\, \mathbb{k}\, \mathbb{k}'\, E$ inherits a seminormed ring structure from $E$.
instNormedRingRestrictScalars instance
[I : NormedRing E] : NormedRing (RestrictScalars π•œ π•œ' E)
Full source
instance [I : NormedRing E] :
    NormedRing (RestrictScalars π•œ π•œ' E) :=
  I
Normed Ring Structure on Scalar-Restricted Rings
Informal description
For any normed ring $E$ and scalar fields $\mathbb{k}$ and $\mathbb{k}'$, the ring $\text{RestrictScalars}\, \mathbb{k}\, \mathbb{k}'\, E$ inherits a normed ring structure from $E$.
instNonUnitalSeminormedCommRingRestrictScalars instance
[I : NonUnitalSeminormedCommRing E] : NonUnitalSeminormedCommRing (RestrictScalars π•œ π•œ' E)
Full source
instance [I : NonUnitalSeminormedCommRing E] :
    NonUnitalSeminormedCommRing (RestrictScalars π•œ π•œ' E) :=
  I
Restriction of Scalars Preserves Non-Unital Seminormed Commutative Ring Structure
Informal description
For any non-unital seminormed commutative ring $E$ and scalar fields $\mathbb{k}, \mathbb{k}'$, the ring $\text{RestrictScalars}\, \mathbb{k}\, \mathbb{k}'\, E$ is also a non-unital seminormed commutative ring, where the norm is inherited from $E$.
instNonUnitalNormedCommRingRestrictScalars instance
[I : NonUnitalNormedCommRing E] : NonUnitalNormedCommRing (RestrictScalars π•œ π•œ' E)
Full source
instance [I : NonUnitalNormedCommRing E] :
    NonUnitalNormedCommRing (RestrictScalars π•œ π•œ' E) :=
  I
Scalar Restriction Preserves Non-Unital Normed Commutative Ring Structure
Informal description
For any non-unital normed commutative ring $E$ and scalar fields $\mathbb{k}$ and $\mathbb{k}'$, the scalar restriction $\text{RestrictScalars}(\mathbb{k}, \mathbb{k}', E)$ is also a non-unital normed commutative ring.
instSeminormedCommRingRestrictScalars instance
[I : SeminormedCommRing E] : SeminormedCommRing (RestrictScalars π•œ π•œ' E)
Full source
instance [I : SeminormedCommRing E] :
    SeminormedCommRing (RestrictScalars π•œ π•œ' E) :=
  I
Seminormed Commutative Ring Structure on Scalar-Restricted Rings
Informal description
For any seminormed commutative ring $E$ and scalar fields $\mathbb{k}$ and $\mathbb{k}'$, the ring $\text{RestrictScalars}\, \mathbb{k}\, \mathbb{k}'\, E$ is also a seminormed commutative ring.
instNormedCommRingRestrictScalars instance
[I : NormedCommRing E] : NormedCommRing (RestrictScalars π•œ π•œ' E)
Full source
instance [I : NormedCommRing E] :
    NormedCommRing (RestrictScalars π•œ π•œ' E) :=
  I
Normed Commutative Ring Structure on Scalar-Restricted Modules
Informal description
For any normed commutative ring $E$ and scalar fields $\mathbb{k}$ and $\mathbb{k}'$, the ring $\text{RestrictScalars}\, \mathbb{k}\, \mathbb{k}'\, E$ inherits a normed commutative ring structure from $E$.
RestrictScalars.normedSpace instance
: NormedSpace π•œ (RestrictScalars π•œ π•œ' E)
Full source
/-- If `E` is a normed space over `π•œ'` and `π•œ` is a normed algebra over `π•œ'`, then
`RestrictScalars.module` is additionally a `NormedSpace`. -/
instance RestrictScalars.normedSpace : NormedSpace π•œ (RestrictScalars π•œ π•œ' E) :=
  { RestrictScalars.module π•œ π•œ' E with
    norm_smul_le := fun c x =>
      (norm_smul_le (algebraMap π•œ π•œ' c) (_ : E)).trans_eq <| by rw [norm_algebraMap'] }
Normed Space Structure on Restricted Scalars
Informal description
For any normed field $\mathbb{K}'$, normed algebra $\mathbb{K}$ over $\mathbb{K}'$, and normed space $E$ over $\mathbb{K}'$, the restricted scalars $\text{RestrictScalars}\, \mathbb{K}\, \mathbb{K}'\, E$ form a normed space over $\mathbb{K}$.
Module.RestrictScalars.normedSpaceOrig definition
{π•œ : Type*} {π•œ' : Type*} {E : Type*} [NormedField π•œ'] [SeminormedAddCommGroup E] [I : NormedSpace π•œ' E] : NormedSpace π•œ' (RestrictScalars π•œ π•œ' E)
Full source
/-- The action of the original normed_field on `RestrictScalars π•œ π•œ' E`.
This is not an instance as it would be contrary to the purpose of `RestrictScalars`.
-/
def Module.RestrictScalars.normedSpaceOrig {π•œ : Type*} {π•œ' : Type*} {E : Type*} [NormedField π•œ']
    [SeminormedAddCommGroup E] [I : NormedSpace π•œ' E] : NormedSpace π•œ' (RestrictScalars π•œ π•œ' E) :=
  I
Normed space structure on restricted scalars
Informal description
Given a normed field $\mathbb{K}'$, a seminormed additive commutative group $E$, and a normed space structure on $E$ over $\mathbb{K}'$, the restricted scalars $\text{RestrictScalars}\, \mathbb{K}\, \mathbb{K}'\, E$ form a normed space over $\mathbb{K}'$, inheriting the normed space structure from $E$.
NormedSpace.restrictScalars abbrev
: NormedSpace π•œ E
Full source
/-- Warning: This declaration should be used judiciously.
Please consider using `IsScalarTower` and/or `RestrictScalars π•œ π•œ' E` instead.

This definition allows the `RestrictScalars.normedSpace` instance to be put directly on `E`
rather on `RestrictScalars π•œ π•œ' E`. This would be a very bad instance; both because `π•œ'` cannot be
inferred, and because it is likely to create instance diamonds.

See Note [reducible non-instances].
-/
abbrev NormedSpace.restrictScalars : NormedSpace π•œ E :=
  RestrictScalars.normedSpace _ π•œ' E
Normed Space Structure via Scalar Restriction
Informal description
The scalar-restricted structure $\text{RestrictScalars}\, \mathbb{K}\, \mathbb{K}'\, E$ inherits a normed space structure over $\mathbb{K}$ from the normed space structure of $E$ over $\mathbb{K}'$.
RestrictScalars.normedAlgebra instance
: NormedAlgebra π•œ (RestrictScalars π•œ π•œ' E)
Full source
/-- If `E` is a normed algebra over `π•œ'` and `π•œ` is a normed algebra over `π•œ'`, then
`RestrictScalars.module` is additionally a `NormedAlgebra`. -/
instance RestrictScalars.normedAlgebra : NormedAlgebra π•œ (RestrictScalars π•œ π•œ' E) :=
  { RestrictScalars.algebra π•œ π•œ' E with
    norm_smul_le := norm_smul_le }
Normed Algebra Structure on Scalar-Restricted Modules
Informal description
For any normed algebra $E$ over $\mathbb{K}'$ and any normed algebra $\mathbb{K}$ over $\mathbb{K}'$, the scalar-restricted structure $\text{RestrictScalars}\, \mathbb{K}\, \mathbb{K}'\, E$ inherits a normed algebra structure over $\mathbb{K}$.
Module.RestrictScalars.normedAlgebraOrig definition
{π•œ : Type*} {π•œ' : Type*} {E : Type*} [NormedField π•œ'] [SeminormedRing E] [I : NormedAlgebra π•œ' E] : NormedAlgebra π•œ' (RestrictScalars π•œ π•œ' E)
Full source
/-- The action of the original normed_field on `RestrictScalars π•œ π•œ' E`.
This is not an instance as it would be contrary to the purpose of `RestrictScalars`.
-/
def Module.RestrictScalars.normedAlgebraOrig {π•œ : Type*} {π•œ' : Type*} {E : Type*} [NormedField π•œ']
    [SeminormedRing E] [I : NormedAlgebra π•œ' E] : NormedAlgebra π•œ' (RestrictScalars π•œ π•œ' E) :=
  I
Normed algebra structure on scalar-restricted modules
Informal description
Given normed fields $\mathbb{k}$ and $\mathbb{k}'$, and a seminormed ring $E$ that is a normed algebra over $\mathbb{k}'$, the scalar-restricted structure $\text{RestrictScalars}\, \mathbb{k}\, \mathbb{k}'\, E$ inherits a normed algebra structure over $\mathbb{k}'$ from $E$.
NormedAlgebra.restrictScalars abbrev
: NormedAlgebra π•œ E
Full source
/-- Warning: This declaration should be used judiciously.
Please consider using `IsScalarTower` and/or `RestrictScalars π•œ π•œ' E` instead.

This definition allows the `RestrictScalars.normedAlgebra` instance to be put directly on `E`
rather on `RestrictScalars π•œ π•œ' E`. This would be a very bad instance; both because `π•œ'` cannot be
inferred, and because it is likely to create instance diamonds.

See Note [reducible non-instances].
-/
abbrev NormedAlgebra.restrictScalars : NormedAlgebra π•œ E :=
  RestrictScalars.normedAlgebra _ π•œ' _
Normed Algebra Structure via Scalar Restriction
Informal description
Given a normed field $\mathbb{K}$ and a normed algebra $E$ over $\mathbb{K}'$, the scalar restriction $\text{RestrictScalars}\, \mathbb{K}\, \mathbb{K}'\, E$ inherits a normed algebra structure over $\mathbb{K}$.
SeminormedAddCommGroup.Core structure
(π•œ : Type*) (E : Type*) [NormedField π•œ] [AddCommGroup E] [Norm E] [Module π•œ E]
Full source
/-- A structure encapsulating minimal axioms needed to defined a seminormed vector space, as found
in textbooks. This is meant to be used to easily define `SeminormedAddCommGroup E` instances from
scratch on a type with no preexisting distance or topology. -/
structure SeminormedAddCommGroup.Core (π•œ : Type*) (E : Type*) [NormedField π•œ] [AddCommGroup E]
    [Norm E] [Module π•œ E] : Prop where
  norm_nonneg (x : E) : 0 ≀ β€–xβ€–
  norm_smul (c : π•œ) (x : E) : β€–c β€’ xβ€– = β€–cβ€– * β€–xβ€–
  norm_triangle (x y : E) : β€–x + yβ€– ≀ β€–xβ€– + β€–yβ€–
Core structure for seminormed vector spaces
Informal description
The structure `SeminormedAddCommGroup.Core π•œ E` encapsulates the minimal axioms needed to define a seminormed vector space over a normed field $\mathbb{k}$. It consists of an additive commutative group $E$ equipped with a norm $\|\cdot\|$ and a scalar multiplication operation from $\mathbb{k}$, satisfying the following properties: 1. The norm is subadditive: $\|x + y\| \leq \|x\| + \|y\|$ for all $x, y \in E$. 2. The norm is absolutely homogeneous: $\|a \cdot x\| = |a| \cdot \|x\|$ for all $a \in \mathbb{k}$ and $x \in E$. 3. The norm is non-negative: $\|x\| \geq 0$ for all $x \in E$. 4. The norm separates points: $\|x\| = 0$ implies $x = 0$ for all $x \in E$. This structure is used to construct a seminormed additive commutative group on $E$ by proving only these minimal axioms, without requiring a preexisting distance or topology on $E$.
PseudoMetricSpace.ofSeminormedAddCommGroupCore abbrev
{π•œ E : Type*} [NormedField π•œ] [AddCommGroup E] [Norm E] [Module π•œ E] (core : SeminormedAddCommGroup.Core π•œ E) : PseudoMetricSpace E
Full source
/-- Produces a `PseudoMetricSpace E` instance from a `SeminormedAddCommGroup.Core`. Note that
if this is used to define an instance on a type, it also provides a new uniformity and
topology on the type. See note [reducible non-instances]. -/
abbrev PseudoMetricSpace.ofSeminormedAddCommGroupCore {π•œ E : Type*} [NormedField π•œ] [AddCommGroup E]
    [Norm E] [Module π•œ E] (core : SeminormedAddCommGroup.Core π•œ E) :
    PseudoMetricSpace E where
  dist x y := β€–x - yβ€–
  dist_self x := by
    show β€–x - xβ€– = 0
    simp only [sub_self]
    have : (0 : E) = (0 : π•œ) β€’ (0 : E) := by simp
    rw [this, core.norm_smul]
    simp
  dist_comm x y := by
    show β€–x - yβ€– = β€–y - xβ€–
    have : y - x = (-1 : π•œ) β€’ (x - y) := by simp
    rw [this, core.norm_smul]
    simp
  dist_triangle x y z := by
    show β€–x - zβ€– ≀ β€–x - yβ€– + β€–y - zβ€–
    have : x - z = (x - y) + (y - z) := by abel
    rw [this]
    exact core.norm_triangle _ _
  edist_dist x y := by exact (ENNReal.ofReal_eq_coe_nnreal _).symm
Pseudometric Space Construction from Seminormed Additive Commutative Group Core
Informal description
Given a normed field $\mathbb{k}$ and an additive commutative group $E$ equipped with a norm and a scalar multiplication operation from $\mathbb{k}$, if $E$ satisfies the axioms of a `SeminormedAddCommGroup.Core` structure, then $E$ can be endowed with a pseudometric space structure where the distance function is induced by the norm.
PseudoEMetricSpace.ofSeminormedAddCommGroupCore abbrev
{π•œ E : Type*} [NormedField π•œ] [AddCommGroup E] [Norm E] [Module π•œ E] (core : SeminormedAddCommGroup.Core π•œ E) : PseudoEMetricSpace E
Full source
/-- Produces a `PseudoEMetricSpace E` instance from a `SeminormedAddCommGroup.Core`. Note that
if this is used to define an instance on a type, it also provides a new uniformity and
topology on the type. See note [reducible non-instances]. -/
abbrev PseudoEMetricSpace.ofSeminormedAddCommGroupCore {π•œ E : Type*} [NormedField π•œ]
    [AddCommGroup E] [Norm E] [Module π•œ E]
    (core : SeminormedAddCommGroup.Core π•œ E) : PseudoEMetricSpace E :=
  (PseudoMetricSpace.ofSeminormedAddCommGroupCore core).toPseudoEMetricSpace
Construction of Pseudo-Extended Metric Space from Seminormed Additive Commutative Group Core
Informal description
Given a normed field $\mathbb{k}$ and an additive commutative group $E$ equipped with a norm and a scalar multiplication operation from $\mathbb{k}$, if $E$ satisfies the axioms of a `SeminormedAddCommGroup.Core` structure, then $E$ can be endowed with a pseudo-extended metric space structure where the distance function is induced by the norm.
PseudoMetricSpace.ofSeminormedAddCommGroupCoreReplaceUniformity abbrev
{π•œ E : Type*} [NormedField π•œ] [AddCommGroup E] [Norm E] [Module π•œ E] [U : UniformSpace E] (core : SeminormedAddCommGroup.Core π•œ E) (H : 𝓀[U] = 𝓀[PseudoEMetricSpace.toUniformSpace (self := PseudoEMetricSpace.ofSeminormedAddCommGroupCore core)]) : PseudoMetricSpace E
Full source
/-- Produces a `PseudoEMetricSpace E` instance from a `SeminormedAddCommGroup.Core` on a type that
already has an existing uniform space structure. This requires a proof that the uniformity induced
by the norm is equal to the preexisting uniformity. See note [reducible non-instances]. -/
abbrev PseudoMetricSpace.ofSeminormedAddCommGroupCoreReplaceUniformity {π•œ E : Type*} [NormedField π•œ]
    [AddCommGroup E] [Norm E] [Module π•œ E] [U : UniformSpace E]
    (core : SeminormedAddCommGroup.Core π•œ E)
    (H : 𝓀[U] = 𝓀[PseudoEMetricSpace.toUniformSpace
        (self := PseudoEMetricSpace.ofSeminormedAddCommGroupCore core)]) :
    PseudoMetricSpace E :=
  .replaceUniformity (.ofSeminormedAddCommGroupCore core) H
Pseudometric Space Construction from Seminormed Core with Uniformity Replacement
Informal description
Let $\mathbb{k}$ be a normed field and $E$ an additive commutative group equipped with a norm $\|\cdot\|$ and a scalar multiplication operation from $\mathbb{k}$. Suppose $E$ satisfies the axioms of a `SeminormedAddCommGroup.Core` structure and has a preexisting uniform space structure with uniformity $\mathfrak{U}$. If the uniformity $\mathfrak{U}$ coincides with the uniformity induced by the pseudometric $\|x - y\|$, then $E$ can be endowed with a pseudometric space structure where the distance is given by $\|x - y\|$.
PseudoMetricSpace.ofSeminormedAddCommGroupCoreReplaceAll abbrev
{π•œ E : Type*} [NormedField π•œ] [AddCommGroup E] [Norm E] [Module π•œ E] [U : UniformSpace E] [B : Bornology E] (core : SeminormedAddCommGroup.Core π•œ E) (HU : 𝓀[U] = 𝓀[PseudoEMetricSpace.toUniformSpace (self := PseudoEMetricSpace.ofSeminormedAddCommGroupCore core)]) (HB : βˆ€ s : Set E, @IsBounded _ B s ↔ @IsBounded _ (PseudoMetricSpace.ofSeminormedAddCommGroupCore core).toBornology s) : PseudoMetricSpace E
Full source
/-- Produces a `PseudoEMetricSpace E` instance from a `SeminormedAddCommGroup.Core` on a type that
already has a preexisting uniform space structure and a preexisting bornology. This requires proofs
that the uniformity induced by the norm is equal to the preexisting uniformity, and likewise for
the bornology. See note [reducible non-instances]. -/
abbrev PseudoMetricSpace.ofSeminormedAddCommGroupCoreReplaceAll {π•œ E : Type*} [NormedField π•œ]
    [AddCommGroup E] [Norm E] [Module π•œ E] [U : UniformSpace E] [B : Bornology E]
    (core : SeminormedAddCommGroup.Core π•œ E)
    (HU : 𝓀[U] = 𝓀[PseudoEMetricSpace.toUniformSpace
      (self := PseudoEMetricSpace.ofSeminormedAddCommGroupCore core)])
    (HB : βˆ€ s : Set E, @IsBounded _ B s
      ↔ @IsBounded _ (PseudoMetricSpace.ofSeminormedAddCommGroupCore core).toBornology s) :
    PseudoMetricSpace E :=
  .replaceBornology (.replaceUniformity (.ofSeminormedAddCommGroupCore core) HU) HB
Pseudometric Space Construction from Seminormed Core with Preserved Uniformity and Bornology
Informal description
Given a normed field $\mathbb{k}$ and an additive commutative group $E$ equipped with a norm $\|\cdot\|$ and a scalar multiplication operation from $\mathbb{k}$, suppose $E$ has a preexisting uniform space structure and bornology. If $E$ satisfies the axioms of a `SeminormedAddCommGroup.Core` structure, and the following conditions hold: 1. The uniformity induced by the norm coincides with the preexisting uniformity on $E$. 2. The bornology induced by the norm coincides with the preexisting bornology on $E$, then $E$ can be endowed with a pseudometric space structure where the distance function is induced by the norm.
SeminormedAddCommGroup.ofCore abbrev
{π•œ : Type*} {E : Type*} [NormedField π•œ] [AddCommGroup E] [Norm E] [Module π•œ E] (core : SeminormedAddCommGroup.Core π•œ E) : SeminormedAddCommGroup E
Full source
/-- Produces a `SeminormedAddCommGroup E` instance from a `SeminormedAddCommGroup.Core`. Note that
if this is used to define an instance on a type, it also provides a new distance measure from the
norm.  it must therefore not be used on a type with a preexisting distance measure or topology.
See note [reducible non-instances]. -/
abbrev SeminormedAddCommGroup.ofCore {π•œ : Type*} {E : Type*} [NormedField π•œ] [AddCommGroup E]
    [Norm E] [Module π•œ E] (core : SeminormedAddCommGroup.Core π•œ E) : SeminormedAddCommGroup E :=
  { PseudoMetricSpace.ofSeminormedAddCommGroupCore core with }
Construction of Seminormed Additive Commutative Group from Core Axioms
Informal description
Given a normed field $\mathbb{k}$ and an additive commutative group $E$ equipped with a norm $\|\cdot\|$ and a scalar multiplication operation from $\mathbb{k}$, if $E$ satisfies the axioms of a `SeminormedAddCommGroup.Core` structure, then $E$ can be endowed with the structure of a seminormed additive commutative group. This structure includes a pseudometric induced by the norm, where the distance between $x$ and $y$ is given by $\|x - y\|$.
SeminormedAddCommGroup.ofCoreReplaceUniformity abbrev
{π•œ : Type*} {E : Type*} [NormedField π•œ] [AddCommGroup E] [Norm E] [Module π•œ E] [U : UniformSpace E] (core : SeminormedAddCommGroup.Core π•œ E) (H : 𝓀[U] = 𝓀[PseudoEMetricSpace.toUniformSpace (self := PseudoEMetricSpace.ofSeminormedAddCommGroupCore core)]) : SeminormedAddCommGroup E
Full source
/-- Produces a `SeminormedAddCommGroup E` instance from a `SeminormedAddCommGroup.Core` on a type
that already has an existing uniform space structure. This requires a proof that the uniformity
induced by the norm is equal to the preexisting uniformity. See note [reducible non-instances]. -/
abbrev SeminormedAddCommGroup.ofCoreReplaceUniformity {π•œ : Type*} {E : Type*} [NormedField π•œ]
    [AddCommGroup E] [Norm E] [Module π•œ E] [U : UniformSpace E]
    (core : SeminormedAddCommGroup.Core π•œ E)
    (H : 𝓀[U] = 𝓀[PseudoEMetricSpace.toUniformSpace
      (self := PseudoEMetricSpace.ofSeminormedAddCommGroupCore core)]) :
    SeminormedAddCommGroup E :=
  { PseudoMetricSpace.ofSeminormedAddCommGroupCoreReplaceUniformity core H with }
Construction of Seminormed Additive Commutative Group from Core with Preserved Uniformity
Informal description
Let $\mathbb{k}$ be a normed field and $E$ an additive commutative group equipped with a norm $\|\cdot\|$ and a scalar multiplication operation from $\mathbb{k}$. Suppose $E$ has a preexisting uniform space structure with uniformity $\mathfrak{U}$ and satisfies the axioms of a `SeminormedAddCommGroup.Core` structure. If the uniformity $\mathfrak{U}$ coincides with the uniformity induced by the pseudometric $\|x - y\|$, then $E$ can be endowed with the structure of a seminormed additive commutative group where the distance function is given by $\|x - y\|$.
SeminormedAddCommGroup.ofCoreReplaceAll abbrev
{π•œ : Type*} {E : Type*} [NormedField π•œ] [AddCommGroup E] [Norm E] [Module π•œ E] [U : UniformSpace E] [B : Bornology E] (core : SeminormedAddCommGroup.Core π•œ E) (HU : 𝓀[U] = 𝓀[PseudoEMetricSpace.toUniformSpace (self := PseudoEMetricSpace.ofSeminormedAddCommGroupCore core)]) (HB : βˆ€ s : Set E, @IsBounded _ B s ↔ @IsBounded _ (PseudoMetricSpace.ofSeminormedAddCommGroupCore core).toBornology s) : SeminormedAddCommGroup E
Full source
/-- Produces a `SeminormedAddCommGroup E` instance from a `SeminormedAddCommGroup.Core` on a type
that already has a preexisting uniform space structure and a preexisting bornology. This requires
proofs that the uniformity induced by the norm is equal to the preexisting uniformity, and likewise
for the bornology. See note [reducible non-instances]. -/
abbrev SeminormedAddCommGroup.ofCoreReplaceAll {π•œ : Type*} {E : Type*} [NormedField π•œ]
    [AddCommGroup E] [Norm E] [Module π•œ E] [U : UniformSpace E] [B : Bornology E]
    (core : SeminormedAddCommGroup.Core π•œ E)
    (HU : 𝓀[U] = 𝓀[PseudoEMetricSpace.toUniformSpace
      (self := PseudoEMetricSpace.ofSeminormedAddCommGroupCore core)])
    (HB : βˆ€ s : Set E, @IsBounded _ B s
      ↔ @IsBounded _ (PseudoMetricSpace.ofSeminormedAddCommGroupCore core).toBornology s) :
    SeminormedAddCommGroup E :=
  { PseudoMetricSpace.ofSeminormedAddCommGroupCoreReplaceAll core HU HB with }
Construction of Seminormed Group with Preserved Uniformity and Bornology from Core Axioms
Informal description
Let $\mathbb{k}$ be a normed field and $E$ an additive commutative group equipped with a norm $\|\cdot\|$ and a scalar multiplication operation from $\mathbb{k}$. Suppose $E$ has a preexisting uniform space structure and bornology. Given a `SeminormedAddCommGroup.Core` structure on $E$ such that: 1. The uniformity induced by the norm coincides with the preexisting uniformity on $E$. 2. The bornology induced by the norm coincides with the preexisting bornology on $E$, then $E$ can be endowed with the structure of a seminormed additive commutative group, where the distance function is induced by the norm $\|x - y\|$.
NormedSpace.Core structure
(π•œ : Type*) (E : Type*) [NormedField π•œ] [AddCommGroup E] [Module π•œ E] [Norm E] : Prop extends SeminormedAddCommGroup.Core π•œ E
Full source
/-- A structure encapsulating minimal axioms needed to defined a normed vector space, as found
in textbooks. This is meant to be used to easily define `NormedAddCommGroup E` and `NormedSpace E`
instances from scratch on a type with no preexisting distance or topology. -/
structure NormedSpace.Core (π•œ : Type*) (E : Type*)
    [NormedField π•œ] [AddCommGroup E] [Module π•œ E] [Norm E] : Prop
    extends SeminormedAddCommGroup.Core π•œ E where
  norm_eq_zero_iff (x : E) : β€–xβ€–β€–xβ€– = 0 ↔ x = 0
Core structure for a normed vector space
Informal description
A structure encapsulating the minimal axioms needed to define a normed vector space over a normed field $\mathbb{K}$. It extends `SeminormedAddCommGroup.Core` and includes the following properties: 1. The norm $\|\cdot\|$ on $E$ is compatible with the vector space structure over $\mathbb{K}$. 2. The norm satisfies the triangle inequality: $\|x + y\| \leq \|x\| + \|y\|$ for all $x, y \in E$. 3. The norm is absolutely homogeneous: $\|a \cdot x\| = |a| \cdot \|x\|$ for all $a \in \mathbb{K}$ and $x \in E$. This structure is used to construct `NormedAddCommGroup E` and `NormedSpace E` instances on a type $E$ with no preexisting distance or topology.
NormedAddCommGroup.ofCore abbrev
(core : NormedSpace.Core π•œ E) : NormedAddCommGroup E
Full source
/-- Produces a `NormedAddCommGroup E` instance from a `NormedSpace.Core`. Note that if this is
used to define an instance on a type, it also provides a new distance measure from the norm.
it must therefore not be used on a type with a preexisting distance measure.
See note [reducible non-instances]. -/
abbrev NormedAddCommGroup.ofCore (core : NormedSpace.Core π•œ E) : NormedAddCommGroup E :=
  { SeminormedAddCommGroup.ofCore core.toCore with
    eq_of_dist_eq_zero := by
      intro x y h
      rw [← sub_eq_zero, ← core.norm_eq_zero_iff]
      exact h }
Construction of Normed Additive Commutative Group from Core Axioms
Informal description
Given a normed field $\mathbb{K}$ and a vector space $E$ over $\mathbb{K}$ equipped with a norm $\|\cdot\|$ satisfying the axioms of a `NormedSpace.Core` structure, this constructs a `NormedAddCommGroup E` instance on $E$. The resulting structure includes a metric induced by the norm, where the distance between $x$ and $y$ is given by $\|x - y\|$.
NormedAddCommGroup.ofCoreReplaceUniformity abbrev
[U : UniformSpace E] (core : NormedSpace.Core π•œ E) (H : 𝓀[U] = 𝓀[PseudoEMetricSpace.toUniformSpace (self := PseudoEMetricSpace.ofSeminormedAddCommGroupCore core.toCore)]) : NormedAddCommGroup E
Full source
/-- Produces a `NormedAddCommGroup E` instance from a `NormedAddCommGroup.Core` on a type
that already has an existing uniform space structure. This requires a proof that the uniformity
induced by the norm is equal to the preexisting uniformity. See note [reducible non-instances]. -/
abbrev NormedAddCommGroup.ofCoreReplaceUniformity [U : UniformSpace E] (core : NormedSpace.Core π•œ E)
    (H : 𝓀[U] = 𝓀[PseudoEMetricSpace.toUniformSpace
      (self := PseudoEMetricSpace.ofSeminormedAddCommGroupCore core.toCore)]) :
    NormedAddCommGroup E :=
  { SeminormedAddCommGroup.ofCoreReplaceUniformity core.toCore H with
    eq_of_dist_eq_zero := by
      intro x y h
      rw [← sub_eq_zero, ← core.norm_eq_zero_iff]
      exact h }
Normed Additive Commutative Group Construction from Core with Preserved Uniformity
Informal description
Let $E$ be a vector space over a normed field $\mathbb{K}$ equipped with a preexisting uniform space structure with uniformity $\mathfrak{U}$. Given a core structure for a normed space on $E$ (satisfying the norm axioms), if the uniformity $\mathfrak{U}$ coincides with the uniformity induced by the pseudometric $\|x - y\|$ derived from the core structure, then $E$ can be endowed with the structure of a normed additive commutative group where the distance is given by $\|x - y\|$.
NormedAddCommGroup.ofCoreReplaceAll abbrev
[U : UniformSpace E] [B : Bornology E] (core : NormedSpace.Core π•œ E) (HU : 𝓀[U] = 𝓀[PseudoEMetricSpace.toUniformSpace (self := PseudoEMetricSpace.ofSeminormedAddCommGroupCore core.toCore)]) (HB : βˆ€ s : Set E, @IsBounded _ B s ↔ @IsBounded _ (PseudoMetricSpace.ofSeminormedAddCommGroupCore core.toCore).toBornology s) : NormedAddCommGroup E
Full source
/-- Produces a `NormedAddCommGroup E` instance from a `NormedAddCommGroup.Core` on a type
that already has a preexisting uniform space structure and a preexisting bornology. This requires
proofs that the uniformity induced by the norm is equal to the preexisting uniformity, and likewise
for the bornology. See note [reducible non-instances]. -/
abbrev NormedAddCommGroup.ofCoreReplaceAll [U : UniformSpace E] [B : Bornology E]
    (core : NormedSpace.Core π•œ E)
    (HU : 𝓀[U] = 𝓀[PseudoEMetricSpace.toUniformSpace
      (self := PseudoEMetricSpace.ofSeminormedAddCommGroupCore core.toCore)])
    (HB : βˆ€ s : Set E, @IsBounded _ B s
      ↔ @IsBounded _ (PseudoMetricSpace.ofSeminormedAddCommGroupCore core.toCore).toBornology s) :
    NormedAddCommGroup E :=
  { SeminormedAddCommGroup.ofCoreReplaceAll core.toCore HU HB with
    eq_of_dist_eq_zero := by
      intro x y h
      rw [← sub_eq_zero, ← core.norm_eq_zero_iff]
      exact h }
Normed Group Construction with Preserved Uniformity and Bornology from Core Axioms
Informal description
Let $\mathbb{K}$ be a normed field and $E$ a vector space over $\mathbb{K}$ equipped with a preexisting uniform space structure and bornology. Given a `NormedSpace.Core` structure on $E$ such that: 1. The uniformity induced by the norm coincides with the preexisting uniformity on $E$. 2. The bornology induced by the norm coincides with the preexisting bornology on $E$, then $E$ can be endowed with the structure of a normed additive commutative group, where the distance function is induced by the norm $\|x - y\|$.
NormedSpace.ofCore abbrev
{π•œ : Type*} {E : Type*} [NormedField π•œ] [SeminormedAddCommGroup E] [Module π•œ E] (core : NormedSpace.Core π•œ E) : NormedSpace π•œ E
Full source
/-- Produces a `NormedSpace π•œ E` instance from a `NormedSpace.Core`. This is meant to be used
on types where the `NormedAddCommGroup E` instance has also been defined using `core`.
See note [reducible non-instances]. -/
abbrev NormedSpace.ofCore {π•œ : Type*} {E : Type*} [NormedField π•œ] [SeminormedAddCommGroup E]
    [Module π•œ E] (core : NormedSpace.Core π•œ E) : NormedSpace π•œ E where
  norm_smul_le r x := by rw [core.norm_smul r x]
Construction of Normed Space from Core Structure
Informal description
Given a normed field $\mathbb{K}$ and a seminormed additive commutative group $E$ equipped with a $\mathbb{K}$-module structure, if $E$ satisfies the axioms of a `NormedSpace.Core` structure, then $E$ can be endowed with the structure of a normed space over $\mathbb{K}$.
AddMonoidHom.continuous_of_isBounded_nhds_zero theorem
(f : G β†’+ H) (hs : s ∈ 𝓝 (0 : G)) (hbounded : IsBounded (f '' s)) : Continuous f
Full source
/-- A group homomorphism from a normed group to a real normed space,
bounded on a neighborhood of `0`, must be continuous. -/
lemma AddMonoidHom.continuous_of_isBounded_nhds_zero (f : G β†’+ H) (hs : s ∈ 𝓝 (0 : G))
    (hbounded : IsBounded (f '' s)) : Continuous f := by
  obtain ⟨δ, hδ, hUΡ⟩ := Metric.mem_nhds_iff.mp hs
  obtain ⟨C, hC⟩ := (isBounded_iff_subset_ball 0).1 (hbounded.subset <| image_subset f hUΡ)
  refine continuous_of_continuousAt_zero _ (continuousAt_iff.2 fun Ξ΅ (hΞ΅ : _ < _) => ?_)
  simp only [dist_zero_right, map_zero, exists_prop]
  simp only [subset_def, mem_image, mem_ball, dist_zero_right, forall_exists_index, and_imp,
    forall_apply_eq_imp_iffβ‚‚] at hC
  have hCβ‚€ : 0 < C := (norm_nonneg _).trans_lt <| hC 0 (by simpa)
  obtain ⟨n, hn⟩ := exists_nat_gt (C / Ρ)
  have hnpos : 0 < (n : ℝ) := (div_pos hCβ‚€ hΞ΅).trans hn
  have hnβ‚€ : n β‰  0 := by rintro rfl; simp at hnpos
  refine ⟨δ / n, div_pos hδ hnpos, fun {x} hxδ => ?_⟩
  calc
    β€–f xβ€–
    _ = β€–(n : ℝ)⁻¹ β€’ f (n β€’ x)β€– := by simp [← Nat.cast_smul_eq_nsmul ℝ, hnβ‚€]
    _ ≀ β€–(n : ℝ)⁻¹‖ * β€–f (n β€’ x)β€– := norm_smul_le ..
    _ < β€–(n : ℝ)⁻¹‖ * C := by
      gcongr
      Β· simpa [pos_iff_ne_zero]
      Β· refine hC _ <| norm_nsmul_le.trans_lt ?_
        simpa only [norm_mul, Real.norm_natCast, lt_div_iffβ‚€ hnpos, mul_comm] using hxΞ΄
    _ = (n : ℝ)⁻¹ * C := by simp
    _ < (C / Ξ΅ : ℝ)⁻¹ * C := by gcongr
    _ = Ξ΅ := by simp [hCβ‚€.ne']
Boundedness on a Neighborhood of Zero Implies Continuity for Additive Group Homomorphisms
Informal description
Let $G$ be a normed group and $H$ a real normed space. If an additive group homomorphism $f \colon G \to H$ is bounded on a neighborhood of $0$ in $G$ (i.e., there exists a neighborhood $s$ of $0$ such that $f(s)$ is bounded in $H$), then $f$ is continuous.