3 added 4 characters in body

It seems there is an algorithm, implemented in Sage (for example). The following link is to a Sage worksheet with a small example. Please let me know if I've mis-interpreted the original question, but I believe this answers it.

Updated

Sorry about the link not working; I don't know what could be the issue. Here are the sage commands I found relating to your question.

G. = AbelianGroup(4, invfac=[3,5,9,45])

This creates the group $\mathbb{Z}/3 \mathbb{Z} \times \mathbb{Z}/5\mathbb{Z} \times \mathbb{Z}/9\mathbb{Z}\times \mathbb{Z}/45\mathbb{Z}$, with specified generators, $a, b, c, d$.

H = G.subgroup([a*b, c^3])

a*b in H

--returns true

a*b*c in H

--returns false.

Updated

I don't have the full details, but I know that sage uses the DHSW algorithm when computing SNF (reference: Dumas, Heckenbach, Saunders, Welker, “Computing simplicial homology based on efficient Smith normal form algorithms,” in “Algebra, geometry, and software systems” (2003), 177-206.) As I understand it, the time-complexity is polynomial.

It seems there is an algorithm, implemented in Sage (for example). The following link is to a Sage worksheet with a small example. Please let me know if I've mis-interpreted the original question, but I believe this answers it.

http://www.sagenb.org/home/pub/3696

Cheers!

Sorry about the link not working; I don't know what could be the issue. Here are the sage commands I found relating to your question.

G. = AbelianGroup(4, invfac=[3,5,9,45])

This creates the group $\mathbb{Z}/3 \mathbb{Z} \times \mathbb{Z}/5\mathbb{Z} \times \mathbb{Z}/9\mathbb{Z}\times \mathbb{Z}/45\mathbb{Z}$, with specified generators, $a, b, c, d$.

H = G.subgroup([a*b, c^3])

a*b in H

--returns true

a*b*c in H

--returns false.

Updated

I don't have the full details, but I know that sage uses the DHSW algorithm when computing SNF (reference: Dumas, Heckenbach, Saunders, Welker, Computing simplicial homology based on efficient Smith normal form algorithms, in Algebra, geometry, and software systems (2003), 177-206.) As I understand it, the time-complexity is polynomial.

1

It seems there is an algorithm, implemented in Sage (for example). The following link is to a Sage worksheet with a small example. Please let me know if I've mis-interpreted the original question, but I believe this answers it.

http://www.sagenb.org/home/pub/3696

Cheers!