diff options
| author | Rutger Broekhoff | 2024-06-27 01:56:05 +0200 |
|---|---|---|
| committer | Rutger Broekhoff | 2024-06-27 01:56:05 +0200 |
| commit | 4598e77a9406d8040357c943a05dd1ab939932db (patch) | |
| tree | e990beaa94803da3585547f22e186e8819f6a887 /README.md | |
| parent | 73df1945b31c0beee88cf4476df4ccd09d31403b (diff) | |
| download | mininix-formalization-4598e77a9406d8040357c943a05dd1ab939932db.tar.gz mininix-formalization-4598e77a9406d8040357c943a05dd1ab939932db.zip | |
Tidy up project
* Write README.md
* Add LICENSE
* Clean up some theorems and proofs
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..125ea10 --- /dev/null +++ b/README.md | |||
| @@ -0,0 +1,38 @@ | |||
| 1 | Coq Formalization for Mininix | ||
| 2 | ============================= | ||
| 3 | |||
| 4 | [](https://opensource.org/licenses/BSD-3-Clause) | ||
| 5 | |||
| 6 | Mininix is a smaller version of the Nix expression language. This repository | ||
| 7 | provides the mechanization of the semantics and reference interpreter for this | ||
| 8 | language in the [Coq](https://coq.inria.fr/) proof assistant. For more details, | ||
| 9 | I refer to my bachelor' thesis. I will link to it when it is made available on | ||
| 10 | the [thesis archive](https://www.cs.ru.nl/bachelors-theses/) page of | ||
| 11 | [iCIS](https://www.ru.nl/en/institute-for-computing-and-information-sciences). | ||
| 12 | |||
| 13 | ## Development | ||
| 14 | |||
| 15 | During my thesis, I used Nix to manage the Coq installation for this thesis. | ||
| 16 | If you use Nix, it should be easy to build/check the codebase. If not, this | ||
| 17 | might be a bit more tricky. | ||
| 18 | |||
| 19 | ### Using Nix | ||
| 20 | |||
| 21 | I have attached a `flake.nix` and `flake.lock` file, which should make my setup | ||
| 22 | reproducible. Assuming a working Nix installation with flake support and the | ||
| 23 | Nix command enabled, simply running `nix develop` followed by `make` should run | ||
| 24 | `coqc` on all files. If you have a working [direnv](https://direnv.net/) | ||
| 25 | installation, simply running `direnv allow` (after inspecting the `.envrc` | ||
| 26 | file) should make the right version of Coq available. | ||
| 27 | |||
| 28 | ### Without Nix | ||
| 29 | |||
| 30 | There are two things you need to have available. The current `flake.lock` | ||
| 31 | ensures that we have the following software: | ||
| 32 | |||
| 33 | - Coq, version 8.19.2. | ||
| 34 | - [Coq-std++](https://gitlab.mpi-sws.org/iris/stdpp), version 1.10.0. | ||
| 35 | You may be able to install Coq-std++ via opam, as described in the README of | ||
| 36 | Coq-std++. However, your operating system's package repositories may also | ||
| 37 | provide a package. Consider taking a look at [the Repology | ||
| 38 | page](https://repology.org/project/coq-stdpp/packages). | ||