Sections vs retractions

This is just a warning for readers of the Stacks project: please be careful as I think I don’t know left from right. As a consequence, the text of the Stacks project sometimes uses the phrase “section” when it should be using “retraction”. Similarly, watch out for confusion between “left inverse” and “right inverse”.

If you find occurrences of this, just leave a comment to point it out and we’ll fix it.


Updated again

After a little snafu with python packages over the last few days, the Stacks project is now updated with your latest comments incorporated. Many thanks to Alex Scheffeling, Zhiyu Zhang, and David Holmes for their help in responding to comments.

Please keep leaving comments. Please be as precise as you can. From top to bottom the most valuable comments are

  1. Pointing out mathematical errors in proofs.
  2. Pointing out specific steps in a proof you do not understand.
  3. Pointing out typos which make it harder to understand the mathematics, e.g., if symbols are mixed up or if the arrows point in the wrong direction.
  4. Pointing out that a reference is to the wrong tag.
  5. Precise suggestions as to how to clarify a proof.
  6. Alternative proofs, written out in detail and checked to not use forward references.
  7. Spelling errors.
  8. Punctuation.
  9. Whitespace errors:)

The reason that alternative proofs are so low on this list is that of course almost every mathematical result can be proven in a 100 different ways.

Thanks very much for helping out!

Help wanted

So I am going through the comments left on the Stacks project and many of the comments could have been answered more quickly. I do scan new comments quickly to see if they are pointing out a serious error with the material, because if so I want to be on top of it! But generally speaking I only go through the comments in detail only once every so often.

Anyway, I was wondering if anybody is interested in helping out with answering comments? Let me describe a bit more what I have in mind. Your task would be to monitor activity and take a first stab at responding to comments. Often comments point out trivial typos, sometimes a comment identifies a small error in a proof, or occasionally a comment suggests improvements to a proof and/or statement of a lemma. In these cases you could just quickly make local edits in the relevant latex file and communicate that to me. Or, if you know how to use git I can give you access to the repository to push the corresponding changes directly. Finally, if a more serious error is pointed out we can figure out how to fix it together.

You don’t need to understand all the material in the Stacks project as you can often figure out what went wrong by looking locally at the material. Or you can just answer only comments on certain topics; we don’t need all the comments to be answered quickly. Finally, we can have multiple people dealing with comments as well.

Anyway, let me know by email if you are interested!

Update May 19: Thanks to some people offering to help I am no longer actively looking. You can of course always informally help out by answering questions that people leave in the comments or by pointing out mistakes and/or improvements to the exposition!

Supports of flat modules, part B

Part A is this post. Let me prove the opposite of what the exercise in part A wrongly claimed (sigh).

Lemma: Let Z —> Y be a finite morphism of affine schemes. Then there exists a closed immersion Z —> Z’ of schemes over Y such that Z’ is finite syntomic over Y.

Remark: If we embed Z’ into a smooth scheme X over Y, then F = O_{Z’} is a coherent O_X-module flat over Y such that the generic points of Z are associated points of the restriction of F to their fibres.

Proof: Write Y = Spec(A) and Z = Spec(B). Choose generators b_1, …, b_r of B as an algebra over A. As B is finite over A, each b_i is the root of a monic polynomial P_i with coefficients in A. Then B’ = A[x_1, …, x_r]/(P_1(x_1), …, P_r(x_r)) is finite syntomic over A and Z’ = Spec(B’) works. EndProof.

The point I want to make in this post is that we have some equidimensionality result for associated points of flat modules, namely EGA IV, Proposition (see Tag 0GSF). It implies the following: suppose that f : X —> Y is smooth with Y Noetherian and irreducible. Suppose that F is coherent on X and flat over Y. Let x be a point of the generic fibre of f which is an associated point of F. Then the zariski closure Z ⊂ X of the singleton {x} has the property that Z —> Y is equidimensional!

So for example, there is no finite module M over k[x, y, z] which is flat over k[x, y] such that (x – yt) is an associated prime of M. Presumably, you can see this directly? Is it easy? I didn’t try.


Supports of flat modules

Let Z —> Y be the normalization of an affine cuspidal curve over an algebraically closed field k. Let i : Z —> X be a closed immersion over Y with X smooth over Y.

Question: Does there exist a coherent module F on X, flat over Y, whose support is equal to Z set theoretically?

Answer: No in characteristic 0 and yes in characteristic p > 0.

To see that the answer is no in characteristic 0 you show that the map O_Y —> O_Z has an O_Y-linear section if you have F (and of course this isn’t possible for the normalization of the cuspidal curve). Namely, consider the map tau : O_Z —> O_Y which sends an element f of O_Z to the trace over O_Y of multiplication by f’ on F where f’ is any lift of f to O_X. You show that the choice of f’ doesn’t matter by checking at the generic point; the key fact is that the support condition tells us that f’ which vanish on Z give nilpotent operators on F. Finally, this gets us a section as tau(g) = rg for g in O_Y. Here r = rank_Y(F) > 0 which is invertible as we have char 0.

Remark: I think there doesn’t even exist a coherent F on X, flat over Y, such that the generic point of Z is an associated point of F. Exercise! [Edit on 2/12/22: Jason did the exercise and, uh, it isn’t true!]

To see that the answer is yes in characteristic p > 2, say Y is the spectrum of A = k[a, b]/(a^3 – b^2). Let X be the spectrum of A[t] and consider the closed subscheme, finite flat over Y, cut out by t^p – a^{(p – 3)/2}b. The reduction of this subscheme is isomorphic to Z. For p = 2 use t^2 – a. Cheers!


OK, I recently read Philosophical Investigations and I enjoyed it very much! Language games! Anyway, I wanted to quote a passage about mathematics

But am I trying to say some such thing as that the certainty of mathematics is based on the reliability of ink and paper? No. (That would be a vicious circle.)–I have not said why mathematicians do not quarrel, but only that they do not.

It is no doubt true that you could not calculate with certain sorts of paper and ink, if, that is, they were subject to certain queer changes—but still the fact that they changed could in turn only be got from memory and comparison with other means of calculation. And how are these tested in their turn?

What has to be accepted, the given, is—so one could say—forms of life.

Makes you think, right?

Silly question

So, recently I was looking at Lemma 03L7 because of a question asked a comment on Definition 022B. The condition that a single flat morphism f : X —> Y determines an fpqc covering {f : X —> Y} is the following topological condition on f: given any affine open V of Y there should exist a quasi-compact open U of X with f(U) = V.

My question is this: is it sufficient to ask for a quasi-compact open U with V ⊂ f(U)?

The lemma says “yes” if Y is quasi-separated (so in practice always).

Does anybody have a counterexample to the general case? Or is it sufficient?

I remember successfully avoiding thinking about this when I first wrote the material on fpqc coverings. But I guess no harm is done thinking about it a little bit during these hot summer days…

Dual differential operator

Let X —> S be a morphism of schemes. Let E and F be quasi-coherent O_X modules. Let D : E —> F be a finite order differential operator on X/S. This means that there exists an integer n and an O_X-linear map

D’ : p_{n, 2, *}(p_{n, 1}^*E) —> F

such that D is given by the composition of D’ with the nonlinear map E —> p_{n, 2, *}(p_{n, 1}^*E). Here p_{n, i} : Delta_n —> X are the two projections of the nth infinitesimal neighbourhood of the diagonal X —> X x_S X. (Unfortunately, this description of finite order differential operators is currently missing from the Stacks project.)

OK, let omega_{X/S} be a quasi-coherent O_X-module (we’ll see later the properties we require of this module). Set E* = SheafHom(E, omega_{X/S}) and similarly for F. When does there exist a dual differential operator

D* : F* —> E* ?

The purpose of this blog post is to analyze what we need about S, X, omega_{X/S}, F, and E in order to get D*.

Suppose we have F = (F*)*. Then we can think of D’ as a map

D’ : p_{n, 2, *}(p_{n, 1}^*E) —> (F*)*

which is the same thing as a map

p_{n, 2, *}(p_{n, 1}^*E ⊗ p_{n, 2}^*(F*)) —> omega_{X/S}

which is the same thing as a map

p_{n, 1}^*E ⊗ p_{n, 2}^*(F*) —> p_{n, 2}^!omega_{X/S}

by duality. If we have an isomorphism p_{n, 2}^!omega_{X/S} = p_{n, 1}^!omega_{X/S} then applying the automorphism of X x_S X which switches the factors and going backwards we see that this is the same thing as a differential operator D* of the form desired.

What did we use in the above? We need

  1. F = (F*)*,
  2. p_{n, i} : Delta_n —> X are finite morphisms,
  3. p_{n, 2}^!omega_{X/S} = p_{n, 1}^!omega_{X/S} where p_{n, 2}^! is the functor used in duality for a finite morphism.

The first condition holds for example if F is finite locally free and O_X = SheafHom(omega_{X/S}, omega_{X/S}). The second condition holds if X —> S is of finite type. The third condition really does pin down omega_{X/S} a lot more.

If S is Noetherian, F and E are finite locally free, and X —> S is a separated, flat morphism of finite type whose fibres are Cohen-Macaulay and equidimensional of a given dimension d, then we can take omega_{X/S} the usual relative dualizing sheaf and we have enough theory in the Stacks project to get the third condition above.

But there is another way to think about the condition p_{n, 2}^!omega_{X/S} = p_{n, 1}^!omega_{X/S}. Namely, considering finite order differential operators D : O_X —> omega_{X/S} and arguing as above one sees that giving a (symmetric) isomorphism p_{n, 2}^!omega_{X/S} = p_{n, 1}^!omega_{X/S} is the same thing as a rule D ↦ D* which defines an involution on the sheaf of finite order differential operators D : O_X —> omega_{X/S} such that

  1. (f D)* = D* \circ f
  2. (D \circ f)* = f D*

where f denotes a local section of O_X.

When X —> S is smooth of relative dimension d and we take omega_{X/S} = Omega^d_{X/S}, we can explicitly construct the rule D ↦ D*. For example if we have local coordinates x_1, …, x_d on X/S and we use the trivialization of Omega^d_{X/S} given by d(x_1) ∧ … ∧ d(x_d) then we take the algebra involution on differential operators sending a function to itself and sending ∂/∂x_i to – ∂/∂x_i. Of course in this case we can also explicitly describe the rule going from D : E —> F to D* : F* —> E* we obtain from this.

The second case works without appealing to any theory of duality.

Worked through your comments

Thanks to everybody who contributed! We’re getting close to 500 people who have contributed comments or mathematics! Amazing!

The comments aren’t part of the Stacks project, so the discussion in the comments can be a bit more relaxed and loose than in the actual text; double checking your comment makes sense and can be parsed by others before you post is always a good idea.

I would appreciate people helping out, even and maybe especially, in small ways. Let me stress this: start with small things and see if you can get the maintainer (that’s me) to accept your contribution. For example, if you find a typo, then you can edit the latex file yourselves and send it in. The instructions are here. Just do one or a few typos at a time. You can add an omitted proof as a slightly larger project. Things that make it easier for me to accept contributions: (a) your edits use roughly the same coding style which you can easily deduce by looking around in the latex files, (b) the amount of detail given in a proof is roughly similar to what happens in nearby lemmas, and (c) you make a pull request on github (examples of pull requests).

Of course, if you find a mathematical error, I’d like to know immediately and in that case I encourage you to leave a comment on the website (so everybody can see what’s going on). It is very helpful if you precisely indicate where the error lies and thoughts you might have had on how to fix or work around the problem.


Recent additions

Here is a list of things we’ve added to the Stacks project since last summer. Newer things are listed first:

  1. Artin’s theorem on contractions, see Tag 0GH7. The exposition follows Artin’s proof very closely. It was added recently, so improvements can be made and suggestions as to how to do so are welcomed.
  2. Rachel Webb pointed out a serious error in the proof of Lemma 0A9Q in the chapter on duality for schemes and the corresponding Lemma 0E58 for algebraic spaces. See Example 0GEU for a counter example to the original formulation.
  3. Noah Olander added some material on detecting boundedness of quasi-coherent complexes using a generator. See Section 0GEI and the material at the end of Section 0CSI. We also have the analogous material for algebraic spaces, see Section 0GFE and Lemma 0GFJ and Lemma 0GFL.
  4. We upgraded some of the discussion in Pushouts of Spaces because it was needed for the proof of Artin’s theorem on contractions.
  5. We discussed various “descent of \’etale sheaves” issues, e.g., if you have a proper surjective morphism f : X —> Y and an \’etale sheaf on X which is constant on the fibres of f, then it comes from an \’etale sheaf on Y. For a precise statement, see discussion in Section 0GEX. There is an analogous section for algebraic spaces somewhere.
  6. Thanks to prompting by Tuomas Tajakka, we added the algebraic spaces case of the discussion of ample invertible modules and cohomology. See Section 0GF9
  7. We added a rather large amount of material on formal algebraic spaces in Chapter 0AM7. In particular, given an adic, finite type morphism f : X —> Y of locally Noetherian formal algebraic spaces, we introduce carefully a number of “rig-properties” of f and prove some initial lemmas on these. A “rig-property” of f is a property of the restriction of f to the “generic fibres” of X and Y, except that the Stacks project doesn’t contain enough theory to make this precise. Anyway, I want to point something out here: the notion “rig-flat” is a rather tricky one! See Section 0GGK for the corresponding algebra discussion.
  8. Yet another application local criterion flatness: Lemma 0GEB is the lemma you always wanted to know about, but you didn’t know it! No, really!
  9. Thanks to discussions with Jarod Alper around his lectures on moduli theory on hikes here in WA, we much improved the discussion of the \’etale local structure of morphisms of schemes in Section 0CAT.
  10. We explicitly formulated Artin’s axioms in the Noetherian setting for algebraic spaces, see Section 0GE6.
  11. We revamped the discussion on algebraization of rig-etale and rig-smooth algebras as discussed in Elkik’s Theorem 7. You can read this in Section 0ALU, Section 0GAU, and Section 0AK5.
  12. We fixed several errors pointed out by 李一笑
  13. We added relative Poincare duality for de Rham cohomology, see Section 0G8F. Thanks to Shizhang Li for helping me with this. Let f : X —> S be a smooth proper morphism of relative dimension n. The key is to prove that the map d : Rnf*Ωn – 1X/S ——> Rnf*ΩnX/S is zero. The hard case is when S is the spectrum of a (nonreduced) Artinian local ring. After trying a *lot* of things that didn’t work, we found a proof using in some sense that the construction of this map is compatible with kunneth and the gysin map for the diagonal of X/S. I would appreciate references to places where relative Poincare is discussed in the literature.
  14. We added some additional Kunneth formulas, see Section 0FLN, Section 0G4A, and Section 0FXX.
  15. Pullbacks of K-flats with flat terms are K-flat with flat terms. Somehow we missed this the first time around. See Lemma 0G7E
  16. We added a bunch of stuff on gysin maps in Hodge cohomology and related lemmas on cohomology with supports of quasi-coherent modules.
  17. Lichtenbaum’s theorem Section 0G5D.
  18. Duality for compactly supported cohomology coherent modules, see Section 0G59.
  19. Bertini a la Jouanolou: just an amazing argument, no idea how you would come up with this. Read the original or see Section 0G4C.