The Special Linear group $SL(n, R)$
This file defines the elements of the Special Linear group special_linear_group n R
,
also written SL(n, R)
or SLₙ(R)
, consisting of all n
by n
R
-matrices with
determinant 1
. In addition, we define the group structure on special_linear_group n R
and the embedding into the general linear group general_linear_group R (n → R)
(i.e. GL(n, R)
or GLₙ(R)
).
Main definitions
matrix.special_linear_group
is the type of matrices with determinant 1matrix.special_linear_group.group
gives the group structure (under multiplication)matrix.special_linear_group.embedding_GL
is the embeddingSLₙ(R) → GLₙ(R)
Implementation notes
The inverse operation in the special_linear_group
is defined to be the adjugate
matrix, so that special_linear_group n R
has a group structure for all comm_ring R
.
We define the elements of special_linear_group
to be matrices, since we need to
compute their determinant. This is in contrast with general_linear_group R M
,
which consists of invertible R
-linear maps on M
.
References
- https://en.wikipedia.org/wiki/Special_linear_group
Tags
matrix group, group, matrix inverse
special_linear_group n R
is the group of n
by n
R
-matrices with determinant equal to 1.
Equations
- matrix.special_linear_group n R = {A // A.det = 1}
Equations
- matrix.special_linear_group.coe_matrix = {coe := λ (A : matrix.special_linear_group n R), A.val}
Equations
- matrix.special_linear_group.coe_fun = {F := λ (_x : matrix.special_linear_group n R), n → n → R, coe := λ (A : matrix.special_linear_group n R), A.val}
to_lin A
is matrix multiplication of vectors by A
, as a linear map.
After the group structure on special_linear_group n R
is defined,
we show in to_linear_equiv
that this gives a linear equivalence.
Equations
- A.to_lin = matrix.to_lin ⇑A
Equations
- matrix.special_linear_group.has_inv = {inv := λ (A : matrix.special_linear_group n R), ⟨matrix.adjugate ⇑A, _⟩}
Equations
- matrix.special_linear_group.has_mul = {mul := λ (A B : matrix.special_linear_group n R), ⟨A.val.mul B.val, _⟩}
Equations
- matrix.special_linear_group.has_one = {one := ⟨1, _⟩}
Equations
Equations
- matrix.special_linear_group.group = {mul := has_mul.mul matrix.special_linear_group.has_mul, mul_assoc := _, one := 1, one_mul := _, mul_one := _, inv := has_inv.inv matrix.special_linear_group.has_inv, mul_left_inv := _}
to_linear_equiv A
is matrix multiplication of vectors by A
, as a linear equivalence.
to_GL
is the map from the special linear group to the general linear group
Equations
special_linear_group.embedding_GL
is the embedding from special_linear_group n R
to general_linear_group n R
.
Equations
- matrix.special_linear_group.embedding_GL = {to_fun := λ (A : matrix.special_linear_group n R), A.to_GL, map_one' := _, map_mul' := _}