Documentation

Mathlib.Analysis.InnerProductSpace.Projection.FiniteDimensional

Orthogonal projections in finite-dimensional spaces #

This file contains results about orthogonal projections in finite-dimensional spaces.

Main results #

Results that do not use finite dimensionality: #

@[simp]
theorem Submodule.topologicalClosure_eq_self {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] (K : Submodule ๐•œ E) [FiniteDimensional ๐•œ โ†ฅK] :
@[simp]
theorem Submodule.det_reflection {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] (K : Submodule ๐•œ E) [FiniteDimensional ๐•œ โ†ฅK] :
@[simp]
theorem Submodule.linearEquiv_det_reflection {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] (K : Submodule ๐•œ E) [FiniteDimensional ๐•œ โ†ฅK] :
theorem Submodule.finrank_add_inf_finrank_orthogonal {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] {Kโ‚ Kโ‚‚ : Submodule ๐•œ E} [FiniteDimensional ๐•œ โ†ฅKโ‚‚] (h : Kโ‚ โ‰ค Kโ‚‚) :
Module.finrank ๐•œ โ†ฅKโ‚ + Module.finrank ๐•œ โ†ฅ(Kโ‚แ—ฎ โŠ“ Kโ‚‚) = Module.finrank ๐•œ โ†ฅKโ‚‚

Given a finite-dimensional subspace Kโ‚‚, and a subspace Kโ‚ contained in it, the dimensions of Kโ‚ and the intersection of its orthogonal subspace with Kโ‚‚ add to that of Kโ‚‚.

theorem Submodule.finrank_add_inf_finrank_orthogonal' {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] {Kโ‚ Kโ‚‚ : Submodule ๐•œ E} [FiniteDimensional ๐•œ โ†ฅKโ‚‚] (h : Kโ‚ โ‰ค Kโ‚‚) {n : โ„•} (h_dim : Module.finrank ๐•œ โ†ฅKโ‚ + n = Module.finrank ๐•œ โ†ฅKโ‚‚) :
Module.finrank ๐•œ โ†ฅ(Kโ‚แ—ฎ โŠ“ Kโ‚‚) = n

Given a finite-dimensional subspace Kโ‚‚, and a subspace Kโ‚ contained in it, the dimensions of Kโ‚ and the intersection of its orthogonal subspace with Kโ‚‚ add to that of Kโ‚‚.

theorem Submodule.finrank_add_finrank_orthogonal {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] [FiniteDimensional ๐•œ E] (K : Submodule ๐•œ E) :
Module.finrank ๐•œ โ†ฅK + Module.finrank ๐•œ โ†ฅKแ—ฎ = Module.finrank ๐•œ E

Given a finite-dimensional space E and subspace K, the dimensions of K and Kแ—ฎ add to that of E.

theorem Submodule.finrank_add_finrank_orthogonal' {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] [FiniteDimensional ๐•œ E] {K : Submodule ๐•œ E} {n : โ„•} (h_dim : Module.finrank ๐•œ โ†ฅK + n = Module.finrank ๐•œ E) :
Module.finrank ๐•œ โ†ฅKแ—ฎ = n

Given a finite-dimensional space E and subspace K, the dimensions of K and Kแ—ฎ add to that of E.

theorem Submodule.finrank_orthogonal_span_singleton {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] {n : โ„•} [_i : Fact (Module.finrank ๐•œ E = n + 1)] {v : E} (hv : v โ‰  0) :
Module.finrank ๐•œ โ†ฅ(span ๐•œ {v})แ—ฎ = n

In a finite-dimensional inner product space, the dimension of the orthogonal complement of the span of a nonzero vector is one less than the dimension of the space.

theorem LinearIsometryEquiv.reflections_generate_dim_aux {F : Type u_3} [NormedAddCommGroup F] [InnerProductSpace โ„ F] [FiniteDimensional โ„ F] {n : โ„•} (ฯ† : F โ‰ƒโ‚—แตข[โ„] F) (hn : Module.finrank โ„ โ†ฅ(LinearMap.ker (ContinuousLinearMap.id โ„ F - โ†‘{ toLinearEquiv := ฯ†.toLinearEquiv, continuous_toFun := โ‹ฏ, continuous_invFun := โ‹ฏ }))แ—ฎ โ‰ค n) :
โˆƒ (l : List F), l.length โ‰ค n โˆง ฯ† = (List.map (fun (v : F) => (Submodule.span โ„ {v})แ—ฎ.reflection) l).prod

An element ฯ† of the orthogonal group of F can be factored as a product of reflections, and specifically at most as many reflections as the dimension of the complement of the fixed subspace of ฯ†.

The orthogonal group of F is generated by reflections; specifically each element ฯ† of the orthogonal group is a product of at most as many reflections as the dimension of F.

Special case of the Cartanโ€“Dieudonnรฉ theorem.

theorem OrthogonalFamily.isInternal_iff_of_isComplete {๐•œ : 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โ‚—แตข) (hc : IsComplete โ†‘(iSup V)) :

An orthogonal family of subspaces of E satisfies DirectSum.IsInternal (that is, they provide an internal direct sum decomposition of E) if and only if their span has trivial orthogonal complement.

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

An orthogonal family of subspaces of E satisfies DirectSum.IsInternal (that is, they provide an internal direct sum decomposition of E) if and only if their span has trivial orthogonal complement.

theorem OrthogonalFamily.sum_projection_of_mem_iSup {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] {ฮน : Type u_4} [Fintype ฮน] {V : ฮน โ†’ Submodule ๐•œ E} [โˆ€ (i : ฮน), CompleteSpace โ†ฅ(V i)] (hV : OrthogonalFamily ๐•œ (fun (i : ฮน) => โ†ฅ(V i)) fun (i : ฮน) => (V i).subtypeโ‚—แตข) (x : E) (hx : x โˆˆ iSup V) :
โˆ‘ i : ฮน, (V i).starProjection x = x

If x lies within an orthogonal family v, it can be expressed as a sum of projections.

theorem OrthogonalFamily.projection_directSum_coeAddHom {๐•œ : 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โ‚—แตข) (x : DirectSum ฮน fun (i : ฮน) => โ†ฅ(V i)) (i : ฮน) [CompleteSpace โ†ฅ(V i)] :

If a family of submodules is orthogonal, then the orthogonalProjection on a direct sum is just the coefficient of that direct sum.

@[reducible, inline]
noncomputable abbrev OrthogonalFamily.decomposition {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] {ฮน : Type u_4} [DecidableEq ฮน] [Fintype ฮน] {V : ฮน โ†’ Submodule ๐•œ E} [โˆ€ (i : ฮน), CompleteSpace โ†ฅ(V i)] (hV : OrthogonalFamily ๐•œ (fun (i : ฮน) => โ†ฅ(V i)) fun (i : ฮน) => (V i).subtypeโ‚—แตข) (h : iSup V = โŠค) :

If a family of submodules is orthogonal and they span the whole space, then the orthogonal projection provides a means to decompose the space into its submodules.

The projection function is decompose V x i = (V i).orthogonalProjection x.

See note [reducible non-instances].

Equations
Instances For
    theorem maximal_orthonormal_iff_orthogonalComplement_eq_bot {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] {v : Set E} (hv : Orthonormal ๐•œ Subtype.val) :
    (โˆ€ u โЇ v, Orthonormal ๐•œ Subtype.val โ†’ u = v) โ†” (Submodule.span ๐•œ v)แ—ฎ = โŠฅ

    An orthonormal set in an InnerProductSpace is maximal, if and only if the orthogonal complement of its span is empty.

    theorem maximal_orthonormal_iff_basis_of_finiteDimensional {๐•œ : Type u_1} {E : Type u_2} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] {v : Set E} [FiniteDimensional ๐•œ E] (hv : Orthonormal ๐•œ Subtype.val) :
    (โˆ€ u โЇ v, Orthonormal ๐•œ Subtype.val โ†’ u = v) โ†” โˆƒ (b : Module.Basis (โ†‘v) ๐•œ E), โ‡‘b = Subtype.val

    An orthonormal set in a finite-dimensional InnerProductSpace is maximal, if and only if it is a basis.