Alt-Ergo

Alt-Ergo
DeveloperOCamlPro
Written inOCaml
Available inEnglish
TypeMathematical solver, program verifier
Websitealt-ergo.ocamlpro.com
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.

History

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:

As of October 2026 the project website lists version 2.6.3 (14 April 2026) as the latest release.

Technologies

Design choices

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.

Main components

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.

Built-in theories

Alt-Ergo implements (semi-)decision procedures for the following theories:

Licensing and support

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.

Industrial uses

Several verification platforms are built on Alt-Ergo:

See also

References

  1. 1 2 "Release of Alt-Ergo 2.2.0". OCamlPro. 23 April 2018. Retrieved 8 October 2026.
  2. 1 2 3 "Alt-Ergo @ OCamlPro: Two months later". OCamlPro. 2 October 2013. Retrieved 8 October 2026.
  3. 1 2 Conchon, Sylvain; Coquereau, Albin; Iguernlala, Mohamed; Mebsout, Alain (2018). Alt-Ergo 2.2. SMT Workshop 2018: International Workshop on Satisfiability Modulo Theories. Retrieved 8 October 2026.
  4. 1 2 "Release of Alt-Ergo 2.1.0". OCamlPro. 15 March 2018. Retrieved 8 October 2026.
  5. ↑ "Release of Alt-Ergo 2.4.0". OCamlPro. 22 January 2021. Retrieved 8 October 2026.
  6. ↑ "Alt-Ergo: the SMT solver with model generation". OCamlPro. 16 November 2022. Retrieved 8 October 2026.
  7. 1 2 "Alt-Ergo 2.6 is Out!". OCamlPro. 1 September 2024. Retrieved 8 October 2026.
  8. 1 2 3 4 5 "Alt-Ergo: An SMT Solver for Software Verification". OCamlPro. Retrieved 8 October 2026.
  9. ↑ "Why3". why3.lri.fr. Retrieved 15 June 2023.
  10. ↑ Dordowsky, Frank (2015). "An Experimental Study Using ACSL and Frama-C to Formulate and Verify Low-Level Requirements from a DO-178C Compliant Avionics Project". Electronic Proceedings in Theoretical Computer Science. 187: 28–41. arXiv:1508.03894. doi:10.4204/EPTCS.187.3.
  11. ↑ Conchon, Sylvain; Iguernelala, Mohamed (2014). "Tuning the Alt-Ergo SMT Solver for B Proof Obligations". Abstract State Machines, Alloy, B, TLA, VDM, and Z (ABZ 2014). Lecture Notes in Computer Science. Vol. 8477. Springer. pp. 294–297. doi:10.1007/978-3-662-43652-3_27.
  12. 1 2 3 4 5 6 "The Alt-Ergo Theorem Prover: Academic Web Page". alt-ergo.lri.fr. Retrieved 15 June 2023.