Skip to content

Latest commit

 

History

History
58 lines (40 loc) · 2.55 KB

README.md

File metadata and controls

58 lines (40 loc) · 2.55 KB

Verdi Aggregation

Build Status

An implementation of a distributed aggregation protocol, verified in Coq using the Verdi framework.

Requirements

Definitions and proofs:

Executable code:

Integration testing of executable code:

Unit testing of unverified code:

Building

First, make sure the PortAudio library is installed on the system; on Ubuntu and Debian systems, the package is called portaudio19-dev.

The recommended way to install the OCaml and Coq dependencies of Verdi Aggregation is via OPAM:

opam repo add coq-released https://coq.inria.fr/opam/released
opam repo add distributedcomponents-dev http://opam-dev.distributedcomponents.net
opam install coq-mathcomp-ssreflect coq-mathcomp-fingroup coq-mathcomp-algebra coq-aac-tactics \
 verdi StructTact InfSeqExt cheerios verdi-cheerios verdi-runtime uuidm portaudio

Then, run ./configure in the root directory. This will check for the appropriate version of Coq and ensure all necessary dependencies can be located.

By default, the script assumes that Verdi, StructTact, InfSeqExt, Cheerios, and VerdiCheerios are installed in Coq's user-contrib directory, but this can be overridden by setting the Verdi_PATH, StructTact_PATH, InfSeqExt_PATH, Cheerios_PATH, and VerdiCheerios_PATH environment variables.

Finally, run make in the root directory.