Linear Groups¶
EXAMPLES:
sage: GL(4,QQ)
General Linear Group of degree 4 over Rational Field
sage: GL(1,ZZ)
General Linear Group of degree 1 over Integer Ring
sage: GL(100,RR)
General Linear Group of degree 100 over Real Field with 53 bits of precision
sage: GL(3,GF(49,'a'))
General Linear Group of degree 3 over Finite Field in a of size 7^2
sage: SL(2, ZZ)
Special Linear Group of degree 2 over Integer Ring
sage: G = SL(2,GF(3)); G
Special Linear Group of degree 2 over Finite Field of size 3
sage: G.is_finite()
True
sage: G.conjugacy_class_representatives()
(
[1 0] [0 2] [0 1] [2 0] [0 2] [0 1] [0 2]
[0 1], [1 1], [2 1], [0 2], [1 2], [2 2], [1 0]
)
sage: G = SL(6,GF(5))
sage: G.gens()
(
[2 0 0 0 0 0] [4 0 0 0 0 1]
[0 3 0 0 0 0] [4 0 0 0 0 0]
[0 0 1 0 0 0] [0 4 0 0 0 0]
[0 0 0 1 0 0] [0 0 4 0 0 0]
[0 0 0 0 1 0] [0 0 0 4 0 0]
[0 0 0 0 0 1], [0 0 0 0 4 0]
)
AUTHORS:
- William Stein: initial version
- David Joyner: degree, base_ring, random, order methods; examples
- David Joyner (2006-05): added center, more examples, renamed random attributes, bug fixes.
- William Stein (2006-12): total rewrite
- Volker Braun (2013-1) port to new Parent, libGAP, extreme refactoring.
REFERENCES:
- [KL] Peter Kleidman and Martin Liebeck. The subgroup structure of the finite classical groups. Cambridge University Press, 1990.
- [C] R. W. Carter. Simple groups of Lie type, volume 28 of Pure and Applied Mathematics. John Wiley and Sons, 1972.
-
sage.groups.matrix_gps.linear.
GL
(n, R, var='a')¶ Return the general linear group.
The general linear group
consists of all
matrices that are invertible over the ring
.
Note
This group is also available via
groups.matrix.GL()
.INPUT:
n
– a positive integer.R
– ring or an integer. If an integer is specified, the corresponding finite field is used.var
– variable used to represent generator of the finite field, if needed.
EXAMPLES:
sage: G = GL(6,GF(5)) sage: G.order() 11064475422000000000000000 sage: G.base_ring() Finite Field of size 5 sage: G.category() Category of finite groups sage: TestSuite(G).run() sage: G = GL(6, QQ) sage: G.category() Category of groups sage: TestSuite(G).run()
Here is the Cayley graph of (relatively small) finite General Linear Group:
sage: g = GL(2,3) sage: d = g.cayley_graph(); d Digraph on 48 vertices sage: d.show(color_by_label=True, vertex_size=0.03, vertex_labels=False) sage: d.show3d(color_by_label=True)
sage: F = GF(3); MS = MatrixSpace(F,2,2) sage: gens = [MS([[2,0],[0,1]]), MS([[2,1],[2,0]])] sage: G = MatrixGroup(gens) sage: G.order() 48 sage: G.cardinality() 48 sage: H = GL(2,F) sage: H.order() 48 sage: H == G True sage: H.gens() == G.gens() True sage: H.as_matrix_group() == H True sage: H.gens() ( [2 0] [2 1] [0 1], [2 0] )
TESTS:
sage: groups.matrix.GL(2, 3) General Linear Group of degree 2 over Finite Field of size 3
-
class
sage.groups.matrix_gps.linear.
LinearMatrixGroup_gap
(degree, base_ring, special, sage_name, latex_string, gap_command_string)¶ Bases:
sage.groups.matrix_gps.named_group.NamedMatrixGroup_gap
,sage.groups.matrix_gps.linear.LinearMatrixGroup_generic
Base class for “named” matrix groups using LibGAP
INPUT:
degree
– integer. The degree (number of rows/columns of matrices).base_ring
– rinrg. The base ring of the matrices.special
– boolean. Whether the matrix group is special, that is, elements have determinant one.latex_string
– string. The latex representation.gap_command_string
– string. The GAP command to construct the matrix group.
EXAMPLES:
sage: G = GL(2, GF(3)) sage: from sage.groups.matrix_gps.named_group import NamedMatrixGroup_gap sage: isinstance(G, NamedMatrixGroup_gap) True
-
class
sage.groups.matrix_gps.linear.
LinearMatrixGroup_generic
(degree, base_ring, special, sage_name, latex_string)¶ Bases:
sage.groups.matrix_gps.named_group.NamedMatrixGroup_generic
Base class for “named” matrix groups
INPUT:
degree
– integer. The degree (number of rows/columns of matrices).base_ring
– rinrg. The base ring of the matrices.special
– boolean. Whether the matrix group is special, that is, elements have determinant one.latex_string
– string. The latex representation.
EXAMPLES:
sage: G = GL(2, QQ) sage: from sage.groups.matrix_gps.named_group import NamedMatrixGroup_generic sage: isinstance(G, NamedMatrixGroup_generic) True
-
sage.groups.matrix_gps.linear.
SL
(n, R, var='a')¶ Return the special linear group.
The special linear group
consists of all
matrices that are invertible over the ring
with determinant one.
Note
This group is also available via
groups.matrix.SL()
.INPUT:
n
– a positive integer.R
– ring or an integer. If an integer is specified, the corresponding finite field is used.var
– variable used to represent generator of the finite field, if needed.
EXAMPLES:
sage: SL(3, GF(2)) Special Linear Group of degree 3 over Finite Field of size 2 sage: G = SL(15, GF(7)); G Special Linear Group of degree 15 over Finite Field of size 7 sage: G.category() Category of finite groups sage: G.order() 1956712595698146962015219062429586341124018007182049478916067369638713066737882363393519966343657677430907011270206265834819092046250232049187967718149558134226774650845658791865745408000000 sage: len(G.gens()) 2 sage: G = SL(2, ZZ); G Special Linear Group of degree 2 over Integer Ring sage: G.gens() ( [ 0 1] [1 1] [-1 0], [0 1] )
Next we compute generators for
sage: G = SL(3,ZZ); G Special Linear Group of degree 3 over Integer Ring sage: G.gens() ( [0 1 0] [ 0 1 0] [1 1 0] [0 0 1] [-1 0 0] [0 1 0] [1 0 0], [ 0 0 1], [0 0 1] ) sage: TestSuite(G).run()
TESTS:
sage: groups.matrix.SL(2, 3) Special Linear Group of degree 2 over Finite Field of size 3