Questions tagged [satisfiability]

Satisfiability (often written in all capitals or abbreviated SAT) is the problem of determining if the variables of a given Boolean formula can be assigned in such a way as to make the formula evaluate to TRUE.

Mainly from Wikipedia:

In computer science, the Boolean Satisfiability Problem (sometimes called Propositional Satisfiability Problem and abbreviated as satisfiability or SAT) is the problem of determining if there exists an interpretation that satisfies a given Boolean formula.

In other words, it asks whether the variables of a given Boolean formula can be consistently replaced by the values true or false in such a way that the formula evaluates to true.

If this is the case, the formula is called satisfiable. On the other hand, if no such assignment exists, the function expressed by the formula is identically false for all possible variable assignments and the formula is unsatisfiable.

For example, the formula "*a AND NOT b*" is satisfiable 
because one can find the values a = TRUE and b = FALSE, 
which make (a AND NOT b) = TRUE. 

In contrast, (a AND NOT a) is unsatisfiable.

SAT is one of the first problems that was proven to be NP-complete. This means that all problems in the complexity class NP, which includes a wide range of natural decision and optimization problems, are in a technical sense equally difficult to solve as SAT.

There is no known algorithm that efficiently solves SAT, and it is generally believed that no such algorithm exists; yet this belief has not been proven mathematically, and resolving the question whether SAT has an efficient algorithm is equivalent to the P versus NP problem, which is the most famous open problem in the theory of computing.

Despite the fact that no algorithms are known that solve SAT efficiently, correctly, and for all possible input instances, many instances of SAT that occur in practice (such as in artificial intelligence, circuit design and automatic theorem proving) can actually be solved rather efficiently using heuristical SAT-solvers.

Such algorithms are not believed to be efficient on all SAT instances, but experimentally these algorithms tend to work well for many practical applications.

Nowadays, the research on the SAT theory continues, if you want to keep up to date with this research, feel free to visit : http://www.satlive.org/.

119 questions
1
vote
1 answer

Is it possible to get the equisatisfiable boolean formula of a QF_UF formula using existing SMT solvers?

In eager SMT solvers, a SMT formula is encoded as a equisatisfiable boolean formula which is fed to a SAT solver. Typically, for QF_UF formulae, uninterpreted functions are reduced by Ackermann's reduction or Bryant's reduction, and then a…
cxcfan
  • 185
  • 9
1
vote
1 answer

DPLL algorithm procedure

I am trying to understand DPLL procedure before actually coding it. For example, I have these clauses: C1 : {c, !d, !b} C2 : {d, a} C3: {b, !d, !a} C4: {d, c, b, a} C5: {c, !d, !b} C6: {d, c, b} C7: {c} Now I take the decision…
nirvair
  • 4,001
  • 10
  • 51
  • 85
1
vote
2 answers

Solving with multiple assumptions

Suppose I have a CNF expression with variables (a,b,c,d,e,f,g). How would I go about using a SAT solver to find an assignment for (d,e,f) given that {a,b,c,g} = {1,0,0,1} and {a,b,c,g} = {1,1,1,1}? If it was one assumption, calling a sat solver to…
red_house
  • 63
  • 3
1
vote
1 answer

ANTLR - Boolean satisfiabilty

I have a ANTLR expression parser which can evaluate expressions of the form ( A & ( B | C ) ) using the generated visitor. A , B and C can take any of the 2 values true or false. However I am faced with a challenge of finding all combinations of A,B…
ssdimmanuel
  • 448
  • 10
  • 29
1
vote
2 answers

How to read .cnf file in java

I have a .cnf file which contains numbers as Conjunctive Normal Form. I need to read and store them in a data structure (matrix or list) to be able to work with them as index. (I need this to solve a 3-SAT problem.) How can I read and store them in…
PEN
  • 21
  • 1
  • 4
1
vote
1 answer

How to present negative number in bitvector?

The title says it all. I try to present -1 as the following: (_ bv-1 32), and z3 complains. How do I present constraint such as 3x - 5y <= 10 in bit vector? For some reason, I do not want to use linear integer.
sean
  • 1,632
  • 2
  • 15
  • 34
1
vote
1 answer

Converting Not All Equal 2-Sat Pr0blem to an equivalent 2-SAT pr0blem

I'm looking over previous exam papers, and have come across this question which has confused me. Question: Convert the Not-All-Equal 2-SAT problem given by the clauses {x1, x2}, {x2, x3}, {x3, x4}, {x4, x5}, {x5, x1} to an equivalent 2-SAT…
1
vote
1 answer

Can You Reduce K-Independent Set to 2-SAT

This is a homework question to start out. I just have some questions before I begin. Our problem is: "Reduce from k-Independent Set to 2−SAT as follows. Given a graph G with n vertices form n propositions, one per vertex. Each proposition xi for…
Learner
  • 1,667
  • 2
  • 10
  • 10
1
vote
1 answer

How to assign integer values to boolean formula's variables using sat4j in java?

I am totally new for sat4j solver and researching boolean satisfiable problems; and i am stuck.I want to make a program which solves integer variables which are in boolean formula like; x1 < x2 + x3 the user enter that formula and my program…
1
vote
1 answer

Polynomial algo for 2-SAT related algorithm

I read many algorithm for finding the 2-SAT problem, i.e. given expression is satisfiable or not, which can be solved in polynomial time. example(algorithm). For Krom's procedure(Wikipedia),I construct graph from which I can easily verify its…
1
vote
1 answer

Converting unsatisfiable set of constraints into satisfiable smaller sets of constraints

I have a project in my mind and I am curious whether something similar is done previously. Assume that there is a set of different type of constraints and these constraints are not satisfiable together. C = {c1, c2, c3, ..., cn} (c1 and c2 and c3…
genclik27
  • 323
  • 1
  • 7
  • 18
1
vote
4 answers

Find All Numbers in Array which Sum upto Zero

Given an array, the output array consecutive elements where total sum is 0. Eg: For input [2, 3, -3, 4, -4, 5, 6, -6, -5, 10], Output is [3, -3, 4, -4, 5, 6, -6, -5] I just can't find an optimal solution. Clarification 1: For any element in the…
Sreejith Ramakrishnan
  • 1,332
  • 2
  • 13
  • 22
1
vote
1 answer

Tools for SAT grounding?

In ASP (Answer Set Programming), programs are written in a higher-level declarative language and then grounded in a deterministic way to generate an ASP instance using a grounder like lparse or gringo. Are there popular grounders the SAT community…
dspyz
  • 5,280
  • 2
  • 25
  • 63
1
vote
1 answer

Random seed for Z3 SAT Solver

I am using Z3 as SAT solver for a tough satisfiability problem encoded in CNF/DIMACS format. Would it make sense to randomize the input in order to increase the chance to find a solution: Shuffle the order of CNF clauses Sort/shuffle the numbering…
Axel Kemper
  • 10,544
  • 2
  • 31
  • 54
1
vote
1 answer

Dose SMTLIB 1.2 has a (get-value) function like like SMTLIB 2

I wonder if SMTLIB1.2 has an equivalent to the SMTLIB2's (get-value). I'm running different SMT encoding tests using Z3 SMT solver and SMTLIB1.2, the problem is in the output I keep getting all values the model mixed with 100s of auxiliary variable…
Hani
  • 13
  • 4