I am new to SageMath and am currently exploring how to find all the normal subgroups of a specific group $G$
. Here’s a brief description of $G$
:
Consider the ring $R = Z/3Z times Z/3Z$
, where $Z/3Z$
denotes the field with $3$
elements. We define $SL_4(R)$
as the special linear group of $4 times 4$
matrices with entries from $R$
.
The group $G$
is a subgroup of $SL_4(R)$
, generated by the following matrices:
begin{bmatrix}
(1,1) & (1,0) & (0,0) & (0,0) \
(0,0) & (1,1) & (0,0) & (0,0) \
(0,0) & (0,0) & (1,1) & (0,1) \
(0,0) & (0,0) & (0,0) & (1,1)
end{bmatrix},
begin{bmatrix}
(1,1) & (0,1) & (0,0) & (0,0) \
(0,0) & (1,1) & (0,0) & (0,0) \
(0,0) & (0,0) & (1,1) & (1,0) \
(0,0) & (0,0) & (0,0) & (1,1)
end{bmatrix},
begin{bmatrix}
(1,1) & (0,0) & (0,0) & (0,0) \
(0,0) & (1,1) & (1,1) & (0,0) \
(0,0) & (0,0) & (1,1) & (0,0) \
(0,0) & (0,0) & (0,0) & (1,1)
end{bmatrix},
begin{bmatrix}
(1,1) & (0,0) & (0,0) & (0,0) \
(1,0) & (1,1) & (0,0) & (0,0) \
(0,0) & (0,0) & (1,1) & (0,0) \
(0,0) & (0,0) & (0,1) & (1,1)
end{bmatrix},
begin{bmatrix}
(1,1) & (0,0) & (0,0) & (0,0) \
(0,1) & (1,1) & (0,0) & (0,0) \
(0,0) & (0,0) & (1,1) & (0,0) \
(0,0) & (0,0) & (1,0) & (1,1)
end{bmatrix},
begin{bmatrix}
(1,1) & (0,0) & (0,0) & (0,0) \
(0,0) & (1,1) & (0,0) & (0,0) \
(0,0) & (1,1) & (1,1) & (0,0) \
(0,0) & (0,0) & (0,0) & (1,1)
end{bmatrix}
I attempted to write SageMath code to find the normal subgroups of GG, but I encountered errors. Here’s the code I used:
# Define the finite field Z/3Z
Z3 = Integers(3)
# Define the ring R as Cartesian product of Z/3Z and Z/3Z
R = Z3.cartesian_product(Z3)
# Define the matrices over R
matrices = [
matrix(R, [
[(1, 1), (1, 0), (0, 0), (0, 0)],
[(0, 0), (1, 1), (0, 0), (0, 0)],
[(0, 0), (0, 0), (1, 1), (0, 1)],
[(0, 0), (0, 0), (0, 0), (1, 1)]
]),
matrix(R, [
[(1, 1), (0, 1), (0, 0), (0, 0)],
[(0, 0), (1, 1), (0, 0), (0, 0)],
[(0, 0), (0, 0), (1, 1), (1, 0)],
[(0, 0), (0, 0), (0, 0), (1, 1)]
]),
matrix(R, [
[(1, 1), (0, 0), (0, 0), (0, 0)],
[(0, 0), (1, 1), (1, 1), (0, 0)],
[(0, 0), (0, 0), (1, 1), (0, 0)],
[(0, 0), (0, 0), (0, 0), (1, 1)]
])
]
# Include their transposes
matrices += [m.transpose() for m in matrices]
# Generate G as the group generated by these matrices
G = MatrixGroup(matrices)
# Find the normal subgroups of G
normal_subgroups = G.normal_subgroups()
# Display the normal subgroups
normal_subgroups
Expected Outcome: I expected the code to list all the normal subgroups of the group $G$
.
Actual Outcome: I encountered the following error message:
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
File /home/sc_serv/sage/src/sage/structure/category_object.pyx:847, in sage.structure.category_object.CategoryObject.getattr_from_category()
846 try:
--> 847 return self._cached_methods[name]
848 except KeyError:
KeyError: 'normal_subgroups'
During handling of the above exception, another exception occurred:
AttributeError Traceback (most recent call last)
Cell In [1], line 36
33 G = MatrixGroup(matrices)
35 # Find the normal subgroups of G
---> 36 normal_subgroups = G.normal_subgroups()
38 # Display the normal subgroups
39 normal_subgroups
File /home/sc_serv/sage/src/sage/structure/category_object.pyx:841, in sage.structure.category_object.CategoryObject.__getattr__()
839 AttributeError: 'PrimeNumbers_with_category' object has no attribute 'sadfasdf'...
840 """
--> 841 return self.getattr_from_category(name)
842
843 cdef getattr_from_category(self, name) noexcept:
File /home/sc_serv/sage/src/sage/structure/category_object.pyx:856, in sage.structure.category_object.CategoryObject.getattr_from_category()
854 cls = self._category.parent_class
855
--> 856 attr = getattr_from_other_class(self, cls, name)
857 self._cached_methods[name] = attr
858 return attr
File /home/sc_serv/sage/src/sage/cpython/getattr.pyx:357, in sage.cpython.getattr.getattr_from_other_class()
355 dummy_error_message.cls = type(self)
356 dummy_error_message.name = name
--> 357 raise AttributeError(dummy_error_message)
358 cdef PyObject* attr = instance_getattr(cls, name)
359 if attr is NULL:
AttributeError: 'FinitelyGeneratedMatrixGroup_generic_with_category' object has no attribute 'normal_subgroups'
Request: Could someone please help me understand why this error occurs and how to fix it? Specifically, I would like to know:
-
Why the
normal_subgroups
method is not available for the matrix group$G$
. -
How to correctly find the normal subgroups of
$G$
in SageMath.
Any assistance in debugging this code or providing a correct approach would be greatly appreciated.
Deep is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.