First-Order Logic library with built-in Theories
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

First Order Logic with Theories

Qed is an OCaml library implementing first-order logic with built-in theories. It is developped by CEA-Tech in the Sofware Reliability and Security Lab, and shiped with the Frama-C platform for proving ACSL contracts by Weakest-Precondition (WP).

The design of the library is described in the article « [Qed: Computing What Remains to be Proved] ( » published at NASA Formal Method, 2015.

The main features of the library are:

  • boolean theory
  • quantifiers
  • integer and real theories
  • array and record theories
  • uninterpreted functions, extended by associativy, commutativity, neutral and absorbants, injectivity, constructors and inversibility
  • extensible rewriters for interpreting functions
  • fully normalized terms wrt theories
  • combinators for memoization, substitution, shared sub-terms
  • flexible pretty-printing
  • export engines to SMT solvers and proof assistants



  • ocaml 4.04 or higher, with ocamlfind and ocamlbuild

To build and install the library:

$ make && make install


Documentation is available after:

$ make doc

The entry point is at qed.docdir/index.html, see modules Logic and Term to start with.