satisfiability

CNF simplification

…衆ロ難τιáo~ 提交于 2020-01-23 22:07:45
问题 Given a set of clauses, I want to first check whether they are satisfiable. If they are, I want to simplify them and create a CNF, eg., (a OR b) ^ (NOT b) should simplify to: a ^ (NOT b). I'm only working with propositional formulas. I've tried to use Java SAT4j library for doing this. It can show me whether the set of clauses are satisfiable, but doesn't seem to have any method for returning me a simplified CNF. What can I do for simplifying CNF efficiently? Are there any Java or Python

CNF simplification

三世轮回 提交于 2020-01-23 22:05:13
问题 Given a set of clauses, I want to first check whether they are satisfiable. If they are, I want to simplify them and create a CNF, eg., (a OR b) ^ (NOT b) should simplify to: a ^ (NOT b). I'm only working with propositional formulas. I've tried to use Java SAT4j library for doing this. It can show me whether the set of clauses are satisfiable, but doesn't seem to have any method for returning me a simplified CNF. What can I do for simplifying CNF efficiently? Are there any Java or Python

Tools for SAT grounding?

前提是你 提交于 2020-01-05 12:32:32
问题 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 uses for generating instances? In other words, is there something that could take an expression such as: vertex(a; b; c). isRed(V) \/ isBlue (V) \/ isGreen(V) :- vertex(V). and generate a DIMACS file from it? In general, how are SAT competition

Tools for SAT grounding?

感情迁移 提交于 2020-01-05 12:32:22
问题 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 uses for generating instances? In other words, is there something that could take an expression such as: vertex(a; b; c). isRed(V) \/ isBlue (V) \/ isGreen(V) :- vertex(V). and generate a DIMACS file from it? In general, how are SAT competition

Tool to solve propositional logic / boolean expressions (SAT Solver?)

戏子无情 提交于 2020-01-02 05:16:20
问题 I am new to the topic of propositional logic and boolean expressions. So this is why I need help. Here is my problem: In the car industry you have thousand of different variants of components available to choose from when you buy a car. Not every component is combinable, so for each car there exist a lot of rules that are expressed in propositional logic. In my case each car has between 2000 and 4000 rules. They look like this: A → B ∨ C ∨ D C → ¬F F ∧ G → D ... where "∧" = "and" / "∨" = "or"

Boolean formula encoding

会有一股神秘感。 提交于 2019-12-23 05:26:02
问题 i am wondering how many bits required to encode a boolean formula like @(x1,x2,x3,x4) = (x1 OR x2 OR NOT(x3) OR x4) AND ((NOT)x2 OR x3) AND (x1 OR (NOT)x4) @ is an instance of SAT. I think it is 4 bits since total number of possible combinations are 2(power4). Is that correct? Should i count OR, NOT, AND to calculate number of bits needed for encoding? I searched a lot but couldn't find anything on this. 回答1: You can always convert your expression into a logically equivalent CNF with

Is minimization of boolean expressions NP-Complete?

守給你的承諾、 提交于 2019-12-22 05:10:28
问题 I know that boolean satisfiability is NP-Complete, but is the minimization/simplification of a boolean expression, by which I mean taking a given expression in symbolic form and producing an equivalent but simplified expression in symbolic form, NP-Complete? I'm not sure that there's a reduction from satisfiability to minimization, but I feel like there probably is. Does anyone know for sure? 回答1: Well, look at it this way: using a minimizing algorithm, you can compact any non-satisfiable

Convert Boolean FlatZinc to CNF DIMACS

大城市里の小女人 提交于 2019-12-21 04:43:15
问题 To solve a set of Boolean equations, I am experimenting with the Constraint-Programming Solver MiniZinc using the following input: % Solve system of Brent's equations modulo 2 % Matrix dimensions int: aRows = 3; int: aCols = 3; int: bCols = 3; int: noOfProducts = 23; % Dependent parameters int: bRows = aCols; int: cRows = aRows; int: cCols = bCols; set of int: products = 1..noOfProducts; % Corefficients are stored in arrays array[1..aRows, 1..aCols, products] of var bool: A; array[1..bRows, 1

How can I find a solution of binary matrix equation AX = B?

南楼画角 提交于 2019-12-13 07:19:06
问题 Given an m*n binary matrix A, m*p binary matrix B, where n > m what is an efficient algorithm to compute X such that AX=B? For example: A = 1 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 0 0 1 0 1 1 0 1 0 1 0 1 0 1 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 1 1 0 B = 0 1 0 1 1 0 1 1 0 1 0 0 1 0 0 0 1 0 1 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1 0 0 0 1 1 0 0 0 1 0 0 1 0 0 1 0 1 0 0 1 1 0 Note, when I say binary matrix I mean matrix defined over the field Z_2, that is, where all arithmetic is mod 2.