Discrete Mathematics for Computer Science

(Romina) #1
Normal Forms 127

Example 7. Let * be the formula

* = -((p -- (q V r)) A (-q) A (-r) A p)

Find a CNF for *1.
Solution. The negation of * is equivalent to
(p - (q V r)) A (--q) A (-"r) A p

which in Example 3 was shown to have F as a DNE So, * is equivalent to -F, and

pushing negations inward gives the CNF formula T. U

2.5.4 Application: CNF and Combinatorial Networks

To interpret the CNF for a boolean expression, we view a clause as a meet of a set of
literals. The CNF for a formula is viewed as a join of a set of clauses. The CNF for a
boolean expression gives us another option to use when designing combinatorial circuits.
Example 8. Let x, y be elements of a boolean algebra. Use the CNF for the boolean
expression (x A y) V (-,x A --y) to design a combinatorial circuit.

Solution. The truth table for the expression is


x y Ix Ay ('-,x A-y) (x Ay) V(-X A-"y)

S T F T

T F F F F

F T F F F

S F T T

The DNF for - ((x A y) V (-,x A -,y)) is just

(x A -y) V (--x A y)
Therefore, the CNF for (x A y) V (-,x A -y) is

--((x A -y) V (-.x A y)) = -'(x A -y) A --(-'x A y)

=(--X V •--y) A (----X V -y)

= (-'x V y) A (x V -y)
The combinatorial circuit for this boolean expression is

Y

X X V -
(X V -,y) "A (-X V y)

x @•• xv Y F
y U

2.5.5 Testing Satisfiability and Validity

It turns out to be very easy to tell when a formula in DNF is satisfiable. This is one reason
why a DNF is often nice to work with.

Free download pdf