The Stacks project

Lemma 48.23.3. In Situation 48.16.1 let $f : X \to Y$ be a morphism of $\textit{FTS}_ S$. Let $x \in X$. If $f$ is flat, then the following are equivalent

  1. $f$ is Cohen-Macaulay at $x$,

  2. $f^!\mathcal{O}_ Y$ has a unique nonzero cohomology sheaf in a neighbourhood of $x$.

Proof. One direction of the lemma follows from Lemma 48.21.7. To prove the converse, we may assume $f^!\mathcal{O}_ Y$ has a unique nonzero cohomology sheaf. Let $y = f(x)$. Let $\xi _1, \ldots , \xi _ n \in X_ y$ be the generic points of the fibre $X_ y$ specializing to $x$. Let $d_1, \ldots , d_ n$ be the dimensions of the corresponding irreducible components of $X_ y$. The morphism $f : X \to Y$ is Cohen-Macaulay at $\eta _ i$ by More on Morphisms, Lemma 37.22.7. Hence by Lemma 48.21.7 we see that $d_1 = \ldots = d_ n$. If $d$ denotes the common value, then $d = \dim _ x(X_ y)$. After shrinking $X$ we may assume all fibres have dimension at most $d$ (Morphisms, Lemma 29.28.4). Then the only nonzero cohomology sheaf $\omega = H^{-d}(f^!\mathcal{O}_ Y)$ is flat over $Y$ by Lemma 48.21.4. Hence, if $h : X_ y \to X$ denotes the canonical morphism, then $Lh^*(f^!\mathcal{O}_ Y) = Lh^*(\omega [d]) = (h^*\omega )[d]$ by Derived Categories of Schemes, Lemma 36.22.8. Thus $h^*\omega [d]$ is the dualizing complex of $X_ y$ by Lemma 48.18.4. Hence $X_ y$ is Cohen-Macaulay by Lemma 48.23.1. This proves $f$ is Cohen-Macaulay at $x$ as desired. $\square$


Comments (0)


Post a comment

Your email address will not be published. Required fields are marked.

In your comment you can use Markdown and LaTeX style mathematics (enclose it like $\pi$). A preview option is available if you wish to see how it works out (just click on the eye in the toolbar).

Unfortunately JavaScript is disabled in your browser, so the comment preview function will not work.

All contributions are licensed under the GNU Free Documentation License.




In order to prevent bots from posting comments, we would like you to prove that you are human. You can do this by filling in the name of the current tag in the following input field. As a reminder, this is tag 0C0Z. Beware of the difference between the letter 'O' and the digit '0'.