Skip to content

Commit ac1b7f1

Browse files
committed
Better explain the structure of the project
1 parent 5bddc3d commit ac1b7f1

File tree

2 files changed

+26
-40
lines changed

2 files changed

+26
-40
lines changed

README.md

Lines changed: 13 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -21,18 +21,17 @@ The definitions, theorems and proofs in this repository are (mostly) taken from
2121

2222
### The target
2323

24-
The formal system which we are using as a target is [Lean 4](https://github.com/leanprover/lean4). Lean is a dependently typed theorem prover and programming language based on the Calculus of Inductive Constructions. It is being developed at AWS and Microsoft Research by Leonardo de Moura and his team.
24+
The formal system which we are using as a target is [Lean 4](https://lean-lang.org). Lean is a dependently typed theorem prover and programming language based on the Calculus of Inductive Constructions. It is being developed at AWS and Microsoft Research by Leonardo de Moura and his team.
2525

26-
Our project is backed by [mathlib](https://github.com/leanprover-community/mathlib4), the major classical maths library written in Lean 4.
26+
Our project is backed by [mathlib](https://leanprover-community.github.io), the major classical maths library written in Lean 4.
2727

2828
## Content
2929

30-
The project contains
31-
32-
* **Prerequisites** to be upstreamed to mathlib: Lemmas that belong in existing mathlib files and background theories. Those are located in the `Mathlib` subfolder.
33-
* **Formal translations of example sheets**: Every course in Cambridge comes with 3 or 4 "example sheets", which are lists of questions/exercises/problems for the students to solve. Those are located in the `ExampleSheets` subfolder.
34-
* **Theory developments**: Formalisation of the courses per se. The mathlib philosophy of proving the most general result accessible applies here as well. This means that not all proofs follow the lecture notes, and might instead derive a result from the lectures from a more general theorem. Those make up the other subfolders and standalone lemmas.
35-
* **Archived results**: It sometimes happens in mathlib that a long argument gets replaced by a shorter one, with a different proof. When the long argument was proved in a lecture, we salvage it to `LeanCamCombi` for conservation purposes.
30+
The Lean code is located within the `LeanCamCombi` folder. Within it, one can find:
31+
* One subfolder for each course, containing **formal lecture transcripts** in the files named `Lecture1`, `Lecture2`, etc... and **formal example sheet translations** in the files named `ExampleSheet1`, `ExampleSheet2`, etc... We follow the mathlib philosophy of aiming for the most general result within reach. This means that not all proofs follow the lecture notes, and might instead derive a result proved in the lectures from a general theorem. Those general theorems and prerequisite lemmas are proved in other folders. Read below.
32+
* A `Mathlib` subfolder for the **prerequisites** to be upstreamed to mathlib. Lemmas that belong in an existing mathlib file `Mathlib.X` will be located in `LeanCamCombi.Mathlib.X`. We aim to preserve the property that `LeanCamCombi.Mathlib.X` only imports `Mathlib.X` and files of the form `LeanCamCombi.Mathlib.Y` where `Mathlib.X` (transitively) imports `Mathlib.Y`. Prerequisites that do not belong in any existing mathlib file are placed in subtheory folders. See below.
33+
* One folder for each **theory development**. The formal lecture transcripts only contain what was stated in the lectures, but sometimes it makes sense for a theory to be developed as a whole before being incorporated by the prerequisites or imported in the formal lecture transcripts.
34+
* An `Archive` subfolder for **archived results**. It sometimes happens in mathlib that a long argument gets replaced by a shorter one, with a different proof. When the long argument was proved in a lecture, we salvage it to `LeanCamCombi` for conservation purposes.
3635

3736
### Content under development
3837

@@ -78,19 +77,13 @@ The following topics have been upstreamed to mathlib and no longer live in LeanC
7877

7978
### Getting the project
8079

81-
At the moment, the recommended way of browsing this repository is by using a Lean development environment. Crucially, this will allow you to introspect Lean's "Goal state" during proofs, and easily jump to definitions or otherwise follow paths through the code.
80+
To build the Lean files of this project, you need to have a working version of Lean.
81+
See [the installation instructions](https://leanprover-community.github.io/get_started.html) (under Regular install).
82+
Alternatively, click on the button below to open a Gitpod workspace containing the project.
8283

83-
We are looking into ways to setup an online interactive website that will provide the same experience without the hassle of installing a complete Lean development environment.
84+
[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/YaelDillies/LeanAPAP)
8485

85-
For the time being: please use the [installation instructions](https://leanprover-community.github.io/get_started) to install Lean and a supporting toolchain. After that, download and open a copy of the repository by executing the following commands in a terminal:
86-
```
87-
git clone https://github.com/YaelDillies/LeanCamCombi
88-
cd LeanCamCombi
89-
lake exe cache get
90-
cd ../
91-
code LeanCamCombi
92-
```
93-
If you are interested, here are [detailed instructions on how to work with Lean projects](https://leanprover-community.github.io/install/project).
86+
In either case, run `lake exe cache get` and then `lake build` to build the project.
9487

9588
### Browsing the project
9689

@@ -101,6 +94,6 @@ With the project opened in VScode, you are all set to start exploring the code.
10194

10295
### Contributing
10396

104-
This project is open to contribution. You are in fact encouraged to have a look at the example sheet formalisations and try your hand at one of the problems. If you manage to prove one of them, please open a PR!
97+
**This project is open to contribution**. You are in fact encouraged to have a look at the example sheet translations and try your hand at one of the problems. If you manage to prove one of them, please open a PR!
10598

10699
If you want to contribute a theorem or theory development, please open a PR! Note however that the standard of code is pretty high and that is not because you have formalised a concept/proved a theorem that it can be included into LeanCamCombi as is. Nonetheless I am willing to review your code and put it in shape for incorporation.

docs/index.md

Lines changed: 13 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -28,18 +28,17 @@ The definitions, theorems and proofs in this repository are (mostly) taken from
2828

2929
### The target
3030

31-
The formal system which we are using as a target is [Lean 4](https://github.com/leanprover/lean4). Lean is a dependently typed theorem prover and programming language based on the Calculus of Inductive Constructions. It is being developed at AWS and Microsoft Research by Leonardo de Moura and his team.
31+
The formal system which we are using as a target is [Lean 4](https://lean-lang.org). Lean is a dependently typed theorem prover and programming language based on the Calculus of Inductive Constructions. It is being developed at AWS and Microsoft Research by Leonardo de Moura and his team.
3232

33-
Our project is backed by [mathlib](https://github.com/leanprover-community/mathlib4), the major classical maths library written in Lean 4.
33+
Our project is backed by [mathlib](https://leanprover-community.github.io), the major classical maths library written in Lean 4.
3434

3535
## Content
3636

37-
The project contains
38-
39-
* **Prerequisites** to be upstreamed to mathlib: Lemmas that belong in existing mathlib files and background theories. Those are located in the `Mathlib` subfolder.
40-
* **Formal translations of example sheets**: Every course in Cambridge comes with 3 or 4 "example sheets", which are lists of questions/exercises/problems for the students to solve. Those are located in the `ExampleSheets` subfolder.
41-
* **Theory developments**: Formalisation of the courses per se. The mathlib philosophy of proving the most general result accessible applies here as well. This means that not all proofs follow the lecture notes, and might instead derive a result from the lectures from a more general theorem. Those make up the other subfolders and standalone lemmas.
42-
* **Archived results**: It sometimes happens in mathlib that a long argument gets replaced by a shorter one, with a different proof. When the long argument was proved in a lecture, we salvage it to `LeanCamCombi` for conservation purposes. There is currently no archived result.
37+
The Lean code is located within the `LeanCamCombi` folder. Within it, one can find:
38+
* One subfolder for each course, containing **formal lecture transcripts** in the files named `Lecture1`, `Lecture2`, etc... and **formal example sheet translations** in the files named `ExampleSheet1`, `ExampleSheet2`, etc... We follow the mathlib philosophy of aiming for the most general result within reach. This means that not all proofs follow the lecture notes, and might instead derive a result proved in the lectures from a general theorem. Those general theorems and prerequisite lemmas are proved in other folders. Read below.
39+
* A `Mathlib` subfolder for the **prerequisites** to be upstreamed to mathlib. Lemmas that belong in an existing mathlib file `Mathlib.X` will be located in `LeanCamCombi.Mathlib.X`. We aim to preserve the property that `LeanCamCombi.Mathlib.X` only imports `Mathlib.X` and files of the form `LeanCamCombi.Mathlib.Y` where `Mathlib.X` (transitively) imports `Mathlib.Y`. Prerequisites that do not belong in any existing mathlib file are placed in subtheory folders. See below.
40+
* One folder for each **theory development**. The formal lecture transcripts only contain what was stated in the lectures, but sometimes it makes sense for a theory to be developed as a whole before being incorporated by the prerequisites or imported in the formal lecture transcripts.
41+
* An `Archive` subfolder for **archived results**. It sometimes happens in mathlib that a long argument gets replaced by a shorter one, with a different proof. When the long argument was proved in a lecture, we salvage it to `LeanCamCombi` for conservation purposes.
4342

4443
### Content under development
4544

@@ -94,19 +93,13 @@ The following topics have been upstreamed to mathlib and no longer live in LeanC
9493

9594
### Getting the project
9695

97-
At the moment, the recommended way of browsing this repository is by using a Lean development environment. Crucially, this will allow you to introspect Lean's "Goal state" during proofs, and easily jump to definitions or otherwise follow paths through the code.
96+
To build the Lean files of this project, you need to have a working version of Lean.
97+
See [the installation instructions](https://leanprover-community.github.io/get_started.html) (under Regular install).
98+
Alternatively, click on the button below to open a Gitpod workspace containing the project.
9899

99-
We are looking into ways to setup an online interactive website that will provide the same experience without the hassle of installing a complete Lean development environment.
100+
[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/YaelDillies/LeanAPAP)
100101

101-
For the time being: please use the [installation instructions](https://leanprover-community.github.io/get_started) to install Lean and a supporting toolchain. After that, download and open a copy of the repository by executing the following commands in a terminal:
102-
```
103-
git clone https://github.com/YaelDillies/LeanCamCombi
104-
cd LeanCamCombi
105-
lake exe cache get
106-
cd ../
107-
code LeanCamCombi
108-
```
109-
If you are interested, here are [detailed instructions on how to work with Lean projects](https://leanprover-community.github.io/install/project).
102+
In either case, run `lake exe cache get` and then `lake build` to build the project.
110103

111104
### Browsing the project
112105

@@ -117,6 +110,6 @@ With the project opened in VScode, you are all set to start exploring the code.
117110

118111
### Contributing
119112

120-
This project is open to contribution. You are in fact encouraged to have a look at the example sheet formalisations and try your hand at one of the problems. If you manage to prove one of them, please open a PR!
113+
**This project is open to contribution**. You are in fact encouraged to have a look at the example sheet translations and try your hand at one of the problems. If you manage to prove one of them, please open a PR!
121114

122115
If you want to contribute a theorem or theory development, please open a PR! Note however that the standard of code is pretty high and that is not because you have formalised a concept/proved a theorem that it can be included into LeanCamCombi as is. Nonetheless I am willing to review your code and put it in shape for incorporation.

0 commit comments

Comments
 (0)