Freedom251 › Formal Verification Tools
cvc5

What cvc5 is
cvc5 is an 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 numbers, arithmetic, and strings. Its Syntax-Guided Synthesis engine can synthesize functions for background theories and their combinations. cvc5 can run as a standalone tool or as a library, with documented C++, C, Java, and Python APIs. The command-line program accepts SMT-LIB v2 and SyGuS-IF inputs, and the solver supports proofs and unsatisfiable cores. The project site links to an online interface for running SMT-LIB scripts and offers source releases and binaries for Linux, macOS, and Windows. Led jointly by Stanford University and the University of Iowa, the project says research and commercial use are essentially unrestricted. Its default license is modified BSD; optional GPLv3 dependencies make the combined work subject to GPLv3.
Who it suits
cvc5 suits researchers and developers working with first-order formulas, SMT problems, or syntax-guided synthesis. It can be used as a standalone solver or integrated as a library.
What it does well
- Supports common standardized SMT theories.
- Provides proofs and unsatisfiable cores.
- Offers C++, C, Java, and Python APIs.
- Source releases and binaries cover three desktop systems.
What to know first
- Optional GPLv3 dependencies change the combined work's license.
- Command-line input languages listed are SMT-LIB v2 and SyGuS-IF.
Limits
The default license is modified BSD. Linking optional GPLv3 dependencies makes the resulting combined work subject to GPLv3.
Plans
| Plan | Billed and limits | Price |
|---|---|---|
| cvc5 | Open-source solver; optional GPL-licensed dependencies change the license of the combined work | Free |
As cvc5.github.io lists them, read 11 Oct 2026. The maker's own page has the final word.
Getting started
- Visit the cvc5 project website.
- Choose a source release or binary for Linux, macOS, or Windows; the project suggests prebuilt binaries for new users.
- Run SMT-LIB v2 or SyGuS-IF input through the command-line binary.
- Alternatively, use the documented C++, C, Java, or Python APIs.
- Use the online interface to run SMT-LIB scripts in a browser.
cvc5 is a free, open-source SMT solver with a synthesis engine, suited to researchers and developers building verification workflows or solver-backed software. Its theory coverage and library APIs are strong assets; teams should weigh optional GPLv3 dependencies before incorporating it into a commercial product.
Overview
cvc5 checks whether first-order formulas are satisfiable or valid under combinations of background theories. It also offers Syntax-Guided Synthesis (SyGuS), which synthesizes functions subject to those theories. This makes it useful both as a standalone solver and as an engine embedded in another tool, rather than as a general-purpose interactive proof assistant.
The command-line program accepts SMT-LIB v2 and SyGuS-IF. Documented library APIs include C++, C, Java, and Python, with a Pythonic interface. The project names Kind 2, QMaxUSE, and TRLC among systems that use cvc5 as a backend or in verification checks.
Key features
Theory coverage and proof artifacts
cvc5 supports standardized SMT-LIB theories for arrays, bit-vectors, floating-point numbers, integer and real arithmetic, mixed-integer arithmetic, and strings, as well as nonstandard and extended theories. That range is useful for problems combining several mathematical domains. Proofs and unsatisfiable cores can help explain unsatisfiability results, an advantage when a workflow needs more than a yes-or-no answer.
Use and reliability
The project says core use without experimental options is intended to be extremely robust. It also says the small team prioritizes user-reported bugs over fuzzer bugs, a practical caveat for users who depend on support responses or want every fuzzing issue addressed first. Bug reports go to the issue tracker; questions, feature requests, and contributions go to GitHub Discussions.
Pricing
cvc5 costs free. The open-source solver can be used as a standalone tool or library, with essentially no limit on research or commercial use. There is no free trial because the software itself is free, and no paid tier or usage quota is part of the offer.
The default modified BSD license is permissive for many uses, but linking optional GPLv3 dependencies makes the combined work subject to GPLv3. Commercial teams should account for that condition when deciding which dependencies to include.
Platforms
cvc5 offers binaries and source releases for Linux, macOS, and Windows, and the project recommends prebuilt binaries for new users. It can also be used through APIs, deployed self-hosted, or tried in an online interface that runs SMT-LIB scripts. The project is a joint effort led by Stanford University and the University of Iowa.
Who it's for
Choose cvc5 if you need SMT solving across multiple theories, SyGuS, or a solver library accessible from C++, C, Java, or Python. Its standalone binary and online interface also give learners and researchers ways to run scripts without first building an application around the solver. Look elsewhere if your main need is an interactive proof assistant rather than an SMT solver and synthesis engine.
Pros and cons
- Broad theory coverage: standardized support spans arithmetic, strings, arrays, bit-vectors, and floating-point, helping with formulas that mix domains.
- Flexible integration: command-line input and four documented API languages suit both direct script use and embedding.
- Useful explanation artifacts: proofs and unsatisfiable cores can make unsatisfiability results easier to investigate.
- License condition to manage: optional GPLv3 dependencies change the combined work's license, which matters for commercial distribution.
- Small-team support tradeoff: user bugs take priority over fuzzer bugs, so fuzzing issues may receive less attention.
Alternatives
Browse formal verification tools for a wider category comparison. Consider Lean, Rocq, Z3, Boogie, HOL4, PVS, Why3, or Alloy Analyzer as alternative tools to evaluate for your needs.
Verdict
cvc5 is a strong fit for researchers and developers who need a free solver for combined-theory formulas, synthesis, or software integration. Its broad theory support and APIs are compelling reasons to choose it; the licensing effect of optional GPLv3 dependencies is the main reason commercial teams should look carefully at their dependency choices.
Verdict
cvc5 offers a solver, synthesis engine, and library interfaces for work across multiple theories. Review the license implications if using optional GPLv3 dependencies.
Questions
Is cvc5 free?
Yes. It is open source, and the project describes research and commercial use as essentially unrestricted.
What does cvc5 solve?
It determines satisfiability or validity of first-order formulas over combinations of background theories.
Which platforms are supported?
The project provides binaries for Linux, macOS, and Windows, as well as an online interface.
Can I use cvc5 as a library?
Yes. Documented APIs include C++, C, Java, and Python, including a Pythonic API.
What input formats does the command-line tool accept?
It supports SMT-LIB v2 and SyGuS-IF.
What license does cvc5 use?
Its default license is modified BSD. Optional GPLv3 dependencies make the combined work subject to GPLv3.
Facts from cvc5's own pages
- Downloads
- The project provides source releases and binaries for Linux, macOS, and Windows, and suggests prebuilt binaries for new users. · cvc5.github.io, 11 Oct 2026
- Input formats
- The command-line binary supports SMT-LIB v2 and SyGuS-IF input languages. · cvc5.github.io, 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, 11 Oct 2026
- Interfaces
- The documentation lists C++, Java, and Python API bindings. · cvc5.github.io, 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, 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, 11 Oct 2026
- Platforms
- The project provides source and binary releases for Linux, MacOS, and Windows. · cvc5.github.io, 10 Oct 2026
- Programming APIs
- The documented APIs include C++, C, Java, and Python, including a Pythonic API. · cvc5.github.io, 10 Oct 2026
- Project leadership
- The project is a joint effort led by Stanford University and the University of Iowa. · cvc5.github.io, 10 Oct 2026
- Proof outputs
- cvc5 supports proofs and unsatisfiable cores for explaining unsatisfiability results. · cvc5.github.io, 11 Oct 2026
- Purpose
- cvc5 is an efficient open-source automatic theorem prover for satisfiability modulo theories problems. · cvc5.github.io, 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, 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, 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, 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, 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, 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, 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, 10 Oct 2026
- Web access
- The project homepage links to an online version labeled “Try cvc5 online!”. · cvc5.github.io, 10 Oct 2026
- What it proves
- It can determine satisfiability or validity of first-order formulas over combinations of background theories. · cvc5.github.io, 11 Oct 2026
- What it solves
- It can prove satisfiability or validity of first-order formulas with respect to combinations of background theories. · cvc5.github.io, 10 Oct 2026
Where cvc5 stands on Freedom251
- Formal Verification Tools#5 of 34
