The type of Hermitian matrices, as a Subtype. Equivalent to a Matrix n n α bundled
with the fact that Matrix.IsHermitian.
Equations
- HermitianMat n α = ↥(selfAdjoint (Matrix n n α))
Instances For
Equations
Instances For
Equations
Alias for HermitianMat.property or HermitianMat.2, this gets the fact that the value
is actually IsHermitian.
Equations
- HermitianMat.instFun = { coe := fun (M : HermitianMat n α) => ↑M, coe_injective' := ⋯ }
Equations
- HermitianMat.instAddGroup = (selfAdjoint (Matrix n n α)).toAddGroup
Equations
- HermitianMat.instUniqueOfIsEmpty = { default := 0, uniq := ⋯ }
Equations
- HermitianMat.instSMul = { smul := fun (c : R) (A : HermitianMat n α) => ⟨c • ↑A, ⋯⟩ }
Equations
Equations
Equations
- HermitianMat.instModule = inferInstanceAs (Module R ↥(selfAdjoint (Matrix n n α)))
The projection from HermitianMat to Matrix, as a continuous linear map.
Equations
- HermitianMat.matₗ = { toFun := HermitianMat.mat, map_add' := ⋯, map_smul' := ⋯, cont := ⋯ }
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
- HermitianMat.instInv = { inv := fun (x : HermitianMat m α) => ⟨(↑x)⁻¹, ⋯⟩ }
Equations
- HermitianMat.instPow = { pow := fun (x : HermitianMat m α) (n : ℕ) => ⟨↑x ^ n, ⋯⟩ }
Equations
- HermitianMat.instZPow = { pow := fun (x : HermitianMat m α) (z : ℤ) => ⟨↑x ^ z, ⋯⟩ }
The Hermitian matrix given by conjugating by a (possibly rectangular) Matrix. If we required B to be
square, this would apply to any Semigroup+StarMul (as proved by IsSelfAdjoint.conjugate). But this lets
us conjugate to other sizes too, as is done in e.g. Kraus operators. That is, it's a heterogeneous conjguation.
Equations
- HermitianMat.conj B = { toFun := fun (A : HermitianMat n α) => ⟨B * ↑A * B.conjTranspose, ⋯⟩, map_zero' := ⋯, map_add' := ⋯ }
Instances For
HermitianMat.conj as an R-linear map, where R is the ring of relevant reals.
Equations
- HermitianMat.conjLinear R B = { toAddHom := ↑(HermitianMat.conj B), map_smul' := ⋯ }
Instances For
The continuous linear map associated with a Hermitian matrix.
Equations
- A.lin = { toLinearMap := Matrix.toEuclideanLin ↑A, cont := ⋯ }
Instances For
Equations
- A.eigenspace μ = Module.End.eigenspace (↑A.lin) μ
Instances For
The kernel of a Hermitian matrix A as a submodule of Euclidean space, defined by
LinearMap.ker A.toMat.toEuclideanLin. Equivalently, the zero-eigenspace.
Instances For
The kernel of a Hermitian matrix is its zero eigenspace.
The support of a Hermitian matrix A as a submodule of Euclidean space, defined by
LinearMap.range A.toMat.toEuclideanLin. Equivalently, the sum of all nonzero eigenspaces.
Instances For
The support of a Hermitian matrix is the sum of its nonzero eigenspaces.
Equations
- HermitianMat.diagonal 𝕜 f = ⟨Matrix.diagonal fun (x : n) => ↑(f x), ⋯⟩
Instances For
A Hermitian matrix is equal to its diagonalization conjugated by its eigenvector unitary matrix.
The kronecker product of two HermitianMats, see Matrix.kroneckerMap.
Instances For
The kronecker product of two HermitianMats, see Matrix.kroneckerMap.
Equations
- HermitianMat.«term_⊗ₖ_» = Lean.ParserDescr.trailingNode `HermitianMat.«term_⊗ₖ_» 100 100 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ⊗ₖ ") (Lean.ParserDescr.cat `term 101))
Instances For
A ⊗ₖ B always commutes with C ⊗ₖ D if the pairs commute.
A ⊗ₖ 1 always commutes with 1 ⊗ₖ B
If ker M ⊆ ker A, then range (A Mᴴ) = range A.
We fix a simp-normal form that, for HermitianMat, we always work in terms of the real spectrum.