[{"data":1,"prerenderedAt":4},["ShallowReactive",2],{"BlnUcAtDvb":3},"# Lean seminar — Mathematics Department\n\nA semester-long working seminar on the [Lean 4](https://lean-lang.org) theorem\nprover and its mathematical library, [Mathlib](https://leanprover-community.github.io).\nIf you want to low-key explore what Lean looks like, check out Kevin Buzzard's [Natural Number Game](https://adam.math.hhu.de/#/g/leanprover-community/nng4).\n\n\nEverything the seminar uses is in this repository, and all of it is public. You\ndo not need a GitHub account to read any of it, and you do not need one to take\npart — an account is only required for the Codespaces fallback described below.\n\n## Who this is for\n\nMathematically-inclined faculty, graduate students, and undergraduates. No\nprior experience with proof assistants is expected. We assume you can prove \nthings but may have never installed a compiler.\n\nThis is a *working* seminar. The measure of success is that you prove things\nyourself, not that you follow a talk.\n\n## Ways in\n\n| | What it costs | What you get |\n|---|---|---|\n| **Just read** | nothing | Browse the files here. Every session folder has a README explaining what it does. |\n| **Web editor** *(initially)* | nothing | [live.lean-lang.org](https://live.lean-lang.org) runs Lean with Mathlib in a browser tab. No account, nothing saved, and you work one file at a time. |\n| **Install locally** *(eventually)* | 30–45 min once, ~11 GB | Fast, offline, no quota, your files on your own disk. Nothing to wait for at the start of your work. |\n| **Codespaces** *(backup)* | a free GitHub account | Real VS Code in a browser tab. The first launch takes about twenty minutes. For locked-down lab machines, and for anyone whose local install does not work. |\n\n**The first three sessions need no setup.** They are about reading a formal\nstatement and judging whether it says what it claims to say, and a browser tab\ndoes that. Week 1's homework is the Natural Number Game, which is also a browser\ntab.\n\n**Eventually we start proving things ourselves**, so aim to have a local\ninstall working by then. It is the only route with no waiting at startup. Lean reads about\n2 GB of compiled library every time it starts cold, which is fast on a local disk and slow on anything in a data center. Install it on whatever machine you will actually use.\n\nFull instructions for every route: [`handouts/setup-guide.md`](handouts/setup-guide.md).\n\n## What is in here\n\n```\nSeminar/       one folder per meeting: demo, exercises, solutions, notes\nhandouts/      the setup guide and other things printed or emailed\nMyWork/        yours; ignored by git, so it never conflicts when you pull\nscripts/       small utilities (generating no-install links, checking files)\n```\n\nStart at [`Seminar/README.md`](Seminar/README.md) for the session index.\n\n## Versions\n\nEverything here is pinned to **Lean 4.33.0** and **Mathlib v4.33.0**, and every\nfile states the version it was checked against in its header.\n\nVersion drift is a common source of trouble. Mathlib renames lemmas and changes\nbehaviour every few weeks; a file that worked in August fails in November\nagainst a different library. The two files that enforce the pin are\n`lean-toolchain` and `lake-manifest.json`, both committed here. Cloning this\nrepository reproduces the exact environment the material was written in.\n\nThe practical consequence: **do not create your own Lean project for this\nseminar.** VS Code's \"Create Project Using Mathlib\" fetches whatever Mathlib\nversion is newest on the day you run it, which is how a room ends up with five\nincompatible environments. Clone this repository instead.\n\n## How these files were made\n\nThe Lean in this repository was drafted with substantial AI assistance and then\n**compiled** — every file, against the pinned toolchain, before it reached\nanyone. Solutions files contain no `sorry`; exercise files contain `sorry` and\nnothing else unproved. The per-file headers record what each file was checked\nagainst.\n\nTwo reasons for saying so. The Lean community asks for disclosure of AI\nassistance. And the distinction is the seminar's own subject: a machine can\ncheck that a proof establishes a statement, and cannot check that the statement\nsays what was meant.\n\nSee [`GROUND-RULES.md`](GROUND-RULES.md) for what this implies for your own\nwork.\n\n## Ground rules\n\nRead [`GROUND-RULES.md`](GROUND-RULES.md) before posting anything to the Lean\nZulip. One rule in particular surprises people: asking the community to do your\nseminar exercises is grounds for suspension there.\n\n## Licence\n\nApache 2.0, the same licence as Mathlib and *Mathematics in Lean*, so material\ncan move between them without friction. See [`LICENSE`](LICENSE).\n",1789154848751]