Skip to content
agostbiroPublic

About

A monorepo containing my personal Lean projects

Resources

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

my-lean

A monorepo containing my personal Lean projects.

Projects

Directory Description
theory-of-computation/ Theory of computation exercises
functional-programming/ Functional programming exercises
distsys/ Distributed systems notes & exercises
misc/ Suff that doesn't fit above

The shared package keeps the toolchain, dependency lockfile, and build commands in one place.

All libraries share Batteries, pinned to v4.32.0 to match lean-toolchain, and use its linter. theory-of-computation/ and misc/ additionally depend on Mathlib (also v4.32.0, which pins the same Batteries revision) — for automata and formal languages, and for number theory respectively. After cloning or running lake update, fetch the prebuilt Mathlib artifacts with lake exe cache get — otherwise the first build compiles Mathlib from source.

To have this happen automatically in new worktrees, point git at the tracked hooks once per clone: git config core.hooksPath .githooks. The post-checkout hook there runs lake exe cache get whenever a fresh worktree is created.

distsys/veil-consensus/ is the exception to the shared package: it is a standalone Lake project on Lean v4.28.0 that depends on Veil, and it is not part of the root build. See distsys/README.md.

For quick throwaway experiments, create scratch.lean in the repo root — it's gitignored and checked live by the Lean editor extension (not part of any build).

Building

Build all libraries from the repo root:

lake build

To build one library only, name its Lake target, for example lake build TheoryOfComputation.

Linting

Run the Batteries linter over all libraries:

lake lint

CI uses leanprover/lean-action to run the same build and lint checks.

About

A monorepo containing my personal Lean projects

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages