Documentation

TauCeti.LinearAlgebra.Matrix.SpecialLinearGroup.ConjAct

The conjugation action of the special linear group on matrices #

The special linear group SL(n, R) acts on the square matrices Matrix n n R by conjugation, g • M = g M g⁻¹. As for any conjugation action, it is recorded as an action of the type synonym ConjAct (SL(n, R)), so that it does not clash with the action of SL(n, R) on column vectors or with the scalar action of R. Mathlib provides the conjugation action ConjAct.unitsScalar of the units Mˣ of a monoid on M, which covers GL(n, R) acting on Matrix n n R, but not the action of SL(n, R), whose orbits are the SL(n, R)-conjugacy classes of matrices.

Conjugation preserves the trace, the determinant and, since adjugate g = g⁻¹ for g ∈ SL(n, R), commutes with taking adjugates.

Conjugation by SL(n, R) is conjugation by its image in GL(n, R), so SL(n, R)-conjugates are GL(n, R)-conjugates. Conversely, a conjugate g X g⁻¹ by g ∈ GL(n, R) is also a conjugate by SL(n, R) exactly when the determinant of g can be corrected inside the centralizer of X: some invertible matrix commuting with X has the same determinant as g.

Main definitions #

Main results #

References #

@[instance_reducible]

SL(n, R) acts on Matrix n n R by conjugation, g • M = g M g⁻¹, through the type synonym ConjAct, in the manner of Mathlib's ConjAct.unitsScalar.

theorem ConjAct.specialLinearGroup_smul_def {n : Type u_1} {R : Type u_2} [Fintype n] [DecidableEq n] [CommRing R] (g : ConjAct (Matrix.SpecialLinearGroup n R)) (M : Matrix n n R) :
g • M = ↑(ofConjAct g) * M * ↑(ofConjAct g)⁻¹

The conjugation action of SL(n, R) on matrices is g • M = g M g⁻¹.

@[instance_reducible]

Conjugation g • M = g M g⁻¹ is an action of SL(n, R) on Matrix n n R.

@[simp]
theorem ConjAct.trace_specialLinearGroup_smul {n : Type u_1} {R : Type u_2} [Fintype n] [DecidableEq n] [CommRing R] (g : ConjAct (Matrix.SpecialLinearGroup n R)) (M : Matrix n n R) :
(g • M).trace = M.trace

Conjugation by SL(n, R) preserves the trace.

@[simp]
theorem ConjAct.det_specialLinearGroup_smul {n : Type u_1} {R : Type u_2} [Fintype n] [DecidableEq n] [CommRing R] (g : ConjAct (Matrix.SpecialLinearGroup n R)) (M : Matrix n n R) :
(g • M).det = M.det

Conjugation by SL(n, R) preserves the determinant.

@[simp]

Conjugation by SL(n, R) commutes with the adjugate: adjugate (g M g⁻¹) = g (adjugate M) g⁻¹.

@[simp]

Conjugating a matrix by the image of s ∈ SL(n, R) in GL(n, R) is conjugating it by s.

Determinant correction of conjugators. Over a commutative ring R, the conjugate g X g⁻¹ of a matrix X by g ∈ GL(n, R) is also a conjugate of X by SL(n, R) exactly when some invertible matrix commuting with X has the determinant of g.

An SL(n, R)-conjugate of a matrix is a GL(n, R)-conjugate.

theorem Matrix.SpecialLinearGroup.trace_mul_mul_inv {n : Type u_1} {R : Type u_2} [Fintype n] [DecidableEq n] [CommRing R] (P k : SpecialLinearGroup n R) :
(↑(P * k * P⁻¹)).trace = (↑k).trace

Conjugation in SL(n, R) preserves the trace: trace (P k P⁻¹) = trace k. This is the product form of ConjAct.trace_specialLinearGroup_smul.

def TauCeti.traceDetFiber (n : Type u_1) {R : Type u_2} [Fintype n] [DecidableEq n] [CommRing R] (t d : R) :

The matrices of trace t and determinant d, as a sub-action of the conjugation action of SL(n, R): its orbits are the SL(n, R)-conjugacy classes of such matrices.

Instances For
    @[simp]
    theorem TauCeti.mem_traceDetFiber {n : Type u_1} {R : Type u_2} [Fintype n] [DecidableEq n] [CommRing R] {t d : R} {M : Matrix n n R} :
    M ∈ traceDetFiber n t d ↔ M.trace = t ∧ M.det = d

    A matrix lies in traceDetFiber n t d exactly when its trace is t and its determinant d.

    theorem TauCeti.mem_traceDetFiber_fin_two {R : Type u_2} [CommRing R] {t d : R} {M : Matrix (Fin 2) (Fin 2) R} :
    M ∈ traceDetFiber (Fin 2) t d ↔ M 0 0 + M 1 1 = t ∧ M 0 0 * M 1 1 - M 0 1 * M 1 0 = d

    A 2 × 2 matrix lies in traceDetFiber (Fin 2) t d exactly when its entries satisfy M₀₀ + M₁₁ = t and M₀₀ M₁₁ - M₀₁ M₁₀ = d.

    theorem TauCeti.adjugate_mem_traceDetFiber {R : Type u_2} [CommRing R] {t d : R} {M : Matrix (Fin 2) (Fin 2) R} (hM : M ∈ traceDetFiber (Fin 2) t d) :

    The adjugate of a 2 × 2 matrix M has the trace and the determinant of M: it lies in traceDetFiber (Fin 2) t d whenever M does.

    theorem TauCeti.add_scalar_mem_traceDetFiber {R : Type u_2} [CommRing R] {t d : R} {M : Matrix (Fin 2) (Fin 2) R} (hM : M ∈ traceDetFiber (Fin 2) t d) (r : R) :
    M + (Matrix.scalar (Fin 2)) r ∈ traceDetFiber (Fin 2) (t + 2 * r) (d + r * t + r ^ 2)

    Adding the scalar matrix r to a 2 × 2 matrix of trace t and determinant d gives a matrix of trace t + 2 r and determinant d + r t + r².

    def TauCeti.traceDetFiberAddScalarEquiv {R : Type u_2} [CommRing R] (t d r : R) :
    ↥(traceDetFiber (Fin 2) t d) ≃ ↥(traceDetFiber (Fin 2) (t + 2 * r) (d + r * t + r ^ 2))

    Translation M ↦ M + r by a scalar matrix, from the 2 × 2 matrices of trace t and determinant d to those of trace t + 2 r and determinant d + r t + r².

    Instances For
      @[simp]
      theorem TauCeti.traceDetFiberAddScalarEquiv_apply_coe {R : Type u_2} [CommRing R] (t d r : R) (M : ↥(traceDetFiber (Fin 2) t d)) :
      ↑((traceDetFiberAddScalarEquiv t d r) M) = ↑M + (Matrix.scalar (Fin 2)) r

      traceDetFiberAddScalarEquiv t d r adds the scalar matrix r.

      @[simp]
      theorem TauCeti.traceDetFiberAddScalarEquiv_symm_apply_coe {R : Type u_2} [CommRing R] (t d r : R) (M : ↥(traceDetFiber (Fin 2) (t + 2 * r) (d + r * t + r ^ 2))) :
      ↑((traceDetFiberAddScalarEquiv t d r).symm M) = ↑M - (Matrix.scalar (Fin 2)) r

      The inverse of traceDetFiberAddScalarEquiv t d r subtracts the scalar matrix r.