A version of Actris where Hoare triples guarantees deadlock and leak freedom.
This artifact contains Coq source code that proves the results in the paper.
This artifact has been tested with Coq 8.20.0 and OCaml 5.1.0. A custom version of Iris is required, see below. The features of this custom version will be upstreamed to Iris in the future.
-
Install
opam
. You can find the instructions on https://opam.ocaml.org/doc/Install.html Do not forget to useopam init
and addeval $(opam env)
to your.bashrc
or.zshrc
file. This makes thecoqc
command, and other commands installed byopam
, available in your terminal. -
Install
git
. You can find the instructions on https://git-scm.com/book/en/v2/Getting-Started-Installing-Git -
Make a directory that will contain the artifact, and
cd
into it:mkdir artifact cd artifact
-
Download a custom version of Iris using
git clone -b robbert/sbi https://gitlab.mpi-sws.org/iris/iris.git
-
Build and install this version of Iris using
cd iris opam pin add -y coq-iris . cd ..
-
Download and unzip the
sources.zip
file, and build it:unzip sources.zip make
prelude/
: Miscellaneous lemmas and definitions that could be upstreamed to std++ and Iris.algebra/
: Algebraic structures, including step-indexed multisets for modeling the incoming edges of the connectivity graph.lang/
: The syntax and operational semantics of our language ChanLang, including some meta theory and notations.base_logic/
: The model, WP rules, and adequacy one-shot LinearActris logic.session_logic/
: The multi-shot LinearActris logic, derived in multiple layers from the one-shot LinearActris logic.examples/
: Examplestour.v
: Examples from this paper, Section 2basics.v
: Examples from the Actris 2.0 paper, Section 1 and 10sort.v
: Example from Actris 2.0 paper, Section 5sort_br_del.v
: Example from Actris 2.0 paper, Section 5sort_fg.v
: Example from Actris 2.0 paper, Section 5list_rev.v
: Example from Actris 2.0 paper, Section 6.3
logrel/
: The semantic session type systemtheories/logrel/examples
: Examples of using the semantic type system to type check sample programs.