Boolean algebras canonically defined

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

Template:Short description

Boolean algebras are models of the equational theory of two values; this definition is equivalent to the lattice and ring definitions.

Script error: No such module "Unsubst".

Boolean algebra is a mathematically rich branch of abstract algebra. Stanford Encyclopaedia of Philosophy defines Boolean algebra as 'the algebra of two-valued logic with only sentential connectives, or equivalently of algebras of sets under union and complementation.'[1] Just as group theory deals with groups, and linear algebra with vector spaces, Boolean algebras are models of the equational theory of the two values 0 and 1 (whose interpretation need not be numerical). Common to Boolean algebras, groups, and vector spaces is the notion of an algebraic structure, a set closed under some operations satisfying certain equations.[2]

Just as there are basic examples of groups, such as the group of integers and the symmetric group SnScript error: No such module "Check for unknown parameters". of permutations of nScript error: No such module "Check for unknown parameters". objects, there are also basic examples of Boolean algebras such as the following.

Boolean algebra thus permits applying the methods of abstract algebra to mathematical logic and digital logic.

Unlike groups of finite order, which exhibit complexity and diversity and whose first-order theory is decidable only in special cases, all finite Boolean algebras share the same theorems and have a decidable first-order theory. Instead, the intricacies of Boolean algebra are divided between the structure of infinite algebras and the algorithmic complexity of their syntactic structure.

Definition

Boolean algebra treats the equational theory of the maximal two-element finitary algebra, called the Boolean prototype, and the models of that theory, called Boolean algebras.[3] These terms are defined as follows.

An algebra is a family of operations on a set, called the underlying set of the algebra. We take the underlying set of the Boolean prototype to be {0,1}.

An algebra is finitary when each of its operations takes only finitely many arguments. For the prototype each argument of an operation is either 0Script error: No such module "Check for unknown parameters". or 1Script error: No such module "Check for unknown parameters"., as is the result of the operation. The maximal such algebra consists of all finitary operations on {0,1}.

The number of arguments taken by each operation is called the arity of the operation. An operation on {0,1} of arity nScript error: No such module "Check for unknown parameters"., or nScript error: No such module "Check for unknown parameters".-ary operation, can be applied to any of 2nScript error: No such module "Check for unknown parameters". possible values for its nScript error: No such module "Check for unknown parameters". arguments. For each choice of arguments, the operation may return 0Script error: No such module "Check for unknown parameters". or 1Script error: No such module "Check for unknown parameters"., whence there are 22n nScript error: No such module "Check for unknown parameters".-ary operations.

The prototype therefore has two operations taking no arguments, called zeroary or nullary operations, namely zero and one. It has four unary operations, two of which are constant operations, another is the identity, and the most commonly used one, called negation, returns the opposite of its argument: 1Script error: No such module "Check for unknown parameters". if 0Script error: No such module "Check for unknown parameters"., 0Script error: No such module "Check for unknown parameters". if 1Script error: No such module "Check for unknown parameters".. It has sixteen binary operations; again two of these are constant, another returns its first argument, yet another returns its second, one is called conjunction and returns 1 if both arguments are 1 and otherwise 0, another is called disjunction and returns 0 if both arguments are 0 and otherwise 1, and so on. The number of (n+1)Script error: No such module "Check for unknown parameters".-ary operations in the prototype is the square of the number of nScript error: No such module "Check for unknown parameters".-ary operations, so there are 162 = 256Script error: No such module "Check for unknown parameters". ternary operations, 2562 = 65,536Script error: No such module "Check for unknown parameters". quaternary operations, and so on.

A family is indexed by an index set. In the case of a family of operations forming an algebra, the indices are called operation symbols, constituting the language of that algebra. The operation indexed by each symbol is called the denotation or interpretation of that symbol. Each operation symbol specifies the arity of its interpretation, whence all possible interpretations of a symbol have the same arity. In general it is possible for an algebra to interpret distinct symbols with the same operation, but this is not the case for the prototype, whose symbols are in one-one correspondence with its operations. The prototype therefore has 22n nScript error: No such module "Check for unknown parameters".-ary operation symbols, called the Boolean operation symbols and forming the language of Boolean algebra. Only a few operations have conventional symbols, such as ¬Script error: No such module "Check for unknown parameters". for negation, Script error: No such module "Check for unknown parameters". for conjunction, and Script error: No such module "Check for unknown parameters". for disjunction.[4] It is convenient to consider the iScript error: No such module "Check for unknown parameters".-th nScript error: No such module "Check for unknown parameters".-ary symbol to be nfiScript error: No such module "Check for unknown parameters". as done below in the section on truth tables.

An equational theory in a given language consists of equations between terms built up from variables using symbols of that language. Typical equations in the language of Boolean algebra are xy = yxScript error: No such module "Check for unknown parameters"., xx = xScript error: No such module "Check for unknown parameters"., x∧¬x = y∧¬yScript error: No such module "Check for unknown parameters"., and xy = xScript error: No such module "Check for unknown parameters"..

An algebra satisfies an equation when the equation holds for all possible values of its variables in that algebra when the operation symbols are interpreted as specified by that algebra. The laws of Boolean algebra are the equations in the language of Boolean algebra satisfied by the prototype. The first three of the above examples are Boolean laws, but not the fourth since 1∧0 ≠ 1Script error: No such module "Check for unknown parameters"..

The equational theory of an algebra is the set of all equations satisfied by the algebra. The laws of Boolean algebra therefore constitute the equational theory of the Boolean prototype.

A model of a theory is an algebra interpreting the operation symbols in the language of the theory and satisfying the equations of the theory.

A Boolean algebra is any model of the laws of Boolean algebra.

That is, a Boolean algebra is a set and a family of operations thereon interpreting the Boolean operation symbols and satisfying the same laws as the Boolean prototype.[5]

If we define a homologue of an algebra to be a model of the equational theory of that algebra, then a Boolean algebra can be defined as any homologue of the prototype.

Example 1. The Boolean prototype is a Boolean algebra, since trivially it satisfies its own laws. It is thus the prototypical Boolean algebra. We did not call it that initially in order to avoid any appearance of circularity in the definition.

Basis

The operations need not be all explicitly stated. A basis is any set from which the remaining operations can be obtained by composition. A "Boolean algebra" may be defined from any of several different bases. Three bases for Boolean algebra are in common use, the lattice basis, the ring basis, and the Sheffer stroke or NAND basis. These bases impart respectively a logical, an arithmetical, and a parsimonious character to the subject.

  • The lattice basis originated in the 19th century with the work of Boole, Peirce, and others seeking an algebraic formalization of logical thought processes.
  • The ring basis emerged in the 20th century with the work of Zhegalkin and Stone and became the basis of choice for algebraists coming to the subject from a background in abstract algebra. Most treatments of Boolean algebra assume the lattice basis, a notable exception being Halmos[1963] whose linear algebra background evidently endeared the ring basis to him.[6]
  • Since all finitary operations on {0,1} can be defined in terms of the Sheffer stroke NAND (or its dual NOR), the resulting economical basis has become the basis of choice for analyzing digital circuits, in particular gate arrays in digital electronics.

The common elements of the lattice and ring bases are the constants 0 and 1, and an associative commutative binary operation, called meet xyScript error: No such module "Check for unknown parameters". in the lattice basis, and multiplication xyScript error: No such module "Check for unknown parameters". in the ring basis. The distinction is only terminological. The lattice basis has the further operations of join, xyScript error: No such module "Check for unknown parameters"., and complement, ¬xScript error: No such module "Check for unknown parameters".. The ring basis has instead the arithmetic operation xyScript error: No such module "Check for unknown parameters". of addition (the symbol Script error: No such module "Check for unknown parameters". is used in preference to +Script error: No such module "Check for unknown parameters". because the latter is sometimes given the Boolean reading of join).

To be a basis is to yield all other operations by composition, whence any two bases must be intertranslatable. The lattice basis translates xyScript error: No such module "Check for unknown parameters". to the ring basis as xyxyScript error: No such module "Check for unknown parameters"., and ¬xScript error: No such module "Check for unknown parameters". as x⊕1Script error: No such module "Check for unknown parameters".. Conversely the ring basis translates xyScript error: No such module "Check for unknown parameters". to the lattice basis as (xy)∧¬(xy)Script error: No such module "Check for unknown parameters"..

Both of these bases allow Boolean algebras to be defined via a subset of the equational properties of the Boolean operations. For the lattice basis, it suffices to define a Boolean algebra as a distributive lattice satisfying x∧¬x = 0Script error: No such module "Check for unknown parameters". and x∨¬x = 1Script error: No such module "Check for unknown parameters"., called a complemented distributive lattice. The ring basis turns a Boolean algebra into a Boolean ring, namely a ring satisfying x2 = xScript error: No such module "Check for unknown parameters"..

Emil Post gave a necessary and sufficient condition for a set of operations to be a basis for the nonzeroary Boolean operations. A nontrivial property is one shared by some but not all operations making up a basis. Post listed five nontrivial properties of operations, identifiable with the five Post's classes, each preserved by composition, and showed that a set of operations formed a basis if, for each property, the set contained an operation lacking that property. (The converse of Post's theorem, extending "if" to "if and only if," is the easy observation that a property from among these five holding of every operation in a candidate basis will also hold of every operation formed by composition from that candidate, whence by nontriviality of that property the candidate will fail to be a basis.) Post's five properties are:

  • monotone, no 0-1 input transition can cause a 1-0 output transition;
  • affine, representable with Zhegalkin polynomials that lack bilinear or higher terms, e.g. xy⊕1Script error: No such module "Check for unknown parameters". but not xyScript error: No such module "Check for unknown parameters".;
  • self-dual, so that complementing all inputs complements the output, as with xScript error: No such module "Check for unknown parameters"., or the median operator xyyzzxScript error: No such module "Check for unknown parameters"., or their negations;
  • strict (mapping the all-zeros input to zero);
  • costrict (mapping all-ones to one).

The NAND (dually NOR) operation lacks all these, thus forming a basis by itself.

Truth tables

The finitary operations on {0,1} may be exhibited as truth tables, thinking of 0 and 1 as the truth values false and true.[7] They can be laid out in a uniform and application-independent way that allows us to name, or at least number, them individually.[8] These names provide a convenient shorthand for the Boolean operations. The names of the nScript error: No such module "Check for unknown parameters".-ary operations are binary numbers of 2nScript error: No such module "Check for unknown parameters". bits. There being 22nScript error: No such module "Check for unknown parameters". such operations, one cannot ask for a more succinct nomenclature. Note that each finitary operation can be called a switching function.

This layout and associated naming of operations is illustrated here in full for arities from 0 to 2.

Truth tables for the Boolean operations of arity up to 2
Constants
0f0 0f1
0 1
Unary operations
x0 1f0 1f1 1f2 1f3
0 0 1 0 1
1 0 0 1 1
Binary operations
x0 x1 2f0 2f1 2f2 2f3 2f4 2f5 2f6 2f7 2f8 2f9 2f10 2f11 2f12 2f13 2f14 2f15
0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
0 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

These tables continue at higher arities, with 2nScript error: No such module "Check for unknown parameters". rows at arity nScript error: No such module "Check for unknown parameters"., each row giving a valuation or binding of the nScript error: No such module "Check for unknown parameters". variables x0,...xn−1Script error: No such module "Check for unknown parameters". and each column headed nfiScript error: No such module "Check for unknown parameters". giving the value nfi(x0,...,xn−1)Script error: No such module "Check for unknown parameters". of the iScript error: No such module "Check for unknown parameters".-th nScript error: No such module "Check for unknown parameters".-ary operation at that valuation. The operations include the variables, for example 1f2Script error: No such module "Check for unknown parameters". is x0Script error: No such module "Check for unknown parameters". while 2f10Script error: No such module "Check for unknown parameters". is x0Script error: No such module "Check for unknown parameters". (as two copies of its unary counterpart) and 2f12Script error: No such module "Check for unknown parameters". is x1Script error: No such module "Check for unknown parameters". (with no unary counterpart). Negation or complement ¬x0Script error: No such module "Check for unknown parameters". appears as 1f1Script error: No such module "Check for unknown parameters". and again as 2f5Script error: No such module "Check for unknown parameters"., along with 2f3Script error: No such module "Check for unknown parameters". (¬x1Script error: No such module "Check for unknown parameters"., which did not appear at arity 1), disjunction or union x0x1Script error: No such module "Check for unknown parameters". as 2f14Script error: No such module "Check for unknown parameters"., conjunction or intersection x0x1Script error: No such module "Check for unknown parameters". as 2f8Script error: No such module "Check for unknown parameters"., implication x0x1 as 2f13Script error: No such module "Check for unknown parameters"., exclusive-or symmetric difference x0x1Script error: No such module "Check for unknown parameters". as 2f6Script error: No such module "Check for unknown parameters"., set difference x0x1Script error: No such module "Check for unknown parameters". as 2f2Script error: No such module "Check for unknown parameters"., and so on.

As a minor detail important more for its form than its content, the operations of an algebra are traditionally organized as a list. Although we are here indexing the operations of a Boolean algebra by the finitary operations on {0,1}, the truth-table presentation above serendipitously orders the operations first by arity and second by the layout of the tables for each arity. This permits organizing the set of all Boolean operations in the traditional list format. The list order for the operations of a given arity is determined by the following two rules.

(i) The iScript error: No such module "Check for unknown parameters".-th row in the left half of the table is the binary representation of iScript error: No such module "Check for unknown parameters". with its least significant or 0Script error: No such module "Check for unknown parameters".-th bit on the left ("little-endian" order, originally proposed by Alan Turing, so it would not be unreasonable to call it Turing order).
(ii) The jScript error: No such module "Check for unknown parameters".-th column in the right half of the table is the binary representation of jScript error: No such module "Check for unknown parameters"., again in little-endian order. In effect the subscript of the operation is the truth table of that operation. By analogy with Gödel numbering of computable functions one might call this numbering of the Boolean operations the Boole numbering.

When programming in C or Java, bitwise disjunction is denoted x|y, conjunction x&y, and negation ~x. A program can therefore represent for example the operation x∧(yz)Script error: No such module "Check for unknown parameters". in these languages as x&(y|z), having previously set x = 0xaa, y = 0xcc, and z = 0xf0 (the "0x" indicates that the following constant is to be read in hexadecimal or base 16), either by assignment to variables or defined as macros. These one-byte (eight-bit) constants correspond to the columns for the input variables in the extension of the above tables to three variables. This technique is almost universally used in raster graphics hardware to provide a flexible variety of ways of combining and masking images, the typical operations being ternary and acting simultaneously on source, destination, and mask bits.

Examples

Bit vectors

Example 2. All bit vectors of a given length form a Boolean algebra "pointwise", meaning that any nScript error: No such module "Check for unknown parameters".-ary Boolean operation can be applied to nScript error: No such module "Check for unknown parameters". bit vectors one bit position at a time. For example, the ternary OR of three bit vectors each of length 4 is the bit vector of length 4 formed by or-ing the three bits in each of the four bit positions, thus 0100∨1000∨1001 = 1101Script error: No such module "Check for unknown parameters".. Another example is the truth tables above for the nScript error: No such module "Check for unknown parameters".-ary operations, whose columns are all the bit vectors of length 2nScript error: No such module "Check for unknown parameters". and which therefore can be combined pointwise whence the nScript error: No such module "Check for unknown parameters".-ary operations form a Boolean algebra.[9] This works equally well for bit vectors of finite and infinite length, the only rule being that the bit positions all be indexed by the same set in order that "corresponding position" be well defined.

The atoms of such an algebra are the bit vectors containing exactly one 1. In general the atoms of a Boolean algebra are those elements xScript error: No such module "Check for unknown parameters". such that xyScript error: No such module "Check for unknown parameters". has only two possible values, xScript error: No such module "Check for unknown parameters". or 0Script error: No such module "Check for unknown parameters"..

Power set algebra

Example 3. The power set algebra, the set 2WScript error: No such module "Check for unknown parameters". of all subsets of a given set WScript error: No such module "Check for unknown parameters"..[10] This is just Example 2 in disguise, with WScript error: No such module "Check for unknown parameters". serving to index the bit positions. Any subset XScript error: No such module "Check for unknown parameters". of WScript error: No such module "Check for unknown parameters". can be viewed as the bit vector having 1's in just those bit positions indexed by elements of XScript error: No such module "Check for unknown parameters".. Thus the all-zero vector is the empty subset of WScript error: No such module "Check for unknown parameters". while the all-ones vector is WScript error: No such module "Check for unknown parameters". itself, these being the constants 0 and 1 respectively of the power set algebra. The counterpart of disjunction xyScript error: No such module "Check for unknown parameters". is union XYScript error: No such module "Check for unknown parameters"., while that of conjunction xyScript error: No such module "Check for unknown parameters". is intersection XYScript error: No such module "Check for unknown parameters".. Negation ¬xScript error: No such module "Check for unknown parameters". becomes ~XScript error: No such module "Check for unknown parameters"., complement relative to WScript error: No such module "Check for unknown parameters".. There is also set difference X\Y = X∩~YScript error: No such module "Check for unknown parameters"., symmetric difference (X\Y)∪(Y\X)Script error: No such module "Check for unknown parameters"., ternary union XYZScript error: No such module "Check for unknown parameters"., and so on. The atoms here are the singletons, those subsets with exactly one element.

Examples 2 and 3 are special cases of a general construct of algebra called direct product, applicable not just to Boolean algebras but all kinds of algebra including groups, rings, etc. The direct product of any family BiScript error: No such module "Check for unknown parameters". of Boolean algebras where iScript error: No such module "Check for unknown parameters". ranges over some index set IScript error: No such module "Check for unknown parameters". (not necessarily finite or even countable) is a Boolean algebra consisting of all IScript error: No such module "Check for unknown parameters".-tuples (...xi,...)Script error: No such module "Check for unknown parameters". whose iScript error: No such module "Check for unknown parameters".-th element is taken from BiScript error: No such module "Check for unknown parameters".. The operations of a direct product are the corresponding operations of the constituent algebras acting within their respective coordinates; in particular operation nfjScript error: No such module "Check for unknown parameters". of the product operates on nScript error: No such module "Check for unknown parameters". IScript error: No such module "Check for unknown parameters".-tuples by applying operation nfjScript error: No such module "Check for unknown parameters". of BiScript error: No such module "Check for unknown parameters". to the nScript error: No such module "Check for unknown parameters". elements in the iScript error: No such module "Check for unknown parameters".-th coordinate of the nScript error: No such module "Check for unknown parameters". tuples, for all iScript error: No such module "Check for unknown parameters". in IScript error: No such module "Check for unknown parameters"..

When all the algebras being multiplied together in this way are the same algebra AScript error: No such module "Check for unknown parameters". we call the direct product a direct power of AScript error: No such module "Check for unknown parameters".. The Boolean algebra of all 32-bit bit vectors is the two-element Boolean algebra raised to the 32nd power, or power set algebra of a 32-element set, denoted 232Script error: No such module "Check for unknown parameters".. The Boolean algebra of all sets of integers is 2ZScript error: No such module "Check for unknown parameters".. All Boolean algebras we have exhibited thus far have been direct powers of the two-element Boolean algebra, justifying the name "power set algebra".

Representation theorems

It can be shown that every finite Boolean algebra is isomorphic to some power set algebra.[11] Hence the cardinality (number of elements) of a finite Boolean algebra is a power of 2Script error: No such module "Check for unknown parameters"., namely one of 1,2,4,8,...,2n,...Script error: No such module "Check for unknown parameters". This is called a representation theorem as it gives insight into the nature of finite Boolean algebras by giving a representation of them as power set algebras.

This representation theorem does not extend to infinite Boolean algebras: although every power set algebra is a Boolean algebra, not every Boolean algebra need be isomorphic to a power set algebra. In particular, whereas there can be no countably infinite power set algebras (the smallest infinite power set algebra is the power set algebra 2NScript error: No such module "Check for unknown parameters". of sets of natural numbers, shown by Cantor to be uncountable), there exist various countably infinite Boolean algebras.

To go beyond power set algebras we need another construct. A subalgebra of an algebra AScript error: No such module "Check for unknown parameters". is any subset of AScript error: No such module "Check for unknown parameters". closed under the operations of AScript error: No such module "Check for unknown parameters".. Every subalgebra of a Boolean algebra AScript error: No such module "Check for unknown parameters". must still satisfy the equations holding of AScript error: No such module "Check for unknown parameters"., since any violation would constitute a violation for AScript error: No such module "Check for unknown parameters". itself. Hence every subalgebra of a Boolean algebra is a Boolean algebra.[12]

A subalgebra of a power set algebra is called a field of sets; equivalently a field of sets is a set of subsets of some set WScript error: No such module "Check for unknown parameters". including the empty set and WScript error: No such module "Check for unknown parameters". and closed under finite union and complement with respect to WScript error: No such module "Check for unknown parameters". (and hence also under finite intersection). Birkhoff's [1935] representation theorem for Boolean algebras states that every Boolean algebra is isomorphic to a field of sets. Now Birkhoff's HSP theorem for varieties can be stated as, every class of models of the equational theory of a class CScript error: No such module "Check for unknown parameters". of algebras is the Homomorphic image of a Subalgebra of a direct Product of algebras of CScript error: No such module "Check for unknown parameters".. Normally all three of H, S, and P are needed; what the first of these two Birkhoff theorems shows is that for the special case of the variety of Boolean algebras Homomorphism can be replaced by Isomorphism. Birkhoff's HSP theorem for varieties in general therefore becomes Birkhoff's ISP theorem for the variety of Boolean algebras.

Other examples

It is convenient when talking about a set X of natural numbers to view it as a sequence x0,x1,x2,...Script error: No such module "Check for unknown parameters". of bits, with xi = 1Script error: No such module "Check for unknown parameters". if and only if iXScript error: No such module "Check for unknown parameters".. This viewpoint will make it easier to talk about subalgebras of the power set algebra 2NScript error: No such module "Check for unknown parameters"., which this viewpoint makes the Boolean algebra of all sequences of bits.[13] It also fits well with the columns of a truth table: when a column is read from top to bottom it constitutes a sequence of bits, but at the same time it can be viewed as the set of those valuations (assignments to variables in the left half of the table) at which the function represented by that column evaluates to 1.

Example 4. Ultimately constant sequences. Any Boolean combination of ultimately constant sequences is ultimately constant; hence these form a Boolean algebra. We can identify these with the integers by viewing the ultimately-zero sequences as nonnegative binary numerals (bit 0Script error: No such module "Check for unknown parameters". of the sequence being the low-order bit) and the ultimately-one sequences as negative binary numerals (think two's complement arithmetic with the all-ones sequence being −1Script error: No such module "Check for unknown parameters".). This makes the integers a Boolean algebra, with union being bit-wise OR and complement being −x−1Script error: No such module "Check for unknown parameters".. There are only countably many integers, so this infinite Boolean algebra is countable. The atoms are the powers of two, namely 1,2,4,.... Another way of describing this algebra is as the set of all finite and cofinite sets of natural numbers, with the ultimately all-ones sequences corresponding to the cofinite sets, those sets omitting only finitely many natural numbers.

Example 5. Periodic sequence. A sequence is called periodic when there exists some number n > 0Script error: No such module "Check for unknown parameters"., called a witness to periodicity, such that xi = xi+nScript error: No such module "Check for unknown parameters". for all i ≥ 0Script error: No such module "Check for unknown parameters".. The period of a periodic sequence is its least witness. Negation leaves period unchanged, while the disjunction of two periodic sequences is periodic, with period at most the least common multiple of the periods of the two arguments (the period can be as small as 1Script error: No such module "Check for unknown parameters"., as happens with the union of any sequence and its complement). Hence the periodic sequences form a Boolean algebra.

Example 5 resembles Example 4 in being countable, but differs in being atomless. The latter is because the conjunction of any nonzero periodic sequence xScript error: No such module "Check for unknown parameters". with a sequence of coprime period (greater than 1) is neither 0Script error: No such module "Check for unknown parameters". nor xScript error: No such module "Check for unknown parameters".. It can be shown that all countably infinite atomless Boolean algebras are isomorphic, that is, up to isomorphism there is only one such algebra.

Example 6. Periodic sequence with period a power of two. This is a proper subalgebra of Example 5 (a proper subalgebra equals the intersection of itself with its algebra). These can be understood as the finitary operations, with the first period of such a sequence giving the truth table of the operation it represents. For example, the truth table of x0Script error: No such module "Check for unknown parameters". in the table of binary operations, namely 2f10Script error: No such module "Check for unknown parameters"., has period 2Script error: No such module "Check for unknown parameters". (and so can be recognized as using only the first variable) even though 12 of the binary operations have period 4Script error: No such module "Check for unknown parameters".. When the period is 2nScript error: No such module "Check for unknown parameters". the operation only depends on the first nScript error: No such module "Check for unknown parameters". variables, the sense in which the operation is finitary. This example is also a countably infinite atomless Boolean algebra. Hence Example 5 is isomorphic to a proper subalgebra of itself! Example 6, and hence Example 5, constitutes the free Boolean algebra on countably many generators, meaning the Boolean algebra of all finitary operations on a countably infinite set of generators or variables.

Example 7. Ultimately periodic sequences, sequences that become periodic after an initial finite bout of lawlessness. They constitute a proper extension of Example 5 (meaning that Example 5 is a proper subalgebra of Example 7) and also of Example 4, since constant sequences are periodic with period one. Sequences may vary as to when they settle down, but any finite set of sequences will all eventually settle down no later than their slowest-to-settle member, whence ultimately periodic sequences are closed under all Boolean operations and so form a Boolean algebra. This example has the same atoms and coatoms as Example 4, whence it is not atomless and therefore not isomorphic to Example 5/6. However it contains an infinite atomless subalgebra, namely Example 5, and so is not isomorphic to Example 4, every subalgebra of which must be a Boolean algebra of finite sets and their complements and therefore atomic. This example is isomorphic to the direct product of Examples 4 and 5, furnishing another description of it.

Example 8. The direct product of a Periodic Sequence (Example 5) with any finite but nontrivial Boolean algebra. (The trivial one-element Boolean algebra is the unique finite atomless Boolean algebra.) This resembles Example 7 in having both atoms and an atomless subalgebra, but differs in having only finitely many atoms. Example 8 is in fact an infinite family of examples, one for each possible finite number of atoms.

These examples by no means exhaust the possible Boolean algebras, even the countable ones. Indeed, there are uncountably many nonisomorphic countable Boolean algebras, which Jussi Ketonen [1978] classified completely in terms of invariants representable by certain hereditarily countable sets.

Boolean algebras of Boolean operations

The nScript error: No such module "Check for unknown parameters".-ary Boolean operations themselves constitute a power set algebra 2WScript error: No such module "Check for unknown parameters"., namely when WScript error: No such module "Check for unknown parameters". is taken to be the set of 2nScript error: No such module "Check for unknown parameters". valuations of the nScript error: No such module "Check for unknown parameters". inputs. In terms of the naming system of operations nfiScript error: No such module "Check for unknown parameters". where iScript error: No such module "Check for unknown parameters". in binary is a column of a truth table, the columns can be combined with Boolean operations of any arity to produce other columns present in the table. That is, we can apply any Boolean operation of arity mScript error: No such module "Check for unknown parameters". to mScript error: No such module "Check for unknown parameters". Boolean operations of arity nScript error: No such module "Check for unknown parameters". to yield a Boolean operation of arity nScript error: No such module "Check for unknown parameters"., for any mScript error: No such module "Check for unknown parameters". and nScript error: No such module "Check for unknown parameters"..

The practical significance of this convention for both software and hardware is that nScript error: No such module "Check for unknown parameters".-ary Boolean operations can be represented as words of the appropriate length. For example, each of the 256 ternary Boolean operations can be represented as an unsigned byte. The available logical operations such as AND and OR can then be used to form new operations. If we take xScript error: No such module "Check for unknown parameters"., yScript error: No such module "Check for unknown parameters"., and zScript error: No such module "Check for unknown parameters". (dispensing with subscripted variables for now) to be 10101010Script error: No such module "Check for unknown parameters"., 11001100Script error: No such module "Check for unknown parameters"., and 11110000Script error: No such module "Check for unknown parameters". respectively (170, 204, and 240 in decimal, 0xaaScript error: No such module "Check for unknown parameters"., 0xccScript error: No such module "Check for unknown parameters"., and 0xf0Script error: No such module "Check for unknown parameters". in hexadecimal), their pairwise conjunctions are xy = 10001000Script error: No such module "Check for unknown parameters"., yz = 11000000Script error: No such module "Check for unknown parameters"., and zx = 10100000Script error: No such module "Check for unknown parameters"., while their pairwise disjunctions are xy = 11101110Script error: No such module "Check for unknown parameters"., yz = 11111100Script error: No such module "Check for unknown parameters"., and zx = 11111010Script error: No such module "Check for unknown parameters".. The disjunction of the three conjunctions is 11101000Script error: No such module "Check for unknown parameters"., which also happens to be the conjunction of three disjunctions. We have thus calculated, with a dozen or so logical operations on bytes, that the two ternary operations

(xy)(yz)(zx)

and

(xy)(yz)(zx)

are actually the same operation. That is, we have proved the equational identity

(xy)(yz)(zx)=(xy)(yz)(zx),

for the two-element Boolean algebra. By the definition of "Boolean algebra" this identity must therefore hold in every Boolean algebra.

This ternary operation incidentally formed the basis for Grau's [1947] ternary Boolean algebras, which he axiomatized in terms of this operation and negation. The operation is symmetric, meaning that its value is independent of any of the 3! = 6Script error: No such module "Check for unknown parameters". permutations of its arguments. The two halves of its truth table 11101000Script error: No such module "Check for unknown parameters". are the truth tables for Script error: No such module "Check for unknown parameters"., 1110Script error: No such module "Check for unknown parameters"., and Script error: No such module "Check for unknown parameters"., 1000Script error: No such module "Check for unknown parameters"., so the operation can be phrased as if zScript error: No such module "Check for unknown parameters". then xyScript error: No such module "Check for unknown parameters". else xyScript error: No such module "Check for unknown parameters".. Since it is symmetric it can equally well be phrased as either of if xScript error: No such module "Check for unknown parameters". then yzScript error: No such module "Check for unknown parameters". else yzScript error: No such module "Check for unknown parameters"., or if yScript error: No such module "Check for unknown parameters". then zxScript error: No such module "Check for unknown parameters". else zxScript error: No such module "Check for unknown parameters".. Viewed as a labeling of the 8-vertex 3-cube, the upper half is labeled 1 and the lower half 0; for this reason it has been called the median operator, with the evident generalization to any odd number of variables (odd in order to avoid the tie when exactly half the variables are 0).

Axiomatizing Boolean algebras

The technique we just used to prove an identity of Boolean algebra can be generalized to all identities in a systematic way that can be taken as a sound and complete axiomatization of, or axiomatic system for, the equational laws of Boolean logic. The customary formulation of an axiom system consists of a set of axioms that "prime the pump" with some initial identities, along with a set of inference rules for inferring the remaining identities from the axioms and previously proved identities. In principle it is desirable to have finitely many axioms; however as a practical matter it is not necessary since it is just as effective to have a finite axiom schema having infinitely many instances each of which when used in a proof can readily be verified to be a legal instance, the approach we follow here.

Boolean identities are assertions of the form s = tScript error: No such module "Check for unknown parameters". where sScript error: No such module "Check for unknown parameters". and tScript error: No such module "Check for unknown parameters". are nScript error: No such module "Check for unknown parameters".-ary terms, by which we shall mean here terms whose variables are limited to x0Script error: No such module "Check for unknown parameters". through xn-1Script error: No such module "Check for unknown parameters".. An nScript error: No such module "Check for unknown parameters".-ary term is either an atom or an application. An application mfi(t0,...,tm-1)Script error: No such module "Check for unknown parameters". is a pair consisting of an mScript error: No such module "Check for unknown parameters".-ary operation mfiScript error: No such module "Check for unknown parameters". and a list or mScript error: No such module "Check for unknown parameters".-tuple (t0,...,tm-1)Script error: No such module "Check for unknown parameters". of m nScript error: No such module "Check for unknown parameters".-ary terms called operands.

Associated with every term is a natural number called its height. Atoms are of zero height, while applications are of height one plus the height of their highest operand.

Now what is an atom? Conventionally an atom is either a constant (0 or 1) or a variable xiScript error: No such module "Check for unknown parameters". where 0 ≤ i < nScript error: No such module "Check for unknown parameters".. For the proof technique here it is convenient to define atoms instead to be nScript error: No such module "Check for unknown parameters".-ary operations nfiScript error: No such module "Check for unknown parameters"., which although treated here as atoms nevertheless mean the same as ordinary terms of the exact form nfi(x0,...,xn-1)Script error: No such module "Check for unknown parameters". (exact in that the variables must listed in the order shown without repetition or omission). This is not a restriction because atoms of this form include all the ordinary atoms, namely the constants 0 and 1, which arise here as the nScript error: No such module "Check for unknown parameters".-ary operations nf0Script error: No such module "Check for unknown parameters". and nf−1Script error: No such module "Check for unknown parameters". for each nScript error: No such module "Check for unknown parameters". (abbreviating 22n−1Script error: No such module "Check for unknown parameters". to −1Script error: No such module "Check for unknown parameters".), and the variables x0,...,xn-1Script error: No such module "Check for unknown parameters". as can be seen from the truth tables where x0Script error: No such module "Check for unknown parameters". appears as both the unary operation 1f2Script error: No such module "Check for unknown parameters". and the binary operation 2f10Script error: No such module "Check for unknown parameters". while x1Script error: No such module "Check for unknown parameters". appears as 2f12Script error: No such module "Check for unknown parameters"..

The following axiom schema and three inference rules axiomatize the Boolean algebra of n-ary terms.

A1. mfi(nfj0,...,nfjm-1) = nfioĵScript error: No such module "Check for unknown parameters". where (ioĵ)v = iĵvScript error: No such module "Check for unknown parameters"., with ĵScript error: No such module "Check for unknown parameters". being jScript error: No such module "Check for unknown parameters". transpose, defined by (ĵv)u = (ju)vScript error: No such module "Check for unknown parameters"..
R1. With no premises infer t = tScript error: No such module "Check for unknown parameters"..
R2. From s = uScript error: No such module "Check for unknown parameters". and t = uScript error: No such module "Check for unknown parameters". infer s = tScript error: No such module "Check for unknown parameters". where sScript error: No such module "Check for unknown parameters"., tScript error: No such module "Check for unknown parameters"., and uScript error: No such module "Check for unknown parameters". are nScript error: No such module "Check for unknown parameters".-ary terms.
R3. From s0 = t0 , ... , sm-1 = tm-1Script error: No such module "Check for unknown parameters". infer mfi(s0,...,sm-1) = mfi(t0,...,tm-1)Script error: No such module "Check for unknown parameters"., where all terms si, tiScript error: No such module "Check for unknown parameters". are nScript error: No such module "Check for unknown parameters".-ary.

The meaning of the side condition on A1 is that ioĵScript error: No such module "Check for unknown parameters". is that 2nScript error: No such module "Check for unknown parameters".-bit number whose vScript error: No such module "Check for unknown parameters".-th bit is the ĵvScript error: No such module "Check for unknown parameters".-th bit of iScript error: No such module "Check for unknown parameters"., where the ranges of each quantity are u: mScript error: No such module "Check for unknown parameters"., v: 2nScript error: No such module "Check for unknown parameters"., ju: 22nScript error: No such module "Check for unknown parameters"., and ĵv: 2mScript error: No such module "Check for unknown parameters".. (So jScript error: No such module "Check for unknown parameters". is an mScript error: No such module "Check for unknown parameters".-tuple of 2nScript error: No such module "Check for unknown parameters".-bit numbers while ĵScript error: No such module "Check for unknown parameters". as the transpose of jScript error: No such module "Check for unknown parameters". is a 2nScript error: No such module "Check for unknown parameters".-tuple of mScript error: No such module "Check for unknown parameters".-bit numbers. Both jScript error: No such module "Check for unknown parameters". and ĵScript error: No such module "Check for unknown parameters". therefore contain m2nScript error: No such module "Check for unknown parameters". bits.)

A1 is an axiom schema rather than an axiom by virtue of containing metavariables, namely mScript error: No such module "Check for unknown parameters"., iScript error: No such module "Check for unknown parameters"., nScript error: No such module "Check for unknown parameters"., and j0Script error: No such module "Check for unknown parameters". through jm-1Script error: No such module "Check for unknown parameters".. The actual axioms of the axiomatization are obtained by setting the metavariables to specific values. For example, if we take m = n = i = j0 = 1Script error: No such module "Check for unknown parameters"., we can compute the two bits of ioĵScript error: No such module "Check for unknown parameters". from i1 = 0Script error: No such module "Check for unknown parameters". and i0 = 1Script error: No such module "Check for unknown parameters"., so ioĵ = 2Script error: No such module "Check for unknown parameters". (or 10Script error: No such module "Check for unknown parameters". when written as a two-bit number). The resulting instance, namely 1f1(1f1) = 1f2Script error: No such module "Check for unknown parameters"., expresses the familiar axiom ¬¬x = xScript error: No such module "Check for unknown parameters". of double negation. Rule R3 then allows us to infer ¬¬¬x = ¬xScript error: No such module "Check for unknown parameters". by taking s0Script error: No such module "Check for unknown parameters". to be 1f1(1f1)Script error: No such module "Check for unknown parameters". or ¬¬x0Script error: No such module "Check for unknown parameters"., t0Script error: No such module "Check for unknown parameters". to be 1f2Script error: No such module "Check for unknown parameters". or x0Script error: No such module "Check for unknown parameters"., and mfiScript error: No such module "Check for unknown parameters". to be 1f1Script error: No such module "Check for unknown parameters". or ¬Script error: No such module "Check for unknown parameters"..

For each mScript error: No such module "Check for unknown parameters". and nScript error: No such module "Check for unknown parameters". there are only finitely many axioms instantiating A1, namely 22m × (22n)mScript error: No such module "Check for unknown parameters".. Each instance is specified by 2m+m2nScript error: No such module "Check for unknown parameters". bits.

We treat R1 as an inference rule, even though it is like an axiom in having no premises, because it is a domain-independent rule along with R2 and R3 common to all equational axiomatizations, whether of groups, rings, or any other variety. The only entity specific to Boolean algebras is axiom schema A1. In this way when talking about different equational theories we can push the rules to one side as being independent of the particular theories, and confine attention to the axioms as the only part of the axiom system characterizing the particular equational theory at hand.

This axiomatization is complete, meaning that every Boolean law s = tScript error: No such module "Check for unknown parameters". is provable in this system. One first shows by induction on the height of sScript error: No such module "Check for unknown parameters". that every Boolean law for which tScript error: No such module "Check for unknown parameters". is atomic is provable, using R1 for the base case (since distinct atoms are never equal) and A1 and R3 for the induction step (sScript error: No such module "Check for unknown parameters". an application). This proof strategy amounts to a recursive procedure for evaluating sScript error: No such module "Check for unknown parameters". to yield an atom. Then to prove s = tScript error: No such module "Check for unknown parameters". in the general case when tScript error: No such module "Check for unknown parameters". may be an application, use the fact that if s = tScript error: No such module "Check for unknown parameters". is an identity then sScript error: No such module "Check for unknown parameters". and tScript error: No such module "Check for unknown parameters". must evaluate to the same atom, call it uScript error: No such module "Check for unknown parameters".. So first prove s = uScript error: No such module "Check for unknown parameters". and t = uScript error: No such module "Check for unknown parameters". as above, that is, evaluate sScript error: No such module "Check for unknown parameters". and tScript error: No such module "Check for unknown parameters". using A1, R1, and R3, and then invoke R2 to infer s = tScript error: No such module "Check for unknown parameters"..

In A1, if we view the number nmScript error: No such module "Check for unknown parameters". as the function type mnScript error: No such module "Check for unknown parameters"., and mnScript error: No such module "Check for unknown parameters". as the application m(n)Script error: No such module "Check for unknown parameters"., we can reinterpret the numbers iScript error: No such module "Check for unknown parameters"., jScript error: No such module "Check for unknown parameters"., ĵScript error: No such module "Check for unknown parameters"., and ioĵScript error: No such module "Check for unknown parameters". as functions of type i: (m→2)→2Script error: No such module "Check for unknown parameters"., jm→((n→2)→2)Script error: No such module "Check for unknown parameters"., ĵ: (n→2)→(m→2)Script error: No such module "Check for unknown parameters"., and ioĵ: (n→2)→2Script error: No such module "Check for unknown parameters".. The definition (ioĵ)v = iĵvScript error: No such module "Check for unknown parameters". in A1 then translates to (ioĵ)(v) = i(ĵ(v))Script error: No such module "Check for unknown parameters"., that is, ioĵScript error: No such module "Check for unknown parameters". is defined to be composition of iScript error: No such module "Check for unknown parameters". and ĵScript error: No such module "Check for unknown parameters". understood as functions. So the content of A1 amounts to defining term application to be essentially composition, modulo the need to transpose the mScript error: No such module "Check for unknown parameters".-tuple jScript error: No such module "Check for unknown parameters". to make the types match up suitably for composition. This composition is the one in Lawvere's previously mentioned category of power sets and their functions. In this way we have translated the commuting diagrams of that category, as the equational theory of Boolean algebras, into the equational consequences of A1 as the logical representation of that particular composition law.

Underlying lattice structure

Underlying every Boolean algebra BScript error: No such module "Check for unknown parameters". is a partially ordered set or poset (B,≤)Script error: No such module "Check for unknown parameters".. The partial order relation is defined by xyScript error: No such module "Check for unknown parameters". just when x = xyScript error: No such module "Check for unknown parameters"., or equivalently when y = xyScript error: No such module "Check for unknown parameters".. Given a set XScript error: No such module "Check for unknown parameters". of elements of a Boolean algebra, an upper bound on XScript error: No such module "Check for unknown parameters". is an element yScript error: No such module "Check for unknown parameters". such that for every element xScript error: No such module "Check for unknown parameters". of XScript error: No such module "Check for unknown parameters"., xyScript error: No such module "Check for unknown parameters"., while a lower bound on XScript error: No such module "Check for unknown parameters". is an element yScript error: No such module "Check for unknown parameters". such that for every element xScript error: No such module "Check for unknown parameters". of XScript error: No such module "Check for unknown parameters"., yxScript error: No such module "Check for unknown parameters"..

A sup of XScript error: No such module "Check for unknown parameters". is a least upper bound on XScript error: No such module "Check for unknown parameters"., namely an upper bound on XScript error: No such module "Check for unknown parameters". that is less or equal to every upper bound on XScript error: No such module "Check for unknown parameters".. Dually an inf of XScript error: No such module "Check for unknown parameters". is a greatest lower bound on XScript error: No such module "Check for unknown parameters".. The sup of xScript error: No such module "Check for unknown parameters". and yScript error: No such module "Check for unknown parameters". always exists in the underlying poset of a Boolean algebra, being xyScript error: No such module "Check for unknown parameters"., and likewise their inf exists, namely xyScript error: No such module "Check for unknown parameters".. The empty sup is 0 (the bottom element) and the empty inf is 1 (top). It follows that every finite set has both a sup and an inf. Infinite subsets of a Boolean algebra may or may not have a sup and/or an inf; in a power set algebra they always do.

Any poset (B,≤)Script error: No such module "Check for unknown parameters". such that every pair x,yScript error: No such module "Check for unknown parameters". of elements has both a sup and an inf is called a lattice. We write xyScript error: No such module "Check for unknown parameters". for the sup and xyScript error: No such module "Check for unknown parameters". for the inf. The underlying poset of a Boolean algebra always forms a lattice. The lattice is said to be distributive when x∧(yz) = (xy)∨(xz)Script error: No such module "Check for unknown parameters"., or equivalently when x∨(yz) = (xy)∧(xz)Script error: No such module "Check for unknown parameters"., since either law implies the other in a lattice. These are laws of Boolean algebra whence the underlying poset of a Boolean algebra forms a distributive lattice.

Given a lattice with a bottom element 0 and a top element 1, a pair x,yScript error: No such module "Check for unknown parameters". of elements is called complementary when xy = 0Script error: No such module "Check for unknown parameters". and xy = 1Script error: No such module "Check for unknown parameters"., and we then say that yScript error: No such module "Check for unknown parameters". is a complement of xScript error: No such module "Check for unknown parameters". and vice versa. Any element xScript error: No such module "Check for unknown parameters". of a distributive lattice with top and bottom can have at most one complement. When every element of a lattice has a complement the lattice is called complemented. It follows that in a complemented distributive lattice, the complement of an element always exists and is unique, making complement a unary operation. Furthermore, every complemented distributive lattice forms a Boolean algebra, and conversely every Boolean algebra forms a complemented distributive lattice. This provides an alternative definition of a Boolean algebra, namely as any complemented distributive lattice. Each of these three properties can be axiomatized with finitely many equations, whence these equations taken together constitute a finite axiomatization of the equational theory of Boolean algebras.

In a class of algebras defined as all the models of a set of equations, it is usually the case that some algebras of the class satisfy more equations than just those needed to qualify them for the class. The class of Boolean algebras is unusual in that, with a single exception, every Boolean algebra satisfies exactly the Boolean identities and no more. The exception is the one-element Boolean algebra, which necessarily satisfies every equation, even x = yScript error: No such module "Check for unknown parameters"., and is therefore sometimes referred to as the inconsistent Boolean algebra.

Boolean homomorphisms

A Boolean homomorphism is a function h: ABScript error: No such module "Check for unknown parameters". between Boolean algebras A,BScript error: No such module "Check for unknown parameters". such that for every Boolean operation mfiScript error: No such module "Check for unknown parameters".:

h(mfi(x0,...,xm1))=mfi(h(x0,...,xm1))

The category Bool of Boolean algebras has as objects all Boolean algebras and as morphisms the Boolean homomorphisms between them.

There exists a unique homomorphism from the two-element Boolean algebra 2 to every Boolean algebra, since homomorphisms must preserve the two constants and those are the only elements of 2. A Boolean algebra with this property is called an initial Boolean algebra. It can be shown that any two initial Boolean algebras are isomorphic, so up to isomorphism 2 is the initial Boolean algebra.

In the other direction, there may exist many homomorphisms from a Boolean algebra BScript error: No such module "Check for unknown parameters". to 2. Any such homomorphism partitions BScript error: No such module "Check for unknown parameters". into those elements mapped to 1 and those to 0. The subset of BScript error: No such module "Check for unknown parameters". consisting of the former is called an ultrafilter of BScript error: No such module "Check for unknown parameters".. When BScript error: No such module "Check for unknown parameters". is finite its ultrafilters pair up with its atoms; one atom is mapped to 1 and the rest to 0. Each ultrafilter of BScript error: No such module "Check for unknown parameters". thus consists of an atom of BScript error: No such module "Check for unknown parameters". and all the elements above it; hence exactly half the elements of BScript error: No such module "Check for unknown parameters". are in the ultrafilter, and there as many ultrafilters as atoms.

For infinite Boolean algebras the notion of ultrafilter becomes considerably more delicate. The elements greater than or equal to an atom always form an ultrafilter, but so do many other sets; for example, in the Boolean algebra of finite and cofinite sets of integers, the cofinite sets form an ultrafilter even though none of them are atoms. Likewise, the powerset of the integers has among its ultrafilters the set of all subsets containing a given integer; there are countably many of these "standard" ultrafilters, which may be identified with the integers themselves, but there are uncountably many more "nonstandard" ultrafilters. These form the basis for nonstandard analysis, providing representations for such classically inconsistent objects as infinitesimals and delta functions.

Infinitary extensions

Recall the definition of sup and inf from the section above on the underlying partial order of a Boolean algebra. A complete Boolean algebra is one every subset of which has both a sup and an inf, even the infinite subsets. Gaifman [1964] and Hales [1964] independently showed that infinite free complete Boolean algebras do not exist. This suggests that a logic with set-sized-infinitary operations may have class-many terms—just as a logic with finitary operations may have infinitely many terms.

There is however another approach to introducing infinitary Boolean operations: simply drop "finitary" from the definition of Boolean algebra. A model of the equational theory of the algebra of all operations on {0,1} of arity up to the cardinality of the model is called a complete atomic Boolean algebra, or CABA. (In place of this awkward restriction on arity we could allow any arity, leading to a different awkwardness, that the signature would then be larger than any set, that is, a proper class. One benefit of the latter approach is that it simplifies the definition of homomorphism between CABAs of different cardinality.) Such an algebra can be defined equivalently as a complete Boolean algebra that is atomic, meaning that every element is a sup of some set of atoms. Free CABAs exist for all cardinalities of a set VScript error: No such module "Check for unknown parameters". of generators, namely the power set algebra 22VScript error: No such module "Check for unknown parameters"., this being the obvious generalization of the finite free Boolean algebras. This neatly rescues infinitary Boolean logic from the fate the Gaifman–Hales result seemed to consign it to.

The nonexistence of free complete Boolean algebras can be traced to failure to extend the equations of Boolean logic suitably to all laws that should hold for infinitary conjunction and disjunction, in particular the neglect of distributivity in the definition of complete Boolean algebra. A complete Boolean algebra is called completely distributive when arbitrary conjunctions distribute over arbitrary disjunctions and vice versa. A Boolean algebra is a CABA if and only if it is complete and completely distributive, giving a third definition of CABA. A fourth definition is as any Boolean algebra isomorphic to a power set algebra.

A complete homomorphism is one that preserves all sups that exist, not just the finite sups, and likewise for infs. The category CABA of all CABAs and their complete homomorphisms is dual to the category of sets and their functions, meaning that it is equivalent to the opposite of that category (the category resulting from reversing all morphisms). Things are not so simple for the category Bool of Boolean algebras and their homomorphisms, which Marshall Stone showed in effect (though he lacked both the language and the conceptual framework to make the duality explicit) to be dual to the category of totally disconnected compact Hausdorff spaces, subsequently called Stone spaces.

Another infinitary class intermediate between Boolean algebras and complete Boolean algebras is the notion of a sigma-algebra. This is defined analogously to complete Boolean algebras, but with sups and infs limited to countable arity. That is, a sigma-algebra is a Boolean algebra with all countable sups and infs. Because the sups and infs are of bounded cardinality, unlike the situation with complete Boolean algebras, the Gaifman-Hales result does not apply and free sigma-algebras do exist. Unlike the situation with CABAs however, the free countably generated sigma algebra is not a power set algebra.

Other definitions of Boolean algebra

We have already encountered several definitions of Boolean algebra, as a model of the equational theory of the two-element algebra, as a complemented distributive lattice, as a Boolean ring, and as a product-preserving functor from a certain category (Lawvere). Two more definitions worth mentioning are:.

Stone (1936)
A Boolean algebra is the set of all clopen sets of a topological space. It is no limitation to require the space to be a totally disconnected compact Hausdorff space, or Stone space, that is, every Boolean algebra arises in this way, up to isomorphism. Moreover, if the two Boolean algebras formed as the clopen sets of two Stone spaces are isomorphic, so are the Stone spaces themselves, which is not the case for arbitrary topological spaces. This is just the reverse direction of the duality mentioned earlier from Boolean algebras to Stone spaces. This definition is fleshed out by the next definition.
Johnstone (1982)
A Boolean algebra is a filtered colimit of finite Boolean algebras.

(The circularity in this definition can be removed by replacing "finite Boolean algebra" by "finite power set" equipped with the Boolean operations standardly interpreted for power sets.)

To put this in perspective, infinite sets arise as filtered colimits of finite sets, infinite CABAs as filtered limits of finite power set algebras, and infinite Stone spaces as filtered limits of finite sets. Thus if one starts with the finite sets and asks how these generalize to infinite objects, there are two ways: "adding" them gives ordinary or inductive sets while "multiplying" them gives Stone spaces or profinite sets. The same choice exists for finite power set algebras as the duals of finite sets: addition yields Boolean algebras as inductive objects while multiplication yields CABAs or power set algebras as profinite objects.

A characteristic distinguishing feature is that the underlying topology of objects so constructed, when defined so as to be Hausdorff, is discrete for inductive objects and compact for profinite objects. The topology of finite Hausdorff spaces is always both discrete and compact, whereas for infinite spaces "discrete"' and "compact" are mutually exclusive. Thus when generalizing finite algebras (of any kind, not just Boolean) to infinite ones, "discrete" and "compact" part company, and one must choose which one to retain. The general rule, for both finite and infinite algebras, is that finitary algebras are discrete, whereas their duals are compact and feature infinitary operations. Between these two extremes, there are many intermediate infinite Boolean algebras whose topology is neither discrete nor compact.

See also

<templatestyles src="Div col/styles.css"/>

References

  • Script error: No such module "Citation/CS1".
  • Script error: No such module "citation/CS1".
  • Script error: No such module "citation/CS1".
  • Script error: No such module "Citation/CS1".
  • Script error: No such module "citation/CS1".
  • Script error: No such module "Citation/CS1".
  • Script error: No such module "Citation/CS1".
  • Script error: No such module "citation/CS1".
  • Script error: No such module "citation/CS1".
  • Script error: No such module "citation/CS1".
  • Script error: No such module "Citation/CS1".
  • Koppelberg, Sabine (1989) "General Theory of Boolean Algebras" in Monk, J. Donald, and Bonnet, Robert, eds., Handbook of Boolean Algebras, Vol. 1. North Holland. Template:ISBN.
  • Peirce, C. S. (1989) Writings of Charles S. Peirce: A Chronological Edition: 1879–1884. Kloesel, C. J. W., ed. Indianapolis: Indiana University Press. Template:ISBN.
  • Script error: No such module "Citation/CS1".
  • Script error: No such module "citation/CS1".
  • Script error: No such module "citation/CS1".
  • Script error: No such module "Citation/CS1".
  • Tarski, Alfred (1983). Logic, Semantics, Metamathematics, Corcoran, J., ed. Hackett. 1956 1st edition edited and translated by J. H. Woodger, Oxford Uni. Press. Includes English translations of the following two articles:
    • Script error: No such module "Citation/CS1".
    • Script error: No such module "Citation/CS1".
  • Script error: No such module "citation/CS1".

References

<templatestyles src="Reflist/styles.css" />

  1. Script error: No such module "citation/CS1".
  2. Script error: No such module "citation/CS1".
  3. Script error: No such module "citation/CS1".
  4. Script error: No such module "citation/CS1".
  5. Script error: No such module "citation/CS1".
  6. Script error: No such module "citation/CS1".
  7. Script error: No such module "citation/CS1".
  8. Script error: No such module "citation/CS1".
  9. Script error: No such module "citation/CS1".
  10. Script error: No such module "Citation/CS1".
  11. Script error: No such module "citation/CS1".
  12. Script error: No such module "Citation/CS1".
  13. Memoria ub.edu

Script error: No such module "Check for unknown parameters".