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: # needs sage.libs.gap
sage: G.is_finite()
True
sage: G.conjugacy_classes_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]
)
>>> from sage.all import *
>>> SL(Integer(2), ZZ)
Special Linear Group of degree 2 over Integer Ring
>>> G = SL(Integer(2), GF(Integer(3))); G
Special Linear Group of degree 2 over Finite Field of size 3
>>> # needs sage.libs.gap
>>> G.is_finite()
True
>>> G.conjugacy_classes_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]
)
>>> G = SL(Integer(6), GF(Integer(5)))
>>> 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_generic(degree, base_ring, special, sage_name, latex_string, category=None, invariant_form=None)[source]¶
- Bases: - CachedRepresentation,- MatrixGroup_generic- Base class for “named” matrix groups. - INPUT: - degree– integer; the degree (number of rows/columns of matrices)
- base_ring– ring; the base ring of the matrices
- special– boolean; whether the matrix group is special, that is, elements have determinant one
- sage_name– string; the name of the group
- latex_string– string; the latex representation
- category– (optional) a subcategory of- sage.categories.groups.Groupspassed to the constructor of- sage.groups.matrix_gps.matrix_group.MatrixGroup_generic
- invariant_form– (optional) square-matrix of the given degree over the given base_ring describing a bilinear form to be kept invariant by the group
 - EXAMPLES: - sage: G = GL(2, QQ) sage: from sage.groups.matrix_gps.named_group import NamedMatrixGroup_generic sage: isinstance(G, NamedMatrixGroup_generic) True - >>> from sage.all import * >>> G = GL(Integer(2), QQ) >>> from sage.groups.matrix_gps.named_group import NamedMatrixGroup_generic >>> isinstance(G, NamedMatrixGroup_generic) True 
- sage.groups.matrix_gps.named_group.normalize_args_invariant_form(R, d, invariant_form)[source]¶
- Normalize the input of a user defined invariant bilinear form for orthogonal, unitary and symplectic groups. - Further informations and examples can be found in the defining functions ( - GU(),- SU(),- Sp(), etc.) for unitary, symplectic groups, etc.- INPUT: - R– instance of the integral domain which should become the- base_ringof the classical group
- d– integer giving the dimension of the module the classical group is operating on
- invariant_form– (optional) instances being accepted by the matrix-constructor that define a \(d \times d\) square matrix over R describing the bilinear form to be kept invariant by the classical group
 - OUTPUT: - Noneif- invariant_formwas not specified (or- None). A matrix if the normalization was possible; otherwise an error is raised.- AUTHORS: - Sebastian Oehms (2018-8) (see Issue #26028) 
 
- sage.groups.matrix_gps.named_group.normalize_args_vectorspace(*args, **kwds)[source]¶
- 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- ringis a prime power
 
 - OUTPUT: a pair - (degree, ring)