FREEDOM251

Freedom251 › Formal Verification Tools

Viper

Paid ExtensionLinuxMacWebWindows

Visit Viper Alternatives

Viper's own site

What Viper is

Viper is a free language and tool suite for building program verifiers and prototyping verification techniques. It targets sequential and concurrent programs with mutable state, using permissions or ownership reasoning. The language provides imperative constructs, specifications, mathematical types, user-defined predicates, and pure functions. Two backends are available: verification-condition generation and symbolic execution, both using the Z3 SMT solver. Front-end verifiers include Gobra for Go, Nagini for Python, and Prusti for Rust. Viper IDE is a Visual Studio Code extension requiring 64-bit Java 11 or newer and downloading about 100 MB of dependencies. Command-line tools are offered for 64-bit Windows, Linux, macOS, and ARM macOS. An interactive browser tutorial provides editable, runnable examples. Core projects are open source on GitHub, and support is directed to Zulip and Stack Overflow. Deployment is self-hosted.

Who it suits

Viper suits developers and researchers building verification tools, encoding verification problems, or checking Go, Python, Rust, and Viper-language programs. It fits users comfortable with self-hosted tooling and contract-based reasoning.

What it does well

  • Free and self-hosted
  • Supports sequential and concurrent mutable-state programs
  • Two Z3-based verification backends
  • Front ends for Go, Python, and Rust
  • Editable browser tutorial

What to know first

  • Viper IDE requires 64-bit Java 11 or newer
  • IDE downloads approximately 100 MB of dependencies
  • Self-hosted deployment requires local setup

Verdict

Viper provides a focused, open-source environment for permission-based program verification with several language entry points. Its self-hosted model and Java-based IDE requirements are important setup considerations.

Facts from Viper's own pages

Browser learning
The Viper tutorial provides runnable examples that readers can edit and try in the browser. · viper.ethz.ch, 8 Oct 2026
Browser tutorial
The interactive tutorial includes runnable examples that users can edit and verify in the browser. · viper.ethz.ch, 8 Oct 2026
Command line platforms
The maker offers command-line tool downloads for 64-bit Windows, Linux, macOS, and ARM macOS. · pm.inf.ethz.ch, 8 Oct 2026
Front ends
The project lists Gobra for Go, Nagini for Python, and Prusti for Rust as verifiers built on Viper. · pm.inf.ethz.ch, 8 Oct 2026
Headquarters
Zürich, Switzerland · pm.inf.ethz.ch, 28 Sept 2026
IDE
Viper IDE is a Visual Studio Code extension, and the maker recommends using it with the latest VS Code version. · pm.inf.ethz.ch, 8 Oct 2026
IDE requirement
Viper IDE requires 64-bit Java 11 or newer and downloads approximately 100 MB of dependencies. · pm.inf.ethz.ch, 8 Oct 2026
Intended users
Viper is used to develop verification tools and prototypes, and the maker also describes manual encoding of verification problems as a use case. · pm.inf.ethz.ch, 8 Oct 2026
Language features
The Viper language includes imperative constructs, specifications, permission reasoning, mathematical types, user-defined predicates, and pure functions. · pm.inf.ethz.ch, 8 Oct 2026
Permission reasoning
Viper natively supports permission or ownership reasoning, including approaches such as separation logic. · pm.inf.ethz.ch, 8 Oct 2026
Program reasoning
Viper is designed to verify sequential and concurrent programs with mutable state using permissions or ownership. · pm.inf.ethz.ch, 8 Oct 2026
Purpose
Viper is a language and suite of tools for building program verifiers and prototyping verification techniques. · pm.inf.ethz.ch, 8 Oct 2026
Security and compliance
The opened project and download pages do not state a security certification or compliance standard. · pm.inf.ethz.ch, 8 Oct 2026
SMT solver
Both backends use the Z3 SMT solver to discharge proof obligations. · viper.ethz.ch, 8 Oct 2026
Source code
The maker says the source code for Viper's core projects is open source and available on GitHub. · pm.inf.ethz.ch, 8 Oct 2026
Support
The maker directs users to the Viper Zulip channel and Stack Overflow for support. · pm.inf.ethz.ch, 8 Oct 2026
System requirement
Viper IDE requires 64-bit Java 11 or newer and recommends the latest available VS Code version. · pm.inf.ethz.ch, 8 Oct 2026
Verification backends
Viper provides a verification-condition-generation backend and a symbolic-execution backend, both of which use the Z3 SMT solver. · viper.ethz.ch, 8 Oct 2026

Where Viper stands on Freedom251

Look at these too