'Test if the group is infinite. Return `True` if the test succeeds
and `None` otherwise'

def _is_infinite(self):

    abelian_rels = []
    from sympy.polys.solvers import RawMatrix as Matrix
    from sympy.polys.domains import ZZ
    from sympy.matrices.normalforms import invariant_factors
    for rel in self.relators:
        abelian_rels.append([rel.exponent_sum(g) for g in self.generators])
    m = Matrix(abelian_rels)
    setattr(m, 'ring', ZZ)
    if (0 in invariant_factors(m)):
        return True
    else:
        return None
