The Lean Language Reference is intended as a comprehensive, precise description of Lean. It is first and foremost a reference work in which Lean users can look up detailed information, rather than a tutorial for new users.
This new reference has been rebuilt from the ground up in Verso. This means that all example code is type checked, the source code contains tests to ensure that it stays up-to-date with respect to changes in Lean, and we can add any features that we need to improve the documentation. Verso also makes it easy to integrate tightly with Lean, so we can show function docstrings directly, mechanically check descriptions of syntax against the actual parser, and insert cross-references automatically.
The latest release of this reference manual can be read here.
For developers:
- The output of building the current state of the
nightly-testingbranch can be read here. - Each pull request in this repository causes two separate previews to be generated, one with extra information that's only useful to those actively working on the text, such as TODO notes and symbol coverage progress bars. These are posted by a bot to the PR after the first successful build.
The two most important branches are:
maintracks the latest Lean release or release candidatenightly-testingtracks the latest Lean nightlies
New content that addresses in-development features of Lean will be
written on nightly-testing, while updates to existing content may be
written either on main or nightly-testing, as appropriate. From
time to time, main will be merged into nightly-testing; when Lean
is released, the commits in nightly-testing are rebased onto main
to achieve a clean history.
This reference manual contains figures that are built from LaTeX sources. To build them, you'll need the following:
- A LaTeX installation, including LuaLaTeX and the following packages from TeXLive:
scheme-minimallatex-binfontspecstandalonepgfpdftexcmdsluatex85lualatex-mathinfwarerrltxcmdsxcolorfontawesomespath3interepstopdf-pkgtex-gyretex-gyre-mathunicode-mathamsmathsourcecodepro
pdftocairo, which can be found in thepoppler-utilspackage on Debian-derived systems and thepopplerpackage in Homebrew
Additionally, to run the style checker locally, you'll need Vale. It runs in CI, so this is not a necessary step to contribute.
To build the manual, run the following command:
lake exe generate-manual --depth 2
Then run a local web server on its output:
python3 ./server.py 8880 &
Then open http://localhost:8880 in your browser.
Please see CONTRIBUTING.md for more information.