Questions tagged [cvc4]

CVC4 is an efficient open-source automatic theorem prover for satisfiability modulo theories (SMT) problems.

CVC4 is an efficient open-source automatic theorem prover for satisfiability modulo theories (SMT) problems. It can be used to prove the validity (or, dually, the satisfiability) of first-order formulas in a large number of built-in logical theories and their combination.

75 questions
1
vote
1 answer

Discrete time steps in Z3 / CVC4 / SMT-LIB

I am defining time steps using an Int in SMT-LIB, which forces me to assert things to make sure nothing happens in the negatives: (declare-sort Pkg) ; A package (define-sort Time () Int) ; The installation step ; ... (assert (forall ((t Time) (p…
buggymcbugfix
  • 321
  • 1
  • 11
1
vote
1 answer

CVC4: settings to syntheize functions over bools with quantifiers?

I'm currently using CVC4 to solve formulas of the following form: exists f1, ..., fn . P(f1, ..., fn) /\ forall (b1...bk) . Q(f1,...fn,b1,...bk) Here, the f1...fn are functions from some number of Bool to Bool, and the b1...bk are boolean…
jmite
  • 8,171
  • 6
  • 40
  • 81
1
vote
1 answer

CVC4: How to get proper unsat core?

Using this code: #include using namespace std; using namespace CVC4; int main() { ExprManager em; SmtEngine smt(&em); smt.setOption("produce-unsat-cores","true"); Type boolean_type = em.booleanType(); Expr p =…
John Smith
  • 771
  • 8
  • 25
1
vote
1 answer

CVC4 parsing error(the same formula passes Z3)

The following SMT folumas pass Z3 constraint solving while CVC4 flags an parsing error: "Symbol 'None' previously declared as a variable". I have tested using both CVC4 1.4 and CVC 1.5 on windows. Any suggestions or thoughts? (set-logic…
Cherry
  • 21
  • 1
1
vote
2 answers

Implementing bit-blasting for floating-point arithmetic in SMT

I was wondering how people implement bit-blasting of floating-point arithmetic constructs in SMT solvers. Are there any existing libraries or facilities to do that (VHDL, ...), or are they implemented from scratch ? This represents how many lines of…
iguerNL
  • 464
  • 2
  • 8
1
vote
1 answer

Is division by zero included in QF_NRA?

Is division by zero included in QF_NRA? The SMT-LIB standard is confusing in this matter. The paper where the standard is defined simply does not discuss this point, in fact NRA and QF_NRA do not appear anywhere in that document. Some information…
Douglas B. Staple
  • 10,510
  • 8
  • 31
  • 58
1
vote
2 answers

Using define-fun-rec in SMT

I'm currently trying to write an SMT script using define-fun-rec. I've tested with both Z3, version 4.4.2, and CVC4, version 1.4. As far as I can tell, these are the most recent versions of both, and both support the feature*. However, both do…
Bill
  • 453
  • 3
  • 9
1
vote
1 answer

How to define predicates using C++ API for CVC4

This is an example in native CVC language: isblue: STRING -> BOOLEAN; ASSERT isblue("sky"); ASSERT isblue("water"); QUERY isblue("sky"); //valid QUERY isblue("pig"); //invalid How would I write it using the C++ API for CVC4? Couldn't find any…
ndb
  • 127
  • 1
  • 10
1
vote
2 answers

Is there any function readily available for calculating logarithm to the base 2 in Z3/cvc4?

I want to prove a simplification which involves calculating log to the base 2. Is there any function available in z3/cvc4 for calculating it?
sarda
  • 213
  • 2
  • 7
1
vote
1 answer

LibGMP not found when installing CVC4 on FreeBSD

I am trying to compile CVC4 from source on FreeBSD, but I'm running into a hiccup at configuration time - GMP cannot be found, even though the shared object is clearly in a common path: $> ls /usr/local/lib | grep…
Athan Clark
  • 3,886
  • 2
  • 21
  • 39
1
vote
2 answers

How to use Z3 and CVC4 with SMT -LIB to prove theorems for the dihedral group D3

In a previous post one theorem for the dihedral group D3 using Z3 SMT-LIB was proved. In this post we try to prove such theorem using both Z3 and CVC4 using the following SMT-LIB code: (set-logic AUFNIRA) (set-option :produce-models…
Juan Ospina
  • 1,317
  • 1
  • 7
  • 15
1
vote
1 answer

How to execute the following SMT-LIB code using Alt-Ergo

The following SMT-LIB code runs without problems in Z3, MathSat and CVC4 but it is not running in Alt-Ergo, please let me know what happens, many thanks: (set-logic QF_UF) (set-option :incremental true) (set-option :produce-models true) (declare-fun…
Juan Ospina
  • 1,317
  • 1
  • 7
  • 15
1
vote
1 answer

Encoding returns "unknown"

For this example: http://pastebin.com/QyebfD1p z3 and cvc4 return "unknown" as result of check-sat. Both are not very verbose about the cause, is there a way to make z3 more verbose about its execution ?
user1217406
  • 329
  • 3
  • 15
0
votes
1 answer

question about equality in the theory of arrays

I am wondering if this should return unsat? It doesn't return after running for 30 mins on both z3 and cvc5. ; asserts that l1 = l2 up to index len (define-fun-rec list-eq ( (l1 (Array Int Int)) (l2 (Array Int Int)) (len Int) ) Bool (ite (<…
JRR
  • 6,014
  • 6
  • 39
  • 59
0
votes
1 answer

How can I convert an SMT model with optimization using z3 library to a .smt2 file recognized by different solvers like cvc4?

I want to convert an SMT model written in python using z3 library in a file .smt2 to obtain a file which can be run from different solvers (for instance cvc4-solver). The problem is that my model makes optimization and when there is a conversion…