lthms/FreeSpec ↗
Created Jan 9, 2021 · View the lthms/FreeSpec repository page
A framework for implementing and certifying impure computations in Coq
Want this for your repo?
Render a free sample of any GitHub repo in seconds.
Contributors
5
Lines of Code
1,907
From
May 31, 2017
To
Dec 16, 2020
About lthms/FreeSpec
FreeSpec is a Coq framework for implementing and formally verifying impure computations, addressing the challenge of reasoning about side effects in a pure theorem prover. The project provides three main packages: coq-freespec-core supplies the foundational formalism for modeling impure operations, coq-freespec-exec enables the execution of such certified computations, and coq-freespec-ffi integrates with coqffi for foreign function interfaces. The codebase includes Coq theory definitions, OCaml plugins, and practical examples demonstrating each component.
The framework is built on the concept of freer monads, allowing developers to specify effects abstractly and prove properties about programs that use them. It depends on coq-ext-lib for core extensions and optionally on coqffi for FFI support. The project includes testing infrastructure and generates both OCaml and Coq documentation that is published online.
FreeSpec was developed at France's ANSSI cybersecurity agency and is distributed under the MPL2 license. The work is grounded in peer-reviewed research, with two published papers describing the formalism and its applications to modular verification of programs with effects and effect handlers.