In Boolean logic, the term implicant has either a generic or a particular meaning. In the generic use, it refers to the hypothesis of an implication (wiktionary:implicant). In the particular use, a product term (i.e., a conjunction of literals) P is an implicant of a Boolean function F, denoted , if P implies F (i.e., whenever P takes the value 1 so does F). For instance, implicants of the function
include the terms , , , , as well as some others.
A prime implicant of a function is an implicant that cannot be covered by a more general, (more reduced - meaning with fewer literals) implicant. W. V. Quine defined a prime implicant of F to be an implicant that is minimal - that is, the removal of any literal from P results in a non-implicant for F. Essential prime implicants (aka core prime implicants) are prime implicants that cover an output of the function that no combination of other prime implicants is able to cover.
Using the example above, one can easily see that while (and others) is a prime implicant, and are not. From the latter, multiple literals can be removed to make it prime:
- , and can be removed, yielding .
- Alternatively, and can be removed, yielding .
- Finally, and can be removed, yielding .
The process of removing literals from a Boolean term is called expanding the term. Expanding by one literal doubles the number of input combinations for which the term is true (in binary Boolean algebra). Using the example function above, we may expand to or to without changing the cover of .
The sum of all prime implicants of a Boolean function is called its complete sum, minimal covering sum, or Blake canonical form.
- De Micheli, Giovanni. Synthesis and Optimization of Digital Circuits. McGraw-Hill, Inc., 1994