107
Boolean algebra www.tudorgirba.com

02 - Boolean algebra

Embed Size (px)

DESCRIPTION

I used this set of slides for the lecture on Computational Thinking I gave at the University of Zurich for the 1st year students following the course of Formale Grundlagen der Informatik.

Citation preview

Page 1: 02 - Boolean algebra

Booleanalgebra

www.tudorgirba.com

Page 2: 02 - Boolean algebra

computerinformation information

computation

Page 3: 02 - Boolean algebra

Alan Turing, 1937

Page 4: 02 - Boolean algebra

George Boole1815 – 1864

Page 5: 02 - Boolean algebra

George Boole1815 – 1864

Claude Shannon1916 – 2001

Page 6: 02 - Boolean algebra
Page 7: 02 - Boolean algebra

+

Page 8: 02 - Boolean algebra

+

a = 0

Page 9: 02 - Boolean algebra

+

y = 0

a = 0

Page 10: 02 - Boolean algebra

++

y = 0

a = 0

Page 11: 02 - Boolean algebra

+

a = 1

+

y = 0

a = 0

Page 12: 02 - Boolean algebra

+

y = 1

a = 1

+

y = 0

a = 0

Page 13: 02 - Boolean algebra

+

Page 14: 02 - Boolean algebra

b = 0

a = 0

+

Page 15: 02 - Boolean algebra

b = 0

a = 0

y = 0

∧ ba = y00 0

+

Page 16: 02 - Boolean algebra

b = 1

a = 0∧ ba = y

00 0

+

Page 17: 02 - Boolean algebra

b = 1

a = 0

y = 0

∧ ba = y00 010 0

+

Page 18: 02 - Boolean algebra

b = 0

a = 1∧ ba = y

00 010 0

+

Page 19: 02 - Boolean algebra

b = 0

a = 1

y = 0

∧ ba = y00 010 001 0

+

Page 20: 02 - Boolean algebra

b = 1

a = 1∧ ba = y

00 010 001 0

+

Page 21: 02 - Boolean algebra

b = 1

a = 1

y = 1

∧ ba = y00 010 001 011 1

+

Page 22: 02 - Boolean algebra

b = x

a = 0∧ ba = y

00 010 001 011 1

+

Page 23: 02 - Boolean algebra

b = x

a = 0

y = 0

∧ ba = y00 010 001 011 1x0 0

+

Page 24: 02 - Boolean algebra

b = x

a = 1∧ ba = y

00 010 001 011 1x0 0

+

Page 25: 02 - Boolean algebra

b = x

a = 1

y = x

∧ ba = y00 010 001 011 1x0 0x1 x

+

Page 26: 02 - Boolean algebra

b = x

a = x∧ ba = y

00 010 001 011 1x0 0x1 x

+

Page 27: 02 - Boolean algebra

b = x

a = x

y = x

∧ ba = y00 010 001 011 1x0 0x1 xxx x

+

Page 28: 02 - Boolean algebra

a = 0 b = 0

+

Page 29: 02 - Boolean algebra

a = 0 b = 0

y = 0

∨ ba = y00 0

+

Page 30: 02 - Boolean algebra

a = 0 b = 1

∨ ba = y00 0

+

Page 31: 02 - Boolean algebra

a = 0 b = 1

y = 1

∨ ba = y00 010 1

+

Page 32: 02 - Boolean algebra

a = 1 b = 0

∨ ba = y00 010 1

+

Page 33: 02 - Boolean algebra

a = 1 b = 0

y = 1

∨ ba = y00 010 101 1

+

Page 34: 02 - Boolean algebra

a = 1 b = 1

∨ ba = y00 010 101 1

+

Page 35: 02 - Boolean algebra

a = 1 b = 1

y = 1

∨ ba = y00 010 101 111 1

+

Page 36: 02 - Boolean algebra

a = 0 b = x

∨ ba = y00 010 101 111 1

+

Page 37: 02 - Boolean algebra

a = 0 b = x

y = x

∨ ba = y00 010 101 111 1x0 x

+

Page 38: 02 - Boolean algebra

a = 1 b = x

∨ ba = y00 010 101 111 1x0 x

+

Page 39: 02 - Boolean algebra

a = 1 b = x

y = 1

∨ ba = y00 010 101 111 1x0 xx1 1

+

Page 40: 02 - Boolean algebra

a = x b = x

∨ ba = y00 010 101 111 1x0 xx1 1

+

Page 41: 02 - Boolean algebra

a = x b = x

y = x

∨ ba = y00 010 101 111 1x0 xx1 1xx x

+

Page 42: 02 - Boolean algebra

∨ ba = y00 010 101 111 1

∧ ba = y00 010 001 011 1

Conjunction (AND) Disjunction (OR)

Page 43: 02 - Boolean algebra

∨ ba = y00 010 101 111 1

∧ ba = y00 010 001 011 1

?

Conjunction (AND) Disjunction (OR)

Page 44: 02 - Boolean algebra

a = 0

Page 45: 02 - Boolean algebra

a = 0

y = 1

a =¬ y0 1

Page 46: 02 - Boolean algebra

a = 1

a =¬ y0 1

Page 47: 02 - Boolean algebra

a = 1

y = 0

a =¬ y0 11 0

Page 48: 02 - Boolean algebra

∨ ba = y00 010 101 111 1

∧ ba = y00 010 001 011 1

a =¬ y0 11 0

Conjunction (AND) Disjunction (OR) Negation (NOT)

Page 49: 02 - Boolean algebra

¬ a

a ∧ b

a ∨ b

Page 50: 02 - Boolean algebra

- a

a * b

a + b

¬ a

a ∧ b

a ∨ b

Page 51: 02 - Boolean algebra

- a

a * b

a + b

¬ a

a ∧ b

a ∨ b

! a

a & b

a | b

Page 52: 02 - Boolean algebra

- a

a * b

a + b

¬ a

a ∧ b

a ∨ b

! a

a & b

a | b

NOT

OR

AND

Page 53: 02 - Boolean algebra

- a

a * b

a + b

¬ a

a ∧ b

a ∨ b

! a

a & b

a | b

NOT

OR

AND

Page 54: 02 - Boolean algebra
Page 55: 02 - Boolean algebra

a ∧ 1 = aa ∨ 0 = a

Neutral elements

Page 56: 02 - Boolean algebra

a ∧ 1 = aa ∨ 0 = a

Neutral elements

a ∧ 0 = 0a ∨ 1 = 1

Zero elements

Page 57: 02 - Boolean algebra

a ∧ 1 = aa ∨ 0 = a

Neutral elements

a ∧ 0 = 0a ∨ 1 = 1

Zero elements

a ∧ a = aa ∨ a = a

Idempotence

Page 58: 02 - Boolean algebra

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

Page 59: 02 - Boolean algebra

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

Page 60: 02 - Boolean algebra

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

Page 61: 02 - Boolean algebra

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

Page 62: 02 - Boolean algebra

De Morgan (1806 – 1871)

¬ (a ∧ b) = (¬ a) ∨ (¬ b)¬ (a ∨ b) = (¬ a) ∧ (¬ b)

DeMorgan’s laws

NAND

NOR

Page 63: 02 - Boolean algebra

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

Page 64: 02 - Boolean algebra

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

Page 65: 02 - Boolean algebra

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

Page 66: 02 - Boolean algebra

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

Page 67: 02 - Boolean algebra

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

Page 68: 02 - Boolean algebra

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

Page 69: 02 - Boolean algebra

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

Page 70: 02 - Boolean algebra

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

Page 71: 02 - Boolean algebra
Page 72: 02 - Boolean algebra

≠ ba = y00 010 101 111 0

Exclusive OR (XOR)

Page 73: 02 - Boolean algebra

≠ ba = y00 010 101 111 0

Exclusive OR (XOR)

⇒ ba = y00 110 101 011 1

Implication

Page 74: 02 - Boolean algebra

≠ ba = y00 010 101 111 0

Exclusive OR (XOR)

⇒ ba = y00 110 101 011 1

⇔ ba = y00 110 001 011 1

Implication Equivalence

Page 75: 02 - Boolean algebra

≠ 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)

Page 76: 02 - Boolean algebra

≠ 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

Page 77: 02 - Boolean algebra

Tautology

f = 1 (a ∧ (a ⇒ b)) ⇒ b

Contradiction

f = 0 a ∧ (¬ a)

Satisfiable

f = 1 sometimes a ⇒ b

Page 78: 02 - Boolean algebra

How many basic boolean functionswith 2 parameters are possible?

Page 79: 02 - Boolean algebra

How many basic boolean functionswith 2 parameters are possible?

Page 80: 02 - Boolean algebra

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?

Page 81: 02 - Boolean algebra

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?

Page 82: 02 - Boolean algebra

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?

Page 83: 02 - Boolean algebra

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?

Page 84: 02 - Boolean algebra

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?

Page 85: 02 - Boolean algebra

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?

Page 86: 02 - Boolean algebra

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?

Page 87: 02 - Boolean algebra

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?

Page 88: 02 - Boolean algebra

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?

Page 89: 02 - Boolean algebra

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?

Page 90: 02 - Boolean algebra

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?

Page 91: 02 - Boolean algebra

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?

Page 92: 02 - Boolean algebra

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?

Page 93: 02 - Boolean algebra

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?

Page 94: 02 - Boolean algebra

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?

Page 95: 02 - Boolean algebra

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?

Page 96: 02 - Boolean algebra

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?

Page 97: 02 - Boolean algebra

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?

Page 98: 02 - Boolean algebra

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

Page 99: 02 - Boolean algebra

How to create a half adder?

Page 100: 02 - Boolean algebra

How to create a half adder?

+ ba = co00 010 001 011 1

q0110

Page 101: 02 - Boolean algebra

How to create a half adder?

ab

q

co

+ ba = co00 010 001 011 1

q0110

AND

XOR

Page 102: 02 - Boolean algebra

How to create a full adder?

Page 103: 02 - Boolean algebra

How to create a full adder?

+ ba = co00 010 001 011 1

q0110

ci +00001111

0011

0101

0111

1001

Page 104: 02 - Boolean algebra

How to create a full adder?

+ ba = co00 010 001 011 1

q0110

ci +00001111

0011

0101

0111

1001

Fulladder

a b

coci

q

Page 105: 02 - Boolean algebra

How to create a full adder?

Fulladder

a b

coci

q

Page 106: 02 - Boolean algebra

How to create a full adder?

Fulladder

a b

coci

q

Fulladder

a b

coci

q

Fulladder

a b

coci

q