Awesome
Type Soundness for DOT via logical relations
Mechanization accompanying the paper Scala Step-by-Step: Soundness for DOT with Step-Indexed Logical Relations in Iris, published at ICFP 2020.
The mapping between the paper and this mechanization, together with the
layout of the codebase, is described in correspondence.md
.
See below for how to process sources with coqdoc.
We have also provided an artifact,
matching our v1.0 release.
Its instructions are in 00Artifact-README.md
.
Compiling the Proof the first time
Requirements
- GNU make
- opam 2.0.6 or later.
Cloning this repository
After the cloning, run
git submodule update --init --recursive
to fetch all git submodules.
Installing dependencies
The following commands will install the correct Coq version and the correct versions of the std++ and Iris libraries.
- If
opam
is not configured, run its setup wizard withopam init
. - Then, prepare for installation with:
eval $(opam env)
opam repo add coq-released https://coq.inria.fr/opam/released --set-default --all
opam repo add iris-dev https://gitlab.mpi-sws.org/iris/opam.git --set-default --all
opam update
- If you use
opam
for other Coq projects, we recommend setting up a dedicatedopam
switch. Instructions appear indevelopment.md
. - Actually install dependencies with:
opam install --deps-only .
Compiling the actual proof
Run make -jN
to build the full development, where N is the number of your
CPU cores; that should take around 5-10 minutes.
Browsing published coqdoc
Start from here.
Running coqdoc
Run make html
to run coqdoc over the code, to obtain an hyperlinked version
(for ease of cross-referencing).
html/toc.html
offers an index for navigation; keep in mind that
correspondence.md
is a better overview.
Documentation for developers / additional docs (not relevant to paper)
See development.md
.