Documentation

LeanPool.DavisKahan.ForTauCeti.Analysis.InnerProductSpace.BasisSpan

Spans of orthonormal subfamilies #

For an orthonormal basis b : OrthonormalBasis ฮน ๐•œ E and a set s : Set ฮน of indices, b.spanIndices s is the subspace spanned by the selected basis vectors {b i : i โˆˆ s}.

Main results #

Provenance #

noncomputable def OrthonormalBasis.spanIndices {๐•œ : Type u_1} {E : Type u_2} {ฮน : Type u_3} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] [Fintype ฮน] (b : OrthonormalBasis ฮน ๐•œ E) (s : Set ฮน) :
Submodule ๐•œ E

The subspace spanned by the orthonormal basis vectors b i for indices i โˆˆ s.

Equations
Instances For
    theorem OrthonormalBasis.spanIndices_eq_span {๐•œ : Type u_1} {E : Type u_2} {ฮน : Type u_3} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] [Fintype ฮน] (b : OrthonormalBasis ฮน ๐•œ E) (s : Set ฮน) :
    b.spanIndices s = Submodule.span ๐•œ (โ‡‘b '' s)

    spanIndices is the span of the selected basis vectors. The characteristic lemma: spanIndices is a name for a Submodule.span, and a consumer that needs to run Submodule.span_induction needs to be told so.

    Written because dropping this module's blanket @[expose] broke exactly one downstream proof โ€” LinearMap.IsSymmetric.map_mem_spanIndices in CourantFischer.lean โ€” which was reaching through the definition instead. That is the api-design rubric's case for a missing lemma rather than an exposed body.

    theorem OrthonormalBasis.spanIndices_mono {๐•œ : Type u_1} {E : Type u_2} {ฮน : Type u_3} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] [Fintype ฮน] (b : OrthonormalBasis ฮน ๐•œ E) {s t : Set ฮน} (h : s โІ t) :

    Selecting more indices spans more.

    theorem OrthonormalBasis.mem_spanIndices_of_mem {๐•œ : Type u_1} {E : Type u_2} {ฮน : Type u_3} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] [Fintype ฮน] (b : OrthonormalBasis ฮน ๐•œ E) {s : Set ฮน} {i : ฮน} (hi : i โˆˆ s) :

    A selected basis vector lies in the span of its index set.

    theorem OrthonormalBasis.repr_eq_zero_of_mem_spanIndices {๐•œ : Type u_1} {E : Type u_2} {ฮน : Type u_3} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] [Fintype ฮน] (b : OrthonormalBasis ฮน ๐•œ E) {s : Set ฮน} {x : E} (hx : x โˆˆ b.spanIndices s) {i : ฮน} (hi : i โˆ‰ s) :
    (b.repr x).ofLp i = 0

    A vector in the span of a selected subfamily has zero coordinate at any index outside the selection.

    theorem OrthonormalBasis.mem_spanIndices_iff {๐•œ : Type u_1} {E : Type u_2} {ฮน : Type u_3} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] [Fintype ฮน] (b : OrthonormalBasis ฮน ๐•œ E) {s : Set ฮน} {x : E} :
    x โˆˆ b.spanIndices s โ†” โˆ€ i โˆ‰ s, (b.repr x).ofLp i = 0

    Membership in the span of a selected subfamily is exactly the vanishing of the coordinates outside the selection.

    theorem OrthonormalBasis.finrank_spanIndices {๐•œ : Type u_1} {E : Type u_2} {ฮน : Type u_3} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] [Fintype ฮน] (b : OrthonormalBasis ฮน ๐•œ E) (s : Finset ฮน) :
    Module.finrank ๐•œ โ†ฅ(b.spanIndices โ†‘s) = s.card

    The span of a selected subfamily has dimension the number of selected indices.

    theorem OrthonormalBasis.finrank_spanIndices_set {๐•œ : Type u_1} {E : Type u_2} {ฮน : Type u_3} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] [Fintype ฮน] (b : OrthonormalBasis ฮน ๐•œ E) (s : Set ฮน) [DecidablePred fun (x : ฮน) => x โˆˆ s] :
    Module.finrank ๐•œ โ†ฅ(b.spanIndices s) = s.toFinset.card

    Set form of OrthonormalBasis.finrank_spanIndices.

    theorem OrthonormalBasis.orthogonal_spanIndices {๐•œ : Type u_1} {E : Type u_2} {ฮน : Type u_3} [RCLike ๐•œ] [NormedAddCommGroup E] [InnerProductSpace ๐•œ E] [Fintype ฮน] (b : OrthonormalBasis ฮน ๐•œ E) (s : Set ฮน) :

    The orthogonal complement of the span of a selected subfamily is the span of the complementary subfamily.