7

The empty clause is a clause containing no literals and by definition is false: $c = \{\} = F$

What then is the empty clause set, and why does it evaluate to true?

Danny King
  • 1,953
  • 1
    The empty set does not exist in propositional logic, so your question doesn't really make sense... – Zhen Lin Jan 03 '12 at 14:54
  • I perhaps should give some more context. I am studying satisfiability. Let F be a clause-set (a conjunction of clauses). If the empty clause belongs to F then F is unsatisfiable. If F is the empty set then F is satisfiable. I think I am confused about the scenarios where F contains only one clause; the empty clause, and when F has no clauses. Why is the first unsatisfiable (i.e. false) but the second satisfiable (true)? – Danny King Jan 03 '12 at 15:01
  • I have updated the title, thanks. – Danny King Jan 03 '12 at 15:06
  • Are your clauses supposed to be in disjunctive normal form, perhaps? Then the empty clause is false because $\bot \lor p = p$ always. Whereas $\top \land p = p$ always, so the empty set is always satisfiable. – Zhen Lin Jan 03 '12 at 15:34
  • That makes perfect sense, thank you! Would you like to convert your comment into an answer so that I can accept it? If not, I'll type it up and give you credit. Thanks! – Danny King Jan 03 '12 at 15:52

2 Answers2

15

Remember, we take the disjunction over the elements of a clause, then the conjunction over the entire clause set. So if a clause is empty we take the empty disjunction, and if the entire clause set is empty we take the empty conjunction.

What does it mean to take an empty disjunction or empty conjunction? Let's consider a similar situation. Over the real numbers, what is an empty sum, or an empty product? I claim that an empty sum should be $0$; an empty product should be $1$. Why is this? Clearly, we have:

sum($2,3,4$) + sum($5,6,7$) = sum($2,3,4,5,6,7$)

sum($2,3,4$) + sum($5,6$) = sum($2,3,4,5,6$)

sum($2,3,4$) + sum($5$) = sum($2,3,4,5$)

Now make the second sum empty:

sum($2,3,4$) + sum() = sum($2,3,4$)

So sum() should be $0$. In the same way, product() must be $1$. (You can see this by replacing "sum" by "product" and "+" by "$\times$" in the lines above.)

In general, a commutative, associative binary operation applied on an empty set should be the identity element for that operation.

Now back to your original example.

Since the identity for disjunction is "false" (because false OR x = x and x OR false = x for any x), an empty clause is false.

Since the identity for conjunction is "true" (because true AND x = x and x AND true = x for any x), an empty clause set is true.

Ted
  • 35,732
3

You can get an intuition why this is so by observing that:

  1. A disjunction is true iff there exists a member which is true. In an empty disjunction (empty clause) there is no such member, so it is always false.
  2. A conjunction is true iff no member which is false exists. An empty conjunction (empty set in cnf problems) has no member (and a fortiori no member which is false) so it is always true.

It is a similar intuition to the idea of universal quantification being true on the empty domain.

Isnax
  • 31