This article needs more citations. (July 2023) |
| Alt-Ergo | |
|---|---|
| Developer | OCamlPro |
| Written in | OCaml |
| Available in | English |
| Type | Mathematical solver, program verifier |
| Website | alt-ergo |
| Repository | |
Alt-Ergo, an automatic solver for mathematical formulas, is mainly used in formal program verification. It operates on the principle of satisfiability modulo theories (SMT). Development began in 2006 at the Laboratoire de Recherche en Informatique (LRI), a joint CNRS/Inria unit, at what is now Paris-Saclay University. Since 2013 it has been maintained, developed and distributed by the Formal Methods team at OCamlPro. It is released under the free and open-source software CeCILL-C license.
The first version of Alt-Ergo was released in 2006. Its architecture was shaped by deductive program verification tools, and it uses a native input language for polymorphic first-order logic that is not compliant with SMT-LIB. OCamlPro announced its support and distribution of the solver in September 2013.
Notable releases include:
push and pop from the SMT-LIB standard, and the .ae file extension for the native syntax.As of October 2026 the project website lists version 2.6.3 (14 April 2026) as the latest release.
Alt-Ergo employs a specialized input language with prenex polymorphism, designed to reduce the number of axioms requiring quantification and to simplify the complexity of problems. While Alt-Ergo offers partial support for the SMT-LIB 2 language, its efficiency with SMT files is comparatively limited.
The core architecture of Alt-Ergo comprises three main elements: a depth-first search (DFS)-based SAT solver, a quantifier's instantiation engine that uses e-matching, and an assembly of decision procedures for a range of built-in theories. These components collectively enable Alt-Ergo's abilities in automatic formula solving.
Alt-Ergo's native language is a polymorphic first-order logic in the style of ML, and the solver also accepts SMT-LIB v2 input. Since version 2.1.0 its Boolean reasoning has been performed by a CDCL-based SAT solver by default.
Alt-Ergo implements (semi-)decision procedures for the following theories:
Alt-Ergo's current releases are distributed under the OCamlPro Non-Commercial License, intended for research and evaluation. Releases are made available under an open-source license after a delay of a few years, published as the alt-ergo-free package, while the current version is the alt-ergo package on opam. OCamlPro offers commercial support to industrial users and funds development partly through the Alt-Ergo Users' Club, a group of supporting organisations. A JavaScript version, Try-Alt-Ergo, runs directly in a web browser.
Several verification platforms are built on Alt-Ergo: