Sunday, October 25, 2026 4,350 lists 78,100 records on file
List your app or device

  1. Home
  2. Formal Verification Tools
  3. cvc5

cvc5

What it is

cvc5 is a free, open-source automatic theorem prover for satisfiability modulo theories (SMT) problems. It determines whether first-order formulas are satisfiable or valid across combinations of background theories, including arrays, bit-vectors, floating-point values, arithmetic, and strings. Its Syntax-Guided Synthesis engine can synthesize functions against those theories. The tool can run on its own or serve as a library, with documented C++, C, Java, and Python APIs. Its command-line program accepts SMT-LIB v2 and SyGuS-IF input, and it supports proofs and unsatisfiable cores for explaining unsatisfiability results. The project provides source releases and binaries for Linux, macOS, and Windows, plus an online interface for running SMT-LIB scripts. cvc5 is a joint effort led by Stanford University and the University of Iowa. The project site says research and commercial use are essentially unrestricted. Its default license is modified BSD; linking optional GPLv3 dependencies makes the resulting combined work subject to GPLv3.

For and against

For

  • Free, open-source solver for SMT problems.
  • Provides a Syntax-Guided Synthesis engine.
  • Supports proofs and unsatisfiable cores.
  • Offers Linux, macOS, and Windows binaries.
  • Includes C++, C, Java, and Python APIs.

Against

  • Optional GPLv3 dependencies change the combined work’s license.
  • Command-line input formats listed are SMT-LIB v2 and SyGuS-IF.

The verdict

cvc5 offers standalone and library use, several programming interfaces, and an online option. Review the licensing implications before linking optional GPLv3 dependencies.

Who it suits

It suits researchers and developers who need automated reasoning over first-order formulas or function synthesis. It can be used as a standalone solver or integrated through its APIs.

Plans and prices

cvc5

Free

Open-source solver; optional GPL-licensed dependencies change the license of the combined work

Every plan, in full

On the record

Downloads
The project provides source releases and binaries for Linux, macOS, and Windows, and suggests prebuilt binaries for new users.cvc5.github.io · read 11 Oct 2026
Input formats
The command-line binary supports SMT-LIB v2 and SyGuS-IF input languages.cvc5.github.io · read 10 Oct 2026
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.cvc5.github.io · read 11 Oct 2026
Interfaces
The documentation lists C++, Java, and Python API bindings.cvc5.github.io · read 11 Oct 2026
License limit
cvc5 uses a modified BSD license by default; linking optional GPLv3 dependencies makes the resulting combined work subject to GPLv3.cvc5.github.io · read 11 Oct 2026
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.cvc5.github.io · read 11 Oct 2026
Programming APIs
The documented APIs include C++, C, Java, and Python, including a Pythonic API.cvc5.github.io · read 10 Oct 2026
Project leadership
The project is a joint effort led by Stanford University and the University of Iowa.cvc5.github.io · read 10 Oct 2026
Proof outputs
cvc5 supports proofs and unsatisfiable cores for explaining unsatisfiability results.cvc5.github.io · read 11 Oct 2026
Purpose
cvc5 is an efficient open-source automatic theorem prover for satisfiability modulo theories problems.cvc5.github.io · read 11 Oct 2026
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.cvc5.github.io · read 10 Oct 2026
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.cvc5.github.io · read 11 Oct 2026
Support
The project directs bug reports to its GitHub issue tracker and questions, feature requests, and contributions to GitHub Discussions.cvc5.github.io · read 11 Oct 2026
Synthesis
cvc5 includes a Syntax-Guided Synthesis engine for synthesizing functions with respect to background theories and their combinations.cvc5.github.io · read 11 Oct 2026
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.cvc5.github.io · read 11 Oct 2026
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.cvc5.github.io · read 11 Oct 2026
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.cvc5.github.io · read 10 Oct 2026
Web access
The project homepage links to an online version labeled “Try cvc5 online!”.cvc5.github.io · read 10 Oct 2026

The review

cvc5 is an automatic theorem prover for checking first-order formulas against combinations of mathematical theories and for synthesizing functions under constraints. It suits researchers and developers building verification or solver-backed software; it is a strong choice when you need a programmable SMT solver, not a general-purpose interactive proof assistant.

Overview

cvc5 can determine whether a formula is satisfiable or valid over supported background theories. Its Syntax-Guided Synthesis engine also tackles constrained function synthesis, broadening its role beyond checking formulas. Use it directly as a command-line tool or embed it as a library; projects including Kind 2, QMaxUSE, and TRLC use it as a backend or in verification checks.

Proofs and unsatisfiable cores can help explain unsatisfiability results, a useful capability for verification workflows where a bare answer is not enough. The project is led jointly by Stanford University and the University of Iowa.

Key features

Theories and input

cvc5 supports standardized SMT-LIB theories for arrays, bit-vectors, floating-point numbers, integer and real arithmetic, mixed-integer arithmetic, and strings, alongside nonstandard and extended theories. That range is valuable for problems combining several domains. Its command-line binary accepts SMT-LIB v2 and SyGuS-IF, while its documented APIs include C++, C, Java, and Python, including a Pythonic API.

Interfaces and reliability

The choice between a standalone tool and library integration lets users adopt cvc5 in a script or build it into another application. New users are directed toward prebuilt binaries. The project also links to a web interface for running SMT-LIB scripts, a convenient way to try an input without first setting up a local installation.

The developers describe the core usage model without experimental options as intended to be extremely robust. They prioritize user-reported bugs over fuzzer bugs, a practical focus for a small team, though it is not a guarantee that every configuration or experimental option will be equally stable. Bug reports go to the issue tracker; questions, feature requests, and contributions are handled through GitHub Discussions.

Pricing

cvc5 costs free. The free, open-source solver can be used standalone or as a library, with essentially no limit on research or commercial use. The default modified BSD license is suitable for many projects, but linking optional GPLv3 dependencies makes the combined work subject to GPLv3; check that consequence before including them. There is no free trial because the software is free.

Platforms

cvc5 supports Linux, macOS, and Windows, with source releases and binaries for those systems. It also offers API use, self-hosted deployment, and an online option. The APIs are the better fit for embedding solver functions in software; the web interface is a useful route for trying SMT-LIB scripts without local setup.

Who it's for

Choose cvc5 if you need SMT solving or constrained synthesis in a research, verification, or software-development workflow, especially when theory coverage, proof artifacts, or several programming-language bindings matter. Its standalone and library modes suit both direct use and integration. Readers seeking an interactive proof assistant should look elsewhere.

Pros and cons

  • Broad theory support: Standardized coverage spans arrays, bit-vectors, floating-point, arithmetic, and strings, with additional extended theories.
  • More than a command-line solver: C++, C, Java, and Python APIs support library integration, and an online interface runs SMT-LIB scripts.
  • Useful result artifacts: Proofs and unsatisfiable cores can help explain unsatisfiability.
  • License caveat for optional dependencies: GPLv3 dependencies change the license obligations of the combined work.
  • Stability scope matters: The stated robustness aim applies to core usage without experimental options.

Alternatives

Z3 is another free solver and is available on Android as well as Linux, macOS, Windows, web, API, and self-hosted platforms; its MIT-licensed downloads and source code may be preferable when that licensing or platform coverage fits your needs.

Boogie is worth considering for users who want a free MIT-licensed tool and can meet its .NET requirement and use a supported SMT solver.

HOL4 is a free alternative under the Modified 3-clause BSD licence.

Lean is another free option for readers considering a theorem-proving tool.

PVS offers a free noncommercial plan; its commercial plan has custom pricing.

Rocq is a free interactive theorem prover and dependently typed programming language under the GNU Lesser General Public License.

Why3 is a free option under the GNU Lesser General Public License version 2.1 with a special linking exception.

Alloy Analyzer is a free, open-source project distributed as a self-contained executable.

Browse Formal Verification Tools for more options.

Verdict

cvc5 is a strong fit for researchers and developers who need a free, broad-theory SMT solver that can run standalone or integrate through several APIs. Its synthesis engine and proof artifacts add practical reach beyond basic satisfiability checking. Choose another tool if you need an interactive proof assistant or cannot accommodate the GPLv3 implications of optional dependencies.

Alternatives to cvc5

Every alternative, ranked