Prove there are 2^2^N functions with N binary bit inputs and one bit output. Proof by picture: For 1 bit input, 2^1 = 2 possible input combinations input| output 2^2^1 = 2^2 = 4 possible functions | f0 f1 f2 f3 0 | 0 0 1 1 1 | 0 1 0 1 For 2 bit input, 2^2 = 4 possible input combinations input| output 2^2^2 = 2^4 = 16 possible functions | f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 fA fB fC fD fE fF 0 0 | 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 1 | 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 0 | 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 1 | 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 For 3 bit input, 2^3 = 8 possible input combinations input | output 2^2^3 = 2^8 = 256 possible functions | f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 fA fB fC fD fE fF ... f255 0 0 0 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ... 1 0 0 1 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ... 1 0 1 0 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ... 1 0 1 1 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ... 1 1 0 0 | 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 ... 1 1 0 1 | 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 ... 1 1 1 0 | 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 ... 1 1 1 1 | 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 ... 1 The next would be 4 bit input, thus 2^4 = 16 possible input combinations, thus 2^2^4 = 2^16 = 65,536 possible functions The next would be 5 bit input, thus 2^5 = 32 possible input combinations, thus 2^2^5 = 2^32 = 4,294,967,296 possible functions QED There are 2^2^N possible functions with N binary bit inputs and one binary bit output. These are called "truth tables" and any function can be implemented with less than 2^(N-1), N input "and" gates plus one "or" or "nor" gate (Use the "nor" gate if more than half the outputs are '1') A maximum of 2^((N+1)/2)+1 "and" gates.