Why every function can be written as a unique product of maxterms??
That's because each maxterm corresponds to one and only one tuple of values of the function's arguments. E.g., if a function f(x1, x2, x3) has three arguments, then the triple <x1, x2, x3> can have 8 values, from <0, 0, 0> to <1, 1, 1>. Each maxterm is true on one and only one of those 8 values.
Therefore, the sum-of-maxterms representation of a function f(x1, ..., xn) includes precisely those maxterms that correspond to values of <x1, ..., xn> where f(x1, ..., xn) = true.
Please post here if this explanation is unclear or if you need a more formal proof.
I am sorry, I thought you were talking about disjunctive normal form (DNF), not conjunctive normal form (CNF).
In CNF every maxterm corresponds to a line in the truth table where the function is false. First, for notation, suppose 0 means false and 1 means true. Next, ifis a variable and
or
, let
denote
when
and
(the negation of
) when
.
Supposewhere
or
. Then the maxterm
in included into the CNF of
. E.g., if
then the maxterm
is in the CNF. Indeed,
if
,
and
; on all other values of
this maxterm is 1. Therefore,
forces the whole conjunction to be false on 0,1,0 and is true (i.e., does not force anything) on other values.
From this it should be clear how to construct a CNF.
As for uniqueness, supposewhere
and
are maxterms. (
means conjunction). Then
implies thta there exist
such that
. This means
because every
(
) appears in
and every member of disjunction must be false. Since the CNF's of
and
are the same,
is one of
and therefore
is also 0. Similarly,
implies
![]()