I am new to SageMath and am currently exploring how to find all the normal subgroups of a specific group G. G
. Here's a brief description of G:G
:
Consider the ring R=Z/3Z×Z/3Z, R = Z/3Z × Z/3Z
, where Z/3Z Z/3Z
denotes the field with 3 3
elements. We define SL_4(R) SL(4, R)
as the special linear group of 4x4 4 × 4
matrices with entries from R.R
.
The group G G
is a subgroup of SL_4(R), SL(4, R)
, generated by the following matrices: matrices:
[(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)],
[(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)],
[(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)],
[(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)],
[(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)],
[(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)]
| (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) |,
| (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) |,
| (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) |,
| (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) |,
| (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) |,
| (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) |
I attempted to write SageMath code to find these the normal subgroups, subgroups of G
but encountered errors. Could someone please assist me in debugging this code?Here's the code I used:
# Define the finite field Z/3Z
Z3 = Integers(3)
Integers(3)
# Define the ring R as a Cartesian product of Z/3Z and Z/3Z
R = Z3.cartesian_product(Z3)
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.