Boolean algebra. Values

Similar documents
BOOLEAN ALGEBRA INTRODUCTION SUBSETS

Logic Synthesis and Verification

Boolean Algebra CHAPTER 15

Boolean algebra. Examples of these individual laws of Boolean, rules and theorems for Boolean algebra are given in the following table.

Boolean Algebras. Chapter 2

1. Name the person who developed Boolean algebra

Logic Design. Chapter 2: Introduction to Logic Circuits

Boolean Algebra. The Building Blocks of Digital Logic Design. Section. Section Overview. Binary Operations and Their Representation.

Chapter 2: Switching Algebra and Logic Circuits

CS 226: Digital Logic Design

HANDOUT AND SET THEORY. Ariyadi Wijaya

Adequate set of connectives, logic gates and circuits

Switches: basic element of physical implementations

2. Associative Law: A binary operator * on a set S is said to be associated whenever (A*B)*C = A*(B*C) for all A,B,C S.

Combinational Logic Design Principles

CSE 20 DISCRETE MATH. Fall

Chapter 2. Boolean Algebra and Logic Gates

Chapter 2: Boolean Algebra and Logic Gates

ELEC Digital Logic Circuits Fall 2014 Boolean Algebra (Chapter 2)

Review CHAPTER. 2.1 Definitions in Chapter Sample Exam Questions. 2.1 Set; Element; Member; Universal Set Partition. 2.

Ex: Boolean expression for majority function F = A'BC + AB'C + ABC ' + ABC.

1.1 Statements and Compound Statements

Seminaar Abstrakte Wiskunde Seminar in Abstract Mathematics Lecture notes in progress (27 March 2010)

Propositional Logic. Spring Propositional Logic Spring / 32

EECS150 - Digital Design Lecture 4 - Boolean Algebra I (Representations of Combinational Logic Circuits)

BOOLEAN ALGEBRA. Introduction. 1854: Logical algebra was published by George Boole known today as Boolean Algebra

Part I: Propositional Calculus

Topics in Logic and Proofs

Set Operations. Combining sets into new sets

Foundations of Mathematics MATH 220 FALL 2017 Lecture Notes

Boolean Algebra. Philipp Koehn. 9 September 2016

Outline. EECS150 - Digital Design Lecture 4 - Boolean Algebra I (Representations of Combinational Logic Circuits) Combinational Logic (CL) Defined

Hardware Design I Chap. 2 Basis of logical circuit, logical expression, and logical function

THE LOGIC OF COMPOUND STATEMENTS

Section 1.1: Logical Form and Logical Equivalence

Logic and Boolean algebra

3 Boolean Algebra 3.1 BOOLEAN ALGEBRA

With Question/Answer Animations. Chapter 2

Computer Organization: Boolean Logic

2009 Spring CS211 Digital Systems & Lab CHAPTER 2: INTRODUCTION TO LOGIC CIRCUITS

Boolean Algebra and Proof. Notes. Proving Propositions. Propositional Equivalences. Notes. Notes. Notes. Notes. March 5, 2012

Logic, Sets, and Proofs

LECTURE NOTES DISCRETE MATHEMATICS. Eusebius Doedel

3. Abstract Boolean Algebras

Boolean Algebra & Logic Gates. By : Ali Mustafa

Discrete Mathematics. CS204: Spring, Jong C. Park Computer Science Department KAIST

Propositional Logic. Fall () Propositional Logic Fall / 30

Unit 1. Propositional Logic Reading do all quick-checks Propositional Logic: Ch. 2.intro, 2.2, 2.3, 2.4. Review 2.9

4 Switching Algebra 4.1 Axioms; Signals and Switching Algebra

Formal Verification Methods 1: Propositional Logic

Lecture 2. Logic Compound Statements Conditional Statements Valid & Invalid Arguments Digital Logic Circuits. Reading (Epp s textbook)

Ch 2. Combinational Logic. II - Combinational Logic Contemporary Logic Design 1

CSC Discrete Math I, Spring Propositional Logic

CM10196 Topic 2: Sets, Predicates, Boolean algebras

Chapter 2 Combinational Logic Circuits

Introduction to Quantum Logic. Chris Heunen

Essential facts about NP-completeness:

Combinational Logic. Review of Combinational Logic 1

Week-I. Combinational Logic & Circuits

Logic and Propositional Calculus

Propositional Logic Language

Equivalence and Implication

2.2: Logical Equivalence: The Laws of Logic

CHAPTER 1. MATHEMATICAL LOGIC 1.1 Fundamentals of Mathematical Logic

Truth-Functional Logic

CHAPTER 12 Boolean Algebra

Chapter 5. Digital systems. 5.1 Boolean algebra Negation, conjunction and disjunction

Boolean Algebra and Logic Gates

Lecture Notes on DISCRETE MATHEMATICS. Eusebius Doedel

Chapter 1 : The language of mathematics.

Packet #1: Logic & Proofs. Applied Discrete Mathematics

MODULE- 07 : FLUIDICS AND FLUID LOGIC

CISC-102 Fall 2018 Week 11

Note: The area of logic that deals with propositions is called the propositional calculus or propositional logic.

Digital Circuit And Logic Design I. Lecture 3

Chapter 1. Logic and Proof

586 Index. vertex, 369 disjoint, 236 pairwise, 272, 395 disjoint sets, 236 disjunction, 33, 36 distributive laws

CS61c: Representations of Combinational Logic Circuits

Possible logic functions of two variables

Section 2.2 Set Operations. Propositional calculus and set theory are both instances of an algebraic system called a. Boolean Algebra.

Packet #2: Set Theory & Predicate Calculus. Applied Discrete Mathematics

MATH10040: Chapter 0 Mathematics, Logic and Reasoning

Boolean Algebra & Digital Logic

JUSTIFYING BOOLE S ALGEBRA of LOGIC for CLASSES

Contents. Chapter 2 Digital Circuits Page 1 of 30

The Logic of Partitions

Logic and Proofs. (A brief summary)

Theorem. For every positive integer n, the sum of the positive integers from 1 to n is n(n+1)

EECS150 - Digital Design Lecture 19 - Combinational Logic Circuits : A Deep Dive

Chapter 4, Logic using Propositional Calculus Handout

Doc112: Hardware. Department of Computing, Imperial College London. Doc112: Hardware Lecture 1 Slide 1

DIGITAL CIRCUIT LOGIC BOOLEAN ALGEBRA

UC Berkeley College of Engineering, EECS Department CS61C: Representations of Combinational Logic Circuits

School of Computer Science and Electrical Engineering 28/05/01. Digital Circuits. Lecture 14. ENG1030 Electrical Physics and Electronics

Axiomatic set theory. Chapter Why axiomatic set theory?

Logic and Propositional Calculus

Combinational Logic Fundamentals

Sample Problems for all sections of CMSC250, Midterm 1 Fall 2014

THE LOGIC OF COMPOUND STATEMENTS

1.3 Propositional Equivalences

Transcription:

Boolean algebra 1854 by George Boole in his book An Investigation of the Laws of Thought, is a variant of ordinary elementary algebra differing in its values, operations, and laws. Instead of the usual algebra of numbers, Boolean algebra is the algebra of truth values 0 and 1, or equivalently of subsets of a given set. The operations are usually taken to be conjunction, disjunction, and negation, with constants 0 and 1. And the laws are definable as those equations that hold for all values of their variables, for example x (y x) = x. Applications include mathematical logic, digital logic, computer programming, set theory, and statistics. Boole's algebra predated the modern developments in abstract algebra and mathematical logic; it is however seen as connected to the origins of both fields. In an abstract setting, Boolean algebra was perfected in the late 19th century by Jevons, Schröder, Huntington, and others until it reached the modern conception of an (abstract) mathematical structure. [3] For example, the empirical observation that one can manipulate expressions in the algebra of sets by translating them into expressions in Boole's algebra is explained in modern terms by saying that the algebra of sets is a Boolean algebra (note the indefinite article). In fact, M. H. Stone proved in 1936 that every Boolean algebra is isomorphic to a field of sets. In the 1930s, while studying switching circuits, Claude Shannon observed that one could also apply the rules of Boole's algebra in this setting, and he introduced switching algebra as a way to analyze and design circuits by algebraic means in terms of logic gates. Shannon already had at his disposal the abstract mathematical apparatus, thus he cast his switching algebra as the twoelement Boolean algebra. In circuit engineering settings today, there is little need to consider other Boolean algebras, thus "switching algebra" and "Boolean algebra" are often used interchangeably. Efficient implementation of Boolean functions is a fundamental problem in the design of combinatorial logic circuits. Modern electronic design automation tools for VLSI circuits often rely on an efficient representation of Boolean functions known as (reduced ordered) binary decision diagrams (BDD) for logic synthesis and formal verification. Logic sentences that can be expressed in classical propositional calculus have an equivalent expression in Boolean algebra. Thus, Boolean logic is sometimes used to denote propositional calculus performed in this way. Boolean algebra is not sufficient to capture logic formulas using quantifiers, like those from first order logic. Although the development of mathematical logic did not follow Boole's program, the connection between his algebra and logic was later put on firm ground in the setting of algebraic logic, which also studies the algebraic systems of many other logics. The problem of determining whether the variables of a given Boolean (propositional) formula can be assigned in such a way as to make the formula evaluate to true is called the Boolean satisfiability problem (SAT), and is of importance to theoretical computer science, being the first problem shown to be NP-complete. The closely related model of computation known as a Boolean circuit relates time complexity (of an algorithm) to circuit complexity. Values Whereas elementary algebra deals mainly with real numbers, Boolean algebra deals with the values 0 and 1. These can be thought of as two integers, or as the truth values false and true 1

respectively. In either case they are called bits or binary digits, in contrast to the decimal digits 0 through 9. Boolean algebra also deals with other values on which Boolean operations can be defined, such as sets or sequences of bits. However, Boolean algebra is unlike many other systems of algebra in that it obeys exactly the same laws (equational properties), neither more nor fewer, no matter which of these other values are employed. Much of the subject can therefore be introduced without reference to any values besides 0 and 1. Other values are treated in the section on Boolean algebras. Operations Basic operations Some operations of ordinary algebra, in particular multiplication xy, addition x + y, and negation x, have their counterparts in Boolean algebra, respectively the Boolean operations AND, OR, and NOT, also called conjunction x y, or Kxy, disjunction x y, or Axy, and negation or complement x, Nx, or sometimes!x. Some authors use instead the same arithmetic operations as ordinary algebra reinterpreted for Boolean algebra, treating xy as synonymous with x y and x+y with x y. Conjunction x y behaves on 0 and 1 exactly as multiplication does for ordinary algebra: if either x or y is 0 then x y is 0, but if both are 1 then x y is 1. Disjunction x y works almost like addition, with 0 0 = 0 and 1 0 = 1 and 0 1 = 1. However there is a difference: 1 1 is not 2 but 1. Complement resembles ordinary negation in that it exchanges values. But whereas in ordinary algebra negation interchanges 1 and 1, 2 and 2, etc. while leaving 0 fixed, in Boolean algebra complement interchanges 0 and 1. One can think of ordinary negation as reflecting about 0, and Boolean complement as reflecting about the midpoint of 0 and 1. Complement can be defined arithmetically as x = 1 x because the latter maps 0 to 1 and vice versa, the behavior of x. In summary the three basic Boolean operations can be defined arithmetically as follows. x y = xy x y = x + y xy x = 1 x Alternatively the values of x y, x y, and x can be expressed without reference to arithmetic operations by tabulating their values with truth tables as follows. Figure 1. Truth tables 2

For the two binary x y x y x y x x operations and the truth tables list all four possible 0 0 0 0 0 1 combinations of values for x and y, one per line. For each combination the truth tables 1 0 0 1 1 0 tabulate the values of x y and x y. The truth values of 0 1 0 1 x are tabulated similarly except that only two lines are needed because there is 1 1 1 1 only one variable. Yet another way of specifying these operations is with equations explicitly giving their values. Derived operations 0 0 = 0 0 0 = 0 0 1 = 0 0 1 = 1 1 0 = 0 1 0 = 1 1 1 = 1 1 1 = 1 0 = 1 1 = 0 We have so far seen three Boolean operations. We referred to these as basic, meaning that they can be taken as a basis for other Boolean operations that can be built up from them by composition, the manner in which operations are combined or compounded. Here are some examples of operations composed from the basic operations. x y = ( x y) x y = (x y) (x y) x y = (x y) These definitions give rise to the following truth tables giving the values of these operations for all four possible inputs. x y x y x y x y 0 0 1 0 1 1 0 0 1 0 0 1 1 1 0 1 1 1 0 1 The first operation, x y, or Cxy, is called material implication. If x is true then the value of x y is taken to be that of y. But if x is false then we ignore the value of y; however we must return some truth value and there are only two choices, so we choose the value that entails less, namely true. (Relevance logic addresses this by viewing an implication with a false premise as something other than either true or false.) The second operation, x y, or Jxy, is called exclusive or to distinguish it from disjunction as the inclusive kind. It excludes the possibility of both x and y. Defined in terms of arithmetic it is addition mod 2 where 1 + 1 = 0. 3

The third operation, the complement of exclusive or, is equivalence or Boolean equality: x y, or Exy, is true just when x and y have the same value. Hence x y as its complement can be understood as x y, being true just when x and y are different. Laws A law of Boolean algebra is an equation such as x (y z) = (x y) z between two Boolean terms, where a Boolean term is defined as an expression built up from variables and the constants 0 and 1 using the operations,, and. The concept can be extended to terms involving other Boolean operations such as,, and, but such extensions are unnecessary for the purposes to which the laws are put. Such purposes include the definition of a Boolean algebra as any model of the Boolean laws, and as a means for deriving new laws from old as in the derivation of x (y z) = x (z y) from y z = z y as treated in the section on axiomatization. Monotone laws Boolean algebra satisfies many of the same laws as ordinary algebra when we match up with addition and with multiplication. In particular the following laws are common to both kinds of algebra: (Associativity of ) x (y z) = (x y) z (Associativity of ) x (y z) = (x y) z (Commutativity of ) x y = y x (Commutativity of ) x y = y x (Distributivity of over ) x (y z) = (x y) (x z) (Identity for ) x 0 = x (Identity for ) x 1 = x (Annihilator for ) x 0 = 0 Boolean algebra however obeys some additional laws, in particular the following: (Idempotence of ) x x = x (Idempotence of ) x x = x (Absorption 1) x (x y) = x (Absorption 2) x (x y) = x (Distributivity of over ) x (y z) = (x y) (x z) (Annihilator for ) x 1 = 1 A consequence of the first of these laws is 1 1 = 1, which is false in ordinary algebra, where 1+1 = 2. Taking x = 2 in the second law shows that it is not an ordinary algebra law either, since 2 2 = 4. The remaining four laws can be falsified in ordinary algebra by taking all variables to be 1, for example in Absorption Law 1 the left hand side is 1(1+1) = 2 while the right hand side is 1, and so on. 4

All of the laws treated so far have been for conjunction and disjunction. These operations have the property that changing either argument either leaves the output unchanged or the output changes in the same way as the input. Equivalently, changing any variable from 0 to 1 never results in the output changing from 1 to 0. Operations with this property are said to be monotone. Thus the axioms so far have all been for monotonic Boolean logic. Nonmonotonicity enters via complement as follows. Nonmonotone laws The complement operation is defined by the following two laws. (Complementation 1) x x = 0 (Complementation 2) x x = 1. All properties of negation including the laws below follow from the above two laws alone. In both ordinary and Boolean algebra, negation works by exchanging pairs of elements, whence in both algebras it satisfies the double negation law (Double negation) x = x. But whereas ordinary algebra satisfies the two laws Boolean algebra satisfies De Morgan's laws, Completeness ( x)( y) = xy ( x) + ( y) = (x + y), (De Morgan 1) ( x) ( y) = (x y) (De Morgan 2) ( x) ( y) = (x y). At this point we can now claim to have defined Boolean algebra, in the sense that the laws we have listed up to now entail the rest of the subject. The laws Complementation 1 and 2, together with the monotone laws, suffice for this purpose and can therefore be taken as one possible complete set of laws or axiomatization of Boolean algebra. Every law of Boolean algebra follows logically from these axioms. Furthermore Boolean algebras can then be defined as the models of these axioms as treated in the section thereon. To clarify, writing down further laws of Boolean algebra cannot give rise to any new consequences of these axioms, nor can it rule out any model of them. Had we stopped listing laws too soon, there would have been Boolean laws that did not follow from those on our list, and moreover there would have been models of the listed laws that were not Boolean algebras. 5

This axiomatization is by no means the only one, or even necessarily the most natural given that we did not pay attention to whether some of the axioms followed from others but simply chose to stop when we noticed we had enough laws, treated further in the section on axiomatizations. Or the intermediate notion of axiom can be sidestepped altogether by defining a Boolean law directly as any tautology, understood as an equation that holds for all values of its variables over 0 and 1. All these definitions of Boolean algebra can be shown to be equivalent. Boolean algebra has the interesting property that x = y can be proved from any non-tautology. This is because the substitution instance of any non-tautology obtained by instantiating its variables with constants 0 or 1 so as to witness its non-tautologyhood reduces by equational reasoning to 0 = 1. It follows that x = x 1 = x 0 = 0 = 1 = y 1 = y 0 = y. Duality principle There is nothing magic about the choice of symbols for the values of Boolean algebra. We could rename 0 and 1 to say α and β, and as long as we did so consistently throughout it would still be Boolean algebra, albeit with some obvious cosmetic differences. But suppose we rename 0 and 1 to 1 and 0 respectively. Then it would still be Boolean algebra, and moreover operating on the same values. However it would not be identical to our original Boolean algebra because now we find behaving the way used to do and vice versa. So there are still some cosmetic differences to show that we've been fiddling with the notation, despite the fact that we're still using 0s and 1s. But if in addition to interchanging the names of the values we also interchange the names of the two binary operations, now there is no trace of what we have done. The end product is completely indistinguishable from what we started with. We might notice that the columns for x y and x y in the truth tables had changed places, but that switch is immaterial. When values and operations can be paired up in a way that leaves everything important unchanged when all pairs are switched simultaneously, we call the members of each pair dual to each other. Thus 0 and 1 are dual, and and are dual. The Duality Principle, also called De Morgan duality, asserts that Boolean algebra is unchanged when all dual pairs are interchanged. One change we did not need to make as part of this interchange was to complement. We say that complement is a self-dual operation. The identity or do-nothing operation x (copy the input to the output) is also self-dual. A more complicated example of a self-dual operation is (x y) (y z) (z x). It can be shown that self-dual operations must take an odd number of arguments; thus there can be no self-dual binary operation. The principle of duality can be explained from a group theory perspective by fact that there are exactly four functions that are one-to-one mappings (automorphisms) of the set of Boolean polynomials back to itself: the identity function, the complement function, the dual function and the contradual function (complemented dual). These four functions form a group under function composition, isomorphic to the Klein four-group, acting on the set of Boolean polynomials. 6

Diagrammatic representations Venn diagrams A Venn diagram is a representation of a Boolean operation using shaded overlapping regions. There is one region for each variable, all circular in the examples here. The interior and exterior of region x corresponds respectively to the values 1 (true) and 0 (false) for variable x. The shading indicates the value of the operation for each combination of regions, with dark denoting 1 and light 0 (some authors use the opposite convention). The three Venn diagrams in the figure below represent respectively conjunction x y, disjunction x y, and complement x. Figure 2. Venn diagrams for conjunction, disjunction, and complement For conjunction, the region inside both circles is shaded to indicate that x y is 1 when both variables are 1. The other regions are left unshaded to indicate that x y is 0 for the other three combinations. The second diagram represents disjunction x y by shading those regions that lie inside either or both circles. The third diagram represents complement x by shading the region not inside the circle. While we have not shown the Venn diagrams for the constants 0 and 1, they are trivial, being respectively a white box and a dark box, neither one containing a circle. However we could put a circle for x in those boxes, in which case each would denote a function of one argument, x, which returns the same value independently of x, called a constant function. As far as their outputs are concerned, constants and constant functions are indistinguishable; the difference is that a constant takes no arguments, called a zeroary or nullary operation, while a constant function takes one argument, which it ignores, and is a unary operation. Venn diagrams are helpful in visualizing laws. The commutativity laws for and can be seen from the symmetry of the diagrams: a binary operation that was not commutative would not have a symmetric diagram because interchanging x and y would have the effect of reflecting the diagram horizontally and any failure of commutativity would then appear as a failure of symmetry. 7

Idempotence of and can be visualized by sliding the two circles together and noting that the shaded area then becomes the whole circle, for both and. To see the first absorption law, x (x y) = x, start with the diagram in the middle for x y and note that the portion of the shaded area in common with the x circle is the whole of the x circle. For the second absorption law, x (x y) = x, start with the left diagram for x y and note that shading the whole of the x circle results in just the x circle being shaded, since the previous shading was inside the x circle. The double negation law can be seen by complementing the shading in the third diagram for x, which shades the x circle. To visualize the first De Morgan's law, ( x) ( y) = (x y), start with the middle diagram for x y and complement its shading so that only the region outside both circles is shaded, which is what the right hand side of the law describes. The result is the same as if we shaded that region which is both outside the x circle and outside the y circle, i.e. the conjunction of their exteriors, which is what the left hand side of the law describes. The second De Morgan's law, ( x) ( y) = (x y), works the same way with the two diagrams interchanged. The first complement law, x x = 0, says that the interior and exterior of the x circle have no overlap. The second complement law, x x = 1, says that everything is either inside or outside the x circle. Digital logic gates Digital logic is the application of the Boolean algebra of 0 and 1 to electronic hardware consisting of logic gates connected to form a circuit diagram. Each gate implements a Boolean operation, and is depicted schematically by a shape indicating the operation. The shapes associated with the gates for conjunction (AND-gates), disjunction (OR-gates), and complement (inverters) are as follows. The lines on the left of each gate represent input wires or ports. The value of the input is represented by a voltage on the lead. For so-called "active-high" logic 0 is represented by a voltage close to zero or "ground" while 1 is represented by a voltage close to the supply voltage; active-low reverses this. The line on the right of each gate represents the output port, which normally follows the same voltage conventions as the input ports. Complement is implemented with an inverter gate. The triangle denotes the operation that simply copies the input to the output; the small circle on the output denotes the actual inversion 8

complementing the input. The convention of putting such a circle on any port means that the signal passing through this port is complemented on the way through, whether it is an input or output port. There being eight ways of labeling the three ports of an AND-gate or OR-gate with inverters, this convention gives a wide range of possible Boolean operations realized as such gates so decorated. Not all combinations are distinct however: any labeling of AND-gate ports with inverters realizes the same Boolean operation as the opposite labeling of OR-gate ports (a given port of the AND-gate is labeled with an inverter if and only if the corresponding port of the ORgate is not so labeled). This follows from De Morgan's laws. If we complement all ports on every gate, and interchange AND-gates and OR-gates, as in Figure 4 below, we end up with the same operations as we started with, illustrating both De Morgan's laws and the Duality Principle. Note that we did not need to change the triangle part of the inverter, illustrating self-duality for complement. Because of the pairwise identification of gates via the Duality Principle, even though 16 schematic symbols can be manufactured from the two basic binary gates AND and OR by furnishing their ports with inverters (circles), they only represent eight Boolean operations, namely those operations with an odd number of ones in their truth table. Altogether there are 16 binary Boolean operations, the other eight being those with an even number of ones in their truth table, namely the following. The constant 0, viewed as a binary operation that ignores both its inputs, has no ones, the six operations x, y, x, y (as binary operations that ignore one input), x y, and x y have two ones, and the constant 1 has four ones. Boolean algebras The term "algebra" denotes both a subject, namely the subject of algebra, and an object, namely an algebraic structure. Whereas the foregoing has addressed the subject of Boolean algebra, this section deals with mathematical objects called Boolean algebras, defined in full generality as any model of the Boolean laws. We begin with a special case of the notion definable without reference to the laws, namely concrete Boolean algebras, and then give the formal definition of the general notion. Concrete Boolean algebras A concrete Boolean algebra or field of sets is any nonempty set of subsets of a given set X closed under the set operations of union, intersection, and complement relative to X. (As an aside, historically X itself was required to be nonempty as well to exclude the degenerate or one-element Boolean algebra, which is the one exception to the rule that all Boolean algebras satisfy the same equations since the degenerate algebra satisfies every equation. However this 9

exclusion conflicts with the preferred purely equational definition of "Boolean algebra," there being no way to rule out the one-element algebra using only equations 0 1 does not count, being a negated equation. Hence modern authors allow the degenerate Boolean algebra and let X be empty.) Example 1. The power set 2 X of X, consisting of all subsets of X. Here X may be any set: empty, finite, infinite, or even uncountable. Example 2. The empty set and X. This two-element algebra shows that a concrete Boolean algebra can be finite even when it consists of subsets of an infinite set. It can be seen that every field of subsets of X must contain the empty set and X. Hence no smaller example is possible, other than the degenerate algebra obtained by taking X to be empty so as to make the empty set and X coincide. Example 3. The set of finite and cofinite sets of integers, where a cofinite set is one omitting only finitely many integers. This is clearly closed under complement, and is closed under union because the union of a cofinite set with any set is cofinite, while the union of two finite sets is finite. Intersection behaves like union with "finite" and "cofinite" interchanged. Example 4. For a less trivial example of the point made by Example 2, consider a Venn diagram formed by n closed curves partitioning the diagram into 2 n regions, and let X be the (infinite) set of all points in the plane not on any curve but somewhere within the diagram. The interior of each region is thus an infinite subset of X, and every point in X is in exactly one region. Then the set of all 2 2n possible unions of regions (including the empty set obtained as the union of the empty set of regions and X obtained as the union of all 2 n regions) is closed under union, intersection, and complement relative to X and therefore forms a concrete Boolean algebra. Again we have finitely many subsets of an infinite set forming a concrete Boolean algebra, with Example 2 arising as the case n = 0 of no curves. Subsets as bit vectors A subset Y of X can be identified with an indexed family of bits with index set X, with the bit indexed by x X being 1 or 0 according to whether or not x Y. (This is the so-called characteristic function notion of a subset.) For example a 32-bit computer word consists of 32 bits indexed by the set {0,1,2,,31}, with 0 and 31 indexing the low and high order bits respectively. For a smaller example, if X = {a,b,c} where a, b, c are viewed as bit positions in that order from left to right, the eight subsets {}, {c}, {b}, {b,c}, {a}, {a,c}, {a,b}, and {a,b,c} of X can be identified with the respective bit vectors 000, 001, 010, 011, 100, 101, 110, and 111. Bit vectors indexed by the set of natural numbers are infinite sequences of bits, while those indexed by the reals in the unit interval [0,1] are packed too densely to be able to write conventionally but nonetheless form well-defined indexed families (imagine coloring every point of the interval [0,1] either black or white independently; the black points then form an arbitrary subset of [0,1]). From this bit vector viewpoint, a concrete Boolean algebra can be defined equivalently as a nonempty set of bit vectors all of the same length (more generally, indexed by the same set) and 10

closed under the bit vector operations of bitwise,, and, as in 1010 0110 = 0010, 1010 0110 = 1110, and 1010 = 0101, the bit vector realizations of intersection, union, and complement respectively. 11