04-BooleanLogic
04-BooleanLogic
Will Leeson
What comes to mind
when you think of
“Logic”?
Boolean Logic
● Developed by George Boole in 1854 X Y XΦY
● A systematic approach to logic
T T T
● Two Values
○ True (1) T F F
○ False (0)
● Variables F T F
F T T
F F T
Truth Tables
(X ∨ Y) ∧ ¬X
X Y (X ∨ Y) ¬X (X∨Y) ∧ ¬X
T T T F F
T F T F F
F T T T T
F F F T F
Truth Tables
(A → B) ∨ (B → A)
A B (A → B) (B → A) (A → B) ∨ (B → A)
T T T T T
T F F T T
F T T F T
F F T T T
Tautology!
Truth Tables
(X ∨ Y) ∧ ¬(X ∨ Y)
T T T F F
T F T F F
F T T F F
F F F T F
Contradiction!
Truth Tables
X∧Y↔Z∨Y
X Y Z X∧Y Z∨Y X∧Y↔Z∨Y
T T T T T T
T T F T T T
T F T F T F
T F F F F T
F T T F T F
F T F F T F
F F T F T F
F F F F F T
Logical Equivalence
X Y X→Y X Y ¬X ¬X ∨ Y
T T T T T F T
T F F ≡ T F F F
F T T F T T T
F F T F F T T
Logical Equivalence
X Y X↔Y X Y (X ∧ Y) ∨ (¬X ∧
¬Y)
T T T
T T T
T F F ≡ T F F
F T F
F T F
F F T
F F T
Logical Equivalence
X Y X⊕Y X Y (X ∨ Y) ∧ ¬(X ∧ Y)
T T F T T T
T F T ≡ T F F
F T T F T F
F F F F F T
So what does this
have to do with
Computers?
Computers are machines
● They do not think for themselves
● They follow a set of instructions
○ Can be informed by external stimulus
○ Can be informed by “randomness”
● Programs rarely don’t make “decisions”
○ If they clicked button X, do Y
○ If X and Y or Z, do A
● When writing programs, you will use boolean logic
Computers are machines
● Computers are wires with electricity
running through them
● They don’t know what X+Y means
○ We must translate X+Y to electricity
○ This is where Boolean Algebra comes in
● Different “gates” enact boolean
operations
● Circuits are combinations of gates
serving different purposes
Gate diagrams
1 1 1 1
1 0
0 0 1 1
1 1
0 1
0 1
In decimal: 1 + 0 = 1 In decimal: 1 + 1 = 2
In binary: 1 + 0 = 1 In binary: 1 + 1 = 10
In logic: S = 1 ⊕ 0 = 1 In logic: S = 1 ⊕ 1 = 0
C=1∧0=0 C=1∧1=1
And we can go on from there…