You have a collection of arbitrarily labeled Boolean logic gates. Among the set are all the symmetrical gates (ones where [1,0]=[0,1], except for TRUE and FALSE.
AND, NAND, OR, XOR, NOR, and XNOR, each with a distinct but unconnected label, until tested you can't know what each label represents.
A single test involves building a Boolean circuit, and running all four possible bitsets through, reading the 1 output bit. Rearranging the circuit or moving the output reader mid-test isn't allowed.
The easy way to accurately label all 6 would be to make 5 1-gate circuits, and then label the leftover by process of elimination. But is there a way to be able to label all 6 gate types with 4 or fewer tests?
