The Boolean Abacus

Jorge Stolfi

The Boolean abacus is a device to perform Boolean operations on truth values. As such, it a must-have tool for mathematicians, scientists, doctors, managers, detectives, and anyone else who use logic on their daily work; as well as for philosophers, religious leaders, voters, lovers, and other people who are concerned about truth and values.

The Boolean abacus is similar to its better-known cousin, the arithmetic abacus. That device, which may be as old as arithmetic itself, is still used by shopkeepers and accountants in many parts of the world. See the images below.

A 13-digit Cinese-style arithmetic abacus (with 5 unit-beads and 2 five-beads per digit), manufactured in the People's Republic of China ("Lotus-Flower Brand"). A 27-digit arithmetic abacus in the modern Japanese-style (with 4 unit-beads and 1 five-bead per digit), manufactured in Japan by ???.

Design and construction

Truth being much simpler than accounting, the Boolean abacus is of course much simpler (and simpler to use) than the arithmetic abacus:

A single-bit Japanese-style Boolean abacus (with 1 unit-bead per bit), built by the author.

The main parts of a Boolean abacus are a bead supported through a central hole by a horizontal cylindrical rod, which is attached at both ends on a rigid frame. The frame is conctructed so that the bead can slide back and forth along the whole length of the rod without touching the table-top or the frame itself. The frame also offers some protection against accidental contacts with the bead, which might introduce errors in calculations.

The bead is light enough to be pushed with the finger, elbow, toe, nose, or any other bodily appendage the ower may care to use; and yet heavy enough that it won't be moved by vibrations, static electricity, or air currents (except perhaps typhoons, or extremely forceful sneezes). The diameter of the bead's is usually greater than the rod's, since otherwise the abacus is very difficult to build, and may not operate as intended.

Strictly speaking, this description applies only to the so-called modern "Japanese-style" Boolean abacus, which is the kind we will assume below. Readers must be advised that there is also "Chinese-style" abacus, which uses two beads on the same rod to represent a single truth value. Some also speak of a "Russian-style" Boolean abacus, but that is merely a Chinese-style one, with its rod mounted sideways instead of lenghthwise.

How the Boolean abacus works

The functioning of the Boolean abacus depends crucually on two complex physical processes, gravitation and friction. Physicists still lack satisfactory explanations of these phenomena, but, fortunately, our current level of understanding is sufficient for engineers to design abaci that work. Basically, the bead can be thought as a device that converts the Earths's gravitational field into a force vector that is orthogonal to the rod's axis. That force stimulates the frame-tabletop interface, yielding an opposite and precisely equal reaction force, which propagates across the frame-rod interface and the rod itself until the point of contact with the bead.

Now, the rod's surface, as well as the inside of the bead's hole, are provided during manufacture with innumerable protuberances and depressions. Under the combined influence of the gravitational and reaction forces, these micro-textures interlock stochastically. This interlocking creates a tridimensionally stable equilibrium: namely, any small additional force applied to the bead, in any direction, is immediately sensed and canceled by a matching change in the reaction force.

Most Boolean abaci also allow the bead to turn around the rod. While the angle of turning could be used to encode additional information, it is not normally used for representation and manipulation of Boolean values. It is possible that some users will find themselves upset, confused, or distracted by this pointless extra degree of freedom.

Newton's law F = m a also plays a part, transiently, during the abacus's operation; but the dynamics of the abacus is toocomplex to explain here. It suffices to say that, once set in motion by the user, by application of a sufficiently large longitudinal force, the bead keeps moving smoothly (at the macroscopic level, at least) along the rod --- until it hits the frame, at which point the bead comes to a complete halt in a few microseconds. (The user should not continue to push the bead after that point, or severe damage to the abacus may result.)

Representing truth values on the abacus

Because of these peculiarities of the abacus's dynamic behavior, the stationary equilibrium state described earlier --- which, in principle, could be achieved anywhere along the rod --- is almost always observed to occur with the bead at either of its two extreme positions. In other words, the bead's position is efectively a discrete variable. It is this feature that allows us to use these two extreme states to represent a definite logical value, true or false --- without half-truths, white lies, innuendo's, misunderstandings, etc..

In countries which use the Chinese- or Japanese-style design (with the rod running lengthwise), the far end is traditionally read as 1, and the near end is read as 0; which, to people who place a higher value on truth than on falsehood, can only mean true and false, respectively. For the Russian-style abacus, true was assumed to mean "left"; but the convention may have changed in recent years.

Traditions aside, however, readers must be aware that either end of the rod could be assigned the value true --- provided only that the other end is used for false, and the user does not forget which end is which, or change his mind half-way through the calculation. Indeed, the De Morgan's principle essentially says that a Boolean abacus (unlike an arithmetic one!) will look the same, and work just as well, after it is rotated by 180 degrees around its vertical axis, swapping the two ends of the rod. (Question for the reader: what if the abacus stays still and the user rotates 180 degrees around his vertical axis? Try the experiment and see what happens!)

Operating the abacus

A Boolean abacus is quite easy to operate. The procedures for most Boolean operations (NOT, AND, OR, etc..) are much simpler than those for addition or multiplication on an ordinary arithmetical abacus. To compute the NOT (negation) of a truth value X, for example, one proceeds as follows:

  1. [Enter X:] If X is true, push the bead to the true end of the rod; otherwise, if X is false, pull the bead towards the false end.
  2. [Negate it:] If the bead is at the true end, pull it towards the false end; else, if it is at the false end, push it towards the true end.

The procedure for computing the AND of two truth values X and Y is only a little more complex:

  1. [Enter X:] If X is true, push the bead to the true end of the rod; otherwise, if X is false, pull the bead towards the false end.
  2. [Combine with Y:] If Y is true, do nothing (with the bead, of course; you may keep on breathing, or do anything else, as long as you don't touch the bead!); otherwise, if the bead is at the true end, pull it towards the false end.

The procedure for OR is identical, except where it is not. The procedures for NAND, XOR, EQV are somewhat more complex, but can be mastered with a proper training and exercise.


First version written 2006-01-01
Last edited on 2007-01-01 23:14:16 by stolfi