def
LinearMap.IsPosMap
{M₁ : Type u_1}
{M₂ : Type u_2}
[Zero M₁]
[Zero M₂]
[PartialOrder M₁]
[PartialOrder M₂]
{F : Type u_3}
[FunLike F M₁ M₂]
(f : F)
:
we say a map $f \colon M_1 \to M_2$ is a positive map if for all positive $x \in M_1$, we also get $f(x)$ is positive
Equations
- LinearMap.IsPosMap f = ∀ ⦃x : M₁⦄, 0 ≤ x → 0 ≤ f x
Instances For
theorem
selfAdjointDecomposition_left_one
{B : Type u_1}
[AddCommMonoid B]
[MulOneClass B]
[StarMul B]
[Module ℂ B]
:
theorem
selfAdjointDecomposition_right_one
{B : Type u_1}
[AddCommGroup B]
[MulOneClass B]
[StarMul B]
[SMulZeroClass ℂ B]
:
theorem
selfAdjointDecomposition_right_eq_zero_iff
{B : Type u_1}
[Star B]
[AddGroup B]
[SMulWithZero ℂ B]
[NoZeroSMulDivisors ℂ B]
(a : B)
:
theorem
selfAdjointDecomposition_left_isSelfAdjoint
{B : Type u_1}
[AddCommMonoid B]
[StarAddMonoid B]
[SMul ℂ B]
[StarModule ℂ B]
(a : B)
:
theorem
selfAdjointDecomposition_right_isSelfAdjoint
{B : Type u_1}
[AddCommGroup B]
[StarAddMonoid B]
[Module ℂ B]
[StarModule ℂ B]
(a : B)
:
theorem
selfAdjointDecomposition
{B : Type u_1}
[AddCommGroup B]
[StarAddMonoid B]
[Module ℂ B]
[StarModule ℂ B]
(a : B)
:
a = selfAdjointDecomposition_left a + RCLike.I • selfAdjointDecomposition_right a
noncomputable def
ContinuousLinearMap.toLinearMapAlgEquiv
{𝕜 : Type u_1}
{B : Type u_2}
[RCLike 𝕜]
[NormedAddCommGroup B]
[InnerProductSpace 𝕜 B]
[FiniteDimensional 𝕜 B]
:
Equations
- ContinuousLinearMap.toLinearMapAlgEquiv = AlgEquiv.ofLinearEquiv LinearMap.toContinuousLinearMap.symm ⋯ ⋯
Instances For
theorem
ContinuousLinearMap.toLinearMapAlgEquiv_apply
{𝕜 : Type u_1}
{B : Type u_2}
[RCLike 𝕜]
[NormedAddCommGroup B]
[InnerProductSpace 𝕜 B]
[FiniteDimensional 𝕜 B]
(f : B →L[𝕜] B)
:
ContinuousLinearMap.toLinearMapAlgEquiv f = ↑f
theorem
ContinuousLinearMap.toLinearMapAlgEquiv_symm_apply
{𝕜 : Type u_1}
{B : Type u_2}
[RCLike 𝕜]
[NormedAddCommGroup B]
[InnerProductSpace 𝕜 B]
[FiniteDimensional 𝕜 B]
(f : B →ₗ[𝕜] B)
:
ContinuousLinearMap.toLinearMapAlgEquiv.symm f = LinearMap.toContinuousLinearMap f
theorem
ContinuousLinearMap.spectrum_coe
{𝕜 : Type u_1}
{B : Type u_2}
[RCLike 𝕜]
[NormedAddCommGroup B]
[InnerProductSpace 𝕜 B]
[FiniteDimensional 𝕜 B]
(T : B →L[𝕜] B)
:
theorem
ContinuousLinearMap.nonneg_iff_isSelfAdjoint_and_nonneg_spectrum
{B : Type u_1}
[NormedAddCommGroup B]
[InnerProductSpace ℂ B]
[FiniteDimensional ℂ B]
(T : B →L[ℂ] B)
:
theorem
ContinuousLinearMap.nonneg_iff_exists
{B : Type u_1}
[NormedAddCommGroup B]
[InnerProductSpace ℂ B]
[FiniteDimensional ℂ B]
(T : B →L[ℂ] B)
:
theorem
orthogonalProjection_ker_comp_eq_of_comp_eq_zero
{B : Type u_1}
[NormedAddCommGroup B]
[InnerProductSpace ℂ B]
[FiniteDimensional ℂ B]
{T : B →L[ℂ] B}
{S : B →L[ℂ] B}
(h : T * S = 0)
:
orthogonalProjection' (LinearMap.ker T) * S = S
noncomputable def
Matrix.orthogonalProjection
{n : Type u_2}
[Fintype n]
[DecidableEq n]
(U : Submodule ℂ (EuclideanSpace ℂ n))
:
matrix of orthogonalProjection
Equations
- Matrix.orthogonalProjection U = Matrix.toEuclideanCLM.symm (orthogonalProjection' U)
Instances For
noncomputable def
PiMat.orthogonalProjection
{k : Type u_3}
{n : k → Type u_4}
[(i : k) → Fintype (n i)]
[(i : k) → DecidableEq (n i)]
(U : (i : k) → Submodule ℂ (EuclideanSpace ℂ (n i)))
:
Equations
Instances For
theorem
Matrix.toEuclideanLin_symm
{𝕜 : Type u_3}
{n : Type u_4}
[RCLike 𝕜]
[Fintype n]
[DecidableEq n]
(x : EuclideanSpace 𝕜 n →ₗ[𝕜] EuclideanSpace 𝕜 n)
:
Matrix.toEuclideanLin.symm x = LinearMap.toMatrix' x
theorem
EuclideanSpace.trace_eq_matrix_trace'
{𝕜 : Type u_3}
{n : Type u_4}
[RCLike 𝕜]
[Fintype n]
[DecidableEq n]
(f : EuclideanSpace 𝕜 n →ₗ[𝕜] EuclideanSpace 𝕜 n)
:
(LinearMap.trace 𝕜 (EuclideanSpace 𝕜 n)) f = (Matrix.toEuclideanLin.symm f).trace
theorem
Matrix.coe_toEuclideanCLM_symm_eq_toEuclideanLin_symm
{𝕜 : Type u_3}
{n : Type u_4}
[RCLike 𝕜]
[Fintype n]
[DecidableEq n]
(A : EuclideanSpace 𝕜 n →L[𝕜] EuclideanSpace 𝕜 n)
:
Matrix.toEuclideanCLM.symm A = Matrix.toEuclideanLin.symm ↑A
theorem
Matrix.orthogonalProjection_trace
{n : Type u_2}
[Fintype n]
[DecidableEq n]
{U : Submodule ℂ (EuclideanSpace ℂ n)}
:
(Matrix.orthogonalProjection U).trace = ↑(Module.finrank ℂ ↥U)
theorem
PiMat.orthogonalProjection_trace
{k : Type u_3}
{n : k → Type u_4}
[Fintype k]
[DecidableEq k]
[(i : k) → Fintype (n i)]
[(i : k) → DecidableEq (n i)]
(U : (i : k) → Submodule ℂ (EuclideanSpace ℂ (n i)))
:
(Matrix.blockDiagonal' (PiMat.orthogonalProjection U)).trace = ↑(∑ i : k, Module.finrank ℂ ↥(U i))
theorem
Matrix.isIdempotentElem_toEuclideanCLM
{n : Type u_3}
[Fintype n]
[DecidableEq n]
(x : Matrix n n ℂ)
:
IsIdempotentElem x ↔ IsIdempotentElem (Matrix.toEuclideanCLM x)
theorem
Matrix.CLM_apply_orthogonalProjection
{n : Type u_2}
[Fintype n]
[DecidableEq n]
{U : Submodule ℂ (EuclideanSpace ℂ n)}
:
Matrix.toEuclideanCLM (Matrix.orthogonalProjection U) = orthogonalProjection' U
theorem
Matrix.orthogonalProjection_ortho_eq
{n : Type u_2}
[Fintype n]
[DecidableEq n]
{U : Submodule ℂ (EuclideanSpace ℂ n)}
:
theorem
Matrix.orthogonalProjection_isPosSemidef
{n : Type u_2}
[Fintype n]
[DecidableEq n]
{U : Submodule ℂ (EuclideanSpace ℂ n)}
:
(Matrix.orthogonalProjection U).PosSemidef
theorem
Matrix.IsHermitian.orthogonalProjection_ker_apply_self
{n : Type u_2}
[Fintype n]
[DecidableEq n]
{x : Matrix n n ℂ}
(hx : x.IsHermitian)
:
Matrix.orthogonalProjection (LinearMap.ker (Matrix.toEuclideanCLM x)) * x = 0
noncomputable def
Matrix.IsHermitian.sqSqrt
{n : Type u_2}
[Fintype n]
[DecidableEq n]
{x : Matrix n n ℂ}
(hx : x.IsHermitian)
:
the positive square root of the square of a Hermitian matrix x
,
in other words, √(x ^ 2)
Equations
- hx.sqSqrt = (Matrix.innerAut hx.eigenvectorUnitary) (Matrix.diagonal (RCLike.ofReal ∘ fun (i : n) => √(hx.eigenvalues i ^ 2)))
Instances For
theorem
Matrix.IsHermitian.sqSqrt_eq
{n : Type u_2}
[Fintype n]
[DecidableEq n]
{x : Matrix n n ℂ}
(hx : x.IsHermitian)
:
hx.sqSqrt = (Matrix.innerAut hx.eigenvectorUnitary) (Matrix.diagonal (RCLike.ofReal ∘ |hx.eigenvalues|))
theorem
Matrix.IsHermitian.sqSqrt_isPosSemidef
{n : Type u_2}
[Fintype n]
[DecidableEq n]
{x : Matrix n n ℂ}
(hx : x.IsHermitian)
:
hx.sqSqrt.PosSemidef
theorem
Matrix.IsHermitian.sqSqrt_sq
{n : Type u_2}
[Fintype n]
[DecidableEq n]
{x : Matrix n n ℂ}
(hx : x.IsHermitian)
:
the square of the positive square root of a Hermitian matrix is equal to the square of the matrix
Pretty printer defined by notation3
command.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- posL = Lean.ParserDescr.trailingNode `posL 80 81 (Lean.ParserDescr.symbol "₊")
Instances For
theorem
Matrix.IsHermitian.posSemidefDecomposition_left_isHermitian
{n : Type u_2}
[Fintype n]
[DecidableEq n]
{x : Matrix n n ℂ}
[hx : Fact x.IsHermitian]
:
x₊.IsHermitian
Equations
- posR = Lean.ParserDescr.trailingNode `posR 80 81 (Lean.ParserDescr.symbol "₋")
Instances For
Pretty printer defined by notation3
command.
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
Matrix.IsHermitian.posSemidefDecomposition_right_isHermitian
{n : Type u_2}
[Fintype n]
[DecidableEq n]
{x : Matrix n n ℂ}
[hx : Fact x.IsHermitian]
:
x₋.IsHermitian
theorem
Matrix.IsHermitian.commute_sqSqrt
{n : Type u_2}
[Fintype n]
[DecidableEq n]
{x : Matrix n n ℂ}
(hx : x.IsHermitian)
:
Commute x hx.sqSqrt
a Hermitian matrix commutes with its positive squared-square-root,
i.e., x * √(x^2) = √(x^2) * x
.
theorem
Matrix.IsHermitian.posSemidefDecomposition_left_mul_right
{n : Type u_2}
[Fintype n]
[DecidableEq n]
(x : Matrix n n ℂ)
[hx : Fact x.IsHermitian]
:
theorem
Matrix.IsHermitian.posSemidefDecomposition_right_mul_left
{n : Type u_2}
[Fintype n]
[DecidableEq n]
(x : Matrix n n ℂ)
[hx : Fact x.IsHermitian]
:
theorem
Matrix.IsHermitian.posSemidefDecomposition_eq
{n : Type u_2}
[Fintype n]
[DecidableEq n]
(x : Matrix n n ℂ)
[hx : Fact x.IsHermitian]
:
theorem
Matrix.IsHermitian.posSemidefDecomposition_posSemidef_left_right
{n : Type u_2}
[Fintype n]
[DecidableEq n]
{x : Matrix n n ℂ}
(hx : Fact x.IsHermitian)
:
x₊.PosSemidef ∧ x₋.PosSemidef
theorem
IsSelfAdjoint.isPositiveDecomposition
{B : Type u_1}
[NormedAddCommGroup B]
[InnerProductSpace ℂ B]
[FiniteDimensional ℂ B]
{x : B →L[ℂ] B}
(hx : IsSelfAdjoint x)
:
noncomputable def
Matrix.isEquivToPiMat
{n : Type u_2}
[Fintype n]
[DecidableEq n]
:
isEquivToPiMat (Matrix n n ℂ)
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
IsSelfAdjoint.isPositiveDecomposition_of_starAlgEquiv_piMat
{A : Type u_3}
[Ring A]
[StarRing A]
[Algebra ℂ A]
[PartialOrder A]
[StarOrderedRing A]
(hφ : isEquivToPiMat A)
{x : A}
(hx : IsSelfAdjoint x)
:
theorem
Matrix.isReal_of_isPosMap
{n : Type u_2}
[Fintype n]
[DecidableEq n]
{K : Type u_3}
[Ring K]
[StarRing K]
[PartialOrder K]
[Algebra ℂ K]
[StarOrderedRing K]
[StarModule ℂ K]
{φ : Matrix n n ℂ →ₗ[ℂ] K}
(hφ : LinearMap.IsPosMap φ)
:
if a map preserves positivity, then it is star-preserving
theorem
StarNonUnitalAlgHom.toLinearMap_apply
{R : Type u_3}
{A : Type u_4}
{B : Type u_5}
[Semiring R]
[NonUnitalNonAssocSemiring A]
[Module R A]
[NonUnitalNonAssocSemiring B]
[Module R B]
[Star A]
[Star B]
(f : A →⋆ₙₐ[R] B)
(x : A)
:
↑f x = f x
theorem
LinearMap.isPosMap_iff_star_mul_self_nonneg
{A : Type u_3}
{K : Type u_4}
[NonUnitalSemiring A]
[PartialOrder A]
[StarRing A]
[StarOrderedRing A]
[NonUnitalSemiring K]
[PartialOrder K]
[StarRing K]
[StarOrderedRing K]
(hA : ∀ ⦃a : A⦄, 0 ≤ a ↔ ∃ (b : A), a = star b * b)
{F : Type u_5}
[FunLike F A K]
{f : F}
:
LinearMap.IsPosMap f ↔ ∀ (a : A), 0 ≤ f (star a * a)
theorem
LinearMap.isPosMap_iff_comp_starAlgEquiv
{K : Type u_3}
{A : Type u_4}
{B : Type u_5}
[Mul K]
[Mul A]
[Mul B]
[Star K]
[Star A]
[Star B]
[Zero A]
[Zero B]
[Zero K]
[PartialOrder A]
[PartialOrder B]
[PartialOrder K]
(hA : ∀ ⦃a : A⦄, 0 ≤ a ↔ ∃ (b : A), a = star b * b)
(hB : ∀ ⦃a : B⦄, 0 ≤ a ↔ ∃ (b : B), a = star b * b)
{F : Type u_6}
{S : Type u_7}
[FunLike F A K]
{φ : F}
[EquivLike S B A]
[MulEquivClass S B A]
[StarHomClass S B A]
(ψ : S)
:
LinearMap.IsPosMap φ ↔ ∀ ⦃x : B⦄, 0 ≤ x → 0 ≤ φ (ψ x)
theorem
isReal_of_isPosMap
{B : Type u_1}
[NormedAddCommGroup B]
[InnerProductSpace ℂ B]
[FiniteDimensional ℂ B]
{K : Type u_3}
[Ring K]
[StarRing K]
[PartialOrder K]
[Algebra ℂ K]
[StarOrderedRing K]
[StarModule ℂ K]
{φ : (B →L[ℂ] B) →ₗ[ℂ] K}
(hφ : LinearMap.IsPosMap φ)
:
if a map preserves positivity, then it is star-preserving
theorem
isReal_of_isPosMap_of_starAlgEquiv_piMat
{A : Type u_4}
[Ring A]
[StarRing A]
[Algebra ℂ A]
[StarModule ℂ A]
[PartialOrder A]
[StarOrderedRing A]
(hφ : isEquivToPiMat A)
{K : Type u_3}
[Ring K]
[StarRing K]
[PartialOrder K]
[Algebra ℂ K]
[StarOrderedRing K]
[StarModule ℂ K]
{f : A →ₗ[ℂ] K}
(hf : LinearMap.IsPosMap f)
:
theorem
starMulHom_isPosMap
{A : Type u_3}
{K : Type u_4}
[Semiring A]
[PartialOrder A]
[StarRing A]
[StarOrderedRing A]
[Semiring K]
[PartialOrder K]
[StarRing K]
[StarOrderedRing K]
(hA : ∀ ⦃a : A⦄, 0 ≤ a ↔ ∃ (b : A), a = star b * b)
{F : Type u_5}
[FunLike F A K]
[StarHomClass F A K]
[MulHomClass F A K]
(f : F)
:
a $^*$-homomorphism from $A$ to $B$ is a positive map
theorem
NonUnitalAlgHom.isPosMap_iff_isReal_of_nonUnitalStarAlgEquiv_piMat
{A : Type u_4}
[Ring A]
[StarRing A]
[Algebra ℂ A]
[StarModule ℂ A]
[PartialOrder A]
[StarOrderedRing A]
(hφ : isEquivToPiMat A)
(hA : ∀ ⦃a : A⦄, 0 ≤ a ↔ ∃ (b : A), a = star b * b)
{K : Type u_3}
[Ring K]
[StarRing K]
[PartialOrder K]
[Algebra ℂ K]
[StarOrderedRing K]
[StarModule ℂ K]
{f : A →ₙₐ[ℂ] K}
:
theorem
Matrix.innerAut.map_zpow
{n : Type u_3}
[Fintype n]
[DecidableEq n]
{𝕜 : Type u_4}
[RCLike 𝕜]
(U : ↥(Matrix.unitaryGroup n 𝕜))
(x : Matrix n n 𝕜)
(z : ℤ)
:
(Matrix.innerAut U) x ^ z = (Matrix.innerAut U) (x ^ z)
theorem
Matrix.inv_diagonal'
{R : Type u_3}
{n : Type u_4}
[Field R]
[Fintype n]
[DecidableEq n]
(d : n → R)
[Invertible d]
:
theorem
Matrix.diagonal_zpow
{n : Type u_2}
[Fintype n]
[DecidableEq n]
{𝕜 : Type u_3}
[Field 𝕜]
(x : n → 𝕜)
[Invertible x]
(z : ℤ)
:
Matrix.diagonal x ^ z = Matrix.diagonal (x ^ z)
theorem
selfAdjointDecomposition_ext_iff
{B : Type u_3}
[AddCommGroup B]
[StarAddMonoid B]
[Module ℂ B]
[StarModule ℂ B]
(a : B)
(b : B)
:
theorem
selfAdjointDecomposition_left_of
{B : Type u_3}
[AddCommGroup B]
[StarAddMonoid B]
[Module ℂ B]
[StarModule ℂ B]
(a : B)
(b : B)
(ha : IsSelfAdjoint a)
(hb : IsSelfAdjoint b)
:
selfAdjointDecomposition_left (a + Complex.I • b) = a
theorem
selfAdjointDecomposition_right_of
{B : Type u_3}
[AddCommGroup B]
[StarAddMonoid B]
[Module ℂ B]
[StarModule ℂ B]
(a : B)
(b : B)
(ha : IsSelfAdjoint a)
(hb : IsSelfAdjoint b)
:
selfAdjointDecomposition_right (a + Complex.I • b) = b
theorem
selfAdjointDecomposition_left_mul_self
{B : Type u_3}
[Ring B]
[StarRing B]
[Module ℂ B]
[StarModule ℂ B]
[IsScalarTower ℂ B B]
[SMulCommClass ℂ B B]
(a : B)
:
theorem
selfAdjointDecomposition_right_mul_self
{B : Type u_3}
[Ring B]
[StarRing B]
[Module ℂ B]
[StarModule ℂ B]
[IsScalarTower ℂ B B]
[SMulCommClass ℂ B B]
(a : B)
:
theorem
isStarNormal_iff_selfAdjointDecomposition_commute
{B : Type u_3}
[Ring B]
[StarRing B]
[Module ℂ B]
[StarModule ℂ B]
[IsScalarTower ℂ B B]
[SMulCommClass ℂ B B]
(p : B)
:
theorem
isSelfAdjoint_iff_selfAdjointDecomposition_right_eq_zero
{B : Type u_3}
[Ring B]
[StarRing B]
[Module ℂ B]
[StarModule ℂ B]
[IsScalarTower ℂ B B]
[SMulCommClass ℂ B B]
(p : B)
:
theorem
IsIdempotentElem.isSelfAdjoint_iff_isStarNormal
{V : Type u_3}
[NormedAddCommGroup V]
[InnerProductSpace ℂ V]
(p : V →L[ℂ] V)
(hp : IsIdempotentElem p)
[CompleteSpace V]
:
theorem
LinearMap.IsPositive.add_ker_eq_inf_ker
{𝕜 : Type u_3}
{V : Type u_4}
[RCLike 𝕜]
[NormedAddCommGroup V]
[InnerProductSpace 𝕜 V]
[FiniteDimensional 𝕜 V]
{S : V →ₗ[𝕜] V}
{T : V →ₗ[𝕜] V}
(hS : S.IsPositive)
(hT : T.IsPositive)
:
LinearMap.ker (S + T) = LinearMap.ker S ⊓ LinearMap.ker T
theorem
mem_unitary_iff_isStarNormal_and_decomposition_left_sq_add_right_sq_eq_one
{B : Type u_3}
[Ring B]
[StarRing B]
[Module ℂ B]
[StarModule ℂ B]
[IsScalarTower ℂ B B]
[SMulCommClass ℂ B B]
(a : B)
:
a ∈ unitary B ↔ IsStarNormal a ∧ selfAdjointDecomposition_left a ^ 2 + selfAdjointDecomposition_right a ^ 2 = 1
theorem
LinearMap.exists_scalar_isometry_iff_preserves_ortho_of_ne_zero
{𝕜 : Type u_3}
{V : Type u_4}
{W : Type u_5}
[RCLike 𝕜]
[NormedAddCommGroup V]
[InnerProductSpace 𝕜 V]
[NormedAddCommGroup W]
[InnerProductSpace 𝕜 W]
(hV : 0 < Module.finrank 𝕜 V)
{T : V →ₗ[𝕜] W}
(hT : T ≠ 0)
:
theorem
LinearMap.exists_scalar_isometry_iff_preserves_ortho
{𝕜 : Type u_3}
{V : Type u_4}
[RCLike 𝕜]
[NormedAddCommGroup V]
[InnerProductSpace 𝕜 V]
[Module.Finite 𝕜 V]
{T : V →ₗ[𝕜] V}
:
theorem
LinearMap.isSymmetric_adjoint_mul_self'
{𝕜 : Type u_3}
{V : Type u_4}
{W : Type u_5}
[RCLike 𝕜]
[NormedAddCommGroup V]
[InnerProductSpace 𝕜 V]
[NormedAddCommGroup W]
[InnerProductSpace 𝕜 W]
[FiniteDimensional 𝕜 V]
[FiniteDimensional 𝕜 W]
(T : V →ₗ[𝕜] W)
:
(LinearMap.adjoint T ∘ₗ T).IsSymmetric