Documentation

Monlib.LinearAlgebra.Ips.MinimalProj

Minimal projections #

In this file we show some necessary results for positive operators on a Hilbert space.

main results #

Theorem. If $p,q$ are (orthogonal) projections on $E$, then the following are equivalent:

for part (iii), it suffices to show that the element is an idempotent since $q - p$ is self-adjoint

it turns out that $qp = p$ (from (i)) if and only if (ii) and (i) if and only if (iii) for idempotent operators on a module over a ring (see IsIdempotentElem.comp_idempotent_iff and linear_map.commutes_iff_isIdempotent_elem)

obviously when $p,q$ are self-adjoint operators, then $pq = p$ iff $qp=p$ (see self_adjoint_commutes_iff)

so then, obviously, (ii) if and only if (iii) for idempotent self-adjoint operators as well (see continuous_linear_map.image_subset_iff_sub_of_is_idempotent)

we finally have (i) if and only if (iv) for idempotent self-adjoint operators on a finite-dimensional complex-Hilbert space: (see orthogonal_projection_is_positive_iff_commutes)

main definition #

theorem IsIdempotentElem.mem_range_iff {R : Type u_1} {E : Type u_2} [Ring R] [AddCommGroup E] [Module R E] {p : E →ₗ[R] E} (hp : IsIdempotentElem p) {x : E} :

given an idempotent linear operator $p$, we have $x \in \textnormal{range}(p)$ if and only if $p(x) = x$ (for all $x \in E$)

theorem IsIdempotentElem.comp_idempotent_iff {R : Type u_2} {E : Type u_3} [Ring R] [AddCommGroup E] [Module R E] {q : E →ₗ[R] E} (hq : IsIdempotentElem q) {E₂ : Type u_1} [AddCommGroup E₂] [Module R E₂] (p : E₂ →ₗ[R] E) :

given idempotent linear operators $p,q$, we have $qp = p$ iff $p(E) \subseteq q(E)$

theorem IsIdempotentElem.comp_idempotent_iff' {R : Type u_2} {E : Type u_3} [Ring R] [AddCommGroup E] [Module R E] {q : E →ₗ[R] E} (hq : IsIdempotentElem q) {E₂ : Type u_1} [AddCommGroup E₂] [Module R E₂] (p : E₂ →ₗ[R] E) :
theorem LinearMap.isIdempotentElem_sub_of {R : Type u_2} {E : Type u_1} [Ring R] [AddCommGroup E] [Module R E] {q : E →ₗ[R] E} (hq : IsIdempotentElem q) {p : E →ₗ[R] E} (hp : IsIdempotentElem p) (h : p ∘ₗ q = p q ∘ₗ p = p) :

if $p,q$ are idempotent operators and $pq = p = qp$, then $q - p$ is an idempotent operator

theorem LinearMap.commutes_of_isIdempotentElem {E : Type u_1} {𝕜 : Type u_2} [RCLike 𝕜] [AddCommGroup E] [Module 𝕜 E] {p : E →ₗ[𝕜] E} {q : E →ₗ[𝕜] E} (hp : IsIdempotentElem p) (hq : IsIdempotentElem q) (h : IsIdempotentElem (q - p)) :
p ∘ₗ q = p q ∘ₗ p = p

if $p,q$ are idempotent operators and $q - p$ is also an idempotent operator, then $pq = p = qp$

theorem LinearMap.commutes_iff_isIdempotentElem {E : Type u_1} {𝕜 : Type u_2} [RCLike 𝕜] [AddCommGroup E] [Module 𝕜 E] {p : E →ₗ[𝕜] E} {q : E →ₗ[𝕜] E} (hp : IsIdempotentElem p) (hq : IsIdempotentElem q) :
p ∘ₗ q = p q ∘ₗ p = p IsIdempotentElem (q - p)

given idempotent operators $p,q$, we have $pq = p = qp$ iff $q - p$ is an idempotent operator

theorem self_adjoint_proj_commutes {𝕜 : Type u_1} {E : Type u_2} [RCLike 𝕜] [NormedAddCommGroup E] [InnerProductSpace 𝕜 E] [CompleteSpace E] {p : E →L[𝕜] E} {q : E →L[𝕜] E} (hpa : IsSelfAdjoint p) (hqa : IsSelfAdjoint q) :
p.comp q = p q.comp p = p

given self-adjoint operators $p,q$, we have $pq=p$ iff $qp=p$

class ContinuousLinearMap.IsOrthogonalProjection {𝕜 : Type u_1} {E : Type u_2} [RCLike 𝕜] [NormedAddCommGroup E] [InnerProductSpace 𝕜 E] (T : E →L[𝕜] E) :
Instances
    theorem ContinuousLinearMap.IsOrthogonalProjection.isIdempotent {𝕜 : Type u_1} {E : Type u_2} :
    ∀ {inst : RCLike 𝕜} {inst_1 : NormedAddCommGroup E} {inst_2 : InnerProductSpace 𝕜 E} {T : E →L[𝕜] E} [self : T.IsOrthogonalProjection], IsIdempotentElem T
    theorem ContinuousLinearMap.IsOrthogonalProjection.kerEqRangeOrtho {𝕜 : Type u_1} {E : Type u_2} :
    ∀ {inst : RCLike 𝕜} {inst_1 : NormedAddCommGroup E} {inst_2 : InnerProductSpace 𝕜 E} {T : E →L[𝕜] E} [self : T.IsOrthogonalProjection], LinearMap.ker T = (LinearMap.range T)
    theorem ContinuousLinearMap.IsOrthogonalProjection.eq {𝕜 : Type u_1} {E : Type u_2} [RCLike 𝕜] [NormedAddCommGroup E] [InnerProductSpace 𝕜 E] {T : E →L[𝕜] E} (hT : T.IsOrthogonalProjection) :
    theorem IsIdempotentElem.clm_to_lm {𝕜 : Type u_1} {E : Type u_2} [RCLike 𝕜] [NormedAddCommGroup E] [InnerProductSpace 𝕜 E] {T : E →L[𝕜] E} :
    theorem ker_to_clm {R : Type u_1} {R₂ : Type u_2} {M : Type u_3} {M₂ : Type u_4} [Semiring R] [Semiring R₂] [AddCommMonoid M] [AddCommMonoid M₂] [TopologicalSpace M] [TopologicalSpace M₂] [Module R M] [Module R₂ M₂] {τ₁₂ : R →+* R₂} (f : M →SL[τ₁₂] M₂) :
    theorem subtype_compL_ker {𝕜 : Type u_1} {E : Type u_2} [RCLike 𝕜] [NormedAddCommGroup E] [InnerProductSpace 𝕜 E] (U : Submodule 𝕜 E) (f : E →L[𝕜] U) :
    LinearMap.ker (U.subtypeL.comp f) = LinearMap.ker f
    theorem orthogonalProjection.isOrthogonalProjection {𝕜 : Type u_1} {E : Type u_2} [RCLike 𝕜] [NormedAddCommGroup E] [InnerProductSpace 𝕜 E] (U : Submodule 𝕜 E) [h : HasOrthogonalProjection U] :
    (orthogonalProjection' U).IsOrthogonalProjection

    given any idempotent operator $T ∈ L(V)$, then is_compl T.ker T.range, in other words, there exists unique $v ∈ \textnormal{ker}(T)$ and $w ∈ \textnormal{range}(T)$ such that $x = v + w$

    theorem IsCompl.of_orthogonal_projection {𝕜 : Type u_1} {E : Type u_2} [RCLike 𝕜] [NormedAddCommGroup E] [InnerProductSpace 𝕜 E] {T : E →L[𝕜] E} (h : T.IsOrthogonalProjection) :
    theorem LinearMap.isIdempotentElem_of_isProj {V : Type u_1} {R : Type u_2} [Semiring R] [AddCommGroup V] [Module R V] {T : V →ₗ[R] V} {U : Submodule R V} (h : LinearMap.IsProj U T) :

    $P_V P_U = P_U$ if and only if $P_V - P_U$ is an orthogonal projection

    instance LinearMap.IsSymmetric.hasLe {𝕜 : Type u_1} {E : Type u_2} [RCLike 𝕜] [NormedAddCommGroup E] [InnerProductSpace 𝕜 E] :
    LE (E →ₗ[𝕜] E)

    instance for on linear maps

    Equations
    • LinearMap.IsSymmetric.hasLe = { le := fun (u v : E →ₗ[𝕜] E) => (v - u).IsPositive }
    @[reducible]
    Equations
    Instances For
      @[reducible]
      Equations
      Instances For
        instance instPartialOrderLinearMapId_monlib {𝕜 : Type u_1} {E : Type u_2} [RCLike 𝕜] [NormedAddCommGroup E] [InnerProductSpace 𝕜 E] :
        Equations
        theorem LinearMap.IsPositive.hasLe {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace E] {p : (SymmetricLM E)} {q : (SymmetricLM E)} :
        p q (q - p).IsPositive

        p ≤ q means q - p is positive

        noncomputable instance IsSymmetric.hasZero {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace E] :
        Zero {x : E →ₗ[] E | x.IsSymmetric}
        Equations
        • IsSymmetric.hasZero = { zero := 0, }
        theorem LinearMap.IsPositive.is_nonneg {𝕜 : Type u_1} {E : Type u_2} [RCLike 𝕜] [NormedAddCommGroup E] [InnerProductSpace 𝕜 E] {p : E →ₗ[𝕜] E} :
        p.IsPositive 0 p

        saying p is positive is the same as saying 0 ≤ p

        theorem SelfAdjointAndIdempotent.is_positive {𝕜 : Type u_1} {E : Type u_2} [RCLike 𝕜] [NormedAddCommGroup E] [InnerProductSpace 𝕜 E] [CompleteSpace E] {p : E →L[𝕜] E} (hp : IsIdempotentElem p) (hpa : IsSelfAdjoint p) :
        0 p

        a self-adjoint idempotent operator is positive

        an idempotent is positive if and only if it is self-adjoint

        orthogonal projections are obviously positive

        theorem SelfAdjointAndIdempotent.sub_is_positive_of {𝕜 : Type u_1} {E : Type u_2} [RCLike 𝕜] [NormedAddCommGroup E] [InnerProductSpace 𝕜 E] [CompleteSpace E] {p : E →L[𝕜] E} {q : E →L[𝕜] E} (hp : IsIdempotentElem p) (hq : IsIdempotentElem q) (hpa : IsSelfAdjoint p) (hqa : IsSelfAdjoint q) (h : p.comp q = p) :
        0 q - p

        given orthogonal projections Pᵤ,Pᵥ, then Pᵤ(Pᵥ)=Pᵤ implies Pᵥ-Pᵤ is positive (i.e., Pᵤ ≤ Pᵥ)

        given orthogonal projections Pᵤ,Pᵥ, then if Pᵥ - Pᵤ is idempotent, then Pᵤ Pᵥ = Pᵤ

        theorem ContinuousLinearMap.isPositive_iff_exists_adjoint_hMul_self {𝕜 : Type u_1} {E : Type u_2} [RCLike 𝕜] [NormedAddCommGroup E] [InnerProductSpace 𝕜 E] [FiniteDimensional 𝕜 E] (T : E →L[𝕜] E) :
        T.IsPositive ∃ (S : E →L[𝕜] E), T = ContinuousLinearMap.adjoint S * S

        copy of linear_map.is_positive_iff_exists_adjoint_mul_self

        theorem ContinuousLinearMap.is_positive_le_iff_inner {𝕜 : Type u_1} {E : Type u_2} [RCLike 𝕜] [NormedAddCommGroup E] [InnerProductSpace 𝕜 E] [CompleteSpace E] {p : E →L[𝕜] E} {q : E →L[𝕜] E} (hpa : IsSelfAdjoint p) (hqa : IsSelfAdjoint q) :
        p q ∀ (x : E), RCLike.re (inner x (p x)) RCLike.re (inner x (q x))

        in a finite-dimensional complex Hilbert space E, if p,q are self-adjoint operators, then p ≤ q iff ∀ x ∈ E : ⟪x, p x⟫ ≤ ⟪x, q x⟫

        theorem ContinuousLinearMap.hasLe_norm {𝕜 : Type u_1} {E : Type u_2} [RCLike 𝕜] [NormedAddCommGroup E] [InnerProductSpace 𝕜 E] [CompleteSpace E] {p : E →L[𝕜] E} {q : E →L[𝕜] E} (hp : IsIdempotentElem p) (hq : IsIdempotentElem q) (hpa : IsSelfAdjoint p) (hqa : IsSelfAdjoint q) :
        (∀ (x : E), RCLike.re (inner x (p x)) RCLike.re (inner x (q x))) ∀ (x : E), p x q x

        given self-adjoint idempotent operators p,q, we have ∀ x ∈ E : ⟪x, p x⟫ ≤ ⟪x, q x⟫ ↔ ∀ x ∈ E, ‖p x‖ ≤ ‖q x‖

        @[simp]
        theorem IsPositive.HasLe.sub {𝕜 : Type u_1} {E : Type u_2} [RCLike 𝕜] [NormedAddCommGroup E] [InnerProductSpace 𝕜 E] [CompleteSpace E] {p : E →L[𝕜] E} {q : E →L[𝕜] E} :
        p q 0 q - p

        in a complex-finite-dimensional Hilbert space E, we have Pᵤ ≤ Pᵤ iff PᵥPᵤ = Pᵤ

        theorem Submodule.map_to_linearMap {𝕜 : Type u_1} {E : Type u_2} [RCLike 𝕜] [NormedAddCommGroup E] [Module 𝕜 E] {p : E →L[𝕜] E} {U : Submodule 𝕜 E} :

        given self-adjoint idempotent operators p,q we have, p(E) ⊆ q(E) iff q - p is an idempotent operator

        def ContinuousLinearMap.IsMinimalProjection {𝕜 : Type u_1} {E : Type u_2} [RCLike 𝕜] [NormedAddCommGroup E] [InnerProductSpace 𝕜 E] [CompleteSpace E] (x : E →L[𝕜] E) (U : Submodule 𝕜 E) :

        definition of a map being a minimal projection

        Equations
        Instances For

          definition of orthogonal projection being minimal i.e., when the dimension of its space equals one

          Equations
          Instances For
            theorem Submodule.le_finrank_one {R : Type u_1} {M : Type u_2} [Field R] [AddCommGroup M] [Module R M] (U : Submodule R M) (V : Submodule R M) [Module.Finite R U] [Module.Finite R V] (hU : Module.finrank R U = 1) :
            V U V = U V = 0

            when a submodule U has dimension 1, then for any submodule V, we have V ≤ U if and only if V = U or V = 0

            for orthogonal projections Pᵤ,Pᵥ, if Pᵤ is a minimal orthogonal projection, then for any Pᵥ if Pᵥ ≤ Pᵤ and Pᵥ ≠ 0, then Pᵥ = Pᵤ

            theorem rankOne_self_isMinimalProjection {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace E] [CompleteSpace E] {x : E} (h : x = 1) :
            (((rankOne ) x) x).IsMinimalProjection (Submodule.span {x})

            any rank one operator given by a norm one vector is a minimal projection

            theorem normalize_op {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace E] (x : E) :
            (∃ (y : E) (r : ), y = 1 x = r y) x = 0

            if x ∈ E then we can normalize this (i.e., there exists y ∈ E such that ∥y∥ = 1 where x = r • y for some r ∈ ℝ) unless x = 0

            theorem rankOne_self_isMinimalProjection' {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace E] [CompleteSpace E] {x : E} (h : x 0) :
            ((1 / x ^ 2) ((rankOne ) x) x).IsMinimalProjection (Submodule.span {x})

            given any non-zero x ∈ E, we have 1 / ‖x‖ ^ 2 • |x⟩⟨x| is a minimal projection

            theorem LinearMap.range_of_isProj {R : Type u_1} {M : Type u_2} [CommSemiring R] [AddCommGroup M] [Module R M] {p : M →ₗ[R] M} {U : Submodule R M} (hp : LinearMap.IsProj U p) :
            theorem orthogonal_projection_iff {𝕜 : Type u_1} {E : Type u_2} [RCLike 𝕜] [NormedAddCommGroup E] [InnerProductSpace 𝕜 E] [FiniteDimensional 𝕜 E] {p : E →L[𝕜] E} :

            a linear operator is an orthogonal projection onto a submodule, if and only if it is self-adjoint and idempotent; so it always suffices to say p = p⋆ = p²

            theorem orthogonal_projection_iff' {𝕜 : Type u_1} {E : Type u_2} [RCLike 𝕜] [NormedAddCommGroup E] [InnerProductSpace 𝕜 E] [FiniteDimensional 𝕜 E] {p : E →L[𝕜] E} (U : Submodule 𝕜 E) :

            a linear operator is an orthogonal projection onto a submodule, if and only if it is a self-adjoint linear projection onto the submodule; also see orthogonal_projection_iff

            theorem Submodule.isOrtho_iff_inner_eq' {𝕜 : Type u_1} {E : Type u_2} [RCLike 𝕜] [NormedAddCommGroup E] [InnerProductSpace 𝕜 E] {U : Submodule 𝕜 E} {W : Submodule 𝕜 E} :
            U W ∀ (u : U) (w : W), inner u w = 0

            U and W are mutually orthogonal if and only if (P U).comp (P W) = 0, where P U is orthogonal_projection U

            theorem ContinuousLinearMap.isOrthogonalProjection_iff {𝕜 : Type u_1} {E : Type u_2} [RCLike 𝕜] [NormedAddCommGroup E] [InnerProductSpace 𝕜 E] (T : E →L[𝕜] E) :
            T.IsOrthogonalProjection IsIdempotentElem T LinearMap.ker T = (LinearMap.range T)
            theorem LinearMap.isSelfAdjoint_toContinuousLinearMap {𝕜 : Type u_1} {E : Type u_2} [RCLike 𝕜] [NormedAddCommGroup E] [InnerProductSpace 𝕜 E] [FiniteDimensional 𝕜 E] (f : E →ₗ[𝕜] E) :
            IsSelfAdjoint (LinearMap.toContinuousLinearMap f) IsSelfAdjoint f
            theorem LinearMap.isOrthogonalProjection_iff {E : Type u_1} [NormedAddCommGroup E] [InnerProductSpace E] [FiniteDimensional E] (T : E →ₗ[] E) :
            (LinearMap.toContinuousLinearMap T).IsOrthogonalProjection IsIdempotentElem T IsSelfAdjoint T
            theorem lmul_isIdempotentElem_iff {R : Type u_1} {A : Type u_2} [CommSemiring R] [Semiring A] [Module R A] [SMulCommClass R A A] [IsScalarTower R A A] (a : A) :
            theorem lmul_tmul {R : Type u_1} {A : Type u_2} {B : Type u_3} [CommSemiring R] [Semiring A] [Semiring B] [Module R A] [Module R B] [SMulCommClass R A A] [SMulCommClass R B B] [IsScalarTower R A A] [IsScalarTower R B B] (a : A) (b : B) :
            lmul (a ⊗ₜ[R] b) = TensorProduct.map (lmul a) (lmul b)
            theorem lmul_eq_lmul_iff {R : Type u_1} {A : Type u_2} [CommSemiring R] [Semiring A] [Module R A] [SMulCommClass R A A] [IsScalarTower R A A] (a : A) (b : A) :
            lmul a = lmul b a = b
            theorem isIdempotentElem_algEquiv_iff {R : Type u_1} {A : Type u_2} {B : Type u_3} [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A] [Algebra R B] (φ : A ≃ₐ[R] B) (a : A) :
            theorem LinearMap.isProj_iff {S : Type u_1} {M : Type u_2} {F : Type u_3} [Semiring S] [AddCommMonoid M] [Module S M] (m : Submodule S M) [FunLike F M M] (f : F) :
            LinearMap.IsProj m f (∀ (x : M), f x m) xm, f x = x
            theorem LinearMap.isProj_coe {R : Type u_1} {M : Type u_2} [RCLike R] [NormedAddCommGroup M] [InnerProductSpace R M] (T : M →L[R] M) (U : Submodule R M) :
            theorem LinearMap.IsProj.top (S : Type u_1) (M : Type u_2) [Semiring S] [AddCommMonoid M] [Module S M] :
            LinearMap.IsProj LinearMap.id
            theorem LinearMap.IsProj.codRestrict_of_top {S : Type u_1} {M : Type u_2} [Semiring S] [AddCommMonoid M] [Module S M] :
            .subtype ∘ₗ .codRestrict = LinearMap.id
            theorem LinearMap.IsProj.subtype_comp_codRestrict {S : Type u_1} {M : Type u_2} [Semiring S] [AddCommMonoid M] [Module S M] {U : Submodule S M} {f : M →ₗ[S] M} (hf : LinearMap.IsProj U f) :
            U.subtype ∘ₗ hf.codRestrict = f
            theorem LinearMap.IsProj.codRestrict_eq_dim_iff {S : Type u_1} {M : Type u_2} [Semiring S] [AddCommMonoid M] [Module S M] {f : M →ₗ[S] M} {U : Submodule S M} (hf : LinearMap.IsProj U f) :
            U = U.subtype ∘ₗ hf.codRestrict = LinearMap.id