Verdi Runtime is an OCaml library providing the functionality necessary to run verified distributed systems developed in the Coq based Verdi framework on real hardware. In particular, it provides several shims that handle the lower-level details of network communication.
The easiest way to install the library (and its dependencies) is via OPAM.
opam repo add distributedcomponents-dev http://opam-dev.distributedcomponents.net opam install verdi-runtime
If you don't use OPAM, consult the
opam file for build instructions.
Shim.ml: shim for extracted systems verified against a network semantics with unordered message passing and node reboots, implemented using UDP and state checkpointing
UnorderedShim.ml: shim for extracted systems verified against a network semantics with unordered message passing without node reboots, implemented using UDP
OrderedShim.ml: shim for extracted systems verified against a network semantics with ordered message passing, implemented using TCP
Daemon.ml: fair task-processing event loop based on the Unix
selectsystem call, used in
Opts.ml: basic Verdi cluster command line argument processing based on OCaml's
Util.ml: miscellaneous functions, e.g., timestamps and conversion between
In order to run Verdi systems, the proper shim from Verdi Runtime must be linked to the OCaml event handler code extracted by Coq. Examples of this use can be found in Verdi-based verification projects.