Boolean Algebra

The section of abstract mathematics concerning two values: true and false.
June 23, 2017—Patrick Griffin

History

George Boole introduced Boolean algebra in 1847 as part of his book, The Mathematical Analysis of Logic. The approach was then fine-tuned by William Stanley Jevons and Ernst Schröder in the late 19th century. The system was applied to circuitry in the 1930s when Claude Shannon, a mathematician and electronics engineer, made the realization that Boolean algebra could be used as tool to analyze logic gates. Any system using sentential logic will also have a way of representation in Boolean algebra.

Rules of Boolean Algebra

There are 13 basic laws of Boolean algebra.
In[]:=
Rules
"A+1=1"
"A+0=A"
"A*1=A"
"A*0=0"
"A+A=A"
"A*A=A"
"-(-A)=A"
"A+-A=1"
"A*-A=0"
"A+B=B+A"
"A*B=B*A"
"-(A+B)=-A+-B"
"-(A*B)=-A*-B"
These concepts can be easily be represented using Mathematica’s built-in functions.
Rule 1:
A||1==1
:
In[]:=
True||1//Boole
Out[]=
1
Shouldn’t this rule be input as follows (parentheses are required because of operator precedence)?
In[]:=
(||True)True
Out[]=
True
In StandardForm, you can write this as (using
or
to generate the
∨
operator):
In[]:=
(∨True)True
Out[]=
True
I’ve used

(
scA
) instead of
A
, as using capital letters (such as
C
,
D
,
K
) can cause problems (reserved words in the system).
Alternatively, use TraditionalForm (Cell > Convert To > TraditionalForm):
In[]:=
(∨True)True
Out[]=
True
In[]:=
False||1
In[]:=
1||1//FullSimplify//Boole
Out[]=
1
In[]:=
0||1//FullSimplify//Boole
Out[]=
1
Rule 2:
A||0A
:
In[]:=
1||0//FullSimplify//Boole
Out[]=
1
Here’s another way to write rule 2:
In[]:=
(∨False)
Out[]=
True
In[]:=
0||0//FullSimplify//Boole
Out[]=
0
Rule 3:
A&&1A
:
In[]:=
Boole[True&&True]
Out[]=
1
In[]:=
Boole[False&&True]
Out[]=
0
In[]:=
1&&1//FullSimplify//Boole
Out[]=
1
In[]:=
0&&1//FullSimplify//Boole
Out[]=
0
Rule 4:
A&&0==0
:
In[]:=
Boole[True&&False]
Out[]=
0
In[]:=
Boole[False&&False]
Out[]=
0
In[]:=
1&&0//FullSimplify//Boole
Out[]=
0
In[]:=
0&&0//FullSimplify//Boole
Out[]=
0
Rule 5:
A||A=A
:
In[]:=
Boole[True||True]
Out[]=
1
In[]:=
Boole[False||False]
Out[]=
0
In[]:=
1||1//FullSimplify//Boole
Out[]=
1
In[]:=
0||0//FullSimplify//Boole
Out[]=
0
Rule 6:
A&&A=A
:
In[]:=
Boole[True&&True]
Out[]=
1
In[]:=
Boole[False&&False]
Out[]=
0
In[]:=
1&&1//FullSimplify//Boole
Out[]=
1
In[]:=
0&&0//FullSimplify//Boole
Out[]=
0
Rule 7:
!( !A)=A
:

In[]:=
!( !A)
Out[]=
A
In[]:=
(¬(¬a))a
Out[]=
True
Rule 8:
A|| !A=1
:

In[]:=
1|| !1//FullSimplify//Boole
Out[]=
1
Boole is not required here:
In[]:=
1|| !1//FullSimplify
Out[]=
True
An alternative:
In[]:=
(∧¬)False//FullSimplify
Out[]=
True
Rule 9:
A&& !A=0
:

In[]:=
1&& !1//FullSimplify//Boole
Out[]=
0
In[]:=
0&& !0//FullSimplify//Boole
Out[]=
0
Rule 10:
A||BB||A
:
In[]:=
A||BB||A

Applications

FURTHER EXPLORATIONS
Circuit Analysis
Karnaugh Map
Logic
AUTHORSHIP INFORMATION
Patrick Griffin
6/23/17