[{"data":1,"prerenderedAt":4},["ShallowReactive",2],{"pXXW9uEOaQ":3},"# Proofs\n\n[![Build status](https://github.com/stepchowfun/proofs/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/stepchowfun/proofs/actions?query=branch%3Amain)\n\nThis is my personal repository of formally verified mathematics, including results from category theory, type theory, domain theory, etc., and some original research. All the proofs are verified using the [Lean theorem prover](https://lean-lang.org/) or the [Rocq proof assistant](https://rocq-prover.org/). Currently, most of the proofs are written in Rocq.\n\nIf you want to set up your own repository of formally verified mathematics, you can simply fork this repository and replace the contents of the [`proofs_lean`](https://github.com/stepchowfun/proofs/tree/main/proofs_lean)\u003C!-- [dir:proofs_lean] --> or the [`proofs_rocq`](https://github.com/stepchowfun/proofs/tree/main/proofs_rocq)\u003C!-- [dir:proofs_rocq] --> directories with your own proofs. Setting up a Rocq project from scratch isn't particularly straightforward, so this scaffolding can save you time.\n\nFor people who are new to Lean, I have a tutorial [here](https://github.com/stepchowfun/proofs/tree/main/proofs_lean/tutorial)\u003C!-- [dir:proofs_lean/tutorial] -->. [Theorem Proving in Lean 4](https://lean-lang.org/theorem_proving_in_lean4/) and [Functional Programming in Lean](https://lean-lang.org/functional_programming_in_lean/) are great resources for further learning.\n\nI also have a Rocq tutorial [here](https://github.com/stepchowfun/proofs/tree/main/proofs_rocq/tutorial)\u003C!-- [dir:proofs_rocq/tutorial] -->. Check out [Software Foundations](https://softwarefoundations.cis.upenn.edu/) and [Certified Programming with Dependent Types](http://adam.chlipala.net/cpdt/) as well.\n\n## Instructions\n\nMake sure you have the dependencies listed below. Then you can run `lake build` to verify the Lean proofs or `make` to verify the Rocq proofs. If you change anything, you can run those commands again to incrementally verify the affected proofs. The build artifacts can be removed with `lake clean` (for Lean) or `make clean` (for Rocq).\n\nTo write proofs, you'll want to use an IDE that supports interactive theorem proving. For Lean, use the [Lean 4](https://marketplace.visualstudio.com/items?itemName=leanprover.lean4) extension for [Visual Studio Code](https://code.visualstudio.com/). For Rocq, my recommendation is [VsRocq](https://github.com/rocq-prover/vsrocq), which is also a Visual Studio Code extension.\n\n### Dependencies\n\nYou'll need the following:\n\n- [Lean](https://lean-lang.org/)\n  - Make sure to update your [`PATH`](https://en.wikipedia.org/wiki/PATH_\\(variable\\)) to include the location of the `lake` binary.\n- [Rocq](https://rocq-prover.org/)\n  - Make sure to update your `PATH` to include the location of the `rocq` binary.\n- [GNU Make](https://www.gnu.org/software/make/)\n  - You also need these common Unix tools: `cp`, `find`, and `rm`. If you have `make`, you probably already have those other programs too.\n",1792957665321]