Inverted logic can be unnatural. Let's move over to quantified logic:
$$\forall x:({duck}(x)\land {quacks}(x))\lor ({dog}(x)\land {barks}(x))\lor(\lnot {duck}(x)\land\lnot{dog}(x))$$
"Everything is either a duck (and quacks), or a dog (and barks) or else it is neither duck nor dog."
If write down the dual, and then use DeMorgan's on it to flip the logic, we get something unnatural:
Dual (so far so good):
$$\lnot\exists x:\lnot((({duck}(x)\land {quacks}(x))\lor ({dog}(x)\land {barks}(x))\lor(\lnot {duck}(x)\land\lnot{dog}(x)))$$
DeMorgan's, step 1:
$$\lnot\exists x:\lnot(({duck}(x)\land {quacks}(x))\land\lnot({dog}(x)\land {barks}(x)\land\lnot(\lnot {duck}(x)\land\lnot{dog}(x))$$
step 2:
$$\lnot\exists x:(({\lnot duck}(x)\lor {\lnot quacks}(x))\land({\lnot dog}(x)\lor {\lnot barks}(x)\land({duck}(x)\lor{dog}(x))$$
"There does not exist a thing which, simultaneously:
- is either a non-quacker or a non-duck; and
- is either a non-barker or a non-dog; and
- is either a duck or a dog, or both."
Say what? :)
Sum-of-products goes hand in hand with divide-and-conquer. A sum-of-products representation of a proposition divides it into all the cases which independently make it true. Proposition P is true if such and such; or some situation; or if that other case. Division into independent cases assists clarity in reasoning.
Furthermore, in predicate logic and related reasoning, we usually deal with positives, like "duck", and less with negatives like "non-duck". "non-duck" is not a class of object. Things are classified using positive attributes that they do have, not what they don't have. The space of things which are "non-duck" is unbounded. Reasoning with such negatives is confusing.
In propositional logic, as in zeroth order logic without quantifiers, like what we deal with in logic circuits, we can write down the complete truth table. It may turn out that the negative space of a function is in fact simpler to characterize.
For instance a boolean formula over four variables has only a 16 row table. Suppose there are three rows for which it is true, and it is false everywhere else. Then a simple formula is produced by giving those three combinations of four variables, and combine them with or.
But suppose that the formula is only false in three rows. Then it may be more convenient and natural to characterize these exceptions, and express it that way: the formula is true when the variables are not in this combination, and not in this other combination, and not in this third combination. The not operators can then distribute into the combinations, yielding a product over sums.
Positive example:
A B C D P
0 0 0 0 0
0 0 0 1 0
0 0 1 0 0
0 0 1 1 0
0 1 0 0 1 *
0 1 0 1 0
0 1 1 0 0
0 1 1 1 1 * Sum of products:
1 0 0 0 0 P = A'BC'D' + A'BCD + ABC'D
1 0 0 1 0
1 0 1 0 0
1 0 1 1 0
1 1 0 0 0
1 1 0 1 1 *
1 1 1 0 0
1 1 1 1 0
Negative example:
A B C D P
0 0 0 0 1
0 0 0 1 1
0 0 1 0 1
0 0 1 1 1
0 1 0 0 0 *
0 1 0 1 1
0 1 1 0 1
0 1 1 1 0 * Product of sums:
1 0 0 0 1 P = (A'BC'D' + A'BCD + ABC'D)'
1 0 0 1 1 P = (A'BC'D')'(A'BCD)'(ABC'D)'
1 0 1 0 1 P = (A + B' + C + D)(A + B' + C' + D')(A' + B' + C + D')
1 0 1 1 1
1 1 0 0 1 Sum of products:
1 1 0 1 0 * A'B'C'D' + A'B'C'D + A'B'CD' ... (10 more terms)
1 1 1 0 1
1 1 1 1 1
Even so, in spite of its simplicity, it is somewhat hard to understand the third formula (product-of-sums) compared to the second (product-of-negated-products). However, the alternative unsimplified sum of 13 products is also hard to understand, due to the large number of terms.