Suggestions appear as you type. Use the up and down arrows to choose one and Enter to open it.

Viper review

Free#23 of 35 in Formal Verification Tools

A research-oriented toolkit for permission-based verification of mutable-state programs.

7.2/10Editor score
Viper7.2 Visit Viper

Reviewed by iTechGuides Editors · Editorial team · Updated Nov 2026

Viper is open-source verification infrastructure from ETH Zurich for researchers and developers building verifiers for sequential and concurrent programs. It combines an intermediate verification language with imperative constructs, specifications, and automatic verification backends. The core focus is mutable state: permissions, ownership, implicit dynamic frames, and separation-logic-style reasoning. Teams can encode verification problems directly in Viper or use front-end tools for Go, Python, and Rust.

Its main technical strength is the combination of permission-based reasoning with multiple verification paths. Viper provides a symbolic-execution backend and a verification-condition-generation backend, while Z3 handles proof obligations. User-defined predicates and pure functions support more structured specifications. This makes Viper a strong fit for heap reasoning and contract-based verification where ownership and state access need to be expressed explicitly. The intermediate language also gives researchers a target for implementing additional front ends and verifiers.

Viper fits teams that want an open-source, self-hosted foundation rather than a hosted commercial service. The ecosystem includes Visual Studio Code, Boogie, Z3, Gobra, Nagini, and Prusti, with VS Code IDE support, command-line tools, and a browser-based interactive tutorial with runnable examples. That range supports both direct experimentation and language-specific workflows, but users working outside the listed front-end paths will need to work in the Viper language itself. Choose Viper for research, verifier construction, and permission-based heap verification; choose another tool if you need a managed SaaS experience or a workflow centered on a different verification formalism.

Questions about Viper

What does Viper run on? Web, Windows, macOS and Linux. It runs self-hosted.

What does Viper integrate with? 6 integrations, including Visual Studio Code, Boogie, Z3, Gobra and Nagini.

Who is Viper built for? Solo users and small businesses (our editorial estimate).

Viper pros and cons

  • Where it wins
    • Permission and ownership reasoning for mutable state
    • Z3-backed symbolic execution and verification-condition generation
    • VS Code, CLI, and browser-based learning tools
  • Where it doesn't
    • Self-hosted deployment requires managing the toolchain
    • Direct use centers on the Viper language
    • Language support depends on front-end tools for Go, Python, and Rust

Viper fact sheet, pricing and score →

Advertiser disclosure: iTechGuides is reader-supported. Vendors can pay for top positions in our rankings and for a place on other products' pages, and we may earn a commission when you click some links. Bought places stand at the number bought; this page and our disclosure say so. Paying vendors may get a fuller, more detailed review from our editors, and that review can change their score. How we rank.

Last updated · How we research and update