Get the small group id of the Heisenberg group over F_2[x]/(x^2)

asked 2025-05-11 23:01:52 +0200

Samarium-147 gravatar image

Hello everyone. I want to find information, in particular the small group id in the GAP library, of the Heisenber group over the ring F_2[x]/(x^2), which is small in order (4) but "complicated" in term of construction. The naive idea using the method

groups.matrix.Heisenberg

does not work because it only accepts finite fields and rings of integers modulo n as base rings. So I tried to construct explicitely the group:

P.<x> = GF(2)[]
R.<xx> = QuotientRing(P, P.ideal(x^2))

M = MatrixSpace(R, 3)
H = []
for a in R:
    for b in R:
        for c in R:
            matrix = M([[1, a, b], [0, 1, c], [0, 0, 1]])
            H.append(matrix)

HeisenbergGroup = MatrixGroup(H)

However, I can't use the method group_id because HeisenbergGroup.category shows that it is an object of FinitelyGeneratedMatrixGroup_generic_with_category, not of FinitelyGeneratedMatrixGroup_gap_with_category. (The same situation still happens even if I replace R by a slightly more simple ring

R = cartesian_product([GF(2),GF(2)])

I was wondering if there are some clever ways to get round the problem. Thank you in advance.

edit retag flag offensive close merge delete

Comments

1

It looks like a missing functionality (no .as_permutation_group()method) for MatrixGroups. I'd suggest to file a feature request at https://github.com/sagemath/sage/issues

Max Alekseyev gravatar imageMax Alekseyev ( 2025-05-13 21:58:21 +0200 )edit

Thank you for your suggestion! :)

Samarium-147 gravatar imageSamarium-147 ( 2025-05-18 08:16:42 +0200 )edit