Skip to content
SPECIFICTION
Get listed

Boogie

github.com

Free plan WindowsmacOSLinux
Visit github.com
Spec score 8.1 #7 of 35 in Formal Verification Tools

What it is

Boogie is a modeling language and tool for building program verifiers for other languages. It accepts Boogie language input, can optionally infer invariants, 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 self-hosted and distributed as a.NET global tool through NuGet. It requires.NET and a supported SMT solver, and the NuGet listing identifies version 3.5.7 as targeting.NET 8.0 or higher. The project uses the MIT License and is free at free. The repository names VCC and HAVOC for C, along with Dafny, Chalice, Spec#, and Move verifiers, as projects built on Boogie. Yices2 has a stated constraint: it works for unquantified fragments such as arrays, arithmetic, and bitvectors, but not for quantifiers, generalized arrays, or datatypes. Users can ask questions or report issues through the project issue tracker, and contributions are accepted through pull requests.

Spec sheet

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

Plans and prices

Boogie Free MIT licensed · requires .NET and a supported SMT solver Read 11 Oct 2026 · github.com

Every Boogie plan and price →

Strong points and limits

Strong points

  • Free under the MIT License
  • Can generate verification conditions for SMT solvers
  • Z3 is the default solver
  • Civl supports concurrent and distributed system models

Limits

  • Requires .NET and a supported SMT solver
  • CVC5 and Yices2 support is experimental
  • Yices2 does not support several stated input features

Who it suits

Boogie suits developers and researchers building verifiers for other languages or checking contracts through Boogie input. It requires a .NET environment and a supported SMT solver.

Verdict

Boogie provides a self-hosted verification layer with contract-based deductive verification and an extension for concurrent and distributed models. Solver support varies, and the project lists .NET and an SMT solver as requirements.

Where Specifiction places it

Alternatives to BoogieAll alternatives →