| 1 | initial version |
In a simpler example, when the ring R is replaced by the field GF(2) the following works:
sage: HG = groups.matrix.Heisenberg(n=1, R=GF(2))
sage: HG.group_id()
[8, 3]
Instead of R=GF(2) option specification, one can also declare the 2 (for $\Bbb Z/2$):
sage: HG = groups.matrix.Heisenberg(n=1, R=2)
sage: HG.group_id()
[8, 3]
sage: HG
Heisenberg group of degree 1 over Ring of integers modulo 2
The documentation is here.
To still do something, we can ask for a better way to look at $\Bbb F_2[x]/(x^2)$. This is a ring with four elements, the dual ring of $\Bbb F_2$, its elements are $0,1,x,1+x$ with $x^2=0$, and it is isomorphic to $\Bbb Z/4$ by making $x$ correspond to $2$ (modulo four). So using this simpler instance of the same ring...
sage: HG = groups.matrix.Heisenberg(n=1, R=4)
sage: HG.group_id()
[64, 18]
sage: HG
Heisenberg group of degree 1 over Ring of integers modulo 4
(Using the other incarnation of the same ring is not accepted by GAP.)
Its order is thus as expected $4^3$ (for the three upper diagonal entries with values in $\Bbb Z/4$ taking independently their values), and it is on the place $18$ in the GAP list.
Of course, we can work in sage also with the GAP side. For instance:
sage: G64_18 = gap.SmallGroup(64, 18)
sage: G64_18
Group( [ f1, f2, f3, f4, f5, f6 ] )
sage: G64_18.SmallGeneratingSet()
[ f1, f2 ]
sage: f1, f2 = G64_18.SmallGeneratingSet()
sage: f1.Order(), f2.Order()
(4, 4)
sage: (f1*f2).Order(), (f2*f1).Order()
(8, 8)
sage: G64_18.StructureDescription()
(C4 x C4) : C4
To obtain an isomorphism one may try to find two elements in HG of order four each, so that both products (in either order) have order eight. Well, a canonical choice would be:
sage: h1 = HG([[1,1,0], [0,1,0], [0,0,1]])
sage: h2 = HG([[1,0,0], [0,1,1], [0,0,1]])
sage: h1.order(), h2.order()
(4, 4)
sage: (h1*h2).order(), (h2*h1).order()
(8, 8)
sage: h1, h2
(
[1 1 0] [1 0 0]
[0 1 0] [0 1 1]
[0 0 1], [0 0 1]
)
sage:
There is still a lot to be done to insure an isomorphism, the two worlds of sage and GAP-in-sage are not really miscible, but the path should be so...
Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.