Contributions are welcome from anyone interested in formalizing the Stacks Project: new formalizations, reviews of existing ones, and better proofs.
New formalizations and reviews are claimed before they start, so that efforts do not collide.
- Find a task on the task board, or a Stacks tag in the library, and check the open claims.
- Open a claim with a blueprint: the exact statement, the Lean statement you intend to prove, the declarations in this library or in Mathlib that you will use or extend, and a proof outline. The task board pre-fills this for you.
- A maintainer reviews the blueprint in the issue. When it is approved, the issue is labelled
blueprint-approvedand assigned to you. That is your claim. - Formalize it and open a pull request that closes the issue.
Improvements to existing proofs and small fixes (typos, broken proofs, documentation) do not need a claim; open a pull request directly.
- StacksCore: formalizations checked against the Stacks Project and brought to Mathlib standards of naming, generality and style.
- StacksFrontier: everything else, including AI-assisted formalizations. Moving code from StacksFrontier into StacksCore, after checking that its statements faithfully capture the source, is one of the most useful contributions.
Every pull request, to either tier, is reviewed by the maintainers: Kenny Lau, Brian Nugent, Ashvin A. Swaminathan and Yunzhou Xie.
- Attach
@[stacks TAG]to the declaration that formalizes a tag. If it covers only part of the tag, say which part in the attribute's comment, for example@[stacks 00DS "part (1)"]. Register a tag that Mathlib already covers withadd_to_stacks. - State the result the Stacks Project states, in its generality. Do not weaken a statement to make it provable; if a statement is wrong, say so in the claim.
- Place each file in the module matching its mathematical topic, and reuse existing definitions rather than introducing parallel ones.
- No
sorry,admit,native_decideor newaxiom.#print axiomson your results should list onlypropext,Classical.choiceandQuot.sound. - Follow Mathlib's naming and style conventions.