aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md38
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 @@
1Coq Formalization for Mininix
2=============================
3
4[![License](https://img.shields.io/badge/License-BSD_3--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause)
5
6Mininix is a smaller version of the Nix expression language. This repository
7provides the mechanization of the semantics and reference interpreter for this
8language in the [Coq](https://coq.inria.fr/) proof assistant. For more details,
9I refer to my bachelor' thesis. I will link to it when it is made available on
10the [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
15During my thesis, I used Nix to manage the Coq installation for this thesis.
16If you use Nix, it should be easy to build/check the codebase. If not, this
17might be a bit more tricky.
18
19### Using Nix
20
21I have attached a `flake.nix` and `flake.lock` file, which should make my setup
22reproducible. Assuming a working Nix installation with flake support and the
23Nix 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/)
25installation, simply running `direnv allow` (after inspecting the `.envrc`
26file) should make the right version of Coq available.
27
28### Without Nix
29
30There are two things you need to have available. The current `flake.lock`
31ensures 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).