02 - boolean algebra

Post on 10-May-2015

1.183 Views

Category:

Technology

4 Downloads

Preview:

Click to see full reader

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.

TRANSCRIPT

Booleanalgebra

www.tudorgirba.com

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

top related