|File Search||Catalog||Content Search|
CVC3 is the latest offspring of a series of popular SMT provers, which originated at Stanford University with the SVC system. In particular, it builds on the code base of CVC Lite, its most recent predecessor. Its high level design follows that of the Sammy prover.
CVC3 works with a version of first-order logic with polymorphic types and has a wide variety of features including:
* several built-in base theories: rational and integer linear arithmetic, arrays, tuples, records, inductive data types, bit vectors, and equality over uninterpreted function symbols; * support for quantifiers; * an interactive text-based interface; * a rich C and C++ API for embedding in other systems; * proof and model generation abilities; * predicate subtyping; * essentially no limit on its use for research or commercial purposes (see license).
For example, if you run 'cvc3 +interactive' and submit: i, j: INT; ASSERT i = j + 1; QUERY i>j; it will determine "Valid." If you then ask: QUERY i<j; COUNTERMODEL; it will determine "Invalid." and show an example demonstrating when the formula is not true (e.g., i = 0 and j = -1).