**Boolean algebra** (or Boolean logic) is a logical calculus of truth values, developed by George Boole. It resembles the algebra of real numbers as taught in high school, but with the numeric operations of multiplication xy, addition x + y, and negation -x replaced, respectively, by the logical operations of conjunction x?y, disjunction x?y, and compliment x.

The Boolean operations are these and all other operations obtainable from them by composition; equivalently, the finitary operations on the set {0,1}. The laws of Boolean algebra can be defined axiomatically as the equations derivable from a sufficient finite subset of those laws, such as the equations axiomatizing a complemented distributive lattice or a Boolean ring, or semantically as those equations identically true or valid over {0,1}.

The axiomatic approach is sound and complete in the sense that it proves respectively neither more nor fewer laws than the validity-based semantic approach.

Why we need Boolean algebra?

Now, after studying so much, we have two methods for representing combinational logic: schematics and truth tables.

These two methods are inadequate for a number of reasons:

• Both schematics and truth tables take too much space to describe the operation of complex circuits with numerous inputs.

• The truth table “hides” circuit information.

• The schematic diagram is difficult to use when trying to determine output values for each input combination.

To overcome these problems, a discipline much like algebra is practiced that uses expressions to describe digital circuitry. These expressions, which are called Boolean expressions, use the input variable names, A, B, C, etc., and combine them using symbols representing the AND, OR, and NOT gates.

These Boolean expressions can be used to describe or evaluate the output of a circuit. There is an additional benefit. Just like algebra, a set of rules exist that when applied to Boolean expressions can dramatically simplify them. A simpler expression that produces the same output can be realized with fewer logic gates. A lower gate count results in cheaper circuitry, smaller circuit boards, and lower power consumption.

If your software uses binary logic, the logic can be represented with Boolean expressions. Applying the rules of simplification will make the software run faster or allow it to use less memory.