Documentation

Mathlib.Analysis.InnerProductSpace.Subspace

Subspaces of inner product spaces #

This file defines the inner-product structure on a subspace of an inner-product space, and proves some theorems about orthogonal families of subspaces.

Inner product space structure on subspaces #

instance Submodule.innerProductSpace {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [SeminormedAddCommGroup E] [InnerProductSpace ๐•œ E] (W : Submodule ๐•œ E) :
InnerProductSpace ๐•œ โ†ฅW

Induced inner product on a submodule.

Equations
@[simp]
theorem Submodule.coe_inner {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [SeminormedAddCommGroup E] [InnerProductSpace ๐•œ E] (W : Submodule ๐•œ E) (x y : โ†ฅW) :
inner x y = inner โ†‘x โ†‘y

The inner product on submodules is the same as on the ambient space.

theorem Orthonormal.codRestrict {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [SeminormedAddCommGroup E] [InnerProductSpace ๐•œ E] {ฮน : Type u_4} {v : ฮน โ†’ E} (hv : Orthonormal ๐•œ v) (s : Submodule ๐•œ E) (hvs : โˆ€ (i : ฮน), v i โˆˆ s) :
Orthonormal ๐•œ (Set.codRestrict v (โ†‘s) hvs)
theorem orthonormal_span {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [SeminormedAddCommGroup E] [InnerProductSpace ๐•œ E] {ฮน : Type u_4} {v : ฮน โ†’ E} (hv : Orthonormal ๐•œ v) :
Orthonormal ๐•œ fun (i : ฮน) => โŸจv i, โ‹ฏโŸฉ

Families of mutually-orthogonal subspaces of an inner product space #

def OrthogonalFamily (๐•œ : Type u_1) {E : Type u_2} [RCLike ๐•œ] [SeminormedAddCommGroup E] [InnerProductSpace ๐•œ E] {ฮน : Type u_4} (G : ฮน โ†’ Type u_5) [(i : ฮน) โ†’ SeminormedAddCommGroup (G i)] [(i : ฮน) โ†’ InnerProductSpace ๐•œ (G i)] (V : (i : ฮน) โ†’ G i โ†’โ‚—แตข[๐•œ] E) :

An indexed family of mutually-orthogonal subspaces of an inner product space E.

The simple way to express this concept would be as a condition on V : ฮน โ†’ Submodule ๐•œ E. We instead implement it as a condition on a family of inner product spaces each equipped with an isometric embedding into E, thus making it a property of morphisms rather than subobjects. The connection to the subobject spelling is shown in orthogonalFamily_iff_pairwise.

This definition is less lightweight, but allows for better definitional properties when the inner product space structure on each of the submodules is important -- for example, when considering their Hilbert sum (PiLp V 2). For example, given an orthonormal set of vectors v : ฮน โ†’ E, we have an associated orthogonal family of one-dimensional subspaces of E, which it is convenient to be able to discuss using ฮน โ†’ ๐•œ rather than ฮ  i : ฮน, span ๐•œ (v i).

Equations
Instances For
    theorem Orthonormal.orthogonalFamily {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [SeminormedAddCommGroup E] [InnerProductSpace ๐•œ E] {ฮน : Type u_4} {v : ฮน โ†’ E} (hv : Orthonormal ๐•œ v) :
    OrthogonalFamily ๐•œ (fun (_i : ฮน) => ๐•œ) fun (i : ฮน) => LinearIsometry.toSpanSingleton ๐•œ E โ‹ฏ
    theorem OrthogonalFamily.eq_ite {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [SeminormedAddCommGroup E] [InnerProductSpace ๐•œ E] {ฮน : Type u_4} {G : ฮน โ†’ Type u_5} [(i : ฮน) โ†’ NormedAddCommGroup (G i)] [(i : ฮน) โ†’ InnerProductSpace ๐•œ (G i)] {V : (i : ฮน) โ†’ G i โ†’โ‚—แตข[๐•œ] E} (hV : OrthogonalFamily ๐•œ G V) [DecidableEq ฮน] {i j : ฮน} (v : G i) (w : G j) :
    inner ((V i) v) ((V j) w) = if i = j then inner ((V i) v) ((V j) w) else 0
    theorem OrthogonalFamily.inner_right_dfinsupp {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [SeminormedAddCommGroup E] [InnerProductSpace ๐•œ E] {ฮน : Type u_4} {G : ฮน โ†’ Type u_5} [(i : ฮน) โ†’ NormedAddCommGroup (G i)] [(i : ฮน) โ†’ InnerProductSpace ๐•œ (G i)] {V : (i : ฮน) โ†’ G i โ†’โ‚—แตข[๐•œ] E} (hV : OrthogonalFamily ๐•œ G V) [(i : ฮน) โ†’ (x : G i) โ†’ Decidable (x โ‰  0)] [DecidableEq ฮน] (l : DirectSum ฮน fun (i : ฮน) => G i) (i : ฮน) (v : G i) :
    inner ((V i) v) (DFinsupp.sum l fun (j : ฮน) => โ‡‘(V j)) = inner v (l i)
    theorem OrthogonalFamily.inner_right_fintype {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [SeminormedAddCommGroup E] [InnerProductSpace ๐•œ E] {ฮน : Type u_4} {G : ฮน โ†’ Type u_5} [(i : ฮน) โ†’ NormedAddCommGroup (G i)] [(i : ฮน) โ†’ InnerProductSpace ๐•œ (G i)] {V : (i : ฮน) โ†’ G i โ†’โ‚—แตข[๐•œ] E} (hV : OrthogonalFamily ๐•œ G V) [Fintype ฮน] (l : (i : ฮน) โ†’ G i) (i : ฮน) (v : G i) :
    inner ((V i) v) (โˆ‘ j : ฮน, (V j) (l j)) = inner v (l i)
    theorem OrthogonalFamily.inner_sum {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [SeminormedAddCommGroup E] [InnerProductSpace ๐•œ E] {ฮน : Type u_4} {G : ฮน โ†’ Type u_5} [(i : ฮน) โ†’ NormedAddCommGroup (G i)] [(i : ฮน) โ†’ InnerProductSpace ๐•œ (G i)] {V : (i : ฮน) โ†’ G i โ†’โ‚—แตข[๐•œ] E} (hV : OrthogonalFamily ๐•œ G V) (lโ‚ lโ‚‚ : (i : ฮน) โ†’ G i) (s : Finset ฮน) :
    inner (โˆ‘ i โˆˆ s, (V i) (lโ‚ i)) (โˆ‘ j โˆˆ s, (V j) (lโ‚‚ j)) = โˆ‘ i โˆˆ s, inner (lโ‚ i) (lโ‚‚ i)
    theorem OrthogonalFamily.norm_sum {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [SeminormedAddCommGroup E] [InnerProductSpace ๐•œ E] {ฮน : Type u_4} {G : ฮน โ†’ Type u_5} [(i : ฮน) โ†’ NormedAddCommGroup (G i)] [(i : ฮน) โ†’ InnerProductSpace ๐•œ (G i)] {V : (i : ฮน) โ†’ G i โ†’โ‚—แตข[๐•œ] E} (hV : OrthogonalFamily ๐•œ G V) (l : (i : ฮน) โ†’ G i) (s : Finset ฮน) :
    โ€–โˆ‘ i โˆˆ s, (V i) (l i)โ€– ^ 2 = โˆ‘ i โˆˆ s, โ€–l iโ€– ^ 2
    theorem OrthogonalFamily.comp {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [SeminormedAddCommGroup E] [InnerProductSpace ๐•œ E] {ฮน : Type u_4} {G : ฮน โ†’ Type u_5} [(i : ฮน) โ†’ NormedAddCommGroup (G i)] [(i : ฮน) โ†’ InnerProductSpace ๐•œ (G i)] {V : (i : ฮน) โ†’ G i โ†’โ‚—แตข[๐•œ] E} (hV : OrthogonalFamily ๐•œ G V) {ฮณ : Type u_6} {f : ฮณ โ†’ ฮน} (hf : Function.Injective f) :
    OrthogonalFamily ๐•œ (fun (g : ฮณ) => G (f g)) fun (g : ฮณ) => V (f g)

    The composition of an orthogonal family of subspaces with an injective function is also an orthogonal family.

    theorem OrthogonalFamily.orthonormal_sigma_orthonormal {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [SeminormedAddCommGroup E] [InnerProductSpace ๐•œ E] {ฮน : Type u_4} {G : ฮน โ†’ Type u_5} [(i : ฮน) โ†’ NormedAddCommGroup (G i)] [(i : ฮน) โ†’ InnerProductSpace ๐•œ (G i)] {V : (i : ฮน) โ†’ G i โ†’โ‚—แตข[๐•œ] E} (hV : OrthogonalFamily ๐•œ G V) {ฮฑ : ฮน โ†’ Type u_6} {v_family : (i : ฮน) โ†’ ฮฑ i โ†’ G i} (hv_family : โˆ€ (i : ฮน), Orthonormal ๐•œ (v_family i)) :
    Orthonormal ๐•œ fun (a : (i : ฮน) ร— ฮฑ i) => (V a.fst) (v_family a.fst a.snd)
    theorem OrthogonalFamily.norm_sq_diff_sum {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [SeminormedAddCommGroup E] [InnerProductSpace ๐•œ E] {ฮน : Type u_4} {G : ฮน โ†’ Type u_5} [(i : ฮน) โ†’ NormedAddCommGroup (G i)] [(i : ฮน) โ†’ InnerProductSpace ๐•œ (G i)] {V : (i : ฮน) โ†’ G i โ†’โ‚—แตข[๐•œ] E} (hV : OrthogonalFamily ๐•œ G V) [DecidableEq ฮน] (f : (i : ฮน) โ†’ G i) (sโ‚ sโ‚‚ : Finset ฮน) :
    โ€–โˆ‘ i โˆˆ sโ‚, (V i) (f i) - โˆ‘ i โˆˆ sโ‚‚, (V i) (f i)โ€– ^ 2 = โˆ‘ i โˆˆ sโ‚ \ sโ‚‚, โ€–f iโ€– ^ 2 + โˆ‘ i โˆˆ sโ‚‚ \ sโ‚, โ€–f iโ€– ^ 2
    theorem OrthogonalFamily.summable_iff_norm_sq_summable {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [SeminormedAddCommGroup E] [InnerProductSpace ๐•œ E] {ฮน : Type u_4} {G : ฮน โ†’ Type u_5} [(i : ฮน) โ†’ NormedAddCommGroup (G i)] [(i : ฮน) โ†’ InnerProductSpace ๐•œ (G i)] {V : (i : ฮน) โ†’ G i โ†’โ‚—แตข[๐•œ] E} (hV : OrthogonalFamily ๐•œ G V) [CompleteSpace E] (f : (i : ฮน) โ†’ G i) :
    (Summable fun (i : ฮน) => (V i) (f i)) โ†” Summable fun (i : ฮน) => โ€–f iโ€– ^ 2

    A family f of mutually-orthogonal elements of E is summable, if and only if (fun i โ†ฆ โ€–f iโ€– ^ 2) is summable.

    theorem OrthogonalFamily.independent {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] {ฮน : Type u_4} {V : ฮน โ†’ Submodule ๐•œ E} (hV : OrthogonalFamily ๐•œ (fun (i : ฮน) => โ†ฅ(V i)) fun (i : ฮน) => (V i).subtypeโ‚—แตข) :

    An orthogonal family forms an independent family of subspaces; that is, any collection of elements each from a different subspace in the family is linearly independent. In particular, the pairwise intersections of elements of the family are 0.

    theorem DirectSum.IsInternal.collectedBasis_orthonormal {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] {ฮน : Type u_4} [DecidableEq ฮน] {V : ฮน โ†’ Submodule ๐•œ E} (hV : OrthogonalFamily ๐•œ (fun (i : ฮน) => โ†ฅ(V i)) fun (i : ฮน) => (V i).subtypeโ‚—แตข) (hV_sum : DirectSum.IsInternal fun (i : ฮน) => V i) {ฮฑ : ฮน โ†’ Type u_6} {v_family : (i : ฮน) โ†’ Basis (ฮฑ i) ๐•œ โ†ฅ(V i)} (hv_family : โˆ€ (i : ฮน), Orthonormal ๐•œ โ‡‘(v_family i)) :
    Orthonormal ๐•œ โ‡‘(hV_sum.collectedBasis v_family)