3 Functional equivalence

Given a boolean function expressed as a truth table, we can derive “canonical” SOP and POS forms that express the same function. We can further simplify the SOP and POS forms using K-map to minimize the use of resources.

However, canonical SOP and POS are not the only methods to express the logic of a Boolean function. Given a truth table and a function writing using boolean operators, how do we know the truth table and the function (using boolean operators) are functionally equivalent?

For integer and real number function, this usually involves a lot of mathematical proofs. However, in the case of Boolean algebra, we only need to enumerate all the possible parameter permutations, feed those permutations to both the truth table and the function, and make sure their outputs agree.

This method of enumerate-and-test is possible because given a Boolean function only has a finite number n of parameters, there are only 2n possible permutations of parameters. As a result, it is possible to enumerate all possible cases and test them all. For a function that has an integer or real number domain, it is impossible to enumerate all the values of parameters because the domain is infinite.