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, if is a variable and or , let denote when and (the negation of ) when .
Suppose where 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, suppose where 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