Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lthms/FreeSpec
A framework for implementing and certifying impure computations in Coq
https://github.com/lthms/FreeSpec
coq formal-verification freer-monads
Last synced: 3 months ago
JSON representation
A framework for implementing and certifying impure computations in Coq
- Host: GitHub
- URL: https://github.com/lthms/FreeSpec
- Owner: lthms
- License: mpl-2.0
- Created: 2018-01-26T16:34:46.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2024-01-16T19:04:08.000Z (10 months ago)
- Last Synced: 2024-05-03T08:31:07.577Z (6 months ago)
- Topics: coq, formal-verification, freer-monads
- Language: Coq
- Homepage: https://lthms.github.io/FreeSpec
- Size: 958 KB
- Stars: 51
- Watchers: 9
- Forks: 11
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGES.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
- awesome-coq - FreeSpec - Framework for modularly verifying programs with effects and effect handlers. (Projects / Frameworks)
README
# 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](https://github.com/coq-community/coq-ext-lib). Besides,
`coq-freespec-ffi` depends on
[`coqffi`](https://github.com/coq-community/coqffi).```bash
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 documentationSaid documentations are published
[here](https://lthms.github.io/FreeSpec).In addition, FreeSpec has been the subject of two academic
publications.- [**FreeSpec: Specifying, Certifying and Executing Impure Computations
in Coq**](https://hal.inria.fr/hal-02422273) (CPP'20)
- [**Modular Verification of Programs with Effects and Effect Handlers in
Coq**](https://hal.inria.fr/hal-01799712) (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)](https://ssi.gouv.fr/en).