Base for Classical Matrix Groups

This module implements the base class for matrix groups that have various famous names, like the general linear group.

EXAMPLES:

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]
)
class sage.groups.matrix_gps.named_group.NamedMatrixGroup_gap(degree, base_ring, special, sage_name, latex_string, gap_command_string)

Bases: sage.groups.matrix_gps.named_group.NamedMatrixGroup_generic, sage.groups.matrix_gps.matrix_group.MatrixGroup_gap

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.named_group.NamedMatrixGroup_generic(degree, base_ring, special, sage_name, latex_string)

Bases: sage.structure.unique_representation.UniqueRepresentation, sage.groups.matrix_gps.matrix_group.MatrixGroup_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.named_group.normalize_args_vectorspace(*args, **kwds)

Normalize the arguments that relate to a vector space.

INPUT:

Something that defines an affine space. For example

  • An affine space itself:
    • A – affine space
  • A vector space:
    • V – a vector space
  • Degree and base ring:
    • degree – integer. The degree of the affine group, that is, the dimension of the affine space the group is acting on.
    • ring – a ring or an integer. The base ring of the affine space. If an integer is given, it must be a prime power and the corresponding finite field is constructed.
    • var='a' – optional keyword argument to specify the finite field generator name in the case where ring is a prime power.

OUTPUT:

A pair (degree, ring).

TESTS:

sage: from sage.groups.matrix_gps.named_group import normalize_args_vectorspace
sage: A = AffineSpace(2, GF(4,'a'));  A
Affine Space of dimension 2 over Finite Field in a of size 2^2
sage: normalize_args_vectorspace(A)
(2, Finite Field in a of size 2^2)

sage: normalize_args_vectorspace(2,4)   # shorthand
(2, Finite Field in a of size 2^2)

sage: V = ZZ^3;  V
Ambient free module of rank 3 over the principal ideal domain Integer Ring
sage: normalize_args_vectorspace(V)
(3, Integer Ring)

sage: normalize_args_vectorspace(2, QQ)
(2, Rational Field)