I'm writing some software to automatically compute things like Alexander modules, Alexander ideals, Milnor signatures and Farber-Levine pairings for 1 and 2-knot complements. So among other things I'd like to have a quick way of comparing ideals in the Laurent polynomial ring $\mathbb Z[t^{\pm 1}]$. 


So my question:


Is there an efficient way of determining whether or not two ideals in $\mathbb Z[t^{\pm 1}]$ are equal? What's the most pleasant procedure you can think of? 


My ideals are given by a finite number of generators. 


The knot theory literature tends to stop at "$\mathbb Z[t^{\pm 1}]$ *isn't a PID*" but I'm hopeful there's some reasonable tools out there. Understanding ideals in $\mathbb Z[t^{\pm 1}]$ is essentially the same thing as understanding cyclic group actions on finitely generated abelian groups so I could imagine answers might be more complicated than I like. But I hope to be pleasantly surprised by some sort of "division algorithm + details" type algorithm. 


For example, is there a better way to go about this problem than:


Given an ideal $I \subset \mathbb Z[t^{\pm 1}]$, consider the finitely-generated abelian group $G = \mathbb Z[t^{\pm 1}]/I$ together with the action of $\mathbb Z$ on $G$ given by multiplication by $t$. We want to determine $G$ as a $\mathbb Z$-module. So presumably you would do this on the $\mathbb Z$-torsion subgroup of $G$ (call it $\tau G$), then work out the conjugacy class of the action of $\mathbb Z$ on $G/\tau G$ (which amounts to the conjugacy problem in $GL\_n(\mathbb Z)$), then there would be an extension problem to deal with. 


I'm hoping there's a simpler way to deal with this problem -- simpler in the sense of implementation. 



Ideals in the ring of single-variable Laurent polynomials with integer coefficients
It is fairly straightforward to adapt standard Gröbner basis techniques to such algebras, e.g. see the [paper [1]](https://doi.org/10.1007/s002000050108). See also the [paper [0]](https://doi.org/10.1007/11870814_12) which applies such algorithms to the problem at hand.


[[0](https://doi.org/10.1007/11870814_12)] Jesus Gago-Vargas; Isabel Hartillo-Hermoso; Jose Marya Ucha-Enryquez  

Algorithmic Invariants for Alexander Modules. LNCS 4194, 149-154  

<https://link.springer.com/chapter/10.1007/11870814_12>


Abstract. Let G be a group given by generators and relations. It is possible
to compute a presentation matrix of a module over a ring through
Fox's differential calculus. We show how to use Gröbner bases as an algorithmic
tool to compare the chains of elementary ideals defined by the
matrix. We apply this technique to classical examples of groups and to
compute the elementary ideals of Alexander matrix of knots up to 11
crossings with the same Alexander polynomial.


[[1](https://doi.org/10.1007/s002000050108)] Franz Pauer, Andreas Unterkircher.  

Gröbner Bases for Ideals in Laurent Polynomial Rings and their Application to Systems of Difference Equations.  

AAECC 9, 271-291 (1999)  

<https://link.springer.com/article/10.1007/s002000050108>


*Abstract.* We develop a basic theory of Gröbner bases for ideals in the algebra
of Laurent polynomials (and, more generally, in its monomial subalgebras). For
this we have to generalize the notion of term order. The theory is applied to
systems of linear partial difference equations (with constant coefficients) on
${\mathbb Z}^n$. Furthermore, we present a method to compute the intersection of an ideal
in the algebra of Laurent polynomials with the subalgebra of all polynomials.


