Documentation

Mathlib.Analysis.InnerProductSpace.OfNorm

Inner product space derived from a norm #

This file defines an InnerProductSpace instance from a norm that respects the parallellogram identity. The parallelogram identity is a way to express the inner product of x and y in terms of the norms of x, y, x + y, x - y.

Main results #

Implementation notes #

We define inner_

$$\langle x, y \rangle := \frac{1}{4} (‖x + y‖^2 - ‖x - y‖^2 + i ‖ix + y‖ ^ 2 - i ‖ix - y‖^2)$$

and use the parallelogram identity

$$‖x + y‖^2 + ‖x - y‖^2 = 2 (‖x‖^2 + ‖y‖^2)$$

to prove it is an inner product, i.e., that it is conjugate-symmetric (inner_.conj_symm) and linear in the first argument. add_left is proved by judicious application of the parallelogram identity followed by tedious arithmetic. smul_left is proved step by step, first noting that $\langle λ x, y \rangle = λ \langle x, y \rangle$ for $λ ∈ ℕ$, $λ = -1$, hence $λ ∈ ℤ$ and $λ ∈ ℚ$ by arithmetic. Then by continuity and the fact that ℚ is dense in ℝ, the same is true for ℝ. The case of ℂ then follows by applying the result for ℝ and more arithmetic.

TODO #

Move upstream to Analysis.InnerProductSpace.Basic.

References #

Tags #

inner product space, Hilbert space, norm

Predicate for the parallelogram identity to hold in a normed group. This is a scalar-less version of InnerProductSpace. If you have an InnerProductSpaceable assumption, you can locally upgrade that to InnerProductSpace 𝕜 E using casesI nonempty_innerProductSpace 𝕜 E.

Instances
    theorem Continuous.inner_ {𝕜 : Type u_1} [IsROrC 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {f : E} {g : E} (hf : Continuous f) (hg : Continuous g) :
    Continuous fun (x : ) => inner_ 𝕜 (f x) (g x)
    theorem InnerProductSpaceable.inner_.norm_sq {𝕜 : Type u_1} [IsROrC 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] (x : E) :
    x ^ 2 = IsROrC.re (inner_ 𝕜 x x)
    theorem InnerProductSpaceable.inner_.conj_symm {𝕜 : Type u_1} [IsROrC 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] (x : E) (y : E) :
    (starRingEnd 𝕜) (inner_ 𝕜 y x) = inner_ 𝕜 x y
    theorem InnerProductSpaceable.add_left {𝕜 : Type u_1} [IsROrC 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] [InnerProductSpaceable E] (x : E) (y : E) (z : E) :
    inner_ 𝕜 (x + y) z = inner_ 𝕜 x z + inner_ 𝕜 y z
    theorem InnerProductSpaceable.nat {𝕜 : Type u_1} [IsROrC 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] [InnerProductSpaceable E] (n : ) (x : E) (y : E) :
    inner_ 𝕜 (n x) y = n * inner_ 𝕜 x y
    noncomputable def InnerProductSpace.ofNorm (𝕜 : Type u_1) [IsROrC 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] (h : ∀ (x y : E), x + y * x + y + x - y * x - y = 2 * (x * x + y * y)) :

    Fréchet–von Neumann–Jordan Theorem. A normed space E whose norm satisfies the parallelogram identity can be given a compatible inner product.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For

      Fréchet–von Neumann–Jordan Theorem. A normed space E whose norm satisfies the parallelogram identity can be given a compatible inner product. Do casesI nonempty_innerProductSpace 𝕜 E to locally upgrade InnerProductSpaceable E to InnerProductSpace 𝕜 E.