A refinement type checker for simply typed lamda calculus with inductive data-types and well-founded recursive functions.
Based on the tutorial by Ranjit Jhala and Niki Vazou. See report.pdf for details.
5 ECTS project work for the class on Advanced Topics in Programming Languague Theory at Aarhus University.
Enter a nix-shell:
nix-shell
Print help:
make help
Install the required libraries with opam:
opam pin add -y -n .
opam install --deps-only atplt2023
Build and run the code using
dune build
dune exec -- ./bin/compiler.exe
dune test
Assuming ocamlformat
is installed run
dune fmt
Correct formatting can be ensured using a pre-commit
hook.
Install using pip install pre-commit
, then in the repo: pre-commit install
.
Martin Jensen, Martin Zacho and Wolfgang Meier