# Testing if a submodule is free

This is hopefully a very simple question. In Gröbner Bases in Commutative Algebra by Ene and Herzog, I find the Problem 4.11, which says ($S$ here is a polynomial ring over a field $K$, $S=K[x_1\ldots x_n]$)

Problem 4.11. Let $\prec$ be a monomial oreder on the free $S$-module $F=\bigoplus_{j=1}^m Se_j$, let $U\subset F$ be a submodule of $F$, and suppose that $\mathrm{in}_\prec(U)=\bigoplus_{j=1}^m I_je_j$. Show that $U$ is a free $S$-module if and only if $I_j$ is a principal ideal for $j=1,\ldots, m$.

I can see how the "if" part works (given generators of all $I_j$ construct a Gröbner basis for $U$ and observe that there are no syzygies). What I fail to see is the "only if" part. In fact, consider the following example.

Let $S=\mathbb{Q}[x,y]$ with graded lexicographic order, $F=S^3$ with coefficient over position order, and $U$ be generated by $$a=(x,1,0), \quad\mathrm{in}_\prec a = (x,0,0)\\ b=(y,0,1), \quad\mathrm{in}_\prec b = (y,0,0)\\ c=(0,y,-x), \quad\mathrm{in}_\prec c = (0,0,x).$$ Note that $G=\{a,b,c\}$ is a Gröbner basis for $U$ since the only $S$-pair is $$S(a,b)=ya-xb=(0,y,-x)=c,$$ and this is a standard expression for $S(a,b)$, and hence $S(a,b)$ reduces to $0$ wrt $G$.

Clearly $U$ is free since it is already generated by $a,b$ and for any $u\in U, u=\alpha a+\beta b$ we can uniquely determine $\alpha,\beta$ from the last two components of $u$.

However, since $G$ is a Gröbner basis, we find that the initial module of $U$ is $$\mathrm{in}_\prec(U)=\langle x,y\rangle e_1\oplus\langle x\rangle e_3,$$ and $\langle x, y\rangle$ is not a principal ideal.

Is this indeed a correct counterexample? If not, what am I missing? If yes, how can I algorithmically check if a submodule on given generators is free?

(I understand there might be some determinant-based criterion, but I would very much prefer something based on Gröbner bases since eventually I need a generalization to a certain non-commutative setting.)