The Special Linear group $SL(n, R)$ #
This file defines the elements of the Special Linear group SpecialLinearGroup n R, consisting
of all square R-matrices with determinant 1 on the fintype n by n. In addition, we define
the group structure on SpecialLinearGroup n R and the embedding into the general linear group
GeneralLinearGroup R (n → R).
Main definitions #
Matrix.SpecialLinearGroupis the type of matrices with determinant 1Matrix.SpecialLinearGroup.groupgives the group structure (under multiplication)Matrix.SpecialLinearGroup.toGLis the embeddingSLₙ(R) → GLₙ(R)
Notation #
For m : ℕ, we introduce the notation SL(m,R) for the special linear group on the fintype
n = Fin m, in the locale MatrixGroups.
Implementation notes #
The inverse operation in the SpecialLinearGroup is defined to be the adjugate
matrix, so that SpecialLinearGroup n R has a group structure for all CommRing R.
We define the elements of SpecialLinearGroup to be matrices, since we need to
compute their determinant. This is in contrast with GeneralLinearGroup R M,
which consists of invertible R-linear maps on M.
We provide Matrix.SpecialLinearGroup.hasCoeToFun for convenience, but do not state any
lemmas about it, and use Matrix.SpecialLinearGroup.coeFn_eq_coe to eliminate it ⇑ in favor
of a regular ↑ coercion.
References #
- https://en.wikipedia.org/wiki/Special_linear_group
Tags #
matrix group, group, matrix inverse
SpecialLinearGroup n R is the group of n by n R-matrices with determinant equal to 1.
Equations
- Matrix.SpecialLinearGroup n R = { A // Matrix.det A = 1 }
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Matrix.SpecialLinearGroup.hasCoeToMatrix = { coe := fun A => ↑A }
This instance is here for convenience, but is literally the same as the coercion from
hasCoeToMatrix.
Equations
- Matrix.SpecialLinearGroup.instCoeFun = { coe := fun A => ↑A }
Equations
- Matrix.SpecialLinearGroup.hasInv = { inv := fun A => { val := Matrix.adjugate ↑A, property := (_ : Matrix.det (Matrix.adjugate ↑A) = 1) } }
Equations
- Matrix.SpecialLinearGroup.hasMul = { mul := fun A B => { val := ↑A * ↑B, property := (_ : Matrix.det (↑A * ↑B) = 1) } }
Equations
- Matrix.SpecialLinearGroup.hasOne = { one := { val := 1, property := (_ : Matrix.det 1 = 1) } }
Equations
- Matrix.SpecialLinearGroup.instPowSpecialLinearGroupNat = { pow := fun x n => { val := ↑x ^ n, property := (_ : Matrix.det (↑x ^ n) = 1) } }
Equations
- Matrix.SpecialLinearGroup.instInhabitedSpecialLinearGroup = { default := 1 }
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
A version of Matrix.toLin' A that produces linear equivalences.
Equations
- One or more equations did not get rendered due to their size.
Instances For
toGL is the map from the special linear group to the general linear group
Equations
- Matrix.SpecialLinearGroup.toGL = MonoidHom.comp (MulEquiv.toMonoidHom (MulEquiv.symm (LinearMap.GeneralLinearGroup.generalLinearEquiv R (n → R)))) Matrix.SpecialLinearGroup.toLin'
Instances For
A ring homomorphism from R to S induces a group homomorphism from
SpecialLinearGroup n R to SpecialLinearGroup n S.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Coercion of SL n ℤ to SL n R for a commutative ring R.
Equations
- Matrix.SpecialLinearGroup.instCoeSpecialLinearGroupIntInstCommRingIntSpecialLinearGroup = { coe := fun x => ↑(Matrix.SpecialLinearGroup.map (Int.castRingHom R)) x }
Formal operation of negation on special linear group on even cardinality n given by negating
each element.
Equations
- Matrix.SpecialLinearGroup.instNegSpecialLinearGroup = { neg := fun g => { val := -↑g, property := (_ : Matrix.det (-↑g) = 1) } }
Equations
- One or more equations did not get rendered due to their size.
The matrix S = [[0, -1], [1, 0]] as an element of SL(2, ℤ).
This element acts naturally on the Euclidean plane as a rotation about the origin by π / 2.
This element also acts naturally on the hyperbolic plane as rotation about i by π. It
represents the Mobiüs transformation z ↦ -1/z and is an involutive elliptic isometry.
Equations
- ModularGroup.S = { val := ↑Matrix.of ![![0, -1], ![1, 0]], property := ModularGroup.S.proof_1 }
Instances For
The matrix T = [[1, 1], [0, 1]] as an element of SL(2, ℤ)
Equations
- ModularGroup.T = { val := ↑Matrix.of ![![1, 1], ![0, 1]], property := ModularGroup.T.proof_1 }