The source code of Marple is under marple
folder. There are 4
dependent repos: utils, utillib, normal5ty (repo define basic types), ocaml5_parser (a copy of OCaml5's paper).
A brief overview of the files in marple
folder.
data/
: the benchmarks as we provided in the supplemental materials.syntax/
andlanguage/
: the AST of the languages used in Marple;syntax/rty.ml
defines HATs.bin/main.ml
: the main entry point of Marple.meta-config.json
: the configuration file.typecheck/
andauxtyping/
: type check and auxiliary functions.typecheck/bidirectional.ml
: bidirectional type check.
subtyping/
: subtyping check.desymbolic/
: convert SFAs into FAs via alphabet transformation.smtquery/
: SMT solver beckend.ntypecheck/
andnormalization/
: basic type check and normalizing the code into MNF.frontend/
: the Marple parser, a modified OCaml parser.formalization/
: the Coq proofs of our core language, as we provided in the supplemental materials.poirot-SM.pdf
: the supplemental materials.
env/
: the universal environment of Marple which is loaded from the configuration files.scripts/
: various Python scripts for collecting and displaying experimental results.