Documentation

TauCeti.Analysis.Matrix.SingularValues

Singular values and two-sided unitary matrix orbits #

Rectangular matrices lie in the same two-sided unitary orbit exactly when their singular values agree. The singular values are Mathlib's LinearMap.singularValues, applied through Matrix.toEuclideanLin; no second enumeration is introduced.

Matrix.exists_unitary_mul_diagonal_mul_unitary reads the operator singular value decomposition in the standard orthonormal basis. The orbit characterization then identifies the diagonal entries as complete invariants, including for singular matrices and in dimension zero.

For the special unitary group the determinant is a second invariant, and together with the singular values it is complete: Matrix.exists_specialUnitary_mul_mul_specialUnitary_iff_singularValues_eq_and_det_eq. The reason is that the two-sided stabilizer of a square matrix over a nonempty index type contains unitary pairs with arbitrary prescribed determinants whose product is one, and, for a singular matrix, with independently prescribed determinants (Matrix.exists_unitary_mul_mul_unitary_eq_self). Both come from rescaling one diagonal entry of the singular value decomposition.

References #

theorem Matrix.singularValues_toEuclideanLin_unitary_mul {𝕜 : Type u_1} [RCLike 𝕜] {Îč : Type u_2} [Fintype Îč] [DecidableEq Îč] {Îș : Type u_3} [Fintype Îș] [DecidableEq Îș] (A : Matrix Îč Îș 𝕜) (U : ↄ(unitaryGroup Îč 𝕜)) :

Left multiplication by a unitary matrix preserves every singular value.

theorem Matrix.singularValues_toEuclideanLin_mul_unitary {𝕜 : Type u_1} [RCLike 𝕜] {Îč : Type u_2} [Fintype Îč] {Îș : Type u_3} [Fintype Îș] [DecidableEq Îș] (A : Matrix Îč Îș 𝕜) (U : ↄ(unitaryGroup Îș 𝕜)) :

Right multiplication by a unitary matrix preserves every singular value.

theorem Matrix.exists_unitary_mul_diagonal_mul_unitary {𝕜 : Type u_1} [RCLike 𝕜] {n : ℕ} (A : Matrix (Fin n) (Fin n) 𝕜) :
∃ (U : ↄ(unitaryGroup (Fin n) 𝕜)) (V : ↄ(unitaryGroup (Fin n) 𝕜)), A = (↑U * diagonal fun (i : Fin n) => ↑((toEuclideanLin A).singularValues ↑i)) * ↑V

Every square matrix is a product of two unitary matrices and the diagonal matrix of its singular values in decreasing order. Zero singular values are allowed.

theorem Matrix.singularValues_toEuclideanLin_of_unitary_mul_diagonal_mul_unitary {𝕜 : Type u_1} [RCLike 𝕜] {n : ℕ} (A : Matrix (Fin n) (Fin n) 𝕜) (d : Fin n → ℝ) (hd : ∀ (i : Fin n), 0 ≀ d i) (hanti : Antitone d) (U V : ↄ(unitaryGroup (Fin n) 𝕜)) (h : A = (↑U * diagonal fun (i : Fin n) => ↑(d i)) * ↑V) (i : Fin n) :

In a two-sided unitary factorization with a nonnegative decreasing real diagonal, the diagonal entries are the singular values.

theorem Matrix.exists_unitary_mul_mul_unitary_iff_singularValues_eq {𝕜 : Type u_1} [RCLike 𝕜] {Îč : Type u_2} [Fintype Îč] [DecidableEq Îč] {Îș : Type u_3} [Fintype Îș] [DecidableEq Îș] (A B : Matrix Îč Îș 𝕜) :
(∃ (U : ↄ(unitaryGroup Îč 𝕜)) (V : ↄ(unitaryGroup Îș 𝕜)), B = ↑U * A * ↑V) ↔ (toEuclideanLin A).singularValues = (toEuclideanLin B).singularValues

Singular values classify two-sided unitary orbits of rectangular matrices. This is the matrix form of LinearMap.mem_twoSidedUnitaryOrbit_iff_singularValues_eq.

theorem Matrix.exists_unitary_mul_mul_unitary_eq_self {𝕜 : Type u_1} [RCLike 𝕜] {Îč : Type u_2} [Fintype Îč] [DecidableEq Îč] [Nonempty Îč] (A : Matrix Îč Îč 𝕜) {a b : 𝕜} (ha : a ∈ unitary 𝕜) (hb : b ∈ unitary 𝕜) (hab : A.det = 0 √ a * b = 1) :
∃ (X : ↄ(unitaryGroup Îč 𝕜)) (Y : ↄ(unitaryGroup Îč 𝕜)), (↑X).det = a ∧ (↑Y).det = b ∧ ↑X * A * ↑Y = A

The two-sided stabilizer of a square matrix over a nonempty index type contains pairs of unitary matrices with any prescribed unitary determinants a and b such that a * b = 1. If the matrix is singular, a and b are arbitrary.

theorem Matrix.exists_specialUnitary_mul_mul_specialUnitary_iff_singularValues_eq_and_det_eq {𝕜 : Type u_1} [RCLike 𝕜] {Îč : Type u_2} [Fintype Îč] [DecidableEq Îč] (A B : Matrix Îč Îč 𝕜) :
(∃ (U : ↄ(specialUnitaryGroup Îč 𝕜)) (V : ↄ(specialUnitaryGroup Îč 𝕜)), B = ↑U * A * ↑V) ↔ (toEuclideanLin A).singularValues = (toEuclideanLin B).singularValues ∧ A.det = B.det

Two square matrices lie in the same two-sided special unitary orbit exactly when their singular values and their determinants agree.