Published June 27, 2024
| Version 1.0.0
Software
Open
Coq Formalization for Mininix
Description
Coq Formalization for Mininix
Mininix is a smaller version of the Nix expression language. This formalization provides the mechanization of the semantics and reference interpreter for this language in the Coq proof assistant. For more details, I refer to my bachelor's thesis.Development
During my thesis, I used Nix to manage my Coq installation. If you use Nix, it should be easy to build/check the codebase. If not, this might be a bit more tricky.There are two things that you need to have installed. The current flake.lock ensures that we have the following software:
- Coq, version 8.19.2.
- Coq-std++, version 1.10.0.
Using Nix
I have attached aflake.nix and flake.lock file, which should make my setup reproducible. Assuming a working Nix installation with flake support and the Nix command enabled, simply running nix develop should give you a shell where the right Coq and Coq-std++ versions available.If you have a working direnv installation, simply running direnv allow (after inspecting the .envrc file) should make the right version of Coq and Coq-std++ available.
Without Nix
If you are on some Unix-based system, there is a good chance that your package manager provides a Coq package. The Repology page should give you the information that you need.You may be able to install Coq-std++ via opam, as described in the README of Coq-std++. However, your operating system's package repositories may also provide a package. Consider taking a look at the Repology pages: coq-stdpp, coq:stdpp.
Building/checking
Runningmake should run coqc on all files; assuming that you are using a compatible Coq version, this should successfully check all proofs.Files
Files
(26.6 kB)
| Name | Size | Download all |
|---|---|---|
|
md5:5b0aa2327c1c9c5b4560c6415da4d8ec
|
26.6 kB | Download |
Additional details
Related works
- Is identical to
- Software: https://github.com/rutgerbrf/mininix-formalization/tree/v1.0.0 (URL)
- Is supplement to
- Thesis: https://www.cs.ru.nl/bachelors-theses/2024/Rutger_Broekhoff___1083777___Formally_defining_the_semantics_for_the_Nix_expression_language.pdf (URL)
- Requires
- Software: 10.5281/zenodo.11551307 (DOI)
- Software: https://gitlab.mpi-sws.org/iris/stdpp (URL)
Software
- Repository URL
- https://github.com/rutgerbrf/mininix-formalization
- Programming language
- Coq