Computing legend and former Apple Fellow Alan Kay has kindly written a detailed note explaining a comment he made at CES, facetiously reported here. Looking for a newsy nugget from Kay’s complex talk, I was trying to make a joke about something profound being revealed at the CES gadget orgy. (“We all thought it was pretty funny too,” said Kay in a separate email).
Kay’s note explains a comment he made about the logical expression NOT BOTH underlying all human thinking.
“What I said was that all human symbol/logical REPRESENTATION systems and all computers past present and future can be made from NOT BOTH,” Kay says.
Kay’s full, fascinating email after the jump.
Here’s Kay’s email in full:
Thanks for your writeup on my talk yesterday.
One little correction is that I didn’t say:
”All human knowledge can be explained by the simple logical expression NOT BOTH, Kay said. “It’s a logical expression that explains all thinking,” he said in the middle of his speech”
What I said was that all human symbol/logical REPRESENTATION systems and all computers past present and future can be made from NOT BOTH.
I committed the classic error of letting the clock pressure me into using one sentence where I should have used either none or a few.
The analogy is that all living things we know about on the planet are made from just a few kinds of atoms (roughly six kinds). This didn’t explain life, because it is the complex dynamic architecture of those atoms which explains life, not the atoms themselves. Similarly, we can make arches from bricks, but it is very hard to invent an arch from looking at a brick (took humans thousands of years to have the idea and figure out how to do it).
The NOT BOTH operator (called NAND in computerdom) was first realized by American mathematician Charles Peirce around 1880 when he was looking at Boole’s book on logic, which showed how all logical operations could be made from AND, OR, and NOT. Peirce realize that NOT BOTH on all the possible values of inputs A and B was sufficient to do what the three more understandable operations of Boole and other logicians did.
Today, this operation is often called the “Sheffer Stroke” (ca. early 1900s) because Peirce’s work got lost for a while.
I think that using 0 and 1 is easier to understand than false and true (or off and on, or no or yes) so let:
0 be used to signify false or off or no
1 be used to signify true or on or yes
Define op = NOT BOTH as
A op B = C
— — —
0 0 = 1
0 1 = 1
1 0 = 1
1 1 = 0
We sometimes use this operation in ordinary life.
For example, if we are talking about the life support of a patient, and A is the patient’s family, and B is the doctor, and C means should be the life support of the patient be on (1) or off (0), then the logic we want to perform is that we can only turn off the life support if both the family and the doctor concur.
That is A:Yes B:Yes C:Off
Of course most people wouldn’t think this way, because our nervous systems are terrible at NOT (and negation of all kinds). (We can’t say to someone “Don’t think about the pink elephant” without conjuring one — or “The jury will disregard the last remark”.)
The universality of this for making representations is easier to see now than in Peirce’s time, because we can make every element in a computer (both memory and processing logic) from just NOT BOTH. And people now have an informal sense by using computers that they can represent “everything” (all written languages, anything that can be made from marks, text, pictures, movies, sounds, and representation systems that are more obscure, etc.).
And, back to the analogy of the relation between a few kinds of atoms and making life, in theory one should be able to make machines that think as well (and better than us) from architectures completely fashioned from the single kind of brick of NOT BOTH. But both science and engineering require real examples of models that work — so these are conjectures (but good ones) at this point.
You can see why I should have kept my mouth shut about this (or given a different talk).