lthms / FreeSpec

A framework for implementing and certifying impure computations in Coq

Home Page:https://lthms.github.io/FreeSpec

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

FreeSpec

FreeSpec is a framework for implementing, certifying, and executing impure computations in Coq.

Overview

This repository contains three Coq packages:

  • coq-freespec-core provides the foundation of the FreeSpec formalism.
  • coq-freespec-exec provides the means to execute impure computations implemented with the help of coq-freespec-core.
  • coq-freespec-ffi provides the means to use FreeSpec with coqffi.

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.sh executes each Coq file living in tests/ and reports any error
  • build-docs.sh builds the OCaml and Coq source documentation

Said documentations are published here.

In addition, FreeSpec has been the subject of two academic publications.

Credit

FreeSpec is a Free Software, distributed under the terms of the MPLv2. It was initially developed within the the French Cybersecurity Agency (ANSSI).

About

A framework for implementing and certifying impure computations in Coq

https://lthms.github.io/FreeSpec

License:Mozilla Public License 2.0


Languages

Language:Coq 76.4%Language:OCaml 21.7%Language:Shell 1.7%Language:Standard ML 0.3%