PVS
pvs.csl.sri.com
What it is
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.
Spec sheet
- Purpose
- PVS is a verification system combining a specification language, support tools, and a theorem prover.Read 30 Sep 2026 · pvs.csl.sri.com
- Platforms
- Current listed releases target 64-bit Linux and macOS; the site says Windows can run PVS 7.1 or later through Vagrant and VirtualBox.Read 30 Sep 2026 · pvs.csl.sri.com
- Support
- Support is offered through developer and bug-report email addresses, GitHub issues, Google Groups, and moderated mailing lists.Read 30 Sep 2026 · pvs.csl.sri.com
- Headquarters
- Menlo Park, California, USARead 28 Sep 2026 · pvs.csl.sri.com
- Founded
- 1946Read 28 Sep 2026 · pvs.csl.sri.com
- Additional capabilities
- PVS supports the Yices SMT solver, PVSio evaluation of ground expressions, and random testing during proofs.Read 29 Sep 2026 · pvs.csl.sri.com
- Batch proving
- PVS includes proof scripts and command-line tools to re-prove theories and libraries in batch mode.Read 30 Sep 2026 · pvs.csl.sri.com
- Build limitation
- The download page says building from GitHub sources can be sensitive to the platform environment.Read 29 Sep 2026 · pvs.csl.sri.com
- Commercial licensing limit
- Commercial entities need an existing current PVS license or should contact the licensing address before downloading the Allegro runtime.Read 30 Sep 2026 · pvs.csl.sri.com
- Core components
- PVS includes a specification language, predefined theories, a type checker, an interactive theorem prover, a symbolic model checker, utilities, documentation, libraries, and examples.Read 29 Sep 2026 · pvs.csl.sri.com
- Documentation
- The site provides system, language, and prover guides, tutorials, examples, and release notes, while noting that manuals may not cover newer features.Read 30 Sep 2026 · pvs.csl.sri.com
- Evaluation and testing
- PVS includes a ground evaluator, random testing capability, and integration with the Yices SMT solver.Read 30 Sep 2026 · pvs.csl.sri.com
- Integration
- The downloads page links a VSCode PVS plugin and the NASA PVS library; the documentation describes the VSCode interface as experimental.Read 30 Sep 2026 · pvs.csl.sri.com
- Integrations and libraries
- The downloads page links to a NASA PVS Library and a VSCode PVS Plugin.Read 29 Sep 2026 · pvs.csl.sri.com
- License and commercial use
- PVS sources are under GPL; commercial entities without a current PVS license are directed to contact PVS licensing.Read 29 Sep 2026 · pvs.csl.sri.com
- Licensing
- PVS sources are under GPL, and the Allegro runtime has a separate click-through license; noncommercial entities may freely download it subject to that agreement.Read 30 Sep 2026 · pvs.csl.sri.com
- Proof automation
- The prover includes inference procedures for induction, rewriting, simplification using decision procedures, abstraction, and symbolic model checking.Read 29 Sep 2026 · pvs.csl.sri.com
- Proof capabilities
- The interactive prover includes inference procedures for induction, rewriting, simplification, decision procedures, and symbolic model checking.Read 30 Sep 2026 · pvs.csl.sri.com
- PVSio
- PVSio supports evaluation and animation with features including input/output, floating-point arithmetic, exception handling, and parsing.Read 30 Sep 2026 · pvs.csl.sri.com
- Security contact
- The PVS developers' contact address is listed for licensing questions, security concerns, feature requests, and suggestions.Read 29 Sep 2026 · pvs.csl.sri.com
- Specification language
- Its language is based on typed higher-order logic and supports predicate subtypes, dependent types, and parameterized theories.Read 30 Sep 2026 · pvs.csl.sri.com
- Typical users and applications
- Listed applications include mathematical formalization, hardware and algorithm verification, and use as a backend for computer algebra and code verification systems.Read 29 Sep 2026 · pvs.csl.sri.com
- User interface
- PVS uses GNU or X Emacs as an integrated interface and can display proof trees and theory hierarchies with Tcl/Tk.Read 29 Sep 2026 · pvs.csl.sri.com
Plans and prices
Strong points and limits
Strong points
- Typed higher-order logic supports dependent types.
- Batch tools re-prove theories and libraries.
- Yices SMT solver integration is supported.
- Runs on Linux, macOS, and Windows.
- Noncommercial plan is free.
Limits
- Commercial use requires licensing contact or a current license.
- Allegro runtime has a separate click-through license.
- VSCode interface is described as experimental.
- Building from GitHub sources can depend on platform environment.
Who it suits
PVS suits users formalizing mathematics or verifying hardware and algorithms. It may also suit computer algebra and code verification systems that need a backend.
PVS in depth
Read the full write-up
PVS is a self-hosted formal verification environment built around a typed specification language and interactive proof. It is best suited to researchers and engineers formalizing mathematics or verifying hardware and algorithms. The range of proof and evaluation tools is substantial, but commercial users must settle licensing before relying on its runtime.
Overview
PVS brings specification, type checking, theorem proving, symbolic model checking, and evaluation into one environment. Its typed higher-order logic supports predicate subtypes, dependent types, and parameterized theories, making it a fit for properties that need precise expression rather than a lightweight way to check ordinary application code.
Predefined theories, libraries, examples, utilities, and documentation provide a foundation for formalization work. The environment is also used as a backend for computer algebra and code verification systems. Its self-hosted deployment suits teams that want verification work within their own environment, though building from GitHub sources can be sensitive to platform conditions.
Key features
The interactive prover offers procedures for induction, rewriting, simplification and decision procedures, with symbolic model checking as a complementary method. PVS supports counterexamples and proof artifacts, useful for inspecting verification outcomes. Proof scripts and command-line tools can re-prove theories and libraries in batch mode, so verification can be repeated without relying solely on an interactive session.
Evaluation and testing broaden the workflow beyond proof. PVS can evaluate ground expressions, run random testing during proofs, and use the Yices SMT solver. PVSio adds evaluation and animation, including input/output, floating-point arithmetic, exception handling, and parsing. These capabilities are valuable when a project needs to explore behavior as well as establish properties, but they do not make PVS a general-purpose software development environment.
GNU or X Emacs is the integrated interface, with Tcl/Tk displays for proof trees and theory hierarchies. The linked VSCode plugin may interest users seeking a different editor, but its interface is experimental; users should not treat it as a mature replacement for the documented Emacs workflow.
Pricing
PVS (noncommercial): free. This plan is for noncommercial use. Downloading the Allegro runtime requires accepting its separate click-through license, so free access is not permission to ignore those terms.
PVS (commercial): custom pricing. Commercial entities need a current PVS license or must contact SRI for licensing before downloading the Allegro runtime. This is the relevant route for business use, but organizations should resolve the license requirement before building a workflow around that runtime.
The sources are under GPL, while the Allegro runtime has its own click-through license. That distinction matters: the noncommercial plan is not a blanket commercial-use grant.
Platforms
PVS supports Linux, macOS, and Windows. It is self-hosted, and the platform-sensitive source build makes the supported operating systems a starting point rather than a guarantee that every local build environment will be straightforward.
Who it's for
PVS is a strong candidate for formal methods researchers, verification engineers, and teams working on mathematical formalization, hardware, algorithms, or verification backends. It is less suitable for general software teams seeking a conventional development interface, or commercial organizations that need an uncomplicated, clearly priced runtime license.
Pros and cons
Pros: A single environment combines a rich typed logic, interactive theorem proving, symbolic model checking, evaluation, random testing, and batch re-proving, supporting varied verification workflows.
Pros: PVSio and Yices support behavioral exploration alongside proof, while libraries, examples, and tutorials give formalization projects useful starting material.
Cons: The integrated interface is GNU or X Emacs, and the VSCode option is experimental, limiting the appeal for users expecting a polished modern editor workflow.
Cons: Commercial runtime use requires a current license or contact with SRI, adding a decision and licensing step for business adoption.
Cons: Source builds can be sensitive to the platform environment, which may complicate setup for teams building from GitHub.
Alternatives
For a broader list, see Formal Verification Tools. Choose Rocq instead if a free interactive theorem prover and dependently typed programming language better matches the work. Z3 is a free alternative for users who want its MIT-licensed solver rather than PVS's integrated specification and proof environment.
Alloy Analyzer is another free option, distributed as a self-contained executable. UPPAAL may suit eligible academic users who need its free academic license. Consider CBMC for free open-source software under a 4-clause BSD license, or Isabelle for a free theorem prover with BSD-style licensing for its main code base. SPIN offers free source and executables under BSD 3-Clause; ACL2 is also a free alternative.
Verdict
Choose PVS if your work calls for expressive formal specifications, interactive proof, and complementary model checking or evaluation in a self-hosted environment. Its breadth is the main reason to adopt it; the Emacs-centered workflow and commercial runtime licensing are the main reasons to look elsewhere.
Verdict
PVS offers a broad formal verification environment with theorem proving, model checking, evaluation, and batch workflows. Commercial users should resolve licensing requirements, and the documented VSCode interface is experimental.
Where Specifiction places it
- Formal Verification Tools#4 of 348.3