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
0
votes
1 answer

Satisfiability 3-towers assignment

I have stared at this assignment for far too long now and I simply don't understand what I am supposed to do exactly. We are given a 3x3 chess board and have to produce some propositonal clauses to this problem. This is what information we have been…
0
votes
2 answers

Converting circuit benchmark to CNF formula to use to solve with SAT solvers

Is there any tool that can convert circuit benchmarks (ISCAS) to CNF so that it can be used in SAT solver? The main goal is to find some input patterns for the circuit which will give some predefined output in some gates.
Rkd
  • 1
0
votes
0 answers

Flip/change satisfiability of SAT problem

Is there a way to change the satisfiability of a SAT problem without knowing whether the original problem is satisfiable or not beforehand? There are satisfiability-preserving operations like removing supersets or resolution that maintain the…
0
votes
1 answer

Some questions about incremental SAT in Z3: can it be deactivated? Which techniques are used inside?

I am still in the process of learning the guts of Z3 (Python). It was brought to my attention that Z3 performs incremental SAT solving by default (see SAT queries are slowing down in Z3-Python: what about incremental SAT?): specifically, every time…
Theo Deep
  • 666
  • 4
  • 15
0
votes
1 answer

Produce multiple models for CVC4 SMT queries

Can I get multiple models for a query like the following? (set-logic LIA) (set-option :produce-models true) (declare-const x Int) (assert (< x 20)) (check-sat) (get-model) Instead of just sat ( (define-fun x () Int 0) ) I'd like to get 0, 1, -1,…
Alex Coleman
  • 607
  • 1
  • 4
  • 11
0
votes
1 answer

Is satisfiability related to a set of sentences of a single sentence?

While going through online resources, I have noticed that satisfiability is taken differently. Sometimes resources ask for showing that a given proposition is satisfiable or not? However, sometimes they ask for showing that a set of propositions is…
coderboy
  • 1,710
  • 1
  • 6
  • 16
0
votes
1 answer

Satisfiability with DP and DPLL yields different results

I have the following clauses: 1. {P,Q,~R} 2. {~P,R} 3. {P,~Q,S} 4. {~P,~Q,~R} 5. {P,~S} I have to prove the satisfiability using DP and DPLL separately. The problem is that I am getting different results for each algorithm. With DP: 1. {P,Q,~R} 2.…
grokestray
  • 41
  • 8
0
votes
1 answer

Is that normal that Z3 solver cannot solve 2^x=4?

I have tried to solve 2^x=4 with Z3, by putting the following on the Z3 website: https://rise4fun.com/z3/tutorial. (declare-const x Real) (declare-const y Real) (declare-const z Real) (assert (=(^ 2 x) 4)) (check-sat) (get-model) Z3…
zell
  • 9,830
  • 10
  • 62
  • 115
0
votes
1 answer

How to convert/formalize a series of logical expressions into a format that can be given to a DPLL algorithm?

Take the following set of logical statements: A: B is false B: C is false C: B or A is true I as given the task to formalize this so that a "DPLL" could determine if there is a solution (which rules are true, which are false) that does not lead to a…
0
votes
1 answer

Inconsistent satisfiability between Z3's "ctx-solver-simplify" and "ctx-simplify"

I'm trying to make z3 (I'm using z3py) to check whether a formula is satisfiable or not and if it is satisfiable then simplify it. I initially used Z3's ctx-solver-simplify. However, since I am repeatedly making many calls, using this tactic turns…
CXB
  • 241
  • 5
  • 14
0
votes
1 answer

Checking satisfiability of First Order Formula using Z3

I was trying some basic FOL formula satisfiability problems using Z3. I am not able to understand why the below code snippet returns Unsat. Please help. If possible if anyone has tried with some example for which FOL with quantifiers gives "Sat"…
Rituraj Singh
  • 579
  • 1
  • 5
  • 16
0
votes
2 answers

Sat solver for Lights Out game

I have a school project where I have to find solutions of the game "Lights Out" ( https://en.wikipedia.org/wiki/Lights_Out_(game) ) with a SAT Solver but I am having troubles trying to set a conjuctive normal form of the game. The game consists of a…
johanDa9u
  • 63
  • 5
0
votes
1 answer

Divisibility represented by Boolean logic (satisfiability)

(Copied from Math StackExchange with some modifications, tell me if this isn't the right place) Some context: I was thinking about the feasibility of using SAT solvers to prove primality, especially of Mersenne primes, by showing that there exists…
Baaing Cow
  • 1,492
  • 9
  • 20
0
votes
1 answer

Sets of equalities and inequalities constraint satisfiability problem

I am relatively new to CSPs and I am trying to find the value of all the variables from their respective domains, based on ==, >, < and != constraints imposed between the variables. I looked at Choco and Jacop but, I couldn't find out more about…
0
votes
0 answers

Does resolution variable elimination modify the solutions of other variables?

So I have a cnf, and two lists of variables K and C. The variables of K is added to the cnf as unit clauses (either negated or not depending on a boolean array) before sending it of to a sat-solver. When the sat-solver returns a model I only care…
jørgen k. s.
  • 135
  • 1
  • 2
  • 8