Skip to content
SPECIFICTION
Get listed

PVS vs Z3

PVS

pvs.csl.sri.com

Z3

github.com

Side by side

FigurePVSZ3
Price fromFreeFree
Free planYesYes
Free trial——
Open source——
Web—Yes
WindowsYesYes
macOSYesYes
LinuxYesYes
Android—Yes
API—Yes
Self-hosted—Yes
Plans published21
Spec score · Formal Verification Tools8.3 (#4)7.4 (#26)
PlatformsCurrent listed releases target 64-bit Linux and macOS; the site says Windows can run PVS 7.1 or later through Vagrant and VirtualBox.The project wiki lists Windows, OSX, Linux (Ubuntu and Debian), and FreeBSD as supported platforms.
PurposePVS is a verification system combining a specification language, support tools, and a theorem prover.Z3 is a theorem prover and satisfiability modulo theories (SMT) solver.
SupportSupport is offered through developer and bug-report email addresses, GitHub issues, Google Groups, and moderated mailing lists.The project wiki says to contact the creator of an external binding package for support issues.

Plans

PVS

  • PVS (noncommercial)Free
  • PVS (commercial)Priced on request

PVS pricing →

Z3

  • Z3 (MIT licensed)Free

Z3 pricing →

In their own words

PVS

PVS is a mechanized environment for formal specification and verification, intended for work such as mathematical formalization and hardware or algorithm verification. Its language is based on typed higher-order logic and supports predicate subtypes, dependent types, and parameterized theories. The system combines predefined theories, a type checker, interactive theorem prover, symbolic model checker, utilities, libraries, documentation, and examples. Proof support includes induction, rewriting, simplification with decision procedures, abstraction, and symbolic model checking; command-line tools can re-prove theories and libraries in batch mode. PVS also integrates the Yices SMT solver, supports random testing during proofs, and includes PVSio for evaluation and animation. GNU or X Emacs provides the integrated interface, with Tcl/Tk displays for proof trees and theory hierarchies. It runs on Linux, macOS, and Windows and is self-hosted. Noncommercial use is listed at free. Sources are under GPL, but the Allegro runtime has a separate click-through license, and commercial users need a current PVS license or must contact SRI about licensing.

Visit pvs.csl.sri.com

Z3

Z3 is a theorem prover and satisfiability modulo theories (SMT) solver used in software verification and analysis. SMT-LIB2 is its default input format, and it supports the SMT-LIB format. The project documents bindings or APIs for C, C++, .NET, Java, Go, OCaml, Python, Julia, and JavaScript/TypeScript. Z3 can be built with CMake, vcpkg, or Bazel, and the repository links to pre-built binaries for stable and nightly releases. A project wiki also links to a page for trying Z3 in a browser. It supports proof artifacts and counterexamples, and listed input languages include SMT-LIB2, Rust, Smalltalk, and several of the languages with documented APIs. Z3 is MIT licensed, with downloads and source code available at no charge. Python is required to build it; additional toolchains are needed for Java, .NET, OCaml, and Julia APIs. The README says MSVC builds enable Control Flow Guard and Address Space Layout Randomization by default.

Visit github.com