Jump to content

Alt-Ergo

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Krano (talk | contribs) at 14:32, 24 November 2014 (Tagging a page (HG)). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Alt-Ergo is an automatic solver for mathematical formulas, specifically designed for program verification. It is based on Satisfiability Modulo Theories (SMT). It is distributed under an open-source license (Cecill-C). Its original author was Sylvain Conchon, at LRI, but it is now developed and maintained at OCamlPro.

Technologies

Design Choices

Contrary to most SMT solvers, Alt-Ergo uses a specific input language with polymorphism, that helps reduce the number of quantified axioms, and thus, the search space. It can read SMT files, but will perform less efficiently on them.

Builtin Theories

Alt-Ergo implements the following builtin theories:

Industrial Uses

There are several verification platforms built on top of Alt-Ergo:

  • Why3, a platform for deductive program verification, uses Alt-Ergo as its main prover;
  • CAVEAT, a C-verifier developed by CEA and used by Airbus; Alt-Ergo was included in the qualification DO-178C of one of their recent aircrafts;
  • Frama-C, a framework to analyse C-code, uses Alt-Ergo in the Jessie and WP plugins (dedicated to "deductive program verification");
  • SPARK, uses Alt-Ergo (behind GNATprove) to automate the verification of some assertions in Spark 2014;
  • Atelier-B can use Alt-Ergo instead of its main prover (increasing success from 84% to 98% on the ANR Bware project benchmarks);
  • Rodin, a B-method framework developed by Systerel, can use Alt-Ergo as a back-end;
  • Cubicle, an open source model checker for verifying safety properties of array-based transtion systems.
  • EasyCrypt, a toolset for reasoning about relational properties of probabilistic computations with adversarial code.