2

I am new to computational group theory. I am trying to find/write a program that computes the following:

Input: a finite abelian group $$G \cong \mathbb{Z}_{m_1} \oplus \cdots \oplus \mathbb{Z}_{m_{m_t}}=\langle(1,0, \ldots 0), (0,1, \ldots 0), \ldots, (0,0, \ldots 1)\rangle ,$$ where $m_i \mid m_{i+1}$ for $i=1, \ldots, t-1$.

Output: All the subgroups of $G$ and identify which subgroups are isomorphic to each other.

I was wondering if such a package already exists. If not, what would be a good programming language to write it? Any help would be really appreciated.

ghc1997
  • 1,431
  • Sage is a standard reference for computational algebra, check out https://doc.sagemath.org/html/en/reference/groups/sage/groups/abelian_gps/abelian_group.html – SomeCallMeTim Jul 25 '23 at 11:45
  • Duplicate: https://math.stackexchange.com/q/1569349/104041 – Shaun Jul 25 '23 at 12:01
  • I accidentally retracted my close vote. – Shaun Jul 25 '23 at 12:01
  • 2
    @Shaun It is not an exact duplicate, because the linked post is about computing subgroups of an arbitrary finite group. I am not sure whether GAP has separate code for finite abelian groups. In Magma it is a separate function using an enumeration of possible Hermite normal forms to find the subgroups. Magma is not open source so I cannot provide a direct link to the code. – Derek Holt Jul 25 '23 at 12:40
  • 1
    In GAP (I wrote that code), as of today, the only special code is for elementary abelian groups. Other abelian groups then are composed from these, using a more general method for solvable groups. – ahulpke Jul 25 '23 at 22:03
  • @ahulpke Thank you, could you tell me what the command is? – ghc1997 Jul 26 '23 at 16:20
  • @ghc1997 It's SubgroupsSolvableGroup in the file lib/grppclat.gi – ahulpke Jul 27 '23 at 02:50

0 Answers0