Boolean functions: functional completeness
Sum of products can represent any truth table:
z = p1 + p2 . . . + pn
each pi = l1l2 . . . lm
and each lk is a literal
Applying double negation to the right hand side,
z = ~~(p1 + p2 . . . + pn)
  = ~(~p1 * ~p2 . . . * ~pn) by DeMorgan's law
OR has been eliminated.
Therefore, {NOT, AND} is a functionally complete set.
Similarly, {NOT, OR} is also functionally complete.
Are {AND} and {OR} functionally complete?  No.
Consider any Boolean function composed of only these functions.
If all of the inputs are 1, then the output MUST be 1,
and if all the inputs are 0, then the output MUST be 0.
1 AND 1 == 1, 1 OR 1 == 1 0 AND 0 == 0, 0 OR 0 == 0
However, it is certainly possible to contruct a truth table where the output
is 0 when all the inputs are 1, and vice versa.