Algorithm to test isomorphism between two finitely presented modules

61 Views Asked by At

Given two finitely presented left (or right) $R$-modules, specified by free presentations, is there an algorithm to determine if they are isomorphic and produce an isomorphism? This is of course possible if $R$ is a PID (or more generally an elementary divisor ring) via the Smith normal form. But how about other types of rings? For example, how about $R = K[x_1, \ldots, x_n]$ for a field $K$?

I saw that Macaulay2 checks if a randomly generated homomorphism between the modules is an isomorphism, and in affirmative case this solves the problem. But in my tests over several rings a random homomorphism is almost never an isomorphism (it is over $\mathbb{Q}$, but not over general rings, not even over $\mathbb{Z}$). So I don’t understand what they are doing in Macaulay2.