An overview of the Coq formalization
For the Coq code, click on the file name of each part of the development.
The development is known to compile with
All dependencies can be installed using opam by running the commandmake build-dep
given that the Coq and Iris opam repositories have been added:
opam repo add coq-released https://coq.inria.fr/opam/released opam repo add iris-dev https://gitlab.mpi-sws.org/iris/opam.git opam updateThe whole development can be built using
make -j [num CPU cores]
.
AnerisLang
- The language and its operational semantics is defined in lang.v, where it is also registered as an Iris language.
The Aneris Logic
- All Iris resources for reasoning about the heap, sockets, messages, etc. are defined in resources.v.
- All proof rules for the Aneris program logic are defined in lifting.v.
- Different variations of the adequacy theorem is proved and stated in adequacy.v.
Examples and Case Studies
- Ping-pong: code and proof.
- Ping-pong-done: code and proof.
- Lock server: code and proof.
- Addition service (incl. load-balanced): code and proof.
- Bag service: code and proof.
- Counter with contributions: code and proof.
- Monotone cell: code and proof.
- Two-phase commit: code and proof.
- Replicated log: code and proof.