github.com/coq-community/coqffi ↗
Automatically generates Coq FFI bindings to OCaml libraries [maintainer=@lthms]
Open this visualization on its own page →
Contributors
6
Lines of Code
376
From
2020-06-04
To
2020-12-16
About coq-community/coqffi
CoqFFI is a tool that automatically generates the boilerplate code necessary to call OCaml functions from within Coq developments. It takes OCaml interface files as input and produces corresponding Coq bindings that configure the Coq extraction mechanism to properly export those functions. This allows developers to seamlessly integrate existing OCaml libraries into their formal verification projects written in Coq.
The tool is designed to handle the impedance mismatch between Coq's functional, dependently-typed world and OCaml's practical imperative features. By default, it generates support for impure operations by wrapping them in the IO monad from the coq-simple-io package, making it possible to formally reason about code that calls out to OCaml side effects. The project is written in OCaml and targets Coq 8.12 and later, along with OCaml 4.08 and later.
CoqFFI is maintained as part of the Coq community and welcomes contributions. It was created by Thomas Letan, Li-yao Xia, Yann Régis-Gianas, and Yannick Zakowski, with Thomas Letan serving as the current maintainer.