attempt to restate question
From the feedback, it is obvious that I have not clearly articulated my point. Also, it is not my intent to be condescending. I very clearly have a notion / idea / question that is contrary to the doctrine subscribed to by the readers of this question. I am genuinely trying to reconcile something that is so incongruent to me that it is difficult to even put in to words. I literally do no know how to express it in a succinct simple paragraph.
This may not help, but let me try an analogy. Let's say that hypothetically there are two different groups, the first one is called 'EE' and the second is called 'CS'. Both groups consider themselves to be authoritative experts in Boolean circuits. As unlikely as it may seem, for some reason the two groups do not speak to each other or read the others results, despite their common interest. There are some differences:
The "EE" group builds boolean circuits. They literally turn theoretical ideas into to something physical. Physical goods mean there are very tangible, objectively unambiguous costs involved.
The "CS" group does not (usually) build circuits. Because nothing is physically produced, the physical resource costs tend to be dramatically lower for the "CS" group, almost to the point where it is "effectively zero."
Although both groups consider themselves boolean circuit experts, there is a curious discrepancy in the choice for their respective "boolean basis." As long as the boolean basis is "complete", that basis can be provably shown to be able to serve as the building block for every possible n-arity boolean function. What is important is that there are a couple of "natural" boolean basis choices, but as long as the boolean basis choice is "complete", the different "natural" choices can all implement all n-arity boolean functions- that is to say, one choice is not "more powerful" or "more expressive" than the other. The "complete" property means that they are "logically identical", despite the seemingly paradoxical fact that they are composed of distinctly different primitives.
Almost since the dawn of building boolean circuits, the "EE" group has consistently and invariably chosen "NAND" (which, to an EE person, there is no need to state the obvious "and NOR" qualification). For the EE group, the reason for this choice is so obvious to them it literally does not occur to them that anyone would make a different choice.
The "CS" group, on the other hand, has chosen "AND, OR, NOT". This choice can express exactly the same n-arity circuits as "NAND", and vice versa, due to the fact that both are a "complete" boolean basis.
The fact that the "EE" group has very real physical costs, which tends to translate directly in to money, means that even though there is no logical difference between a boolean basis choice, if one of the many available choices in any way what-so-ever has a monetary advantage, that's the one that is picked.
Money has a tendency to place a simply enormous pressure to ensure that whatever "choice" is made is the optimal one. It is not hyperbole to say that billions of dollars riding on the decision. It is difficult to put in to words how much pressure and effort goes in to this. There is simply no detail, and the pedantic consequences of every possible permutation of those details, behind choosing "NAND" that is not completely understood and justified.
In my original question, I point out two examples of this: The Apollo Guidance Computer, which made landing on the moon possible, and the Cray-1, the legendary computer by Seymour Cray.
If you are unaware of the details, it is difficult to express what it means to "Space Certify" a design. I think it's safe to say that Seymour Cray is widely recognized to be genuinely gifted at "building circuits". Although it may seem "insignificant", the decision to use 4 / 5 input NAND gates exclusively in the design of the Cray 1 was one of the contributing factors behind its legendary performance.
Again, I sincerely apologize for the lengthy exposition, but based on the responses I can't help but feel that at least some of you do not fully appreciate the significance of the fact that
- There is another group of people who consider themselves "boolean circuit experts".
- This other group of "boolean circuit experts" has consistently, universally, and invariably chosen "NAND" as their boolean basis, despite the fact that there are multiple, equivalent options.
- As near as I can tell, the "CS" group began developing their boolean circuit models (i.e., $AC^0$, $NC$, etc) right around the time the first P vs. NP descriptions and theories began to take form in the 1970's.
- This means that the "EE" boolean circuit theories predate the "CS" boolean circuit theories by decades.
- Yet, despite a rich, mature, and well understood body of work that was available, the "CS" group made the curious decision to go with "AND, OR, NOT".
- At some point, someone in the "CS" group "discovered" that PARITY was not in $AC^0$, and published a peer reviewed paper.
I fully appreciate that all of this sounds completely condescending. This is genuinely not my intent. It's difficult for me to gauge this audience to determine at what point providing the justification for my point turns in to sounding like a condescending ass.
It is fairly obvious that I felt a need to justify my simple question:
The well known result regarding parity and $AC^0$, also taken from from Wikipedia:
The Boolean function PARITY, which is 1 if and only if the sum of its input bits is odd, does not lie in $AC^0$.
My question is: "Why is this considered to be a fundamentally important result?"
Now, I admit, this is an extremely odd question. The reason why I asked it is because, at least for me, I find this detail extremely interesting:
- The people who actually build circuits use NAND as their boolean basis.
- The "CS" theory people choose "AND, OR, NOT".
For me, this stands out like a neon red light. Even if you think I'm completely wrong, I at least hope that you recognize "I wasn't aware of any of this, but now that you mention, it does seem a little bit weird." Experience tells me this usually goes one of two ways:
- You completely and thoroughly understand the consequences of breaking with the established tradition.
- You're ignorant of the nuances.
People in the first category are easy to spot. For me, it is simply inconceivable that anyone who truly understood the ramifications of deciding to go with "AND, OR, NOT" instead of "NAND" did not spend 5 minutes doodling out the maximal worst case for 3, 4, etc bits. At which point, you sort of chuckle and say "Man, this is going to totally suck in the XOR corner case."
People in the second category are harder to predict. In the worst case, they spend no effort researching the issue. This is unfortunate because they tend to end up "rediscovering" things that have been known for over 100 years.
This is why I am asking the seemingly "obvious" question. I find it almost impossible to believe that someone in group 1, who truly understood the issues involved, would deliberately and knowingly break with the fully vetted NAND boolean basis without understanding all of the consequences of doing so. It literally takes just a few minutes to work through some corner cases. I simply can not understand how someone who studied the issue would not know that:
- The XOR / PARITY corner case is going to be comically bad.
- Your practical experience tells you that this "effect" does not accurately reflect how XOR / PARITY circuits are built anyways, so it is completely benign and safe to ignore.
On the other hand, there is a peer reviewed, published paper that says "The PARITY / XOR corner case sucks when using 'AND, OR, NOT'." This is a contradiction. How do you completely understand the consequences of breaking with the established norm, and then be "surprised" by something that was hopefully blatantly obvious the moment it was decided to go with "AND, OR, NOT"?
I can't help be get the feeling that this whole "2 input NAND" thing is genuinely novel to you. You do understand what it means, right? The 2 input NAND gate is functionally complete for the entire boolean domain. If you can prove that this simple, 2 input NAND gate has some property, you can prove it for the entire boolean domain. Hypothetically you could do something like this:
- $\{AC^0\} ∖ \{NAND\} = ∅$
- $\{AC^*\} ∖ \{NAND\} = ∅$
- $\{ACC^0\} ∖ \{NAND\} = ∅$
- $\{ACC^*\} ∖ \{NAND\} = ∅$
- $\{TC^0\} ∖ \{NAND\} = ∅$
- $\{TC^*\} ∖ \{NAND\} = ∅$
Seems too good to be true, doesn't it? Why stop there!
- $\{TM\} ∖ \{NAND\} = ∅$
Cool! But, what does that mean for...
- $\{NTM\} ∖ \{NAND\} = ∅$
.... we should be careful, we might rip a whole in the universe...
- $\{P\} ∖ \{NAND\} = ∅$
Whoa! Is there anything NAND can't do!? Thankfully, it's not that simple, because if it were I'm pretty sure someone would have pointed it out before now.
I am deeply curious if anyone can point me to a published proof that details why it can't be done, though. ;)
original question follows
A definition of $AC^0$ circuit complexity taken from Wikipedia:
A Boolean circuit with n input bits is a directed acyclic graph in which every node (usually called gates in this context) is either an input node of in-degree 0 labeled by one of the n input bits, an AND gate, an OR or a NOT gate.
The well known result regarding parity and $AC^0$, also taken from from Wikipedia:
The Boolean function PARITY, which is 1 if and only if the sum of its input bits is odd, does not lie in $AC^0$.
My question is: "Why is this considered to be a fundamentally important result?"
edit: From the comments, it is clear that the fundamental point / question is not being understood. Specifically: It is obviously possible to physically build bounded depth and polynomial size PARITY circuits- you need only open up a book on constructing CMOS circuits and look at how a XOR gate is physically constructed.
The fact that you can not build n input constant depth XOR / PARITY gates using only AND and OR gates is not doubted or disputed- that's obvious. Below, a link is given to a six transistor, THREE input XOR (i.e., PARITY) gate. This means it is trivially possible to physically build "at least" THREE input with constant depth of one XOR / PARITY gates.
The primary point is: The fact that you can not build constant depth XOR / PARITY gates using AND and OR gates DOES NOT imply that constant depth XOR / PARITY gates can not be built. The $AC^0$ PARITY proof proves something much weaker: that constant depth XOR / PARITY gates can not be built using just AND and OR gates. This is not the same thing as proving that constant depth XOR / PARITY gates can not be built, and it is a mistake to assume that they are.
If this distinction is still not clear to you, consider that a proof that constant depth XOR / PARITY gates can not be built using a constant depth / polynomial size number of transistors would not only be a far stronger result, but can also be trivially falsified because such constructions do, in fact, exist (links provided below).
end edit
If this question seems naive to you, then a better question to you might be "The definition of $AC^0$, with the restriction of using only AND ∧, OR ∨, and NOT ¬ gates, seems arbitrary. What is the fundamental basis for this restriction?"
If your first impulse to "What is the fundamental basis for this restriction?" is that "The primitives AND ∧, OR ∨, and NOT ¬ are functionally complete for all of the boolean nullinary, unary, and binary operators" then: beware of the flaming arrows.
As an example of why the $AC^0$ restriction of AND ∧, OR ∨, and NOT ¬ is arbitrary, consider that:
- The Apollo Guidance Computer, circa 1966, was built using approximately 4,100 3-input NOR ⊽ gates.
- The Cray-1, circa 1976, was built using approximately 200,000 4 and 5 input NAND ⊼ gates.
For circuit builders, the decision to use either NAND ⊼ or NOR ⊽ gates as the only primitive is so blatantly obvious that it doesn't need mentioning. If this does not seem blatantly obvious to you, then: beware of the incoming flaming arrows.
Restricting ourselves to 2 input AND ∧, 2 input OR ∨, and 1 input NOT ¬ gates it is possible to create:
- A 2 input XOR ⊻ gate using two AND ∧, one OR ∨, and one NOT ¬ gate.
Restricting ourselves to just a single, 2 input NAND ⊼ gate, it is possible to create:
- A 2 input AND ∧ gate using two NAND ⊼ gates.
- A 2 input OR ∨ gate using three NAND ⊼ gates.
- A 1 input NOT ¬ gate using one NAND ⊼ gate.
Using the above, it is possible to restate $AC^0$ in terms of NAND ⊼ gates and furthermore calculate that it takes a total of seven NAND ⊼ gates using the original two AND ∧, one OR ∨, and one NOT ¬ gate definition for XOR ⊻. However, it is also possible to build a XOR ⊻ gate using less NAND ⊼ gates:
- A 2 input XOR ⊻ gate using four NAND ⊼ gates.
The seven NAND ⊼ gate and four NAND ⊼ gate constructions for a 2 input XOR ⊻ gate are "logically identical", producing exactly the same output for the same inputs. The fact that we were able to reduce the number of gates by nearly 50% for an XOR ⊻ gate should immediately raise serious questions as to whether or not the definition of $AC^0$ is useful, or even meaningful.
To make matters worse, when one goes to actually build gates in CMOS, the basic primitive is the FET transistor. For example, the following are "common" transistor counts for most CMOS technologies:
- Four transistors for a 2 input NAND ⊼ gate.
Therefore, in CMOS, it is possible to physically build the "logically equivalent" 2 input XOR ⊻ gate using
- Seven physical 2 input NAND ⊼ gates. This would require a total of twenty eight transistors.
- Four physical 2 input NAND ⊼ gates. This would require a total of sixteen transistors.
However, "logically equivalent" does not imply "physically optimal":
- Six transistors for a 2 input XOR ⊻ gate. Depending on some pedantic details, four transistor constructions are possible.
Which leads me back to my original question: "Why is this [PARITY does not lie in $AC^0$] considered to be a fundamentally important result?"
Because, at least to me, the result has absolutely nothing to deal with reality. In fact, taken at face value, one would incorrectly assume that the result implies that it is fundamentally impossible to construct a 2 input XOR ⊻ gate using "just" six transistors (relative to the four transistors required for a 2 input NAND ⊼ gate).
To cast further doubt as to whether or not the PARITY result is meaningful, it implies that constructing a n input XOR ⊻ gate would require "significantly" (for some definition of significantly) more "gates". However, using three 2 input XOR ⊻ gates, it is clearly possible to construct a "logically equivalent" n input XOR ⊻ gate:
- 3 input XOR ⊻ gate using two 2 input XOR ⊻ gates, for a total transistor count of ~twelve transistors.
- 4 input XOR ⊻ gate using three 2 input XOR ⊻ gates, for a total transistor count of ~eighteen transistors.
The following paper gives a description of a 3 input XOR ⊻ gate using just six transistors.
The 3 input xor gate is provided here: http://ir.hit.edu.tw/dspace/bitstream/310993100/202/1/02-12高性能三輸入互斥或/反互斥或電路之設計.pdf
The following paper gives a description of a 4 input XOR ⊻ gate using just fourteen transistors, and the author specifically states "I am sure that smaller gates do exist, but their implementation is beyond the scope of my experience."
Am I mistaken, or does the $AC^0$ PARITY "proof" make the subtle and unstated assumptions:
- The only boolean primitives available are AND ∧, OR ∨, and NOT ¬.
- That the fact that AND ∧, OR ∨, and NOT ¬ are functionally complete for all of the boolean nullinary, unary, and binary operators, and therefore "logically equivalent" to different "boolean basis" formulations (i.e., either NAND ⊼ or NOR ⊽ basis).
- The AND ∧, OR ∨, and NOT ¬ basis is the "optimal" (for some definition and/or metric of "optimal") basis for the boolean domain actualization (i.e., AND ∧, OR ∨, and NOT ¬ is the "provably optimal" physical manifestation).
- That "logically equivalent" is sufficiently strong / closed over "provably optimal" (for some "loose and informal" definition for the purposes of our discussion/point).
... or have I missed something? Is there something "fundamentally compelling" about the decision to limit $AC^0$ to AND ∧, OR ∨, and NOT ¬? Or the fact that it is possible to physically construct n input XOR ⊻ gates using significantly less resources than what one would expect using the "proven $AC^0$ PARITY result"?