Macros

So, I would like some more input on the idea of having more macros in the Stacks project. Please read my thoughts here first.

One of the things that wasn’t mentioned there, maybe because it is so obvious, is that having more macros makes writing LaTeX for the Stacks project more difficult. On the other hand, it will always be the case that the most difficult part is writing the actual mathematics, and it is much easier to change the actual coding. For an example see this contribution by Kiran Kedlaya and note how this commit fixed up the coding style on the same day.

Here is a list of current code bits that I think warrant being replaced by a macro:

freq snippet meaning
111 \mathit{Isom} Isom sheaf between objects of a stack
114 \text{div} divisor of a rational function
116 \text{Fil} Fil(A) is cat filtered objects of A
125 \text{Sym} Symmetric powers
126 \text{cosk} coskelet functor
129 \text{gr} associated graded
139 \text{Tr} trace
146 \underline{\text{Proj}} relative proj
157 \text{Cris} crystalline site
164 \underline{\mathbf{Z}} constant sheaf
169 \textit{PSh} cat of presheaves on
178 \textit{Coh} cat of coherent sheaves
188 \text{Mod} category of modules over ring
205 \text{Cov} collection of coverings of a site
215 \text{Supp} support of a (sheaf of) module(s)
219 \text{Tot} associated total complex
239 \text{Tor} tor functor
241 \text{Ass} set of associated primes/points
249 \text{length} length of a module
260 \text{Coker} cokernel
285 \text{Im} image
310 \textit{Sets} category of sets
335 \textit{Ab} category of abelian groups
398 \text{Ext} ext functor
406 \text{Proj} proj functor
496 \textit{Mod} category of sheaves of modules
520 \textit{QCoh} quasi-coherent sheaves of modules
560 \text{pr} projection morphism
579 \text{d} differential A –> ΩA
677 \text{Ker} kernel
834 \text{id} identity morphism

Currently, I am contemplating introducing the command \identity for the identity morphism. What do you think?

API for the website

If the abbreviation API doesn’t mean anything to you, then this blog post isn’t for you.

The stacks project website has (the beginnings of) an API. This can be used to write a mobile version of the stacks project website, a webapp, a phone app. These apps could perform any task you think is fun (see PS for a suggestion).

But here is what is really cool! If you decide to write something like that you’ll be the app developer for the Stacks project as you’re almost guaranteed to be the only one (since after all you’re the only one still reading this blog post). This will get you huge kudos and nerd points with all your friends!

You can just go ahead and do something, that’s fine. It may help to contact Pieter Belmans to coordinate issues about the API.

PS: Recall the “slogans” we discussed a while back. Here’s an idea of a web app to crowd source these slogans: there’s this page somewhere on the web and if you go there it throws up a random lemma, proposition, theorem from the Stacks project. Under it there is a text entry box where you can type your (proposed) slogan. These slogans are remembered by the app and if the random result already has a slogan, then it can be updated by the next visitor. Sounds like fun.

PPS: Online quick search and quick tag search apps are somewhat more obvious ideas.

Simplicial modules

A simplicial ring A is just a simplicial object in the category of rings. What is a simplicial module over A? Well it is a simplicial object in the category of systems (A, M, +, *, +, *) where A is a ring and M is an A-module (so the + and * are multiplication and addition on A and M respectively) such that forgetful functor to the category of rings gives back A.

Of course this is annoying. Better: A simplicial ring A is a sheaf on Δ (the category of finite ordered sets endowed with the chaotic topology). Then a simplicial module over A is just a sheaf of modules.

You can extend this to simplicial sheaves of rings over a site C. Namely, consider the category C x Δ together with the projection C x Δ —> C. This is a fibred category hence we get a topology on C x Δ inherited from C. Then a simplicial sheaf of rings A is just a sheaf of rings on C x Δ and we define a simplicial module over A as a sheaf of modules on C x Δ over this sheaf of rings. There is a derived category D(A*) and a derived lower shriek functor

! : D(A) ———-> D(C)

as discussed in Tag 08RV. Moreover, a map A —> B of simplicial rings on C gives rise to a morphism of ringed topoi, and hence a derived base change functor

D(A) ———-> D(B)

as well as a restriction functor the other way.

Why am I pointing this out? The reason is to use it for the following. If A —> B is a map of sheaves of rings and M is a B-module, then a priori the Atiyah class “is” the extension of principal parts

0 —> ΩP/A ⊗ M —> E —> M —> 0

over the polynomial simplicial resolution P of B over A. To get it in D(B) Illusie uses the base change along the map P —> B. I was worried that we’d have to introduce lots of new stuff in the Stacks project to even define this, but all the nuts and bolts are already there. Cool!

PS: Warning! The category D(A) is not the same as the category D(A) defined in Illusie.

Lemma of the day

Let S be a scheme. Let Z ⊂ S be a closed subscheme. Let b : S′ —> S be the blowing up of Z in S. Let g : X —> Y be an affine morphism of schemes over S. Let F be a quasi-coherent sheaf on X. Let g′ : X ×S S′ —> Y ×S S′ be the base change of g. Let F′ be the strict transform of F relative to b. Then g′F′ is the strict transform of gF. See Tag 080G.

This tag has one of the densest initial trees in the project:

080G

A new website for the stacks project

Huge thanks to Pieter Belmans who did an enormous amount of work coding the stacks project website.

Please visit the new version of the website and play around. A major new feature is the dynamic creation of graphs vizualing the logical connections between results in the stacks project, for each and every result. Here is an example

ZMT

Edit: To view a graph, browse the project online, choose a chapter, choose a section, choose a lemma, and then click on one of the three types of graphs.

If you have a comment, suggestion, etc then please come back here. If you find a bug in the operation of the website, then either leave a comment here, or email the maintainer, or create an issue on the github repository.

Enjoy!

Lemma of the day

Let C be a site. Let O’ —> O be a surjection of sheaves of rings whose kernel I is an ideal of square zero. Let F’ be an O’-module and set F = F’/I F’. The following are equivalent

  1. F’ is a flat O’-module, and
  2. F is a flat O-module and I ⊗O F —> F’ is injective.

See Tag 08M4.

Finally!

Ok, so I’ve finally found (what I think will be) a “classical” solution to getting a deformation theory for the stack of coherent sheaves in the non-flat setting. I quickly recall the setting.

The problem: Suppose you have a finite type morphism X —> S of Noetherian algebraic spaces. Let A be a finite type S-algebra. Let F be a coherent sheaf on the base change XA which is flat over A and has proper support over A. We want to write down some pseudo-coherent complex L on XA such that for every surjection of S-algebras A’ —> A with square zero kernel I the ext groups

ExtiXA(L, F ⊗A I), i = 0, 1, 2

give infinitesimal automorphisms, infinitesimal defos, and obstructions.

Derived solution: If you know derived algebraic geometry, then you know how to solve this problem. I tried to sketch the approach in this remark and now I can answer the question formulated at the end of that remark as follows.

Namely, the question is to construct a complex L such that H0(L) = F and H-2(L) = Tor1OS(OX, A) ⊗ F. The ingredient I was missing is a canonical map

c : LXA/A —> Tor1OS(OX, A)[2]

You get this map quite easily from the Lichtenbaum-Schlessinger description of the cotangent complex (again, in terms of derived schemes, this follows as XA is cut out in the derived base change by an ideal which starts with the Tor1 sheaf sitting in cohomological degree -1, but remember that the point here is to NOT use derived methods). OK, now use the Atiyah class

F —> LXA/A ⊗ F[1]

and compose it with the map above to get F —> Tor1OS(OX, A) ⊗ F[3]. The cone on this map is the desired complex L.

Yay!

PS: Of course, to actually prove that L “works” may be somewhat painful.

Lemma of the day

Let R —> A and R —> B be ring maps. In general there does not exist a functor T : D(B) —> D(B ⊗R A) of triangulated categories such that a B-module M gives an object T(M) of D(B ⊗R A) which maps to M ⊗LR A under the map D(B ⊗R A) —> D(A). See Tag 08J2.