FreeSpec
FreeSpec copied to clipboard
A framework for implementing and certifying impure computations in Coq
trafficstars
FreeSpec
FreeSpec is a framework for implementing, certifying, and executing impure computations in Coq.
Overview
This repository contains three Coq packages:
coq-freespec-coreprovides the foundation of the FreeSpec formalism.coq-freespec-execprovides the means to execute impure computations implemented with the help ofcoq-freespec-core.coq-freespec-ffiprovides the means to use FreeSpec withcoqffi.
The codebase is organized as follows:
- The Coq definitions of the three theories live in the
theories/directory. - The OCaml source of the Coq plugins live in the
plugins/directory. - There are examples for the three plugins in the
examples/directory.
Getting Started
coq-freespec-core depends on
coq-ext-lib. Besides,
coq-freespec-ffi depends on
coqffi.
dune build
dune install
Besides, we provide two helper scripts:
run-tests.shexecutes each Coq file living intests/and reports any errorbuild-docs.shbuilds the OCaml and Coq source documentation
Said documentations are published here.
In addition, FreeSpec has been the subject of two academic publications.
- FreeSpec: Specifying, Certifying and Executing Impure Computations in Coq (CPP'20)
- Modular Verification of Programs with Effects and Effect Handlers in Coq (FM'18)
Credit
FreeSpec is a Free Software, distributed under the terms of the MPLv2. It was initially developed within the the French Cybersecurity Agency (ANSSI).