mathlib3 documentation

monlib / linear_algebra.inner_aut

Inner automorphisms #

This file defines the inner automorphism of a unitary matrix U as U x U⁻¹ and proves that any star-algebraic automorphism on Mₙ(ℂ) is an inner automorphism.

@[simp]
theorem star_alg_equiv.trace_preserving {n : Type u_1} {𝕜 : Type u_2} [fintype n] [field 𝕜] [star_ring 𝕜] [decidable_eq n] (f : matrix n n 𝕜 ≃⋆ₐ[𝕜] matrix n n 𝕜) (x : matrix n n 𝕜) :
(f x).trace = x.trace
theorem unitary.inner_aut_star_alg_apply' {K : Type u_1} {R : Type u_2} [comm_semiring K] [semiring R] [star_semigroup R] [algebra K R] (U : (unitary R)) (x : R) :
theorem unitary.pi_coe {k : Type u_1} {s : k Type u_2} [Π (i : k), semiring (s i)] [Π (i : k), star_semigroup (s i)] (U : Π (i : k), (unitary (s i))) :
(λ (i : k), (U i)) = U
theorem unitary.pi_mem {k : Type u_1} {s : k Type u_2} [Π (i : k), semiring (s i)] [Π (i : k), star_semigroup (s i)] (U : Π (i : k), (unitary (s i))) :
U unitary (Π (i : k), s i)
def unitary.pi {k : Type u_1} {s : k Type u_2} [Π (i : k), semiring (s i)] [Π (i : k), star_semigroup (s i)] (U : Π (i : k), (unitary (s i))) :
(unitary (Π (i : k), s i))
Equations
theorem unitary.pi_apply {k : Type u_1} {s : k Type u_2} [Π (i : k), semiring (s i)] [Π (i : k), star_semigroup (s i)] (U : Π (i : k), (unitary (s i))) {i : k} :
(unitary.pi U) i = (U i)
@[simp]
theorem matrix.unitary_group.mul_star_self {n : Type u_1} {𝕜 : Type u_2} [fintype n] [field 𝕜] [star_ring 𝕜] [decidable_eq n] (a : (matrix.unitary_group n 𝕜)) :
@[simp]
def matrix.inner_aut_star_alg {n : Type u_1} {𝕜 : Type u_2} [fintype n] [field 𝕜] [star_ring 𝕜] [decidable_eq n] (a : (matrix.unitary_group n 𝕜)) :
matrix n n 𝕜 ≃⋆ₐ[𝕜] matrix n n 𝕜

given a unitary $U$, we have the inner algebraic automorphism, given by $x \mapsto UxU^*$ with its inverse given by $x \mapsto U^* x U$

Equations
theorem matrix.inner_aut_star_alg_apply {n : Type u_1} {𝕜 : Type u_2} [fintype n] [field 𝕜] [star_ring 𝕜] [decidable_eq n] (U : (matrix.unitary_group n 𝕜)) (x : matrix n n 𝕜) :
theorem matrix.inner_aut_star_alg_apply' {n : Type u_1} {𝕜 : Type u_2} [fintype n] [field 𝕜] [star_ring 𝕜] [decidable_eq n] (U : (matrix.unitary_group n 𝕜)) (x : matrix n n 𝕜) :
theorem matrix.inner_aut_star_alg_symm_apply {n : Type u_1} {𝕜 : Type u_2} [fintype n] [field 𝕜] [star_ring 𝕜] [decidable_eq n] (U : (matrix.unitary_group n 𝕜)) (x : matrix n n 𝕜) :
theorem matrix.inner_aut_star_alg_symm_apply' {n : Type u_1} {𝕜 : Type u_2} [fintype n] [field 𝕜] [star_ring 𝕜] [decidable_eq n] (U : (matrix.unitary_group n 𝕜)) (x : matrix n n 𝕜) :
def matrix.inner_aut {n : Type u_1} {𝕜 : Type u_2} [fintype n] [field 𝕜] [star_ring 𝕜] [decidable_eq n] (U : (matrix.unitary_group n 𝕜)) :
matrix n n 𝕜 →ₗ[𝕜] matrix n n 𝕜

inner automorphism (matrix.inner_aut_star_alg), but as a linear map

Equations
@[simp]
theorem matrix.inner_aut_coe {n : Type u_1} {𝕜 : Type u_2} [fintype n] [field 𝕜] [star_ring 𝕜] [decidable_eq n] (U : (matrix.unitary_group n 𝕜)) :
@[simp]
theorem matrix.inner_aut_apply {n : Type u_1} {𝕜 : Type u_2} [fintype n] [field 𝕜] [star_ring 𝕜] [decidable_eq n] (U : (matrix.unitary_group n 𝕜)) (x : matrix n n 𝕜) :
theorem matrix.inner_aut_apply' {n : Type u_1} {𝕜 : Type u_2} [fintype n] [field 𝕜] [star_ring 𝕜] [decidable_eq n] (U : (matrix.unitary_group n 𝕜)) (x : matrix n n 𝕜) :
theorem matrix.inner_aut_inv_apply {n : Type u_1} {𝕜 : Type u_2} [fintype n] [field 𝕜] [star_ring 𝕜] [decidable_eq n] (U : (matrix.unitary_group n 𝕜)) (x : matrix n n 𝕜) :
theorem matrix.inner_aut_star_apply {n : Type u_1} {𝕜 : Type u_2} [fintype n] [field 𝕜] [star_ring 𝕜] [decidable_eq n] (U : (matrix.unitary_group n 𝕜)) (x : matrix n n 𝕜) :
theorem matrix.inner_aut_conj_transpose {n : Type u_1} {𝕜 : Type u_2} [fintype n] [field 𝕜] [star_ring 𝕜] [decidable_eq n] (U : (matrix.unitary_group n 𝕜)) (x : matrix n n 𝕜) :
theorem matrix.inner_aut_comp_inner_aut {n : Type u_1} {𝕜 : Type u_2} [fintype n] [field 𝕜] [star_ring 𝕜] [decidable_eq n] (U₁ U₂ : (matrix.unitary_group n 𝕜)) :
theorem matrix.inner_aut_apply_inner_aut {n : Type u_1} {𝕜 : Type u_2} [fintype n] [field 𝕜] [star_ring 𝕜] [decidable_eq n] (U₁ U₂ : (matrix.unitary_group n 𝕜)) (x : matrix n n 𝕜) :
theorem matrix.inner_aut_eq_iff {n : Type u_1} {𝕜 : Type u_2} [fintype n] [field 𝕜] [star_ring 𝕜] [decidable_eq n] (U : (matrix.unitary_group n 𝕜)) (x y : matrix n n 𝕜) :
theorem matrix.unitary_group.to_lin'_apply {n : Type u_1} {𝕜 : Type u_2} [fintype n] [field 𝕜] [star_ring 𝕜] [decidable_eq n] (U : (matrix.unitary_group n 𝕜)) (x : n 𝕜) :
theorem matrix.unitary_group.to_lin'_eq {n : Type u_1} {𝕜 : Type u_2} [fintype n] [field 𝕜] [star_ring 𝕜] [decidable_eq n] (U : (matrix.unitary_group n 𝕜)) (x : n 𝕜) :
theorem matrix.inner_aut.spectrum_eq {n : Type u_1} {𝕜 : Type u_2} [fintype n] [field 𝕜] [star_ring 𝕜] [decidable_eq n] (U : (matrix.unitary_group n 𝕜)) (x : matrix n n 𝕜) :

the spectrum of $U x U^*$ for any unitary $U$ is equal to the spectrum of $x$

theorem matrix.inner_aut_one {n : Type u_1} {𝕜 : Type u_2} [fintype n] [field 𝕜] [star_ring 𝕜] [decidable_eq n] :
theorem matrix.inner_aut_apply_inner_aut_inv {n : Type u_1} {𝕜 : Type u_2} [fintype n] [field 𝕜] [star_ring 𝕜] [decidable_eq n] (U₁ U₂ : (matrix.unitary_group n 𝕜)) (x : matrix n n 𝕜) :
theorem matrix.inner_aut_apply_inner_aut_inv_self {n : Type u_1} {𝕜 : Type u_2} [fintype n] [field 𝕜] [star_ring 𝕜] [decidable_eq n] (U : (matrix.unitary_group n 𝕜)) (x : matrix n n 𝕜) :
theorem matrix.inner_aut_inv_apply_inner_aut_self {n : Type u_1} {𝕜 : Type u_2} [fintype n] [field 𝕜] [star_ring 𝕜] [decidable_eq n] (U : (matrix.unitary_group n 𝕜)) (x : matrix n n 𝕜) :
theorem matrix.inner_aut_apply_zero {n : Type u_1} {𝕜 : Type u_2} [fintype n] [field 𝕜] [star_ring 𝕜] [decidable_eq n] (U : (matrix.unitary_group n 𝕜)) :
theorem matrix.inner_aut_conj_spectrum_eq {n : Type u_1} {𝕜 : Type u_2} [fintype n] [field 𝕜] [star_ring 𝕜] [decidable_eq n] (U : (matrix.unitary_group n 𝕜)) (x : matrix n n 𝕜 →ₗ[𝕜] matrix n n 𝕜) :

the spectrum of a linear map $x$ equals the spectrum of $f_U^{-1} x f_U$ for some unitary $U$ and $f_U$ is the inner automorphism (matrix.inner_aut)

theorem matrix.inner_aut_apply_one {n : Type u_1} {𝕜 : Type u_2} [fintype n] [field 𝕜] [star_ring 𝕜] [decidable_eq n] (U : (matrix.unitary_group n 𝕜)) :

the inner automorphism is unital

theorem matrix.inner_aut.map_mul {n : Type u_1} {𝕜 : Type u_2} [fintype n] [field 𝕜] [star_ring 𝕜] [decidable_eq n] (U : (matrix.unitary_group n 𝕜)) (x y : matrix n n 𝕜) :
theorem matrix.inner_aut.map_star {n : Type u_1} {𝕜 : Type u_2} [fintype n] [field 𝕜] [star_ring 𝕜] [decidable_eq n] (U : (matrix.unitary_group n 𝕜)) (x : matrix n n 𝕜) :
theorem matrix.unitary_group.coe_inv {n : Type u_1} {𝕜 : Type u_2} [fintype n] [field 𝕜] [star_ring 𝕜] [decidable_eq n] (U : (matrix.unitary_group n 𝕜)) :
theorem matrix.inner_aut.map_inv {n : Type u_1} {𝕜 : Type u_2} [fintype n] [field 𝕜] [star_ring 𝕜] [decidable_eq n] (U : (matrix.unitary_group n 𝕜)) (x : matrix n n 𝕜) :
theorem matrix.inner_aut_apply_trace_eq {n : Type u_1} {𝕜 : Type u_2} [fintype n] [field 𝕜] [star_ring 𝕜] [decidable_eq n] (U : (matrix.unitary_group n 𝕜)) (x : matrix n n 𝕜) :

the trace of $f_U(x)$ is equal to the trace of $x$

theorem matrix.exists_inner_aut_iff_exists_inner_aut_inv {n : Type u_1} {𝕜 : Type u_2} [fintype n] [field 𝕜] [star_ring 𝕜] [decidable_eq n] {P : matrix n n 𝕜 Prop} (x : matrix n n 𝕜) :
theorem matrix.is_hermitian.inner_aut_iff {n : Type u_1} {𝕜 : Type u_2} [fintype n] [field 𝕜] [star_ring 𝕜] [decidable_eq n] (U : (matrix.unitary_group n 𝕜)) (x : matrix n n 𝕜) :

$x$ is Hermitian if and only if $f_U(x)$ is Hermitian

theorem matrix.pos_semidef.inner_aut {n : Type u_1} [fintype n] [decidable_eq n] {𝕜 : Type u_2} [is_R_or_C 𝕜] (U : (matrix.unitary_group n 𝕜)) {a : matrix n n 𝕜} :
theorem matrix.pos_def.inner_aut {n : Type u_1} [fintype n] [decidable_eq n] {𝕜 : Type u_2} [is_R_or_C 𝕜] (U : (matrix.unitary_group n 𝕜)) (x : matrix n n 𝕜) :

$f_U(x)$ is positive definite if and only if $x$ is positive definite

theorem matrix.is_almost_hermitian.schur_decomp {n : Type u_1} [fintype n] [decidable_eq n] {𝕜 : Type u_2} [is_R_or_C 𝕜] [decidable_eq 𝕜] {A : matrix n n 𝕜} (hA : A.is_almost_hermitian) :

Schur decomposition, but only for almost Hermitian matrices: given an almost Hermitian matrix $A$, there exists a diagonal matrix $D$ and a unitary matrix $U$ such that $UDU^*=A$

theorem matrix.star_alg_equiv.of_matrix_is_inner {n : Type u_1} [fintype n] [decidable_eq n] {𝕜 : Type u_2} [is_R_or_C 𝕜] (f : matrix n n 𝕜 ≃⋆ₐ[𝕜] matrix n n 𝕜) :

any $^*$-isomorphism on $M_n$ is an inner automorphism

noncomputable def matrix.star_alg_equiv.unitary {n : Type u_1} [fintype n] [decidable_eq n] {𝕜 : Type u_2} [is_R_or_C 𝕜] (f : matrix n n 𝕜 ≃⋆ₐ[𝕜] matrix n n 𝕜) :
Equations
theorem matrix.diagonal.spectrum {𝕜 : Type u_1} {n : Type u_2} [field 𝕜] [fintype n] [decidable_eq n] (A : n 𝕜) :
spectrum 𝕜 (matrix.to_lin' (matrix.diagonal A)) = {x : 𝕜 | (i : n), A i = x}
theorem matrix.is_hermitian.spectrum {n : Type u_1} [fintype n] [decidable_eq n] {𝕜 : Type u_2} [is_R_or_C 𝕜] [decidable_eq 𝕜] {x : matrix n n 𝕜} (hx : x.is_hermitian) :
spectrum 𝕜 (matrix.to_lin' x) = {x_1 : 𝕜 | (i : n), (hx.eigenvalues i) = x_1}
theorem matrix.is_hermitian.has_eigenvalue_iff {n : Type u_1} [fintype n] [decidable_eq n] {𝕜 : Type u_2} [is_R_or_C 𝕜] [decidable_eq 𝕜] {x : matrix n n 𝕜} (hx : x.is_hermitian) (α : 𝕜) :
@[norm_cast]
theorem matrix.inner_aut.conj {n : Type u_1} {𝕜 : Type u_2} [is_R_or_C 𝕜] [fintype n] [decidable_eq n] (U : (matrix.unitary_group n 𝕜)) (x : matrix n n 𝕜) :
theorem matrix.kronecker_mem_unitary_group {n : Type u_1} {𝕜 : Type u_2} [fintype n] [field 𝕜] [star_ring 𝕜] [decidable_eq n] {p : Type u_3} [fintype p] [decidable_eq p] (U₁ : (matrix.unitary_group n 𝕜)) (U₂ : (matrix.unitary_group p 𝕜)) :
def matrix.unitary_group.kronecker {n : Type u_1} {𝕜 : Type u_2} [fintype n] [field 𝕜] [star_ring 𝕜] [decidable_eq n] {p : Type u_3} [fintype p] [decidable_eq p] (U₁ : (matrix.unitary_group n 𝕜)) (U₂ : (matrix.unitary_group p 𝕜)) :
Equations
theorem matrix.unitary_group.kronecker_coe {n : Type u_1} {𝕜 : Type u_2} [fintype n] [field 𝕜] [star_ring 𝕜] [decidable_eq n] {p : Type u_3} [fintype p] [decidable_eq p] (U₁ : (matrix.unitary_group n 𝕜)) (U₂ : (matrix.unitary_group p 𝕜)) :
theorem matrix.inner_aut_kronecker {n : Type u_1} {𝕜 : Type u_2} [fintype n] [field 𝕜] [star_ring 𝕜] [decidable_eq n] {p : Type u_3} [fintype p] [decidable_eq p] (U₁ : (matrix.unitary_group n 𝕜)) (U₂ : (matrix.unitary_group p 𝕜)) (x : matrix n n 𝕜) (y : matrix p p 𝕜) :
theorem matrix.pos_semidef.kronecker {𝕜 : Type u_1} {n : Type u_2} {p : Type u_3} [is_R_or_C 𝕜] [decidable_eq 𝕜] [fintype n] [fintype p] [decidable_eq n] [decidable_eq p] {x : matrix n n 𝕜} {y : matrix p p 𝕜} (hx : x.pos_semidef) (hy : y.pos_semidef) :
theorem matrix.pos_def.kronecker {𝕜 : Type u_1} {n : Type u_2} {p : Type u_3} [is_R_or_C 𝕜] [decidable_eq 𝕜] [fintype n] [fintype p] [decidable_eq n] [decidable_eq p] {x : matrix n n 𝕜} {y : matrix p p 𝕜} (hx : x.pos_def) (hy : y.pos_def) :
theorem matrix.unitary_group.injective_mul {n : Type u_1} {𝕜 : Type u_2} [fintype n] [decidable_eq n] [is_R_or_C 𝕜] (U : (matrix.unitary_group n 𝕜)) (x y : matrix n n 𝕜) :
x = y x.mul U = y.mul U
theorem matrix.inner_aut.comp_inj {n : Type u_1} {𝕜 : Type u_2} [fintype n] [decidable_eq n] [is_R_or_C 𝕜] (U : (matrix.unitary_group n 𝕜)) (S T : matrix n n 𝕜 →ₗ[𝕜] matrix n n 𝕜) :
theorem matrix.inner_aut.inj_comp {n : Type u_1} {𝕜 : Type u_2} [fintype n] [decidable_eq n] [is_R_or_C 𝕜] (U : (matrix.unitary_group n 𝕜)) (S T : matrix n n 𝕜 →ₗ[𝕜] matrix n n 𝕜) :