Robert Thomason suggests the following in his article The classification of triangulated subcategories:

The reader may find the indirectness of the proof of this useful corollary psychologically uncomfortable. If so, rather than dosing himself with a benzodiazepine, he may find relief in deducing Corollary 2.3 from the following criterion for equality of two classes in $\mathrm{K}_0(\mathcal{D})$, whose proof is very similar to that of Lemma 2.2. [...]

I never checked whether we have diazepines next to the pens in the office supplies closet in the department.

Last week at the Maurice Auslander Memorial Workshop* I was talking to Claire Amiot and she told me nice news about Bernhard Keller (who was her PhD advisor, and my MSc advisor). Last month he won the Prix Sophie Germain. This news about Bernhard might not have been picked up sufficiently by the non-French speaking part of the math community (or maybe I’m just slow on picking up on these things).

Congratulations Bernhard!

* I was considering a blogpost about the event, but as I had no internet connection at the place I was staying at that plan was doomed from the start. The talks were all really nice, and the notes made by a team of German PhD students will come online soon I have been told. If you like algebraic geometry I especially suggest looking at the notes of the talks by Becker, Buchweitz and Wemyss.

This question has been nagging me for a while, and thanks to TeX – LaTeX Stack Exchange I have found an answer: Audrey’s answer to the question What should BibTeX for arXiv entries look like? references the file biblatex-examples.bib where the entries baez/article and baez/online indicate how it should be done. If you are referencing an article, which also has a preprint, it should be like (this part I knew)

@article{baez/article,
author       = {Baez, John C. and Lauda, Aaron D.},
title        = {Higher-Dimensional Algebra V: 2-Groups},
journaltitle = {Theory and Applications of Categories},
date         = 2004,
volume       = 12,
pages        = {423-491},
version      = 3,
eprint       = {math/0307200v3},
eprinttype   = {arxiv},
langid       = {english},
langidopts   = {variant=american},
annotation   = {An \texttt{article} with \texttt{eprint} and
\texttt{eprinttype} fields. Note that the arXiv reference is
transformed into a clickable link if \texttt{hyperref} support
has been enabled.  Compare \texttt{baez\slash online}, which
is the same item given as an \texttt{online} entry},
}

and if it’s only a preprint without a published version (and not occurring in some conference proceedings or something), one uses the @online field (which settles my questions)

@online{baez/online,
author       = {Baez, John C. and Lauda, Aaron D.},
title        = {Higher-Dimensional Algebra V: 2-Groups},
date         = {2004-10-27},
version      = 3,
langid       = {english},
langidopts   = {variant=american},
eprinttype   = {arxiv},
eprint       = {math/0307200v3},
annotation   = {An \texttt{online} reference from arXiv. Note the
\texttt{eprint} and \texttt{eprinttype} fields. Compare
\texttt{baez\slash article} which is the same item given as an
\texttt{article} entry with eprint information},
}

without any other frizzles such as url fields or something.

Actually, it is best to also use the eprintclass field for arXiv preprints, which is the main subject class under which a preprint is catalogued. This would mean you’d have to add eprintclass = {math.QA}.

Tomorrow I will leave for the Auslander Auslander Memorial Workshop, and I don’t know whether I will feel like producing a long post on Thursday, which as you might have noticed has been something that I started doing since the first week of October. I have some drafts, but I guess you’ll have to wait for those.

Maybe I will even try live blogging the event (or discuss the talks in the evening, or something, or write down some things during my longish train ride back). Who knows?

Because somehow I ended up with a degree in computer science people sometimes ask me how to do certain computations in algebra or algebraic geometry on a computer (not that I ever learnt such a thing in my computer science degree to be honest). In this blog post I try to give a summary of the tools (together with direct links to documentation, libraries, extra packages, … so I never have to look for them again myself and don’t forget to consider one when someone asks a question) that I am aware of for these computations, and which one is the most suited for which type of problems.

Of course, there is a big list on Wikipedia, but I restrict myself here to things related to algebra and algebraic geometry, and discuss my experiences, and give explicit links to interesting related documents.

Moreover, if you have a very specific problem, there might be someone who wrote specific code for it, not related to an existing computer algebra system. Google is your friend. I have found really nice C++ implementations for specific problems that were really helpful for me. Maybe I should compile a list of these things and put it as an actual page on my website… This blog post would be a good start.

## GAP

GAP, or Groups, Algorithms, Programming is mostly for computational group theory. It is a nice programming language (I used it mostly when doing finite geometry and combinatorics), and it comes with big collection of libraries and packages. All of the libraries, and most of the packages are for group theoretical things, but it might be useful if your problem in geometry is phrased in these terms. They have a nice documentation and a convenient index.

## Maxima

Maxima has its origins in the sixties (which makes it the oldest in this list I guess, see Wikipedia for more historical facts on other systems), and is mostly for symbolic and numerical computations. I haven’t used it myself, but I think it deserves to be in this list. There’s the documentation, and they have a list of other computer algebra software which is longer than I intend this list to be.

## PARI/GP

If you like esoteric programming languages: try this one, it’s the weirdest syntax I’ve seen in a math programming language. If you are doing number theory this might be a good choice. I don’t have much experience with it, but it was insanely fast when I used it to determine Galois groups. The documentation is only available as a pdf, but it contains an index, so make sure you search properly if you’re looking for functionality, and then have some libraries / packages that might be useful.

## Singular

Another language with an off-putting syntax (but that truly seems to be a theme amongst algebra languages…) is Singular. Don’t be intimated by the syntax, they have a really good manual containing many examples, and there is an index

They have some additional libraries, with some interesting examples being the algebraic geometry library (containing cool methods for studying singularities, I should take a look at these at some point) or the visualisation library (which I should definitely check out!) So make sure that you look closely at Singular, because it does more than you’d think (certainly more than I’d think).

## Magma

This one is the only in the list which is not free, but it deserves to be mentioned. First of all, the language never frustrated me. But more importantly, it is probably (besides Sage) the most complete. Just look at the documentation and index. I have used Magma for wildly different problems, and while it is not always the best tool around for your specific problem, the structure of the language and libraries makes me regret not having a Magma license at the moment.

## Macaulay2

This system is definitely the most geometric of them all: together with Magma (and Sage to a lesser extent) it is possible to do computations for schemes and sheaves which I wouldn’t think are possible on a computer! I don’t know why, but I’ve never been too happy about their documentation, and the language itself is not as fancy as e.g. Sage or Magma, but together with its long list of packages I really like using it.

## Sage

This is the best known computer algebra system nowadays, and also the easiest to learn because it is based on Python. It does many, many things, although for things like sheaf cohomology you’ll have to look at other tools. One nice thing about version 6.3 of Sage is that there is now support for path algebras, which is really really cool.

Another PhD student in the department (she works on quadratic forms) asked me something about surface singularities, and while explaining some of its interesting aspects (McKay correspondence, Hironaka’s resolution of singularities, intersection graphs, …) I came to realise that there is something important missing from my knowledge on rational surface singularities.

Sure, you can say that a (isolated) surface singularity $X$ is rational if its resolution $f\colon Y\to X$ has the property that $\mathrm{R}^1f_*(\mathcal{O}_Y)=\mathcal{O}_X$, and hence the arithmetic genus of the surface doesn’t change, and you can then prove that it doesn’t matter which resolution you pick etc. But the interesting property of rational singularities is that you can determine whether they are rational purely in terms of the intersection graph. And this is where studying surface singularities really shines, as the example of McKay correspondence (and more general quotient singularities) shows!

Recall that from a resolution we can extract the following data, as by Zariski’s main theorem you know that the inverse image of your singularity is connected of dimension 1. Hence it is a union of curves $E_i$. We then have numerical data:

• the genus of the irreducible components $E_i$
• the self-intersections $E_i^2$
• the intersection numbers $E_i\cdot E_j$

Taking as vertices $v_i$ the $E_i$ and $E_i\cdot E_j$ edges from $v_i$ to $v_j$, whilst assigning the genus and self-intersection as weights we obtain a weighted graph called the intersection graph, and allows to study surface singularities in a combinatorial way!

The first cool property about this intersection graph is that Mumford has proven that a collection of genera and intersection numbers is associated to a surface singularity if and only if the matrix obtained from the intersection numbers is negative-definite. How cool is that?

## Recognising rational surface singularities

So let $f\colon Y\to X$ be a resolution of a rational surface singularity. You can moreover prove that for a rational surface singularity it is a bunch of $\mathbb{P}^1$‘s intersecting each other in interesting ways. We can assume by contracting things that all the exceptional curves $E_i\cong\mathbb{P}^1$ have self-intersection $\leq -2$. Then there is the following theorem by Artin, from his On isolated rational singularities of surfaces.

Theorem (Artin) The surface singularity $X$ is rational if and only if for each divisor $Z=\sum_{i=1}^n\alpha_iE_i$ with $\alpha_i\geq 0$ supported on the exceptional locus the arithmetic genus is negative.

Sure, this is a nice characterisation, but somehow we’d like to decide whether a surface singularity is rational by only looking at a single divisor. To do so, Artin introduces the fundamental cycle, i.e. the minimal cycle supported on the exceptional locus such that $Z\geq\sum_{i=1}^nE_i$ and $Z\cdot E_i\leq 0$ for all $i=1,\dotsc,n$. To obtain the existence of such a cycle one needs that the intersection matrix $(E_i\cdot E_j)_{i,j}$ is negative definite, but we know that this is a result of Mumford as indicated above.

Theorem (Artin) The fundamental cycle for any surface singularity $X$ has the property that its arithmetic genus is positive. Moreover, a surface singularity is rational if and only if the arithmetic genus of the fundamental cycle is exactly zero.

So, starting from your intersection graph together with its multiplicities you can start looking for the fundamental cycle by computing $Z\cdot E_i$ and if it is strictly positive you add $E_i$ to your cycle, and once you have it you compute its arithmetic genus and conclude whether the singularity is rational or not!

For proofs of these things in a more up-to-date language, there is the article Combinatorics of rational singularities.

## Some other facts

1. you can realise any (smooth projective irreducible) curve as the exceptional locus, by considering cones over curves
2. if you don’t like the previous construction, there is a construction using Jacobians
3. the self-intersection of the fundamental cycle is the multiplicity, if this multiplicity is exactly -2 then we are in the case of rational double points or du Val singularities for which we have McKay correspondence, if this multiplicity is -3 Artin classified the rational triple points in his article on rational surface singularities, these are particular intersection graphs which are trees and contain exactly one rational curve whose self-intersection is -3.

This whole (rational) surface singularity stuff is exciting stuff, and it happens to have connections to noncommutative algebraic geometry as explained in section 5.4 of Joe Karmazyn’s interesting preprint Quiver GIT for varieties with tilting bundles, as you can recover the resolution by a tilting bundle which you can construct exactly because the surface singularity is rational. This is a (vast) generalisation of the phenomena occurring for Kleinian singularities and McKay correspondence, and Joe gave a cool talk about all this at a workshop a few weeks ago. Now it’s time to stop rambling about surface singularities.

We are still doing Chern classes in the seminar, and today I’m speaking about the multiplicative structure of the Chow ring of a Grassmannian. It’ll include some example computations, for which I prepared a little handout. Without further ado, here it is. It’s not that spectacular, and certainly not original (it is based on the visualisation I found in 3264 and all that).

The actual weekly blogpost will go online tonight, and it will feature rational surface singularities.

Today’s blog post is inspired by the Chern classes seminar that we are conducting, but it takes a rather big leap from where I left off. Everything I say is based on SGA6 and Fulton–Lang’s Riemann–Roch algebra (which is a true gem I discovered).

## The lambda-ring associated to a scheme

If you have a sufficiently nice scheme $X$ (the buzzwords are connected, noetherian and having an ample line bundle) and let’s even assume that $\dim(X)=d$. Then we have a Grothendieck group $\mathrm{K}^0(X)$, obtained by considering the category of locally free sheaves on $X$ and modding out exact sequences of locally free sheaves. Or, as is explained in SGA6 IV, one can take the (triangulated) category of perfect complexes and mod out triangles, where SGA6 II addresses the issues of being globally (and not just locally) isomorphic to a complex of locally free sheaves.

The tensor product of locally free sheaves induces a multiplication, hence we obtain a Grothendieck ring.

So far so good. Now we can turn this into a lambda-ring. The problem with this extra structure on a ring is that writing down all the axioms is boring. It helps if you know where the structure actually comes from: besides direct sums and tensor products we also have the exterior product of locally free sheaves. If we were to take globally free sheaves, we can prove that, just as in linear algebra, we have a decomposition

$\bigwedge^n(\mathcal{E})\cong\bigoplus_{i=0}^n\left( \bigwedge^i(\mathcal{E}')\otimes\bigwedge^{n-i}(\mathcal{E}'') \right)$

if $0\to\mathcal{E}'\to\mathcal{E}\to\mathcal{E}''\to 0$ is an exact sequence of globally free sheaves. In the case that the exact sequence is only one of locally free sheaves there is no global decomposition, but there exists a filtration whose quotients are exactly the terms in the decomposition above. If you feel like it: do Hartshorne, exercise II.5.16(d). Hence, in the Grothendieck ring we have a sum decomposition

$\left[ \bigwedge^n(\mathcal{E}) \right]=\sum_{i+j=n}\left[ \bigwedge^i(\mathcal{E}')\otimes\bigwedge^j(\mathcal{E}'') \right]$

which says that exterior powers are compatible with the equivalence relation. Now that we know where the intuition comes from, we can formalise things.

Definition. Let $A$ be a commutative ring. Then a lambda-ring structure consists of endomorphisms $\lambda^i\colon A\to A$ for all $i\in\mathbb{N}$, such that

1. $\lambda^0(x)=1$ for all $x\in A$;
2. $\lambda^1(x)=x$ for all $x\in A$;
3. $\lambda^n(x+y)=\sum_{i=0}^n\lambda^i(x)\lambda^{k-i}(y)$ for all $x,y\in A$.

So we have just formalised the notion of exterior products. Moreover we have a notion of rank for a locally free sheaf, which by linearity induces a surjective ring homomorphism $r\colon A\to\mathbb{Z}$.

We are not quite there yet, because actually we are working with special lambda-rings. The splitting principle in intersection theory, which allows us to treat vector bundles as if they are iterated extensions of line bundles, gives extra data. Namely we have expressions for $\bigwedge^n\left( \bigwedge^m\mathcal{E} \right)$ and $\bigwedge^n\left( \mathcal{E}\otimes\mathcal{F} \right)$ in terms of the Chern roots of the original bundles. We will not need these at the moment, but maybe I will write something about this later.

## Three filtrations

The title suggests that there are three filtrations on this ring. It’s about time I say which, and how they relate.

### The topological filtration

The easiest filtration is the topological filtration. In the introduction SGA6 it is defined in a special case, for the presentation of the Grothendieck group via coherent sheaves, by just saying that $\mathrm{F}_{\mathrm{top}}^i\mathrm{K}^0(X)$ is generated by coherent sheaves whose support has codimension bigger than $i$. In Fulton–Lang a more formal definition is given in terms of (global) perfect complexes. The idea is to use cohomological support of complexes and codimension, but I don’t feel like spelling out details.

One can prove that it is compatible with the ring structure, and under the assumption that $\dim(X)=d$ it is a filtration of length $\leq d$.

### The lambda-filtration

The hardest filtration is the lambda-filtration, or Grothendieck filtration, or gamma-filtration. I’m not sure whether my intuition is entirely correct, but it seems that the motivation is to use the splitting principle to obtain a finer filtration than the topological filtration.

To define this we put a different lambda-structure on our lambda-ring, by considering endomorphisms $\gamma^i\colon\mathrm{K}^0(X)\to\mathrm{K}^0(X)$ defined by

$\sum_{i\in\mathbb{N}}\lambda^i(x))\left( \frac{t}{1-t} \right)^i=\sum_{i\in\mathbb{N}}\gamma^i(x)t^i$

i.e. we consider a formal power series ring over our lambda-ring, we choose a different generator for it and write out the change in coefficients.

We then set

1. $\mathrm{F}_\lambda^0\mathrm{K}^0(X)=\mathrm{K}^0(X)$;
2. $\mathrm{F}_\lambda^1\mathrm{K}^0(X)=\mathrm{ker}(r)$, i.e. those elements which are of (formal) rank 0;
3. $\mathrm{F}_\lambda^n\mathrm{K}^0(X)$ is generated by the expressions $\prod_{i=1}^k\gamma^{r_i}(x_i)$, for $x_i\in\mathrm{F}^1\mathrm{K}^0(X)$ and $\sum_{i=1}^kr_i\geq n$.

This induces a descending sequence of ideals in the Grothendieck ring. One can prove that $\mathrm{F}_{\mathrm{top}}^1\mathrm{K}^0(X)=\mathrm{F}_\lambda^1\mathrm{K}^0(X)$ (Fulton–Lang, V.3.5), and the proof boils down to the silly fact that $[\Sigma\mathcal{E}^\bullet]=-[\mathcal{E}^\bullet]$, if we use the presentation of the Grothendieck group via complexes.

In general we have that the lambda-filtration is finer than the topological filtration (Fulton–Lang, V.3.9), i.e. $\mathrm{F}_\lambda^n\mathrm{K}^0(X)\subseteq\mathrm{F}_{\mathrm{top}}^n\mathrm{K}^0(X)$, and the proof of this fact uses the splitting principle, which reduces the statement to line bundles, then we use the equality in degree 1 and the fact that $\mathrm{F}_{\mathrm{top}}^i$ is compatible with the ring structures.

One of the main results (SGA6 VII) is that the associated graded rings are, up to torsion, isomorphic!

### The third filtration

I was aware of the previous two filtrations in SGA6, but hidden inside SGA6 exposé VI.6.5 (not IV, as indicated in Fulton–Lang) there is a third filtration. This blog post has gone on for long enough now and the filtration has properties similar to the topological filtration (but it is not functorial), hence I won’t discuss it. But reading SGA6 and Fulton–Lang was fun (in some perverse way, maybe), so maybe I will come back to it later.