PDNF and PCNF in Discrete Mathematics

PDNF:
It stands for Principal Disjunctive Normal Form. It refers to the Sum of Products, i.e., SOP. For eg. : If P, Q, R are the variables then (P . Q’ . R) + (P’ . Q . R) + (P . Q . R’) is an example of an expression in PDNF. Here ‘+’ i.e. sum is the main operator.

You might be confused if there exists any difference between DNF (Disjunctive Normal Form) and PDNF (Principal Disjunctive Normal Form). The Key difference between PDNF and DNF is that in case of DNF, it is not necessary that the length of all the variables in the expression is same. For eg.:

  1. (P . Q’ . R) + (P’ . Q . R) + (P . Q) is an example of an expression in DNF but not in PDNF.
  2. (P . Q’ . R) + (P’ . Q . R) + (P . Q . R’) is an example of an expression which is both in PDNF and DNF.

PCNF:
It stands for Principal Conjunctive Normal Form. It refers to the Product of Sums, i.e., POS. For eg. : If P, Q, R are the variables then (P + Q’+ R).(P’+ Q + R).(P + Q + R’) is an example of an expression in PDNF. Here ‘.’ i.e. product is the main operator.

Here also, the Key difference between PCNF and CNF is that in case of CNF, it is not necessary that the length of all the variables in the expression is same . For eg.:

  1. (P + Q’+ R).(P’+ Q + R).(P + Q) is an example of an expression in CNF but not in PCNF.
  2. (P + Q’+ R).(P’+ Q + R).(P + Q + R’) is an example of an expression which is both in PCNF and CNF.

Properties of PCNF and PDNF:

  1. Every PDNF or PCNF corresponds to a unique Boolean Expression and vice versa.
  2. If X and Y are two Boolean expressions then, X is equivalent to Y if and only if PDNF(X) = PDNF(Y) or PCNF(X) = PCNF(Y).
  3. For a Boolean Expression, if PCNF has m terms and PDNF has n terms, then the number of variables in the such a Boolean expression = \log_{2} (m + n).


My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.