cvc5
cvc5.github.io
What it is
cvc5 is a free, open-source solver for satisfiability modulo theories problems. It determines whether first-order formulas are satisfiable or valid across combinations of background theories, including arrays, bit-vectors, floating-point numbers, arithmetic, and strings. It also has a Syntax-Guided Synthesis engine for synthesizing functions against those theories.
The solver can run as a standalone command-line tool or be used as a library, with C++, C, Java, and Python APIs. Its binary accepts SMT-LIB v2 and SyGuS-IF input, and it can produce proofs and unsatisfiable cores to explain unsatisfiability results. The project links to an online interface for running SMT-LIB scripts and provides source releases and binaries for Linux, macOS, and Windows. cvc5 is led jointly by Stanford University and the University of Iowa. Research and commercial use are described as essentially unrestricted. The default license is modified BSD; using optional GPLv3 dependencies makes the combined work subject to GPLv3.
Spec sheet
- Purpose
- cvc5 is an efficient open-source automatic theorem prover for satisfiability modulo theories problems.Read 11 Oct 2026 · cvc5.github.io
- Platforms
- The project provides source and binary releases for Linux, MacOS, and Windows.Read 10 Oct 2026 · cvc5.github.io
- Integrations
- The project lists applications using cvc5, including Kind 2 and QMaxUSE as backend solvers, and TRLC through PyVCG for proving absence of runtime errors.Read 11 Oct 2026 · cvc5.github.io
- Support
- The project directs bug reports to its GitHub issue tracker and questions, feature requests, and contributions to GitHub Discussions.Read 11 Oct 2026 · cvc5.github.io
- Downloads
- The project provides source releases and binaries for Linux, macOS, and Windows, and suggests prebuilt binaries for new users.Read 11 Oct 2026 · cvc5.github.io
- Input formats
- The command-line binary supports SMT-LIB v2 and SyGuS-IF input languages.Read 10 Oct 2026 · cvc5.github.io
- Interfaces
- The documentation lists C++, Java, and Python API bindings.Read 11 Oct 2026 · cvc5.github.io
- License limit
- cvc5 uses a modified BSD license by default; linking optional GPLv3 dependencies makes the resulting combined work subject to GPLv3.Read 11 Oct 2026 · cvc5.github.io
- Online access
- The official site links to an online cvc5 interface, and the tutorial describes using it to run SMT-LIB scripts in a web interface.Read 11 Oct 2026 · cvc5.github.io
- Programming APIs
- The documented APIs include C++, C, Java, and Python, including a Pythonic API.Read 10 Oct 2026 · cvc5.github.io
- Project leadership
- The project is a joint effort led by Stanford University and the University of Iowa.Read 10 Oct 2026 · cvc5.github.io
- Proof outputs
- cvc5 supports proofs and unsatisfiable cores for explaining unsatisfiability results.Read 11 Oct 2026 · cvc5.github.io
- Robustness
- The development team says its core usage model without experimental options is intended to be extremely robust, while noting that the team prioritizes user bugs over fuzzer bugs.Read 10 Oct 2026 · cvc5.github.io
- Robustness note
- The development team says it aims to make core usage without experimental options extremely robust and prioritizes user bugs over fuzzer bugs because the team is small.Read 11 Oct 2026 · cvc5.github.io
- Synthesis
- cvc5 includes a Syntax-Guided Synthesis engine for synthesizing functions with respect to background theories and their combinations.Read 11 Oct 2026 · cvc5.github.io
- Theory support
- It supports standardized SMT-LIB theories including arrays, bit-vectors, floating-point numbers, integer and real arithmetic, mixed-integer arithmetic, and strings, as well as several nonstandard or extended theories.Read 11 Oct 2026 · cvc5.github.io
- Use
- cvc5 can be used as a standalone tool or as a library, with essentially no limit on research or commercial use according to the project site.Read 11 Oct 2026 · cvc5.github.io
- Use and licensing
- It can be used as a stand-alone tool or as a library, with essentially no limit on research or commercial use according to the project site.Read 10 Oct 2026 · cvc5.github.io
- Web access
- The project homepage links to an online version labeled “Try cvc5 online!”.Read 10 Oct 2026 · cvc5.github.io
- What it proves
- It can determine satisfiability or validity of first-order formulas over combinations of background theories.Read 11 Oct 2026 · cvc5.github.io
- What it solves
- It can prove satisfiability or validity of first-order formulas with respect to combinations of background theories.Read 10 Oct 2026 · cvc5.github.io
Plans and prices
Strong points and limits
Strong points
- Free and open source under a modified BSD license
- Supports several standardized SMT-LIB theories
- Offers proofs and unsatisfiable cores
- C++, C, Java, and Python APIs
- Binaries available for Linux, macOS, and Windows
Limits
- Optional GPLv3 dependencies change the combined work’s license
- Commercial use with those dependencies may require GPLv3 compliance
Who it suits
cvc5 suits researchers and developers working with first-order formulas, theory combinations, or syntax-guided synthesis. It can be integrated as a library or used from the command line, with a web interface available for SMT-LIB scripts.
cvc5 in depth
Read the full write-up
cvc5 is a free, open-source theorem prover for developers and researchers working on formal verification or solver-backed synthesis. It is strongest when a workflow needs satisfiability checks across several mathematical theories, either from the command line or embedded in software. Its breadth and APIs are compelling; the optional GPLv3 dependencies are the licensing point to examine before combining it with other code.
Overview
cvc5 decides whether first-order formulas are satisfiable or valid across combinations of background theories. It also includes a Syntax-Guided Synthesis engine that synthesizes functions subject to theory-based constraints. That makes it useful both as a verification component and in systems that need to generate functions from specifications. It is a focused solver, not a general-purpose interactive proof assistant.
Use it as a standalone command-line program or as a library. The project names Kind 2, QMaxUSE, and TRLC among tools that use cvc5 as a backend or for verification checks. Proofs and unsatisfiable cores can help explain unsatisfiability results, an important advantage when a bare yes-or-no answer is not enough.
Key features
Theories, inputs, and APIs
Its standardized SMT-LIB theory support covers arrays, bit-vectors, floating-point numbers, integer and real arithmetic, mixed-integer arithmetic, and strings, alongside nonstandard and extended theories. This range is useful for problems that combine different mathematical domains. The command-line binary accepts SMT-LIB v2 and SyGuS-IF, while documented APIs include C++, C, Java, and Python, including a Pythonic API. Those interfaces give teams a choice between running solver scripts directly and integrating solver calls into their own applications.
New users are directed toward prebuilt Linux, macOS, and Windows binaries, and source releases are also provided. The project homepage links to an online interface for running SMT-LIB scripts, which offers a way to try the solver through a web browser. The documented API and language list spans more than the binary download platforms, but the strongest fit is for teams comfortable working with formal inputs or programming interfaces.
Robustness and support
The development team aims for high robustness in core use without experimental options. It also says it gives user-reported bugs priority over fuzzer findings, explaining that tradeoff by the small size of the team. Bug reports go to the issue tracker; questions, feature requests, and contributions are directed to GitHub Discussions. This is a sensible support route for a community-led tool, though it is not a promise of commercial support or response times.
Pricing
cvc5 costs nothing. The free offering is the open-source solver, with no separate free-trial period or paid tier described. Its use as a standalone tool or library is permitted with essentially no limit on research or commercial use, making it viable for both academic work and commercial applications.
The default modified BSD license is permissive for many integrations, but optional GPLv3 dependencies change the license of the resulting combined work to GPLv3. Organizations embedding cvc5 should review which dependencies they include and whether that licensing condition fits their distribution plans.
Platforms
cvc5 supports Linux, macOS, and Windows downloads, plus API, self-hosted, and web use. The range suits teams that want local binaries, deployment in their own environment, library integration, or a browser-based first look. Its deployment options favor technical users who can work with solver inputs and configure a software workflow around them.
Who it's for
Choose cvc5 if you need an SMT solver for formal verification, theorem-proving workflows, or function synthesis, and want control over using it as a command-line tool or library. It is particularly attractive when your formulas span multiple supported theories or when proof artifacts and unsatisfiable cores matter. Look elsewhere if you need an interactive proof assistant rather than an automatic solver, or if the optional dependency licensing conflicts with your product's distribution model.
Pros and cons
Broad theory coverage: Standard support for arrays, bit-vectors, floating-point, arithmetic, and strings helps with formulas that cross domain boundaries.
More than a decision result: Proofs and unsatisfiable cores can make unsatisfiability results easier to inspect and explain.
Flexible integration: Command-line inputs and C++, C, Java, and Python APIs support both direct solver use and embedding.
Licensing needs attention: Optional GPLv3 dependencies make the combined work subject to GPLv3, despite the modified BSD default license.
Focused audience: Its formal inputs and solver-oriented purpose make it a poor fit for users seeking a general interactive proof environment.
Alternatives
Formal Verification Tools is a useful category to browse if you want to compare options across the field.
Lean is worth considering if you want a theorem-proving environment rather than cvc5's automatic SMT-solving and synthesis focus.
PVS offers a noncommercial free plan and a separate commercial plan with custom pricing; consider it if those terms suit your use case.
Rocq is another free theorem prover and dependently typed programming language, distributed under the GNU Lesser General Public License.
Why3 is a free alternative with API, self-hosted, and web platforms, distributed under the GNU Lesser General Public License with a special linking exception.
Z3 is a free, MIT-licensed solver option if that license is a priority.
Boogie may suit a workflow that can meet its.NET requirement and provide a supported SMT solver.
HOL4 is another free formal tool, under a modified three-clause BSD license.
Alloy Analyzer is a free, open-source option distributed as a self-contained executable.
Verdict
cvc5 is a strong choice for developers and researchers who need automatic solving across a broad set of theories, synthesis, and interfaces for either standalone or embedded use. Its main advantage is the combination of theory coverage and practical integration options at no cost. Check the optional GPLv3 dependency implications before adopting it in a combined work; if those terms do not fit, choose a solver whose licensing works for your distribution plans.
Verdict
cvc5 provides a broad solver and synthesis toolkit, with command-line, library, and online access options. Check the optional dependency licensing if you plan to include it in a combined work.
Where Specifiction places it
- Formal Verification Tools#1 of 358.7