<p>Take the formula in your example, remove the clause $\lnot A \lor \lnot B \lor \lnot C$ and add the following $2$ clauses:  </p>

<p>$\lnot A \lor \lnot B \lor \lnot E$<br>
$\lnot B \lor \lnot C \lor E$ </p>

<p>You will get a minimal unsatisfiable formula with $n=5$, $m=9$ obeying condition 5.  </p>

<p>In general, you may randomly pick a clause $l_1 \lor l_2 \lor l_3$ and split it in $2$ clauses:  </p>

<p>$l_1 \lor l_2 \lor v$<br>
$l_2 \lor l_3 \lor \lnot v$  </p>

<p>where $v$ is a new variable. Each time you do so, both $n$ and $m$ are incremented by $1$. Repeating this process allows you to <em>"stretch"</em> the initial unsatisfiable core, and to obtain minimal unsatisfiable formulas (obeying condition 5) whose $r=\frac{m}{n}$ tends to $1$ as $n$ grows (which is pretty rare, as formulas with $r=1$ are satisfiable with high probability). </p>

CC BY-SA 3.0
2011-10-02T04:05:50.840Z
Thanks for the reply, Walter. The procedure you describe is very helpful indeed for generating even more slightly larger min unsat formulae of 'similar' structure, that is, once you have a core set that you find has interesting properties.
MAF
CC BY-SA 3.0
2011-10-02T09:24:05.067Z
@MAF: You are very welcome. Thank you for posting such an interesting question.
Giorgio Camerani
CC BY-SA 4.0
2024-01-26T20:05:16.853Z
Notice you go from 8 full (3-literal) clauses in 3-CNF to 8-1+2=9 3-CNF clauses, and if you expand out the first 7 original formulas by adding ~E and E, you have 14 formulas.  Then ~A and ~B and ~C and (E or ~E) are added along with already added terms from the newly introduced ones.  So 4 variables with all 4-literal clauses, is only UNSAT if it contains all 16 clauses.  This seems to be the general case, though something has me worried about pure literals, as they dont effect satisfiability.  Actually pure literals have no effect, its true.
Gregory Morse
CC BY-SA 3.0
2011-09-30T18:25:35.907Z
2011-10-01T08:04:45.767Z
2011-10-01T08:04:45.767Z
Giorgio Camerani
<p>Constructing unsatisfiable 3SAT problems isn't that hard if you just build up to whatever you're looking for. For example let's start with a base requirement.</p>

<ol>
<li>An equation equal to <code>A &amp; !A</code> is unsatisfiable. It's actually the only thing that's unsatisfiable. So we're trying to write a system of equations that forces this relationship.</li>
</ol>

<p>Next we'll examine 2SAT to attempt to get to that essential 1SAT unsatisfiable. </p>

<ol start="2">
<li>Only an equation equal to <code>(A v B) &amp; (A v !B)</code> is equal to A. Of course now that we have more variables there's more ways to do this. For example, instead of the first clause, we could have <code>(A v C) &amp; (!C v B)</code>. By the property of resolution, this is equal to <code>A v B</code>. So now we can mess around with two SAT and create all sorts of variables that are unsatisfiable. Touching back on where we started, to get an unsatisfiable equation we need an ultimate equivalence of <code>(A v B) &amp; (A v !B) &amp; (!A v C) &amp; (!A v !C)</code> Remember to stay focused on the fact that we're trying to get A &amp; !A and you're good.</li>
</ol>

<p>That brings us to 3SAT or coming up with equations that equate to the other equations.</p>

<ol start="3">
<li>The tool we're going to use again should seem familiar, it's resolution again. So let's say we want <code>(A v B)</code>. To get there we need the pattern <code>(A v B v C) &amp; (A v B v !C)</code> of course now that we have three variables we can get more sophisticated. We can generate two variable clauses, new three variable clauses, or even extend into four variable clauses. It just depends on how many variables are in both clauses. If both variables other than the variable negating itself are the same, then it resolves to a 2 variable clause (such as <code>(A v B v C) &amp; (!A v B v C) = (B v C)</code>). If one of them is different but the other is the same, then it resolves to a 3 variable clause (such as <code>(A v B v C) &amp; (!A v B v D) = (B v C v D)</code>. Finally, and most maliciously, if both variables are different it resolves to a 4 variable clause (here it's <code>(A v B v C) &amp; (!A v D v E) = (B v C v D v E)</code>). So now the number of clauses it's equal to can grow. However once you're in a 4 variable equation, resolving and equating two of the variables will remove the variable you're resolving on. So a 4 variable clause in conjunction with a 3 variable clause (or another 4 variable clause) can reduce to a 3 variable clause (example: (<code>(A v B v C v D) &amp; (!A v B v C) = (B v C v D)</code>). Using this techniques you can build paths away from the answer of whether it's satisfiable or not, as long as you converge back into the earlier two cases.</li>
</ol>

<p>A quick gotcha is <code>(A v B v C) &amp; (!A v !B v C)</code> equates to true. Watch out for resolving two variables simultaneously because this is <code>B v !B v C</code>. Oops. </p>

CC BY-SA 4.0
2024-01-26T19:38:08.793Z
Actually you start with False, and build up A&!A from there, technically speaking to broaden the generalization.
Gregory Morse
CC BY-SA 4.0
2020-01-24T01:03:32.540Z
2020-01-24T02:59:30.320Z
2020-01-24T02:59:30.320Z
ian.p.swift
<p>I believe condition number 5 is not really held in your example and cannot be held ever.
<br>
Let the following clauses be equivalent:
<br></p>

<pre><code>( p, q) = (~A,B,D)(A,~B,~D)
</code></pre>

<p>Which will allow us to map the clauses of A, B, C, and D to new variables p, q, r, and s as the following truth table:
<br></p>

<pre><code>A B C D | p q r s
-----------------
0 0 0 0 | 0 1 0 0
0 0 0 1 | 0 1 0 1
0 0 1 0 | 0 1 1 0
0 0 1 1 | 0 1 1 1
-----------------
0 1 0 0 | 1 0 0 0
0 1 0 1 | 0 0 0 0
0 1 1 0 | 1 0 0 1
0 1 1 1 | 0 0 0 1
-----------------
1 0 0 0 | 0 0 1 0
1 0 0 1 | 1 0 1 0
1 0 1 0 | 0 0 1 1
1 0 1 1 | 1 0 1 1
-----------------
1 1 0 0 | 1 1 0 0
1 1 0 1 | 1 1 0 1
1 1 1 0 | 1 1 1 0
1 1 1 1 | 1 1 1 1
-----------------
</code></pre>

<p>And now we can express the clauses of A, B, C, and D in terms of p, q, r, and s:
<br></p>

<pre><code>1. (~A,  B,  D) = ( p, q,~r, s)( p, q,~r,~s)
2. (~B,  C,  D) = (~p, q, r, s)(~p,~q, r, s)
3. ( A, ~C   D) = ( p,~q,~r, s)(~p, q, r,~s)
4. ( A, ~B, ~D) = ( p, q, r, s)( p, q, r,~s)
5. ( B, ~C, ~D) = ( p,~q,~r,~s)(~p, q,~r,~s)
6. (~A,  C, ~D) = (~p, q,~r, s)(~p,~q, r,~s)
7. ( A,  B,  C) = ( p,~q, r, s)( p,~q, r,~s)
8. (~A, ~B, ~C) = (~p,~q,~r, s)(~p,~q,~r,~s)
</code></pre>

<p>Since all clauses are shown and associated with an A, B, C, and D clauses. Then we can claim that the p,q,r, and s clauses can be reduced to:
<br></p>

<pre><code>( p, q, r)
( p, q,~r)
( p,~q, r)
( p,~q,~r)
(~p, q, r)
(~p, q,~r)
(~p,~q, r)
(~p,~q,~r)
</code></pre>

<p>Which is obviously violate the condition number 5.
<br><br>
What I want to point out is that even the example is not explicitly shows that there are 2 clauses that can be reduced to 2-CNF, but implicitly is has(e.g.
 (~A,B,D) and (A,~B,~D)), you might not be able to express the 2-CNF with the given variables but when you introduce different mapping for the problem you will be able to express them.</p>

CC BY-SA 3.0
2017-07-30T18:21:13.697Z
2017-07-30T18:21:13.697Z
Khazam Alhamdan
<p>I am currently interested in obtaining (or constructing) and studying 3-CNF formulae which are unsatisfiable, and are of minimum size. That is, they must consist of as few clauses (m = 8 preferably) as possible, and as few distinct variables (n = 4 or more) as possible, such that removing at least one clause will render the formula satisfiable.</p>

<p>More formally, any qualifying 3-CNF formula F must satisfy the following conditions:</p>

<ol>
<li>F is unsatisfiable</li>
<li>F has a minimum amount (4+) of distinct variables (or their negation)</li>
<li>F has a minimum amount of clauses (8+)</li>
<li>every proper subset of F is satisfiable (allowing removal of any arbitrary clause or clauses).</li>
<li>F has no 2 clauses that are reducible to a 2-CNF clause
e.g. <code>(i, j, k) &amp; (i, j, ~k)</code> is NOT allowed ( they reduce to <code>(i,j)</code> )</li>
</ol>

<p>For example, with n=4, there exists many minimal 8-clause 3-CNF formulae that are unsatisfiable. For one, by looking at the 4-hypercube and trying to cover it with edges (2-faces), one can construct the following unsatisfiable formula:</p>

<pre><code>1. (~A,  B,  D)
2. (~B,  C,  D)
3. ( A, ~C   D)
4. ( A, ~B, ~D)
5. ( B, ~C, ~D)
6. (~A,  C, ~D)
7. ( A,  B,  C)
8. (~A, ~B, ~C)
</code></pre>

<p>This qualifies as a minimum unsatisfiable 3-CNF formula because:</p>

<ol>
<li><p>It is unsatisfiable:</p>

<ul>
<li>Clauses 1-3 are equivalent to:  <code>D or A=B=C</code></li>
<li>Clauses 4-6 are equivalent to: <code>~D or A=B=C</code></li>
<li>They imply <code>A=B=C</code>, but by clauses 7 and 8, this is a contradiction.</li>
</ul></li>
<li><p>There are only 4 distinct variables.</p></li>
<li>There are only 8 clauses.</li>
<li>Removing any clause renders it satisfiable.</li>
<li>No 2 clauses are 'reducible' to a 2-CNF clause.</li>
</ol>

<p>So I guess my overall questions here are, in order of importance to me:</p>

<ol>
<li><p>What are some other small minimum formulae which meet the above conditions?
(i.e. for say, 4,5,6 variables and 8,9,10 clauses)</p></li>
<li><p>Is there some sort of database or "atlas" of such minimum formulae?</p></li>
<li><p>What nonrandom algorithms exist for constructing them outright, if any?</p></li>
<li><p>What are some insights into these formulae's characteristics? Can they be counted or estimated, given n (# variables) and m (# clauses)?</p></li>
</ol>

<p>Thank-you in advance for your replies.
I welcome any answer or comment.</p>

CC BY-SA 3.0
2011-09-07T15:03:48.473Z
Each 3-CNF clause disallows 1/8-th of the possible solutions.  So clearly you always need at least 8 clauses, or more if the sets of disallowed solutions overlap.  Since your condition 5 forbids non-overlapping sets of disallowed solutions for n=3, you need more than 8 clauses for this case: note that your example does not obey condition 5.
András Salamon
CC BY-SA 3.0
2011-09-08T00:52:43.063Z
Yes, you are correct on all points András. 8 clauses are a required minimum for an unsatisfiable 3-CNF formula, and so condition 5 may be bit too restrictive for my purposes in finding/constructing qualifying formulae. I realize that for n=3, condition 5 must be necessarily violated, but was included for illustrative purposes only. I am strictly interested in qualifying formulae of size n=4+ (i.e. 4 or more variables, but not too many more.). Perhaps I will scratch condition 5.
MAF
CC BY-SA 3.0
2011-09-08T01:10:38.413Z
I think that your “example” with n=3 is confusing rather than illustrative, because (as András pointed out in his comment) it is not really an example of what you are asking about in this question.  The example with n=4 is perfectly fine and illustrative.  Why don’t you just remove the example with n=3?
Tsuyoshi Ito
CC BY-SA 3.0
2011-09-08T01:19:21.120Z
Good point, Tsuyoshi. Done.
MAF
CC BY-SA 3.0
2011-09-08T01:27:30.037Z
I had overlooked the word “optional” in condition 5.  “Allowed but not preferred” makes your problem ambiguous.  If you prefer condition 5, I suggest that you just require it for the time being.  Doing so makes the problem well-defined and I hope that the resulting problem is interesting to many people.
Tsuyoshi Ito
CC BY-SA 3.0
2011-09-08T03:24:59.793Z
OK. To make things simple, I will completely remove condition 5, where I stipulated that no two 3-CNF clauses be reducible to a 2-CNF clause. After all, I am not too sure how important that condition is to what phenomena I am hoping to see in these minimal formulae.
MAF
CC BY-SA 3.0
2011-09-08T08:52:37.037Z
@MAF: removing condition 5 results in a trivial example: start with the unsatisfiable instance containing clauses $\{x\}$ and $\{x'\}$, then replace each clause $C$ with two clauses $C \cup \{v\}$ and $C \cup \{v'\}$ for a fresh variable $v$, and continue until all clauses have 3 literals.  This yields a 7 variable unsatisfiable formula with 8 clauses.  This is just chopping up the solution space into 8 disjoint pieces, which is usually not an interesting code.
András Salamon
CC BY-SA 3.0
2011-09-08T16:59:41.770Z
Unfortunately, removing condition 5 made the question much less interesting to me (although I am not sure if András’s example uses the minimum number of clauses or not).
Tsuyoshi Ito
CC BY-SA 3.0
2011-09-09T05:51:38.180Z
So yes, it seems as if completely removing the 'reduction' condition (#5) results in allowing too many trivial formulae to qualify as candidates, thus ultimately defeating the spirit of the question. I will therefore reintroduce it as a requirement. I was ultimately just hoping somebody had some type of collection of these small, unsatisfiable cores. Certainly I do not think it should be too hard to generate some potential candidates using a randomized algorithm, and then run them through a SAT solver to see if they are indeed unsatisfiable.
MAF
CC BY-SA 3.0
2011-09-13T00:03:28.957Z
Best thing is to get a pen and paper and write them up! :)
Tayfun Pay
CC BY-SA 3.0
2011-09-15T01:05:15.270Z
@Tayfun: Yeah, I have tried that already to some extent. But recently I was hoping to do some kind of statistical analysis on a somewhat larger corpus of minimal formulae to answer some basic questions, eg. How many conflicts (pos & neg appearances of variables) tend to occur in a formula? etc. Perhaps these types of basic science questions are just that, too basic, but I was hoping somebody that had done some similar research would chime in and offer some resources. Anyhow, when this question reaches the top of my priority queue, I will definitely look into it more and do more research on it.
MAF
CC BY-SA 3.0
2011-09-17T17:42:48.870Z
@MAF: I have studied the MAXIMUM side of this very extensively and I do have a CO-RP-LIKE algorithm for some variant of k-SAT. I am hoping to turn that in to a paper. However, today I realized that the Minimum Un-satisfiable formulas you defined are the formulas that cannot be solved by my algorithm and thus I get false positives. Do you have an email? I would like to collaborate.
Tayfun Pay
CC BY-SA 4.0
2024-01-26T19:28:10.113Z
The core is False, then a&~a, then (a|b)&(~a|b)&(a|~b)&(~a|~b) then what you pointed out and this continues on for n-CNF.  The only unsatisfiable case is when every possible full-literal clause is included.  However, when non-full literal clauses e.g. 3-CNF where n>3 are present, then deciding if every clause is present is a hard problem (nothing more than an alternative perspective on deciding SATisfiability)
Gregory Morse
<cc.complexity-theory><sat>
Minimum Unsatisfiable 3-CNF Formulae
MAF
# Minimum Unsatisfiable 3-CNF Formulae

(Asked by: username_0 on 2011-09-07)

I am currently interested in obtaining (or constructing) and studying 3-CNF formulae which are unsatisfiable, and are of minimum size. That is, they must consist of as few clauses (m = 8 preferably) as possible, and as few distinct variables (n = 4 or more) as possible, such that removing at least one clause will render the formula satisfiable.
More formally, any qualifying 3-CNF formula F must satisfy the following conditions:

F is unsatisfiable
F has a minimum amount (4+) of distinct variables (or their negation)
F has a minimum amount of clauses (8+)
every proper subset of F is satisfiable (allowing removal of any arbitrary clause or clauses).
F has no 2 clauses that are reducible to a 2-CNF clause
e.g. (i, j, k) & (i, j, ~k) is NOT allowed ( they reduce to (i,j) )

For example, with n=4, there exists many minimal 8-clause 3-CNF formulae that are unsatisfiable. For one, by looking at the 4-hypercube and trying to cover it with edges (2-faces), one can construct the following unsatisfiable formula:
1. (~A,  B,  D)
2. (~B,  C,  D)
3. ( A, ~C   D)
4. ( A, ~B, ~D)
5. ( B, ~C, ~D)
6. (~A,  C, ~D)
7. ( A,  B,  C)
8. (~A, ~B, ~C)

This qualifies as a minimum unsatisfiable 3-CNF formula because:

It is unsatisfiable:

Clauses 1-3 are equivalent to:  D or A=B=C
Clauses 4-6 are equivalent to: ~D or A=B=C
They imply A=B=C, but by clauses 7 and 8, this is a contradiction.

There are only 4 distinct variables.
There are only 8 clauses.
Removing any clause renders it satisfiable.
No 2 clauses are 'reducible' to a 2-CNF clause.

So I guess my overall questions here are, in order of importance to me:

What are some other small minimum formulae which meet the above conditions?
(i.e. for say, 4,5,6 variables and 8,9,10 clauses)
Is there some sort of database or "atlas" of such minimum formulae?
What nonrandom algorithms exist for constructing them outright, if any?
What are some insights into these formulae's characteristics? Can they be counted or estimated, given n (# variables) and m (# clauses)?

Thank-you in advance for your replies.
I welcome any answer or comment.

**Tags:** cc.complexity-theory, sat
> **Comments:**
> **username_1**: Each 3-CNF clause disallows 1/8-th of the possible solutions.  So clearly you always need at least 8 clauses, or more if the sets of disallowed solutions overlap.  Since your condition 5 forbids non-overlapping sets of disallowed solutions for n=3, you need more than 8 clauses for this case: note that your example does not obey condition 5.  
> **username_0**: Yes, you are correct on all points András. 8 clauses are a required minimum for an unsatisfiable 3-CNF formula, and so condition 5 may be bit too restrictive for my purposes in finding/constructing qualifying formulae. I realize that for n=3, condition 5 must be necessarily violated, but was included for illustrative purposes only. I am strictly interested in qualifying formulae of size n=4+ (i.e. 4 or more variables, but not too many more.). Perhaps I will scratch condition 5.  
> **username_2**: I think that your “example” with n=3 is confusing rather than illustrative, because (as András pointed out in his comment) it is not really an example of what you are asking about in this question.  The example with n=4 is perfectly fine and illustrative.  Why don’t you just remove the example with n=3?  
> **username_0**: Good point, Tsuyoshi. Done.  
> **username_2**: I had overlooked the word “optional” in condition 5.  “Allowed but not preferred” makes your problem ambiguous.  If you prefer condition 5, I suggest that you just require it for the time being.  Doing so makes the problem well-defined and I hope that the resulting problem is interesting to many people.  
> **username_0**: OK. To make things simple, I will completely remove condition 5, where I stipulated that no two 3-CNF clauses be reducible to a 2-CNF clause. After all, I am not too sure how important that condition is to what phenomena I am hoping to see in these minimal formulae.  
> **username_1**: @MAF: removing condition 5 results in a trivial example: start with the unsatisfiable instance containing clauses $\{x\}$ and $\{x'\}$, then replace each clause $C$ with two clauses $C \cup \{v\}$ and $C \cup \{v'\}$ for a fresh variable $v$, and continue until all clauses have 3 literals.  This yields a 7 variable unsatisfiable formula with 8 clauses.  This is just chopping up the solution space into 8 disjoint pieces, which is usually not an interesting code.  
> **username_2**: Unfortunately, removing condition 5 made the question much less interesting to me (although I am not sure if András’s example uses the minimum number of clauses or not).  
> **username_0**: So yes, it seems as if completely removing the 'reduction' condition (#5) results in allowing too many trivial formulae to qualify as candidates, thus ultimately defeating the spirit of the question. I will therefore reintroduce it as a requirement. I was ultimately just hoping somebody had some type of collection of these small, unsatisfiable cores. Certainly I do not think it should be too hard to generate some potential candidates using a randomized algorithm, and then run them through a SAT solver to see if they are indeed unsatisfiable.  
> **username_3**: Best thing is to get a pen and paper and write them up! :)  
> **username_0**: @Tayfun: Yeah, I have tried that already to some extent. But recently I was hoping to do some kind of statistical analysis on a somewhat larger corpus of minimal formulae to answer some basic questions, eg. How many conflicts (pos & neg appearances of variables) tend to occur in a formula? etc. Perhaps these types of basic science questions are just that, too basic, but I was hoping somebody that had done some similar research would chime in and offer some resources. Anyhow, when this question reaches the top of my priority queue, I will definitely look into it more and do more research on it.  
> **username_3**: @MAF: I have studied the MAXIMUM side of this very extensively and I do have a CO-RP-LIKE algorithm for some variant of k-SAT. I am hoping to turn that in to a paper. However, today I realized that the Minimum Un-satisfiable formulas you defined are the formulas that cannot be solved by my algorithm and thus I get false positives. Do you have an email? I would like to collaborate.  
> **username_4**: The core is False, then a&~a, then (a|b)&(~a|b)&(a|~b)&(~a|~b) then what you pointed out and this continues on for n-CNF.  The only unsatisfiable case is when every possible full-literal clause is included.  However, when non-full literal clauses e.g. 3-CNF where n>3 are present, then deciding if every clause is present is a hard problem (nothing more than an alternative perspective on deciding SATisfiability)  

---

## 3 answers

### Answer by username_5 on 2011-09-30. Score: 15

Take the formula in your example, remove the clause $\lnot A \lor \lnot B \lor \lnot C$ and add the following $2$ clauses:

$\lnot A \lor \lnot B \lor \lnot E$  
$\lnot B \lor \lnot C \lor E$

You will get a minimal unsatisfiable formula with $n=5$, $m=9$ obeying condition 5.

In general, you may randomly pick a clause $l\_1 \lor l\_2 \lor l\_3$ and split it in $2$ clauses:

$l\_1 \lor l\_2 \lor v$  
$l\_2 \lor l\_3 \lor \lnot v$

where $v$ is a new variable. Each time you do so, both $n$ and $m$ are incremented by $1$. Repeating this process allows you to *"stretch"* the initial unsatisfiable core, and to obtain minimal unsatisfiable formulas (obeying condition 5) whose $r=\frac{m}{n}$ tends to $1$ as $n$ grows (which is pretty rare, as formulas with $r=1$ are satisfiable with high probability).

> **Comments:**
> **username_0**: Thanks for the reply, Walter. The procedure you describe is very helpful indeed for generating even more slightly larger min unsat formulae of 'similar' structure, that is, once you have a core set that you find has interesting properties.  
> **username_5**: @MAF: You are very welcome. Thank you for posting such an interesting question.  
> **username_4**: Notice you go from 8 full (3-literal) clauses in 3-CNF to 8-1+2=9 3-CNF clauses, and if you expand out the first 7 original formulas by adding ~E and E, you have 14 formulas.  Then ~A and ~B and ~C and (E or ~E) are added along with already added terms from the newly introduced ones.  So 4 variables with all 4-literal clauses, is only UNSAT if it contains all 16 clauses.  This seems to be the general case, though something has me worried about pure literals, as they dont effect satisfiability.  Actually pure literals have no effect, its true.  

---

### Answer by username_6 on 2020-01-24. Score: 4

Constructing unsatisfiable 3SAT problems isn't that hard if you just build up to whatever you're looking for. For example let's start with a base requirement.

1. An equation equal to `A & !A` is unsatisfiable. It's actually the only thing that's unsatisfiable. So we're trying to write a system of equations that forces this relationship.

Next we'll examine 2SAT to attempt to get to that essential 1SAT unsatisfiable.

2. Only an equation equal to `(A v B) & (A v !B)` is equal to A. Of course now that we have more variables there's more ways to do this. For example, instead of the first clause, we could have `(A v C) & (!C v B)`. By the property of resolution, this is equal to `A v B`. So now we can mess around with two SAT and create all sorts of variables that are unsatisfiable. Touching back on where we started, to get an unsatisfiable equation we need an ultimate equivalence of `(A v B) & (A v !B) & (!A v C) & (!A v !C)` Remember to stay focused on the fact that we're trying to get A & !A and you're good.

That brings us to 3SAT or coming up with equations that equate to the other equations.

3. The tool we're going to use again should seem familiar, it's resolution again. So let's say we want `(A v B)`. To get there we need the pattern `(A v B v C) & (A v B v !C)` of course now that we have three variables we can get more sophisticated. We can generate two variable clauses, new three variable clauses, or even extend into four variable clauses. It just depends on how many variables are in both clauses. If both variables other than the variable negating itself are the same, then it resolves to a 2 variable clause (such as `(A v B v C) & (!A v B v C) = (B v C)`). If one of them is different but the other is the same, then it resolves to a 3 variable clause (such as `(A v B v C) & (!A v B v D) = (B v C v D)`. Finally, and most maliciously, if both variables are different it resolves to a 4 variable clause (here it's `(A v B v C) & (!A v D v E) = (B v C v D v E)`). So now the number of clauses it's equal to can grow. However once you're in a 4 variable equation, resolving and equating two of the variables will remove the variable you're resolving on. So a 4 variable clause in conjunction with a 3 variable clause (or another 4 variable clause) can reduce to a 3 variable clause (example: (`(A v B v C v D) & (!A v B v C) = (B v C v D)`). Using this techniques you can build paths away from the answer of whether it's satisfiable or not, as long as you converge back into the earlier two cases.

A quick gotcha is `(A v B v C) & (!A v !B v C)` equates to true. Watch out for resolving two variables simultaneously because this is `B v !B v C`. Oops.

> **Comments:**
> **username_4**: Actually you start with False, and build up A&!A from there, technically speaking to broaden the generalization.  

---

### Answer by username_7 on 2017-07-30. Score: 2

I believe condition number 5 is not really held in your example and cannot be held ever.

Let the following clauses be equivalent:

( p, q) = (~A,B,D)(A,~B,~D)

Which will allow us to map the clauses of A, B, C, and D to new variables p, q, r, and s as the following truth table:

A B C D | p q r s
-----------------
0 0 0 0 | 0 1 0 0
0 0 0 1 | 0 1 0 1
0 0 1 0 | 0 1 1 0
0 0 1 1 | 0 1 1 1
-----------------
0 1 0 0 | 1 0 0 0
0 1 0 1 | 0 0 0 0
0 1 1 0 | 1 0 0 1
0 1 1 1 | 0 0 0 1
-----------------
1 0 0 0 | 0 0 1 0
1 0 0 1 | 1 0 1 0
1 0 1 0 | 0 0 1 1
1 0 1 1 | 1 0 1 1
-----------------
1 1 0 0 | 1 1 0 0
1 1 0 1 | 1 1 0 1
1 1 1 0 | 1 1 1 0
1 1 1 1 | 1 1 1 1
-----------------

And now we can express the clauses of A, B, C, and D in terms of p, q, r, and s:

1. (~A,  B,  D) = ( p, q,~r, s)( p, q,~r,~s)
2. (~B,  C,  D) = (~p, q, r, s)(~p,~q, r, s)
3. ( A, ~C   D) = ( p,~q,~r, s)(~p, q, r,~s)
4. ( A, ~B, ~D) = ( p, q, r, s)( p, q, r,~s)
5. ( B, ~C, ~D) = ( p,~q,~r,~s)(~p, q,~r,~s)
6. (~A,  C, ~D) = (~p, q,~r, s)(~p,~q, r,~s)
7. ( A,  B,  C) = ( p,~q, r, s)( p,~q, r,~s)
8. (~A, ~B, ~C) = (~p,~q,~r, s)(~p,~q,~r,~s)

Since all clauses are shown and associated with an A, B, C, and D clauses. Then we can claim that the p,q,r, and s clauses can be reduced to:

( p, q, r)
( p, q,~r)
( p,~q, r)
( p,~q,~r)
(~p, q, r)
(~p, q,~r)
(~p,~q, r)
(~p,~q,~r)

Which is obviously violate the condition number 5.

What I want to point out is that even the example is not explicitly shows that there are 2 clauses that can be reduced to 2-CNF, but implicitly is has(e.g.
 (~A,B,D) and (A,~B,~D)), you might not be able to express the 2-CNF with the given variables but when you introduce different mapping for the problem you will be able to express them.


---

