Contributing
Contributions are via pull request on GitHub.
Adding a new candidate
- Create a folder under
candidates/known-theorems/orcandidates/open-conjectures/. - Add a
README.mdwith: name, type, area, mathematical statement, source, Mathlib infrastructure check, proof complexity estimate. - Add a
Statement.leanwith specific Mathlib imports. All proofs should besorry. - Add a
lean_libentry inlakefile.lean:
lean_lib YourCandidateName where
srcDir := "candidates/known-theorems/your-candidate-name"
roots := #[\`Statement]
- Verify it compiles:
lake exe cache get
lake build YourCandidateName
- Update the table in the top-level
README.md. - Open a pull request.
Guidelines
- One candidate per folder. Each folder has exactly one
README.mdand oneStatement.lean. - Statements only. Proofs are out of scope for this repo.
- Use correct Mathlib API names. Search Mathlib docs or grep the source.
- If a key definition doesn't exist in Mathlib, note it in the README and use
sorryin the definition. - Keep imports minimal. Import only what you need, not all of Mathlib.
Naming conventions
- Folder names: lowercase, hyphenated (e.g.,
sard-theorem) - Lean lib names in lakefile: PascalCase (e.g.,
SardTheorem) - The Lean file is always called
Statement.lean