Download - 02 - Boolean algebra
computerinformation information
computation
Alan Turing, 1937
George Boole1815 – 1864
George Boole1815 – 1864
Claude Shannon1916 – 2001
+
+
a = 0
+
y = 0
a = 0
++
y = 0
a = 0
+
a = 1
+
y = 0
a = 0
+
y = 1
a = 1
+
y = 0
a = 0
+
b = 0
a = 0
+
b = 0
a = 0
y = 0
∧ ba = y00 0
+
b = 1
a = 0∧ ba = y
00 0
+
b = 1
a = 0
y = 0
∧ ba = y00 010 0
+
b = 0
a = 1∧ ba = y
00 010 0
+
b = 0
a = 1
y = 0
∧ ba = y00 010 001 0
+
b = 1
a = 1∧ ba = y
00 010 001 0
+
b = 1
a = 1
y = 1
∧ ba = y00 010 001 011 1
+
b = x
a = 0∧ ba = y
00 010 001 011 1
+
b = x
a = 0
y = 0
∧ ba = y00 010 001 011 1x0 0
+
b = x
a = 1∧ ba = y
00 010 001 011 1x0 0
+
b = x
a = 1
y = x
∧ ba = y00 010 001 011 1x0 0x1 x
+
b = x
a = x∧ ba = y
00 010 001 011 1x0 0x1 x
+
b = x
a = x
y = x
∧ ba = y00 010 001 011 1x0 0x1 xxx x
+
a = 0 b = 0
+
a = 0 b = 0
y = 0
∨ ba = y00 0
+
a = 0 b = 1
∨ ba = y00 0
+
a = 0 b = 1
y = 1
∨ ba = y00 010 1
+
a = 1 b = 0
∨ ba = y00 010 1
+
a = 1 b = 0
y = 1
∨ ba = y00 010 101 1
+
a = 1 b = 1
∨ ba = y00 010 101 1
+
a = 1 b = 1
y = 1
∨ ba = y00 010 101 111 1
+
a = 0 b = x
∨ ba = y00 010 101 111 1
+
a = 0 b = x
y = x
∨ ba = y00 010 101 111 1x0 x
+
a = 1 b = x
∨ ba = y00 010 101 111 1x0 x
+
a = 1 b = x
y = 1
∨ ba = y00 010 101 111 1x0 xx1 1
+
a = x b = x
∨ ba = y00 010 101 111 1x0 xx1 1
+
a = x b = x
y = x
∨ ba = y00 010 101 111 1x0 xx1 1xx x
+
∨ ba = y00 010 101 111 1
∧ ba = y00 010 001 011 1
Conjunction (AND) Disjunction (OR)
∨ ba = y00 010 101 111 1
∧ ba = y00 010 001 011 1
?
Conjunction (AND) Disjunction (OR)
a = 0
a = 0
y = 1
a =¬ y0 1
a = 1
a =¬ y0 1
a = 1
y = 0
a =¬ y0 11 0
∨ ba = y00 010 101 111 1
∧ ba = y00 010 001 011 1
a =¬ y0 11 0
Conjunction (AND) Disjunction (OR) Negation (NOT)
¬ a
a ∧ b
a ∨ b
- a
a * b
a + b
¬ a
a ∧ b
a ∨ b
- a
a * b
a + b
¬ a
a ∧ b
a ∨ b
! a
a & b
a | b
- a
a * b
a + b
¬ a
a ∧ b
a ∨ b
! a
a & b
a | b
NOT
OR
AND
- a
a * b
a + b
¬ a
a ∧ b
a ∨ b
! a
a & b
a | b
NOT
OR
AND
a ∧ 1 = aa ∨ 0 = a
Neutral elements
a ∧ 1 = aa ∨ 0 = a
Neutral elements
a ∧ 0 = 0a ∨ 1 = 1
Zero elements
a ∧ 1 = aa ∨ 0 = a
Neutral elements
a ∧ 0 = 0a ∨ 1 = 1
Zero elements
a ∧ a = aa ∨ a = a
Idempotence
a ∧ 1 = aa ∨ 0 = a
Neutral elements
a ∧ 0 = 0a ∨ 1 = 1
Zero elements
a ∧ a = aa ∨ a = a
Idempotence
a ∧ ¬ a = 0a ∨ ¬ a = 1
Negation
a ∧ 1 = aa ∨ 0 = a
Neutral elements
a ∧ 0 = 0a ∨ 1 = 1
Zero elements
a ∧ a = aa ∨ a = a
Idempotence
a ∧ ¬ a = 0a ∨ ¬ a = 1
Negation
a ∨ b = b ∨ aa ∧ b = b ∧ a
Commutativity
a ∧ 1 = aa ∨ 0 = a
Neutral elements
a ∧ 0 = 0a ∨ 1 = 1
Zero elements
a ∧ a = aa ∨ a = a
Idempotence
a ∧ ¬ a = 0a ∨ ¬ a = 1
Negation
a ∨ b = b ∨ aa ∧ b = b ∧ a
Commutativity
a ∧ (b ∧ c) = (a ∧ b) ∧ ca ∨ (b ∨ c) = (a ∨ b) ∨ c
Associativity
a ∧ 1 = aa ∨ 0 = a
Neutral elements
a ∧ 0 = 0a ∨ 1 = 1
Zero elements
a ∧ a = aa ∨ a = a
Idempotence
a ∧ ¬ a = 0a ∨ ¬ a = 1
Negation
a ∨ b = b ∨ aa ∧ b = b ∧ a
Commutativity
a ∧ (b ∧ c) = (a ∧ b) ∧ ca ∨ (b ∨ c) = (a ∨ b) ∨ c
Associativity
a ∧ (b ∨ c) = (a ∧ b) ∨ (a ∧ c)a ∨ (b ∧ c) = (a ∨ b) ∧ (a ∨ c)
Distributivity
De Morgan (1806 – 1871)
¬ (a ∧ b) = (¬ a) ∨ (¬ b)¬ (a ∨ b) = (¬ a) ∧ (¬ b)
DeMorgan’s laws
NAND
NOR
De Morgan (1806 – 1871)
¬ (a ∧ b) = (¬ a) ∨ (¬ b)¬ (a ∨ b) = (¬ a) ∧ (¬ b)
a b a ∨ b ¬ (a ∨ b) ¬ a ¬ b (¬ a) ∧ (¬ b)0011
0101
0111
1000
1100
1010
1000
DeMorgan’s laws
NAND
NOR
De Morgan (1806 – 1871)
¬ (a ∧ b) = (¬ a) ∨ (¬ b)¬ (a ∨ b) = (¬ a) ∧ (¬ b)
a b a ∨ b ¬ (a ∨ b) ¬ a ¬ b (¬ a) ∧ (¬ b)0011
0101
0111
1000
1100
1010
1000
DeMorgan’s laws
NAND
NOR
De Morgan (1806 – 1871)
¬ (a ∧ b) = (¬ a) ∨ (¬ b)¬ (a ∨ b) = (¬ a) ∧ (¬ b)
a b a ∨ b ¬ (a ∨ b) ¬ a ¬ b (¬ a) ∧ (¬ b)0011
0101
0111
1000
1100
1010
1000
DeMorgan’s laws
NAND
NOR
De Morgan (1806 – 1871)
¬ (a ∧ b) = (¬ a) ∨ (¬ b)¬ (a ∨ b) = (¬ a) ∧ (¬ b)
a b a ∨ b ¬ (a ∨ b) ¬ a ¬ b (¬ a) ∧ (¬ b)0011
0101
0111
1000
1100
1010
1000
DeMorgan’s laws
NAND
NOR
De Morgan (1806 – 1871)
¬ (a ∧ b) = (¬ a) ∨ (¬ b)¬ (a ∨ b) = (¬ a) ∧ (¬ b)
a b a ∨ b ¬ (a ∨ b) ¬ a ¬ b (¬ a) ∧ (¬ b)0011
0101
0111
1000
1100
1010
1000
DeMorgan’s laws
NAND
NOR
De Morgan (1806 – 1871)
¬ (a ∧ b) = (¬ a) ∨ (¬ b)¬ (a ∨ b) = (¬ a) ∧ (¬ b)
a b a ∨ b ¬ (a ∨ b) ¬ a ¬ b (¬ a) ∧ (¬ b)0011
0101
0111
1000
1100
1010
1000
DeMorgan’s laws
NAND
NOR
De Morgan (1806 – 1871)
¬ (a ∧ b) = (¬ a) ∨ (¬ b)¬ (a ∨ b) = (¬ a) ∧ (¬ b)
a b a ∨ b ¬ (a ∨ b) ¬ a ¬ b (¬ a) ∧ (¬ b)0011
0101
0111
1000
1100
1010
1000
DeMorgan’s laws
NAND
NOR
a ∧ 1 = a a ∨ b = b ∨ aa ∨ 0 = a
a ∧ 0 = 0a ∨ 1 = 1
a ∧ a = aa ∨ a = a
a ∧ ¬ a = 0a ∨ ¬ a = 1
Neutral elements
Zero elements
Idempotence
Negation
a ∧ (b ∧ c) = (a ∧ b) ∧ c
a ∧ b = b ∧ a
a ∨ (b ∨ c) = (a ∨ b) ∨ c
a ∧ (b ∨ c) = (a ∧ b) ∨ (a ∧ c)a ∨ (b ∧ c) = (a ∨ b) ∧ (a ∨ c)
¬ (a ∧ b) = (¬ a) ∨ (¬ b)¬ (a ∨ b) = (¬ a) ∧ (¬ b)
Commutativity
Associativity
Distributivity
DeMorgan’s
≠ ba = y00 010 101 111 0
Exclusive OR (XOR)
≠ ba = y00 010 101 111 0
Exclusive OR (XOR)
⇒ ba = y00 110 101 011 1
Implication
≠ ba = y00 010 101 111 0
Exclusive OR (XOR)
⇒ ba = y00 110 101 011 1
⇔ ba = y00 110 001 011 1
Implication Equivalence
≠ ba = y00 010 101 111 0
Exclusive OR (XOR)
⇒ ba = y00 110 101 011 1
⇔ ba = y00 110 001 011 1
Implication Equivalence
∨ ba = y00 010 101 111 1
∧ ba = y00 010 001 011 1
Conjunction (AND) Disjunction (OR)
a =¬ y0 11 0
Negation (NOT)
≠ ba = y00 010 101 111 0
Exclusive OR (XOR)
⇒ ba = y00 110 101 011 1
⇔ ba = y00 110 001 011 1
Implication Equivalence
∨ ba = y00 010 101 111 1
∧ ba = y00 010 001 011 1
Conjunction (AND) Disjunction (OR)
a =¬ y0 11 0
Negation (NOT)4 3 3
3 2 1
Tautology
f = 1 (a ∧ (a ⇒ b)) ⇒ b
Contradiction
f = 0 a ∧ (¬ a)
Satisfiable
f = 1 sometimes a ⇒ b
How many basic boolean functionswith 2 parameters are possible?
How many basic boolean functionswith 2 parameters are possible?
00110101
ab
0000 y0 = 00001 y1 = a ∧ b0010 y2 = a ∧ ¬ b0011 y3 = a0100 y4 = ¬ a ∧ b0101 y5 = b0110 y6 = a ≠ b0111 y7 = a ∨ b
How many basic boolean functionswith 2 parameters are possible?
00110101
ab
0000 y0 = 00001 y1 = a ∧ b0010 y2 = a ∧ ¬ b0011 y3 = a0100 y4 = ¬ a ∧ b0101 y5 = b0110 y6 = a ≠ b0111 y7 = a ∨ b
How many basic boolean functionswith 2 parameters are possible?
00110101
ab
0000 y0 = 00001 y1 = a ∧ b0010 y2 = a ∧ ¬ b0011 y3 = a0100 y4 = ¬ a ∧ b0101 y5 = b0110 y6 = a ≠ b0111 y7 = a ∨ b
How many basic boolean functionswith 2 parameters are possible?
00110101
ab
0000 y0 = 00001 y1 = a ∧ b0010 y2 = a ∧ ¬ b0011 y3 = a0100 y4 = ¬ a ∧ b0101 y5 = b0110 y6 = a ≠ b0111 y7 = a ∨ b
How many basic boolean functionswith 2 parameters are possible?
00110101
ab
0000 y0 = 00001 y1 = a ∧ b0010 y2 = a ∧ ¬ b0011 y3 = a0100 y4 = ¬ a ∧ b0101 y5 = b0110 y6 = a ≠ b0111 y7 = a ∨ b
How many basic boolean functionswith 2 parameters are possible?
00110101
ab
0000 y0 = 00001 y1 = a ∧ b0010 y2 = a ∧ ¬ b0011 y3 = a0100 y4 = ¬ a ∧ b0101 y5 = b0110 y6 = a ≠ b0111 y7 = a ∨ b
How many basic boolean functionswith 2 parameters are possible?
00110101
ab
0000 y0 = 00001 y1 = a ∧ b0010 y2 = a ∧ ¬ b0011 y3 = a0100 y4 = ¬ a ∧ b0101 y5 = b0110 y6 = a ≠ b0111 y7 = a ∨ b
How many basic boolean functionswith 2 parameters are possible?
00110101
ab
0000 y0 = 00001 y1 = a ∧ b0010 y2 = a ∧ ¬ b0011 y3 = a0100 y4 = ¬ a ∧ b0101 y5 = b0110 y6 = a ≠ b0111 y7 = a ∨ b
How many basic boolean functionswith 2 parameters are possible?
00110101
ab
0000 y0 = 00001 y1 = a ∧ b0010 y2 = a ∧ ¬ b0011 y3 = a0100 y4 = ¬ a ∧ b0101 y5 = b0110 y6 = a ≠ b0111 y7 = a ∨ b
How many basic boolean functionswith 2 parameters are possible?
00110101
ab
0000 y0 = 00001 y1 = a ∧ b0010 y2 = a ∧ ¬ b0011 y3 = a0100 y4 = ¬ a ∧ b0101 y5 = b0110 y6 = a ≠ b0111 y7 = a ∨ b
How many basic boolean functionswith 2 parameters are possible?
00110101
ab
0000 y0 = 00001 y1 = a ∧ b0010 y2 = a ∧ ¬ b0011 y3 = a0100 y4 = ¬ a ∧ b0101 y5 = b0110 y6 = a ≠ b0111 y7 = a ∨ b
How many basic boolean functionswith 2 parameters are possible?
00110101
ab
0000 y0 = 00001 y1 = a ∧ b0010 y2 = a ∧ ¬ b0011 y3 = a0100 y4 = ¬ a ∧ b0101 y5 = b0110 y6 = a ≠ b0111 y7 = a ∨ b
How many basic boolean functionswith 2 parameters are possible?
00110101
ab
0000 y0 = 00001 y1 = a ∧ b0010 y2 = a ∧ ¬ b0011 y3 = a0100 y4 = ¬ a ∧ b0101 y5 = b0110 y6 = a ≠ b0111 y7 = a ∨ b
How many basic boolean functionswith 2 parameters are possible?
00110101
ab
0000 y0 = 00001 y1 = a ∧ b0010 y2 = a ∧ ¬ b0011 y3 = a0100 y4 = ¬ a ∧ b0101 y5 = b0110 y6 = a ≠ b0111 y7 = a ∨ b
How many basic boolean functionswith 2 parameters are possible?
00110101
ab
0000 y0 = 00001 y1 = a ∧ b0010 y2 = a ∧ ¬ b0011 y3 = a0100 y4 = ¬ a ∧ b0101 y5 = b0110 y6 = a ≠ b0111 y7 = a ∨ b
How many basic boolean functionswith 2 parameters are possible?
00110101
ab
0000 y0 = 00001 y1 = a ∧ b0010 y2 = a ∧ ¬ b0011 y3 = a0100 y4 = ¬ a ∧ b0101 y5 = b0110 y6 = a ≠ b0111 y7 = a ∨ b
How many basic boolean functionswith 2 parameters are possible?
00110101
ab
0000 y0 = 00001 y1 = a ∧ b0010 y2 = a ∧ ¬ b0011 y3 = a0100 y4 = ¬ a ∧ b0101 y5 = b0110 y6 = a ≠ b0111 y7 = a ∨ b
How many basic boolean functionswith 2 parameters are possible?
00110101
ab
0000 y0 = 00001 y1 = a ∧ b0010 y2 = a ∧ ¬ b0011 y3 = a0100 y4 = ¬ a ∧ b0101 y5 = b0110 y6 = a ≠ b0111 y7 = a ∨ b
How many basic boolean functionswith 2 parameters are possible?
00110101
ab
0000 y0 = 00001 y1 = a ∧ b0010 y2 = a ∧ ¬ b0011 y3 = a0100 y4 = ¬ a ∧ b0101 y5 = b0110 y6 = a ≠ b0111 y7 = a ∨ b
How many basic boolean functionswith 2 parameters are possible?
00110101
ab
1111 y15 = 11110 y14 = ¬ a ∨ ¬ b1101 y13 = ¬ a ∨ b1100 y12 = ¬ a1011 y11 = a ∨ ¬ b1010 y10 = ¬ b1001 y9 = a ⇔ b1000 y8 = ¬ a ∧ ¬ b
How to create a half adder?
How to create a half adder?
+ ba = co00 010 001 011 1
q0110
How to create a half adder?
ab
q
co
+ ba = co00 010 001 011 1
q0110
AND
XOR
How to create a full adder?
How to create a full adder?
+ ba = co00 010 001 011 1
q0110
ci +00001111
0011
0101
0111
1001
How to create a full adder?
+ ba = co00 010 001 011 1
q0110
ci +00001111
0011
0101
0111
1001
Fulladder
a b
coci
q
How to create a full adder?
Fulladder
a b
coci
q
How to create a full adder?
Fulladder
a b
coci
q
Fulladder
a b
coci
q
Fulladder
a b
coci
q
Tudor Gîrbawww.tudorgirba.com
creativecommons.org/licenses/by/3.0/