Questions tagged [smt]

Satisfiability Modulo Theories (SMT) are decision problems for logical formulas with respect to combinations of background theories expressed in classical first-order logic with equality.

Satisfiability Modulo Theories (SMT) are decision problems for logical formulas with respect to combinations of background theories expressed in classical first-order logic with equality.

A SMT instance is a generalization of a Boolean SAT instance in which various sets of variables are replaced by predicates from a variety of underlying theories.

SMT problems are usually expressed by the SMT-LIB language and solved by high-performance SMT solvers. For a list of benchmarks, solvers and other information regarding SMT, please visit http://smtlib.org/.

845 questions
7
votes
3 answers

Calling SMT solver from JavaScript

Is there a way to run Z3 solver from javascript? Or is there a better SMT solver that I can be used in JavaScript?
william007
  • 17,375
  • 25
  • 118
  • 194
7
votes
1 answer

Read func interp of a z3 array from the z3 model

Suppose I have 2 arrays in a formula whose satisfiability I want to check using z3. If z3 returns sat, I want to read in the first array in the z3 model and pretty print it as a key, value pair and a default value. Later I want to convert it to a…
Tushar
  • 357
  • 1
  • 14
7
votes
1 answer

Interpretation of Z3 Statistics

I obtained several statistics from runs of Z3. I need to understand what these mean. I am rather rusty and non up to date for the recent developments of sat and SMT solving, for this reason I tried to find explanations myself and I might be dead…
gapag
  • 71
  • 3
7
votes
1 answer

printing internal solver formulas in z3

The theorem proving tool z3 is taking a lot of time to solve a formula, which I believe it should be able to handle easily. To understand this better and possibly optimize my input to z3, I wanted to see the internal constraints that z3 generates as…
user1779685
  • 283
  • 2
  • 8
6
votes
1 answer

SMTLIB array theory oddity in Z3

While using SMTLIB arrays, I noticed a difference between Z3's understanding of the theory and mine. I am using the SMTLIB array theory [0] which can be found on the official website [1]. I think my problem is best illustrated with a simple…
leonh
  • 826
  • 5
  • 6
6
votes
2 answers

SMT solvers for bit vector arithmetic

I'm planning some experiments in symbolic execution of C code, using an off-the-shelf SMT solver, and wondering which solver to use; looking at e.g. the SMT contest entrants, and taking only the open-source systems, narrows it down to Beaver,…
rwallace
  • 31,405
  • 40
  • 123
  • 242
6
votes
1 answer

Incremental SMT solver with ability to drop specific constraint

Is there an incremental SMT solver or an API for some incremental SMT solver where I can add constraints incrementally, where I can uniquely identify each constraint by some label/name? The reason I want to identify the constraints uniquely is so…
srg
  • 265
  • 2
  • 8
6
votes
1 answer

Solving formulas in parallel with z3

Let's say I have a z3 solver with a certain number of asserted constraints that are satisfiable. Let S be a set of constraints, I would like to verify for every constraint in S whether the formula is still satisfiable when adding the constraint to…
6
votes
1 answer

With Hyper Threading, threads of one physical core are exchanging via what level of cache L1/L2/L3?

Does the Hyper Threading allow to use of L1-cache to exchange the data between the two threads, which are executed simultaneously on a single physical core, but in two virtual cores? With the proviso that both belong to the same process, i.e. in the…
Alex
  • 12,578
  • 15
  • 99
  • 195
6
votes
2 answers

Which logics are supported by z3?

Is there a complete listing of all theories/logics that z3 supports? I have consulted this SMTLIB Tutorial which provides a number of logics, but I do not believe that the list is exhaustive. The z3 documentation itself doesn't seem to specify which…
JamesGuthrie
  • 169
  • 2
  • 8
6
votes
2 answers

How to generate a random propositional formula (CNF) in haskell?

How can I get a random propositional formula in haskell? Preferably I need the formula in CNF, but I would I want to use the formulas for performance testing that also involves SAT solvers. Please note that my goal is not to test the performance of…
mrsteve
  • 4,082
  • 1
  • 26
  • 63
6
votes
1 answer

Z3: Is it possible to simplify a part of the assertions only?

I am using the Java-API of Z3 Version 4.3.2 64-bit on Windows 7 as well as Java 7 64-bit, but I don't think Java is a necessity to answer this question. Right now I am using the following Java code to simplify a subset of my assertions in Z3: Tactic…
John Smith
  • 771
  • 8
  • 25
6
votes
1 answer

The usage of constraint solvers in programming languages and compilers

Any more or less practical programming language and compiler have to deal with constraints. The most common constraint is types. Usually type derivation and unification is done by a straightforward algorithm (Hindley-Milner, for instance), where…
6
votes
1 answer

Proving inductive facts in Z3

I am trying to prove an inductive fact in Z3, an SMT solver by Microsoft. I know that Z3 does not provide this functionality in general, as explained in the Z3 guide (section 8: Datatypes), but it looks like this is possible when we constrain the…
marczoid
  • 1,365
  • 2
  • 12
  • 20
5
votes
2 answers

Use Z3 and SMT-LIB to get a maximum of two values

How do I get the maximum of a formula using smt-lib2? I want something like this: (declare-fun x () Int) (declare-fun y () Int) (declare-fun z () Int) (assert (= x 2)) (assert (= y 4)) (assert (= z (max x y)) (check-sat) (get-model) (exit) Of…
John Smith
  • 771
  • 8
  • 25
1
2
3
56 57