[{"data":1,"prerenderedAt":4},["ShallowReactive",2],{"jiTiVXYSeN":3},"# my-lean\n\nA monorepo containing my personal Lean projects. \n\n## Projects\n\n| Directory                 | Description                    |\n| ------------------------- |  ------------------------------ |\n| `theory-of-computation/`  | Theory of computation exercises |\n| `functional-programming/` | Functional programming exercises                |\n| `distsys/`                | Distributed systems notes & exercises  |\n| `misc/`                   | Suff that doesn't fit above                   |\n\n\nThe shared package keeps the toolchain, dependency lockfile, and build commands\nin one place.\n\nAll libraries share [Batteries](https://github.com/leanprover-community/batteries),\npinned to `v4.32.0` to match `lean-toolchain`, and use its linter.\n`theory-of-computation/` and `misc/` additionally depend on\n[Mathlib](https://github.com/leanprover-community/mathlib4) (also `v4.32.0`, which\npins the same Batteries revision) — for automata and formal languages, and for\nnumber theory respectively. After cloning or running `lake update`, fetch the\nprebuilt Mathlib artifacts with\n`lake exe cache get` — otherwise the first build compiles Mathlib from source.\n\nTo have this happen automatically in new worktrees, point git at the tracked\nhooks once per clone: `git config core.hooksPath .githooks`. The\n`post-checkout` hook there runs `lake exe cache get` whenever a fresh worktree\nis created.\n\n`distsys/veil-consensus/` is the exception to the shared package: it is a\nstandalone Lake project on Lean v4.28.0 that depends on\n[Veil](https://github.com/verse-lab/veil), and it is not part of the root build.\nSee `distsys/README.md`.\n\nFor quick throwaway experiments, create `scratch.lean` in the repo root — it's\ngitignored and checked live by the Lean editor extension (not part of any build).\n\n## Building\n\nBuild all libraries from the repo root:\n\n```sh\nlake build\n```\n\nTo build one library only, name its Lake target, for example\n`lake build TheoryOfComputation`.\n\n## Linting\n\nRun the Batteries linter over all libraries:\n\n```sh\nlake lint\n```\n\nCI uses `leanprover/lean-action` to run the same build and lint checks.\n",1791742522298]