An SMT Solver for Software Verification

Alt-Ergo is an automatic prover of mathematical formulas used behind software verification tools such as Frama-C, SPARK, Why3, Atelier-B and Caveat

Download Services Find Out More
# This is "Try Alt-Ergo" version "Unknown"

Latest News


Latest Release

The latest release of Alt-Ergo is version 2.1.0. It was released in March 14, 2018. It is available under the terms of the OCamlPro Non Commercial license version 1.

Please, follow the links below to download Alt-Ergo, to report a bug, or to ask a question. You may also want to read the CHANGES or see some examples written in Alt-Ergo's native input format.

Sources & Binaries

(follow instructions in



Commercial Support

Bugs tracker



OPAM package(s)

$ opam install alt-ergo # will install alt-ergo, its plugins, and the GUI if lablgtk is installed

Releases History

version 2.1.0 released March 14, 2018
version 2.0.0 released November 14, 2017
version 1.30 released November 21, 2016
public release 1.01
(based on v. 1.00)
February 16, 2016
February 09, 2016 private release 1.20
October 19, 2015 private release 1.10
January 29, 2015 private release 1.00
public release 0.99.1
(based on v. 0.99)
December 30, 2014
January 01, 2014 private release 0.99
public release 0.95.2 September 20, 2013
public release 0.95.1 March 05, 2013
public release 0.95 January 11, 2013
public release 0.94 December 02, 2011
. . .


Alt-Ergo @ OCamlPro

OCamlPro is investing a lot of time to develop and maintain the Alt-Ergo theorem prover. The aims of this effort are, among others:

  • delivering worldwide and academia users an efficient open source SMT solver for software verification within a basic support to learn how to use it;
  • providing a quality industrial support for developers and industrial users in order to get the best performances from the solver.

Our clients will have access to the sources of the latest private releases. They will also benefit from our services such as extended developer/production support, dev-on-demand, and re-licensing. Feel free to contact us for more details.

World-Wide Users

  • sources of latest releases
  • mailing list
  • bugs tracker
  • basic support

Industrial Support

  • dedicated releases
  • developers discussion list
  • developers / production support
  • re-licensing
  • front-line interaction with retailers
  • freezing / maintaining versions
  • qualification kit
  • dev-on-demand

Formal Methods

You have a problem related to formal methods ? You don't know if Alt-Ergo is suitable for your situation ? We can help you to determine the better technology to use for your need.

You are involved in a promising R&D project and you are looking for partners in the field of formal methods ? Our experienced R&D engineers will be happy to contribute to the success of your project. Feel free to contact us to see how we can collaborate.

Online Version

Try-Alt-Ergo is a Javascript version of Alt-Ergo that runs directly in your browser. You don't need to install anything to start using it.

Try-Alt-Ergo Small Tutorial


What is Alt-Ergo ?

Alt-Ergo is an open-source automatic solver of mathematical formulas designed for program verification. It is based on Satisfiability Modulo Theories (SMT). Solvers of this family have made impressive advances and became very popular during the last decade. They are now used is various domains such as hardware design, software verification and formal testing.

What is Alt-Ergo Good for ?

Alt-Ergo is very successful for proving formulas generated in the context of deductive program verification. It was originally designed and tuned to be used by the Why platform. Currently, it is used as a back-end of different tools and in various settings, in particular via the Why3 platform. For instance, the Frama-C suite relies on it to prove formulas generated from C code, and the SPARK toolset uses it to check formulas produced from Ada programs. In addition, Alt-Ergo is used to prove formulas issued from B modelizations and from cryptographic protocols verification. The figure given below shows the main tools that rely on Alt-Ergo to prove the formulas they generate.

Alt-Ergo Spider Web

You are using Alt-Ergo in another context/tool not cited above ? Let us know !

Under the Hood

Alt-Ergo's native input language is a polymorphic first-order logic "à la ML" modulo theories. This logic is very suitable for expressing formulas generated in the context of program verification. Currently, Alt-Ergo is capable of reasoning in the combination of the following built-in theories:

  • the free theory of equality with uninterpreted symbols,
  • linear arithmetic over integers and rationals,
  • fragments of non-linear arithmetic,
  • polymorphic functional arrays with extensionality,
  • enumerated datatypes,
  • record datatypes,
  • associative and commutative (AC) symbols,
  • fixed-size bit-vectors with concatenation and extraction operators.


Alt-Ergo results from academic researches conducted conjointly at Laboratoire de Recherche en Informatique, Inria Saclay Ile-de-France and CNRS since 2006. Publications and theoretical foundations are available on its academic web page. Since September 2013, Alt-Ergo is maintained and distributed by the OCamlPro company. Academic researches are now conducted in collaboration with the VALS team of LRI.

Université Paris-Sud LRI INRIA Saclay Ile-de-France CNRS
See publications on