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
opamis 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
opamfor other Coq projects, we recommend setting up a dedicatedopamswitch. 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.