How to prove that a set of logical connectives is functionally complete(incomplete)?

How to prove that a set of logical connectives is functionally complete(incomplete)? For example, we are given this set:

$ \left\{\begin{matrix} f = (01101001) \\ g = (1010) \\ h = (01110110) \\ \end{matrix}\right. $

I would appreciate any examples, helpful information or links\books where this subject is accessibly explained.


Proving that the set of connectives complete is typically done by showing that they can express each of a known complete set such as {AND,NOT} or {NOR} -- only occasionally will it be easier to provide a direct procedure for expressing an arbitrary truth table.

On the other hand, proving a set of connectives is incomplete is usually done by an argument along the lines of:

All expressible functions of $n$ variables have such-and-such-property, because the set of functions with this property is closed under each of the connectives and the function that just returns one of the variable also has this property. However, this-or-that particular function of $n$ variables doesn't have such-and-such property, and therefore it cannot be expressed, Q.E.D.

The proof will be more or less elegant according to how simple a "such-and-such" property you can get away with. At worst, such-and-such property will be something like "is one of these 27 particular functions", and it will be quite tedious (but not difficult) to verify that the 27 given functions are indeed closed under each connective.


A systematic procedure when a set of connectives are given is to start by working out which functions of a single variable can be produced. If one of the four possible functions can't be expressed, there's your answer. Then look for which functions of two variables can be expressed -- start with $\{0,1,x,y,\bar x,\bar y\}$ and try all combinations of those with the given connectives. Either you will quickly reach a dead end (which gives you a small "such-and-such" property for the incompletness proof), or you reach a sufficiently nontrivial combination of $x$ and $y$ that you can produce NOR by combining it with appropriate negations, and then you have a complete set of connectives.

In your particular case, we quickly notice that $g(x,y)$ is the negation of either $x$ or $y$ (depending on how your notation works), and $h(x,x,x)$ is the constant function $0$. This takes care of all one-argument functions.

Now what happens if you let one of the inputs to $h$ be one of these constants, and the other two be free variables?


We use the connectives $\neg$. $\vee$, and $\wedge$ (a redundant set of connectives). We show that they form a functionally complete set. Take a truth-functional $\mathbf{F}$ of the propositions $P_1,\ldots,P_n$. Now, write down all assignments that make $\mathbf{F}$ true. We construct a sentence that says one of these assignments holds true. We do this by example. We have the variables $P_1$ ,$P_2$, $P_3$, $P_4$. The following assignments are mapped by $\mathbf{F}$ to $T$.

$$\begin{array}{|c|c|c|c|} \hline T & T & F & F \\ \hline T & F & T & F\\ \hline F & F & F & F\\ \hline \end{array}$$

We can translate this as a sentence that says the assignment of the first, second, or third line holds:

$$(P_1\wedge P_2\wedge \neg P_3\wedge\neg P_4)\vee(P_1\wedge \neg P_2\wedge P_3\wedge\neg P_4)\vee(\neg P_1\wedge \neg P_2\wedge \neg P_3\wedge\neg P_4).$$

It should be clear that every truth-table and hence every truthfunctional can be represented in this way (the disjunctive normal form).