Monday, October 26, 2026 4,350 lists 78,101 records on file
List your app or device

  1. Home
  2. Formal Verification Tools
  3. Boogie

Boogie

What it is

Boogie is a free, open-source modeling language and tool for building program verifiers for other languages. It accepts Boogie language input, can infer invariants when requested, and generates verification conditions for an SMT solver. Z3 is the default solver; CVC5 and Yices2 support is experimental. The Civl extension lets users model concurrent and distributed systems. Boogie is distributed as a .NET global tool through NuGet and requires .NET plus a supported SMT solver. The NuGet listing identifies version 3.5.7 as targeting .NET 8.0 or higher. The project uses the MIT License and supports self-hosted deployment on Linux, macOS, and Windows. Its repository lists VCC and HAVOC for C, along with Dafny, Chalice, Spec#, and Move verifiers, as projects built on Boogie. Yices2 has a narrower stated scope: it works for unquantified fragments such as arrays, arithmetic, and bitvectors, but not quantifiers, generalized arrays, or datatypes. Questions and issue reports go through the project issue tracker, and contributions are accepted through pull requests.

For and against

For

  • Free and licensed under MIT.
  • Can infer invariants and generate solver conditions.
  • Z3 is the default SMT solver.
  • Civl supports concurrent and distributed system models.
  • Available for Linux, macOS, and Windows.

Against

  • Requires .NET and a supported SMT solver.
  • CVC5 and Yices2 support is experimental.
  • Yices2 does not support quantifiers, generalized arrays, or datatypes.

The verdict

Boogie provides a verification layer with contract support and a default Z3 solver. Its .NET and solver requirements, plus experimental support for alternatives, are key considerations for adoption.

Who it suits

Boogie suits developers and researchers building verifiers for other languages or checking contracts expressed in Boogie IVL. It can also suit teams modeling concurrent or distributed systems with the Civl extension.

Plans and prices

Boogie

Free

MIT licensed · requires .NET and a supported SMT solver

Every plan, in full

On the record

Concurrency
The Civl extension enables Boogie to model concurrent and distributed systems.github.com · read 11 Oct 2026
Contributions
The project accepts contributions through pull requests.github.com · read 11 Oct 2026
Default solver
Z3 is the default SMT solver.github.com · read 11 Oct 2026
Help
Users can ask questions and report issues on the project's issue tracker.github.com · read 4 Oct 2026
Installation
Releases are packaged as a .NET global tool and can be installed with dotnet tool install --global boogie.github.com · read 11 Oct 2026
Integrations
The repository lists VCC and HAVOC for C, and Dafny, Chalice, Spec#, and Move verifiers as projects built on Boogie.github.com · read 11 Oct 2026
License
Boogie is licensed under the MIT License.github.com · read 11 Oct 2026
Other solvers
CVC5 and Yices2 are supported experimentally.github.com · read 11 Oct 2026
Package framework
The NuGet listing identifies Boogie 3.5.7 as targeting .NET 8.0 or higher.nuget.org · read 4 Oct 2026
Purpose
Boogie is an intermediate modeling and verification language used as a layer for building program verifiers for other languages.github.com · read 11 Oct 2026
Requirements
Boogie requires .NET and a supported SMT solver.github.com · read 11 Oct 2026
Solver limitation
The README says Yices2 works for unquantified fragments such as arrays, arithmetic, and bitvectors, but not for quantifiers, generalized arrays, or datatypes.github.com · read 11 Oct 2026
Support
The project directs users to its GitHub issue tracker to ask questions and report issues.github.com · read 11 Oct 2026
Verification tool
The Boogie tool accepts Boogie programs, can optionally infer invariants, and generates verification conditions for an SMT solver.github.com · read 11 Oct 2026

Alternatives to Boogie

Every alternative, ranked