The

boolean cube is a grpahical algorithm or reducing boolean functions. The allocations of boolean functions (000,001, etc.) are so arranged on the corners of a cube(boolean function with 3 variables) or a square (2 variables) that, if one marks the allocations which are equal to 1, one could merge edges or sides of the cube.

I will demonstrate this for a boolean function with 2 variables at is not very illustrative to draw a cube in

ascii art.

The plain

square looks like this:

x2
01 O-----O 11
| |
!x1| |x1
| |
00 O-----O 10
!x2

Assume we have a function f(x1,x2)= !x1^!x2 v !x1^x2. We mark the corresponding corners (00 and 01):

x2
01 *-----O 11
| |
!x1| |x1
| |
00 *-----O 10
!x2

As you can see we can merge the both

conjunctions as they lie on the !x1 edge and can write f(x1,x2) = !x1.
(This example even shows how useful this can be, as we saved a large amount of

transistors. A

NOT needs only two. The prevous function needs for one

AND six. I do not remember exactly how many a

OR needed, but I guess at least six, too. This means we reduced the costs of realizing such a function to one ninth.)

You can never merge three conjunctions. You can only merge edges (no diagonals), sides or the complete cube.

If you want to use a boolean function with three variables, just add one dimension. You could also work with one variable, but this does not make any sense, because reducing a function with one variable is trivial. As long as you have no problems (I have) with visualizing

4-dimensional cubes, you can use this method for

functions with four variables, too. But you could also use

Quine-McClusky or

Karnaugh maps instead.