Lambda

Lambda

Lambda is a model checker for the safety of parameterized transition systems. The state variables of a system are functions from uninterpreted sorts into Bool, Int, Real or an enumeration, and formulae describing the system have quantifiers that range over the uninterpreted sorts only. Lambda tries to show that a safety property holds in the system, for all cardinalities of the sorts, or to find a counterexample.

The input language is an extension of VMT-LIB, described on the Input language page.

Results

Lambda reports one of three verdicts. For safe, it produces an inductive invariant, which can be exported as SMT-LIB obligations to be checked by an external solver such as Z3 or cvc5, or as a Veil module to be checked in Lean. For unsafe, it produces a trace over finite universes. The verdict is unknown if an SMT check is inconclusive.

Algorithms

The algorithm is selected with --algo; all of them share the same representation, grounding and lemma management.

Lambda 1.0 is available on the Download page, together with the benchmark collection.

More