What Are Tags in the Stacks Project and How Are They Used?
Updated
A tag in the Stacks project is a short, stable identifier attached to a specific piece of mathematical content—typically a lemma, proposition, theorem, definition, or example—so that it can be cited precisely and found again even as the surrounding text changes. You use a tag when you want to point a reader to one exact result rather than to a chapter or section, and when you need a reference that will not break as the project is edited. Tags are the project's citation currency: the site's recent-comments and recent-changes lists are organized by tag, and the project's own statistics count results in tags (the homepage reports 21,446 tags).
What a tag is, mechanically
A tag is a four-character alphanumeric code, conventionally written with a leading zero, such as 0BMA, 0CJ1, 02K9, 0E47, or 0BWR. Each code is permanently bound to one result. The code itself carries no mathematical meaning—it is an opaque key, not an abbreviation—which is exactly why it stays stable: the content behind a tag can be revised, renumbered, or moved within the document structure while the tag continues to identify the same result.
Because the tag is the stable layer, the visible numbering (chapter, section, lemma number) is the unstable layer. If a lemma is inserted earlier in a section, the numbers of later lemmas shift, but their tags do not. This is the key mechanism to understand: cite the tag, not the number.
How tags are used
Precise citation in papers and notes
When you refer to a specific result, cite the tag alongside (or instead of) the human-readable location. A reader who has the tag can locate the exact statement regardless of the current numbering. This is the main reason to use tags at all: it makes your reference robust against the project's ongoing edits.
Locating a result from a tag
If you are given a tag, the tag is the entry point: the site's search and index are organized so that a tag resolves to its result. The practical workflow is to treat the tag as the primary key and the chapter/section description as secondary context.
Tracking changes and discussion by tag
The homepage's recent-comments and recent-commits lists identify items by tag—for example, comments recorded against tags 0BMA, 0CJ1, 02K9, 0E47, and 0BWR, and commits such as "A couple of compatibilities for relative cycles" and "Small topology lemma." This shows the tag functioning as the project's unit of record-keeping: discussion, corrections, and edits are attached to tags, not to page numbers. If you want to follow whether a specific result has been discussed or changed, the tag is what you track.
Cross-referencing within the project
Internally, results refer to one another by tag, which keeps the cross-reference graph intact as the text grows. The project's scale—7,654 pages, 767,328 lines, 3,298 sections, 116 chapters—makes stable internal keys a practical necessity rather than a convenience.
What tags are not
- A tag is not a section or chapter number, and it does not encode the topic. Do not try to infer subject matter from the code.
- A tag is not a substitute for reading the statement's hypotheses. The tag identifies the result; it does not tell you the conditions under which it applies.
- A tag is not a version marker. It identifies a result across revisions rather than pinning a particular revision of the text.
Practical guidance
| Task | What to do |
|---|---|
| Cite a specific lemma or theorem | Give the tag; add chapter/section as a convenience for human readers |
| Find a result from a reference | Start from the tag, then read the surrounding section for context |
| Check whether a result has been discussed or revised | Look for the tag in the recent-comments and recent-commits lists |
| Refer to a whole area of the project | Use chapter/section names; tags are for individual results |
The one habit worth adopting: when you record a reference for later use, record the tag first and the descriptive location second. The description helps you remember why you saved it; the tag is what will still work when you come back to it.