To determine whether M is isomorphic to a free module, one may prune M first.
i1 : R = ZZ/101[x,y] o1 = R o1 : PolynomialRing
i2 : M = kernel vars R o2 = image {1} | -y | {1} | x | 2 o2 : R - module, submodule of R
i3 : isFreeModule M o3 = false
i4 : isFreeModule prune M o4 = true