Escape with Your Self: Sound and Expressive Bidirectional Typing with Avoidance for Reachability Types (Artifact)
Authors/Creators
Description
Artifact for "Escape with Your Self: Sound and Expressive Bidirectional Typing with Avoidance for Reachability Types"
This artifact requires Lean for proofs and examples, and Python 3 for figures.
- Python libraries: python 3.12.3 on Ubuntu 24.04, matplotlib 3.6.3, numpy 1.26.4
- The version control for Lean has already been set in
lakefile.tomlandlean-toolchain.
The artifact includes the following files:
mech.tar.gzthat includes documents (includingREADME.md), proofs, and examples for this workimage.tar.gzwhich is the Docker image (Ubuntu, amd64) containing the environment to evaluatemech.tar.gz(included).
1. Installation
From Docker (need amd64 support):
docker load -i image.tar.gz
Then enter the Docker environment:
docker run -it --rm rtcheck:latest
Or, manually following the official guide. We require the Lean version v4.27.0.
The version control has already been set in `lakefile.toml` and `lean-toolchain`.
2. Build the Artifact
Within the Docker environment, execute:
lake build
If you have Lean natively installed with VSCode, you can open the folder in VSCode.
Open Lean4/ChkExamples.lean (for example) and click Restart File from Lean4 menu bar.
3. Generate Data and Plot
The following command will take about 6 minutes,
print a table of data for Fig. 9a, and save the plots of Fig. 9b and 9c to data-{2,1}.pdf.
You can specify the option --fig-file fig-9-{}.pdf to override the plot filenames.
python3 data.py
Update for Revision:
- The version of Lean has been updated from v4.14 to v4.27. However, reviewers should note no breaking change by using our updated Docker image or using elan/lake to natively manage the dependencies.
- Primitive support for pairs/lists has been added. They only service the evaluation in Section 5, and the plotting script has also been updated accordingly.
- Other refactoring changes.