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:


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


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.


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.


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.


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.