55
Foundations of Computer Science Comp109 University of Liverpool Boris Konev [email protected] http://www.csc.liv.ac.uk/~konev/COMP109

Foundations of Computer Science [.5em] Comp109kjc/COURSENOTES/109/02_Sets.pdf · FoundationsofComputerScience Comp109 UniversityofLiverpool BorisKonev [email protected] konev/COMP109

  • Upload
    others

  • View
    12

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Foundations of Computer Science [.5em] Comp109kjc/COURSENOTES/109/02_Sets.pdf · FoundationsofComputerScience Comp109 UniversityofLiverpool BorisKonev konev@liverpool.ac.uk konev/COMP109

Foundations of Computer Science

Comp109

University of Liverpool

Boris Konev

[email protected]

http://www.csc.liv.ac.uk/~konev/COMP109

Page 2: Foundations of Computer Science [.5em] Comp109kjc/COURSENOTES/109/02_Sets.pdf · FoundationsofComputerScience Comp109 UniversityofLiverpool BorisKonev konev@liverpool.ac.uk konev/COMP109

Part 2. (Naive) Set Theory

Comp109 Foundations of Computer Science

http://www.csc.liv.ac.uk/~konev/COMP109 Part 2. Set Theory 1 / 53

Page 3: Foundations of Computer Science [.5em] Comp109kjc/COURSENOTES/109/02_Sets.pdf · FoundationsofComputerScience Comp109 UniversityofLiverpool BorisKonev konev@liverpool.ac.uk konev/COMP109

Reading

K. H. Rosen. Discrete Mathematics and Its Applications

Chapter 2

http://www.csc.liv.ac.uk/~konev/COMP109 Part 2. Set Theory 2 / 53

Page 4: Foundations of Computer Science [.5em] Comp109kjc/COURSENOTES/109/02_Sets.pdf · FoundationsofComputerScience Comp109 UniversityofLiverpool BorisKonev konev@liverpool.ac.uk konev/COMP109

Contents

Notation for sets.

Important sets.

What is a subset of a set?

When are two sets equal?

Operations on sets.

Algebra of sets.

Bit strings.

Cardinality of sets.

Russell’s paradox.

http://www.csc.liv.ac.uk/~konev/COMP109 Part 2. Set Theory 3 / 53

Page 5: Foundations of Computer Science [.5em] Comp109kjc/COURSENOTES/109/02_Sets.pdf · FoundationsofComputerScience Comp109 UniversityofLiverpool BorisKonev konev@liverpool.ac.uk konev/COMP109

Notation

A set is a collection of objects, called the elements of the set. For

example:

{7, 5, 3};

{Liverpool, Manchester, Leeds}.

We have written down the elements of each set and contained them

between the braces { }.

We write a ∈ S to denote that the object a is an element of the set

S:

7 ∈ {7, 5, 3}, 4 < {7, 5, 3}.

http://www.csc.liv.ac.uk/~konev/COMP109 Part 2. Set Theory 4 / 53

Page 6: Foundations of Computer Science [.5em] Comp109kjc/COURSENOTES/109/02_Sets.pdf · FoundationsofComputerScience Comp109 UniversityofLiverpool BorisKonev konev@liverpool.ac.uk konev/COMP109

Notation

For a large set, especially an infinite set, we cannot write down all the

elements. We use a predicate P instead.

S = {x | P (x)}

denotes the set of objects x for which the predicate P (x) is true.

Examples: Let S = {1, 3, 5, 7, . . .}. Then

S = {x | x is an odd positive integer}

and

S = {2n − 1 | n is a positive integer }.

http://www.csc.liv.ac.uk/~konev/COMP109 Part 2. Set Theory 5 / 53

Page 7: Foundations of Computer Science [.5em] Comp109kjc/COURSENOTES/109/02_Sets.pdf · FoundationsofComputerScience Comp109 UniversityofLiverpool BorisKonev konev@liverpool.ac.uk konev/COMP109

More examples

Find simpler descriptions of the following sets by listing their

elements:

A = {x | x is an integer and x2 + 4x = 12};

B = {x | x a day of the week not containing “u” };

C = {n2 | n is an integer }.

http://www.csc.liv.ac.uk/~konev/COMP109 Part 2. Set Theory 6 / 53

Page 8: Foundations of Computer Science [.5em] Comp109kjc/COURSENOTES/109/02_Sets.pdf · FoundationsofComputerScience Comp109 UniversityofLiverpool BorisKonev konev@liverpool.ac.uk konev/COMP109

Important sets (notation)

The empty set has no elements. It is written as ∅ or as {}.

We have seen some other examples of sets in Part 1.

N = {0, 1, 2, 3, . . .} (the natural numbers)

Z = {. . . , −2, −1, 0, 1, 2, . . .} (the integers)

Z+ = {1, 2, 3, . . .} (the positive integers)

Q = {x/y | x ∈ Z, y ∈ Z, y , 0} (the rationals)R: (real numbers)

[a, b] = {x ∈ R | a ≤ x ≤ b} the set of real numbers between aand b (inclusive)

http://www.csc.liv.ac.uk/~konev/COMP109 Part 2. Set Theory 7 / 53

Page 9: Foundations of Computer Science [.5em] Comp109kjc/COURSENOTES/109/02_Sets.pdf · FoundationsofComputerScience Comp109 UniversityofLiverpool BorisKonev konev@liverpool.ac.uk konev/COMP109

Detour: Sets in Python

Sets are the ‘most elementary’ data structures (though they don’t

map well into the underlying hardware).

Some modern programming languages feature sets.

For example, in Python one writes

empty = set ( )m = { ’ a ’ , ’ b ’ , ’ c ’ }n = { 1 , 2 }print ’ a ’ in m

http://www.csc.liv.ac.uk/~konev/COMP109 Part 2. Set Theory 8 / 53

Page 10: Foundations of Computer Science [.5em] Comp109kjc/COURSENOTES/109/02_Sets.pdf · FoundationsofComputerScience Comp109 UniversityofLiverpool BorisKonev konev@liverpool.ac.uk konev/COMP109

SubsetsDefinition A set B is called a subset of a set A if every element of

B is an element of A. This is denoted by B ⊆ A.

Examples:

{3, 4, 5} ⊆ {1, 5, 4, 2, 1, 3}, {3, 3, 5} ⊆ {3, 5}, {5, 3} ⊆ {3, 5}.

BA

Figure: Venn diagram of B ⊆ A.

http://www.csc.liv.ac.uk/~konev/COMP109 Part 2. Set Theory 9 / 53

Page 11: Foundations of Computer Science [.5em] Comp109kjc/COURSENOTES/109/02_Sets.pdf · FoundationsofComputerScience Comp109 UniversityofLiverpool BorisKonev konev@liverpool.ac.uk konev/COMP109

Detour: Subsets in Python

def i s S u b s e t (A , B ) :for x in A :

i f x not in B :return F a l s e

return True

Testing the method:

print i s S u b s e t ( n ,m)

But then there is a built-in operation:

print n<m

http://www.csc.liv.ac.uk/~konev/COMP109 Part 2. Set Theory 10 / 53

Page 12: Foundations of Computer Science [.5em] Comp109kjc/COURSENOTES/109/02_Sets.pdf · FoundationsofComputerScience Comp109 UniversityofLiverpool BorisKonev konev@liverpool.ac.uk konev/COMP109

Equality

Definition A set A is called equal to a set B if A ⊆ B and B ⊆ A.

This is denoted by A = B.

Examples:{1} = {1, 1, 1},

{1, 2} = {2, 1},

{5, 4, 4, 3, 5} = {3, 4, 5}.

http://www.csc.liv.ac.uk/~konev/COMP109 Part 2. Set Theory 11 / 53

Page 13: Foundations of Computer Science [.5em] Comp109kjc/COURSENOTES/109/02_Sets.pdf · FoundationsofComputerScience Comp109 UniversityofLiverpool BorisKonev konev@liverpool.ac.uk konev/COMP109

Data types

Modern computing languages require that variables are declared as

belonging to a particular data type; a data type consists of

a set of objects;

a list of standard operations on those objects.

For example, the set of integers with the operations + and − form a

data type.

Specifying the type of a variable is equivalent to specifying the set from

which the variable is drawn.

http://www.csc.liv.ac.uk/~konev/COMP109 Part 2. Set Theory 12 / 53

Page 14: Foundations of Computer Science [.5em] Comp109kjc/COURSENOTES/109/02_Sets.pdf · FoundationsofComputerScience Comp109 UniversityofLiverpool BorisKonev konev@liverpool.ac.uk konev/COMP109

The union of two sets

Definition The union of two sets A and B is the set

A ∪ B = {x | x ∈ A or x ∈ B}.

A B

Figure: Venn diagram of A ∪ B.

http://www.csc.liv.ac.uk/~konev/COMP109 Part 2. Set Theory 13 / 53

Page 15: Foundations of Computer Science [.5em] Comp109kjc/COURSENOTES/109/02_Sets.pdf · FoundationsofComputerScience Comp109 UniversityofLiverpool BorisKonev konev@liverpool.ac.uk konev/COMP109

Example

Suppose

A = {4, 7, 8}

and

B = {4, 9, 10}.

Then

A ∪ B = {4, 7, 8, 9, 10}.

http://www.csc.liv.ac.uk/~konev/COMP109 Part 2. Set Theory 14 / 53

Page 16: Foundations of Computer Science [.5em] Comp109kjc/COURSENOTES/109/02_Sets.pdf · FoundationsofComputerScience Comp109 UniversityofLiverpool BorisKonev konev@liverpool.ac.uk konev/COMP109

Detour: Set union in Pythondef un ion (A , B ) :

r e s u l t = set ( )for x in A :

r e s u l t . add ( x )for x in B :

r e s u l t . add ( x )return r e s u l t

Testing the method:

print un ion (m, n )

But then there is a built-in operation:

print m. un ion ( n )

http://www.csc.liv.ac.uk/~konev/COMP109 Part 2. Set Theory 15 / 53

Page 17: Foundations of Computer Science [.5em] Comp109kjc/COURSENOTES/109/02_Sets.pdf · FoundationsofComputerScience Comp109 UniversityofLiverpool BorisKonev konev@liverpool.ac.uk konev/COMP109

The intersection of two sets

Definition The intersection of two sets A and B is the set

A ∩ B = {x | x ∈ A and x ∈ B}.

A B

Figure: Venn diagram of A ∩ B.

http://www.csc.liv.ac.uk/~konev/COMP109 Part 2. Set Theory 16 / 53

Page 18: Foundations of Computer Science [.5em] Comp109kjc/COURSENOTES/109/02_Sets.pdf · FoundationsofComputerScience Comp109 UniversityofLiverpool BorisKonev konev@liverpool.ac.uk konev/COMP109

Example

Suppose

A = {4, 7, 8}

and

B = {4, 9, 10}.

Then

A ∩ B = {4}

http://www.csc.liv.ac.uk/~konev/COMP109 Part 2. Set Theory 17 / 53

Page 19: Foundations of Computer Science [.5em] Comp109kjc/COURSENOTES/109/02_Sets.pdf · FoundationsofComputerScience Comp109 UniversityofLiverpool BorisKonev konev@liverpool.ac.uk konev/COMP109

Detour: Set intersection in Pythondef i n t e r s e c t i o n (A , B ) :

r e s u l t = set ( )for x in A :

i f x in B :r e s u l t . add ( x )

return r e s u l t

Testing the method:

print i n t e r s e c t i o n (m, n )print i n t e r s e c t i o n ( n , { 1 } )

But then there is a built-in operation:

print n . i n t e r s e c t i o n ( { 1 } )

http://www.csc.liv.ac.uk/~konev/COMP109 Part 2. Set Theory 18 / 53

Page 20: Foundations of Computer Science [.5em] Comp109kjc/COURSENOTES/109/02_Sets.pdf · FoundationsofComputerScience Comp109 UniversityofLiverpool BorisKonev konev@liverpool.ac.uk konev/COMP109

The relative complementDefinition The relative complement of a set B relative to a set A

is the set

A − B = {x | x ∈ A and x < B}.

A B

Figure: Venn diagram of A − B.

http://www.csc.liv.ac.uk/~konev/COMP109 Part 2. Set Theory 19 / 53

Page 21: Foundations of Computer Science [.5em] Comp109kjc/COURSENOTES/109/02_Sets.pdf · FoundationsofComputerScience Comp109 UniversityofLiverpool BorisKonev konev@liverpool.ac.uk konev/COMP109

Example

Suppose

A = {4, 7, 8}

and

B = {4, 9, 10}.

Then

A − B = {7, 8}

http://www.csc.liv.ac.uk/~konev/COMP109 Part 2. Set Theory 20 / 53

Page 22: Foundations of Computer Science [.5em] Comp109kjc/COURSENOTES/109/02_Sets.pdf · FoundationsofComputerScience Comp109 UniversityofLiverpool BorisKonev konev@liverpool.ac.uk konev/COMP109

Detour: Set complement in Python

def complement (A , B ) :r e s u l t = set ( )for x in A :

i f x not in B :r e s u l t . add ( x )

return r e s u l t

Testing the method:

print complement (m, { ’ a ’ } )

But then there is a built-in operation:

print m−{ ’ a ’ }

http://www.csc.liv.ac.uk/~konev/COMP109 Part 2. Set Theory 21 / 53

Page 23: Foundations of Computer Science [.5em] Comp109kjc/COURSENOTES/109/02_Sets.pdf · FoundationsofComputerScience Comp109 UniversityofLiverpool BorisKonev konev@liverpool.ac.uk konev/COMP109

The complementWhen we are dealing with subsets of some large set U , then we call

U the universal set for the problem in question.

Definition The complement of a set A is the set

∼ A = {x | x < A} = U − A.

A

Figure: Venn diagram of ∼ A. (The rectangle is U )

http://www.csc.liv.ac.uk/~konev/COMP109 Part 2. Set Theory 22 / 53

Page 24: Foundations of Computer Science [.5em] Comp109kjc/COURSENOTES/109/02_Sets.pdf · FoundationsofComputerScience Comp109 UniversityofLiverpool BorisKonev konev@liverpool.ac.uk konev/COMP109

The symmetric difference

Definition The symmetric difference of two sets A and B is the set

A∆B = {x | (x ∈ A and x < B) or (x < A and x ∈ B)}.

A B

Figure: Venn diagram of A∆B.

http://www.csc.liv.ac.uk/~konev/COMP109 Part 2. Set Theory 23 / 53

Page 25: Foundations of Computer Science [.5em] Comp109kjc/COURSENOTES/109/02_Sets.pdf · FoundationsofComputerScience Comp109 UniversityofLiverpool BorisKonev konev@liverpool.ac.uk konev/COMP109

Example

Suppose

A = {4, 7, 8}

and

B = {4, 9, 10}.

Then

A∆B = {7, 8, 9, 10}

http://www.csc.liv.ac.uk/~konev/COMP109 Part 2. Set Theory 24 / 53

Page 26: Foundations of Computer Science [.5em] Comp109kjc/COURSENOTES/109/02_Sets.pdf · FoundationsofComputerScience Comp109 UniversityofLiverpool BorisKonev konev@liverpool.ac.uk konev/COMP109

The algebra of sets

Suppose that A, B and U are sets with A ⊆ U and B ⊆ U .

Commutative laws:

A ∪ B = B ∪ A, A ∩ B = B ∩ A;

A B

http://www.csc.liv.ac.uk/~konev/COMP109 Part 2. Set Theory 25 / 53

Page 27: Foundations of Computer Science [.5em] Comp109kjc/COURSENOTES/109/02_Sets.pdf · FoundationsofComputerScience Comp109 UniversityofLiverpool BorisKonev konev@liverpool.ac.uk konev/COMP109

Proving the commutative law A ∪ B = B ∪ A

Definition: A ∪ B = {x | x ∈ A or x ∈ B}B ∪ A = {x | x ∈ B or x ∈ A}.

These are the same set. To see this, check all possible cases.

Case 1: Suppose x ∈ A and x ∈ B. Since x ∈ A, the definitions aboveshow that x is in both A ∪ B and B ∪ A.

Case 2: Suppose x ∈ A and x < B. Since x ∈ A, the definitions aboveshow that x is in both A ∪ B and B ∪ A.

Case 3: Suppose x < A and x ∈ B. Since x ∈ B, the definitions aboveshow that x is in both A ∪ B and B ∪ A.

Case 4: Suppose x < A and x < B. The definitions above show that x is not

in A ∪ B and x is not in B ∪ A.

So, for all possible x, either x is in both A ∪ B and B ∪ A, or it is in

neither. We conclude that the sets A ∪ B and B ∪ A are the same.

http://www.csc.liv.ac.uk/~konev/COMP109 Part 2. Set Theory 26 / 53

Page 28: Foundations of Computer Science [.5em] Comp109kjc/COURSENOTES/109/02_Sets.pdf · FoundationsofComputerScience Comp109 UniversityofLiverpool BorisKonev konev@liverpool.ac.uk konev/COMP109

The algebra of sets

Suppose that A, B, C, U are sets with A ⊆ U , B ⊆ U , and C ⊆ U .

Associative laws:

A ∪ (B ∪ C) = (A ∪ B) ∪ C, A ∩ (B ∩ C) = (A ∩ B) ∩ C;

A B

C

http://www.csc.liv.ac.uk/~konev/COMP109 Part 2. Set Theory 27 / 53

Page 29: Foundations of Computer Science [.5em] Comp109kjc/COURSENOTES/109/02_Sets.pdf · FoundationsofComputerScience Comp109 UniversityofLiverpool BorisKonev konev@liverpool.ac.uk konev/COMP109

Proving the associative law A ∪ (B ∪ C) = (A ∪ B) ∪ C

This is almost as easy as proving the commutative law, but now there

are 8 cases to check, depending on whether x ∈ A, whether x ∈ B

and whether x ∈ C .

Definition: X ∪ Y = {x | x ∈ X or x ∈ Y }

Here is one case: Suppose x ∈ A, x < B and x < C . Since x ∈ A, we

can use the definition with X = A and Y = B ∪ C to show that

x ∈ A ∪ (B ∪ C).

Since x ∈ A, we can use the definition with X = A and Y = B to

show that x ∈ A ∪ B. Then we can use the definition with

X = A ∪ B and Y = C to show that x ∈ (A ∪ B) ∪ C .

Writing out all eight cases is tedious, but it is not difficult.

http://www.csc.liv.ac.uk/~konev/COMP109 Part 2. Set Theory 28 / 53

Page 30: Foundations of Computer Science [.5em] Comp109kjc/COURSENOTES/109/02_Sets.pdf · FoundationsofComputerScience Comp109 UniversityofLiverpool BorisKonev konev@liverpool.ac.uk konev/COMP109

The algebra of sets

Suppose that A and U are sets with A ⊆ U .

Identity laws:

A ∪ ∅ = A, A ∪ U = U, A ∩ U = A, A ∩ ∅ = ∅;

A

U

http://www.csc.liv.ac.uk/~konev/COMP109 Part 2. Set Theory 29 / 53

Page 31: Foundations of Computer Science [.5em] Comp109kjc/COURSENOTES/109/02_Sets.pdf · FoundationsofComputerScience Comp109 UniversityofLiverpool BorisKonev konev@liverpool.ac.uk konev/COMP109

The algebra of sets

Suppose that A, B, C, U are sets with A ⊆ U , B ⊆ U , and C ⊆ U .

Distributive laws:

A∩(B ∪C) = (A∩B)∪(A∩C), A∪(B ∩C) = (A∪B)∩(A∪C);

A B

C

http://www.csc.liv.ac.uk/~konev/COMP109 Part 2. Set Theory 30 / 53

Page 32: Foundations of Computer Science [.5em] Comp109kjc/COURSENOTES/109/02_Sets.pdf · FoundationsofComputerScience Comp109 UniversityofLiverpool BorisKonev konev@liverpool.ac.uk konev/COMP109

The algebra of sets

Suppose that A and U are sets with A ⊆ U . Let ∼ A = U − A. Then

Complement laws:

A∪ ∼ A = U, ∼ U = ∅, ∼ (∼ A) = A, A∩ ∼ A = ∅, ∼ ∅ = U ;

A

U

http://www.csc.liv.ac.uk/~konev/COMP109 Part 2. Set Theory 31 / 53

Page 33: Foundations of Computer Science [.5em] Comp109kjc/COURSENOTES/109/02_Sets.pdf · FoundationsofComputerScience Comp109 UniversityofLiverpool BorisKonev konev@liverpool.ac.uk konev/COMP109

The algebra of setsSuppose that A, B and U are sets with A ⊆ U , and B ⊆ U . Recall

that ∼ X = U − X and A ∪ B = {x | x ∈ A or x ∈ B} andA ∩ B = {x | x ∈ A and x ∈ B}. Then

De Morgan’s laws:

∼ (A ∪ B) =∼ A∩ ∼ B, ∼ (A ∩ B) =∼ A∪ ∼ B.

A B

http://www.csc.liv.ac.uk/~konev/COMP109 Part 2. Set Theory 32 / 53

Page 34: Foundations of Computer Science [.5em] Comp109kjc/COURSENOTES/109/02_Sets.pdf · FoundationsofComputerScience Comp109 UniversityofLiverpool BorisKonev konev@liverpool.ac.uk konev/COMP109

A proof of De Morgan’s law ∼ (A ∩ B) =∼ A∪ ∼ B

Case 1: Suppose x ∈ A and x ∈ B. From the definition of ∩, x ∈ A ∩ B.So from the definition of ∼, x <∼ (A ∩ B). From the definition of ∼,x <∼ A and also x <∼ B. So from the definition of ∪, x <∼ A∪ ∼ B.

Case 2: Suppose x ∈ A and x < B. From the definition of ∩, x < A ∩ B.So from the definition of ∼, x ∈∼ (A ∩ B). From the definition of ∼,x <∼ A but x ∈∼ B. So from the definition of ∪, x ∈∼ A∪ ∼ B.

Case 3: Suppose x < A and x ∈ B. From the definition of ∩, x < A ∩ B.So from the definition of ∼, x ∈∼ (A ∩ B). From the definition of ∼,x ∈∼ A but x <∼ B. So from the definition of ∪, x ∈∼ A∪ ∼ B.

Case 4: Suppose x < A and x < B. From the definition of ∩, x < A ∩ B. So

from the definition of ∼, x ∈∼ (A ∩ B). From the definition of ∼, x ∈∼ A

and x ∈∼ B. So from the definition of ∪, x ∈∼ A∪ ∼ B.

http://www.csc.liv.ac.uk/~konev/COMP109 Part 2. Set Theory 33 / 53

Page 35: Foundations of Computer Science [.5em] Comp109kjc/COURSENOTES/109/02_Sets.pdf · FoundationsofComputerScience Comp109 UniversityofLiverpool BorisKonev konev@liverpool.ac.uk konev/COMP109

Using the algebra of sets

Prove that A∆B = (A ∪ B)∩ ∼ (A ∩ B). (See the next slide.)

A B

http://www.csc.liv.ac.uk/~konev/COMP109 Part 2. Set Theory 34 / 53

Page 36: Foundations of Computer Science [.5em] Comp109kjc/COURSENOTES/109/02_Sets.pdf · FoundationsofComputerScience Comp109 UniversityofLiverpool BorisKonev konev@liverpool.ac.uk konev/COMP109

(A ∪ B) ∩ ∼ (A ∩ B) = (A ∪ B) ∩ (∼ A∪ ∼ B) De Morgan

= ((A ∪ B)∩ ∼ A) ∪ ((A ∪ B)∩ ∼ B) distributive

= (∼ A ∩ (A ∪ B)) ∪ (∼ B ∩ (A ∪ B)) commutative

= ((∼ A ∩ A) ∪ (∼ A ∩ B)) ∪ ((∼ B ∩ A) ∪ (∼ B ∩ B)) distributive

= ((A∩ ∼ A) ∪ (B∩ ∼ A)) ∪ ((A∩ ∼ B) ∪ (B∩ ∼ B)) commutative

= (∅ ∪ (B∩ ∼ A)) ∪ ((A∩ ∼ B) ∪ ∅) complement

= (A∩ ∼ B) ∪ (B∩ ∼ A) commutative and identity

= A∆B definition

http://www.csc.liv.ac.uk/~konev/COMP109 Part 2. Set Theory 35 / 53

Page 37: Foundations of Computer Science [.5em] Comp109kjc/COURSENOTES/109/02_Sets.pdf · FoundationsofComputerScience Comp109 UniversityofLiverpool BorisKonev konev@liverpool.ac.uk konev/COMP109

Important sets: the power set

Definition The power set Pow(A) of a set A is the set of all

subsets of A. In other words,

Pow(A) = {C | C ⊆ A}.

Example:

Let A = {1, 2, 3}. Then

Pow(A) = {∅, {1}, {2}, {3}, {1, 2}, {2, 3}, {1, 3}, {1, 2, 3}}.

http://www.csc.liv.ac.uk/~konev/COMP109 Part 2. Set Theory 36 / 53

Page 38: Foundations of Computer Science [.5em] Comp109kjc/COURSENOTES/109/02_Sets.pdf · FoundationsofComputerScience Comp109 UniversityofLiverpool BorisKonev konev@liverpool.ac.uk konev/COMP109

The power set

Observation For all sets A and B:

Pow(A ∩ B) = Pow(A) ∩ Pow(B).

ProofWe have to show for any set C that C ∈ Pow(A ∩ B) if andonly if C ∈ Pow(A) and C ∈ Pow(B). But

C ∈ Pow(A ∩ B) ⇔ C ⊆ A ∩ B

⇔ C ⊆ A and C ⊆ B

⇔ C ∈ Pow(A) and C ∈ Pow(B).

http://www.csc.liv.ac.uk/~konev/COMP109 Part 2. Set Theory 37 / 53

Page 39: Foundations of Computer Science [.5em] Comp109kjc/COURSENOTES/109/02_Sets.pdf · FoundationsofComputerScience Comp109 UniversityofLiverpool BorisKonev konev@liverpool.ac.uk konev/COMP109

The power set

Observation There exist sets A and B such that

Pow(A ∪ B) , Pow(A) ∪ Pow(B).

http://www.csc.liv.ac.uk/~konev/COMP109 Part 2. Set Theory 38 / 53

Page 40: Foundations of Computer Science [.5em] Comp109kjc/COURSENOTES/109/02_Sets.pdf · FoundationsofComputerScience Comp109 UniversityofLiverpool BorisKonev konev@liverpool.ac.uk konev/COMP109

Bit strings of length n

Let B = {0, 1}. Bn consists of all lists of zeros and ones of length n.

These are called bit strings of length n.

AKA bit vectors AKA bit arrays

http://www.csc.liv.ac.uk/~konev/COMP109 Part 2. Set Theory 39 / 53

Page 41: Foundations of Computer Science [.5em] Comp109kjc/COURSENOTES/109/02_Sets.pdf · FoundationsofComputerScience Comp109 UniversityofLiverpool BorisKonev konev@liverpool.ac.uk konev/COMP109

Bit string representation of subsets

Bit strings can be used to represent the subsets of a set.

Suppose we have a set S = {s1, . . . , sn}.

If we have a subset A ⊆ S, the characteristic vector of A is the n-bit

string (b1, . . . , bn) ∈ Bn where

bi ={

1 if si ∈ A0 if si < A

http://www.csc.liv.ac.uk/~konev/COMP109 Part 2. Set Theory 40 / 53

Page 42: Foundations of Computer Science [.5em] Comp109kjc/COURSENOTES/109/02_Sets.pdf · FoundationsofComputerScience Comp109 UniversityofLiverpool BorisKonev konev@liverpool.ac.uk konev/COMP109

Example

Let S = {1, 2, 3, 4, 5}, A = {1, 3, 5} and B = {3, 4}.

The characteristic vector of A is (1, 0, 1, 0, 1).

The characteristic vector of B is (0, 0, 1, 1, 0).

The characteristic vector of A ∩ B is (0, 0, 1, 0, 0).

The characteristic vector of A ∪ B is (1, 0, 1, 1, 1).

http://www.csc.liv.ac.uk/~konev/COMP109 Part 2. Set Theory 41 / 53

Page 43: Foundations of Computer Science [.5em] Comp109kjc/COURSENOTES/109/02_Sets.pdf · FoundationsofComputerScience Comp109 UniversityofLiverpool BorisKonev konev@liverpool.ac.uk konev/COMP109

Bit vectors and the power set

Suppose we have a set S = {s1, . . . , sn}.

The set of all bit strings of length n corresponds to Pow(S).

http://www.csc.liv.ac.uk/~konev/COMP109 Part 2. Set Theory 42 / 53

Page 44: Foundations of Computer Science [.5em] Comp109kjc/COURSENOTES/109/02_Sets.pdf · FoundationsofComputerScience Comp109 UniversityofLiverpool BorisKonev konev@liverpool.ac.uk konev/COMP109

Cardinality of sets

Definition The cardinality of a finite set S is the number of

elements in S, and is denoted by |S|.

http://www.csc.liv.ac.uk/~konev/COMP109 Part 2. Set Theory 43 / 53

Page 45: Foundations of Computer Science [.5em] Comp109kjc/COURSENOTES/109/02_Sets.pdf · FoundationsofComputerScience Comp109 UniversityofLiverpool BorisKonev konev@liverpool.ac.uk konev/COMP109

Computing the cardinality of a union of two sets

If A and B are sets then

|A ∪ B| = |A| + |B| − |A ∩ B|.

A B

http://www.csc.liv.ac.uk/~konev/COMP109 Part 2. Set Theory 44 / 53

Page 46: Foundations of Computer Science [.5em] Comp109kjc/COURSENOTES/109/02_Sets.pdf · FoundationsofComputerScience Comp109 UniversityofLiverpool BorisKonev konev@liverpool.ac.uk konev/COMP109

Example

Suppose there are 100 third-year students. 40 of them take the

module “Sequential Algorithms” and 80 of them take the module

“Multi-Agent Systems”. 25 of them took both modules. How many

students took neither modules?

http://www.csc.liv.ac.uk/~konev/COMP109 Part 2. Set Theory 45 / 53

Page 47: Foundations of Computer Science [.5em] Comp109kjc/COURSENOTES/109/02_Sets.pdf · FoundationsofComputerScience Comp109 UniversityofLiverpool BorisKonev konev@liverpool.ac.uk konev/COMP109

Computing the cardinality of a union of three sets

|A∪B∪C| = |A|+|B|+|C|−|A∩B|−|A∩C|−|B∩C|+|A∩B∩C|

A B

C

These are special cases of the principle of inclusion and exclusion

which we will study later.

http://www.csc.liv.ac.uk/~konev/COMP109 Part 2. Set Theory 46 / 53

Page 48: Foundations of Computer Science [.5em] Comp109kjc/COURSENOTES/109/02_Sets.pdf · FoundationsofComputerScience Comp109 UniversityofLiverpool BorisKonev konev@liverpool.ac.uk konev/COMP109

Proof (optional): We need lots of notation.

|A − (B ∪ C)| = na, |B − (A ∪ C)| = nb, |C − (A ∪ B)| = nc,

|(A ∩ B) − C| = nab, |(A ∩ C) − B| = nac,

|(B ∩ C) − A| = nbc,

|A ∩ B ∩ C| = nabc.A B

CThen

|A ∪ B ∪ C| = na + nb + nc + nab + nac + nbc + nabc

= (na + nab + nac + nabc) + (nb + nab + nbc + nabc)

+ (nc + nac + nbc + nabc) − (nab + nabc)

− (nac + nabc) − (nbc + nabc) + nabc

http://www.csc.liv.ac.uk/~konev/COMP109 Part 2. Set Theory 47 / 53

Page 49: Foundations of Computer Science [.5em] Comp109kjc/COURSENOTES/109/02_Sets.pdf · FoundationsofComputerScience Comp109 UniversityofLiverpool BorisKonev konev@liverpool.ac.uk konev/COMP109

The cardinality of the power set.

For all n ∈ Z+ and all sets A: if |A| = n, then |Pow(A)| = 2n.

We use the correspondence between bit vectors and subsets:

|Pow(A)| is the number of bit vectors of length n.

How many different n-bit vectors there are?

(b1, b2, . . . , bn)

http://www.csc.liv.ac.uk/~konev/COMP109 Part 2. Set Theory 48 / 53

Page 50: Foundations of Computer Science [.5em] Comp109kjc/COURSENOTES/109/02_Sets.pdf · FoundationsofComputerScience Comp109 UniversityofLiverpool BorisKonev konev@liverpool.ac.uk konev/COMP109

The number of n-bit vectors is 2n

Base Case: Take n = 1. There are two bit vectors of length 1:(0) and (1).

http://www.csc.liv.ac.uk/~konev/COMP109 Part 2. Set Theory 49 / 53

Page 51: Foundations of Computer Science [.5em] Comp109kjc/COURSENOTES/109/02_Sets.pdf · FoundationsofComputerScience Comp109 UniversityofLiverpool BorisKonev konev@liverpool.ac.uk konev/COMP109

The number of n-bit vectors is 2n

Inductive Step: Assume that the property holds for n = m, so

the number of m-bit vectors is 2m. Now consider the set B of all

(m + 1)-bit vectors. We must show that B| = 2m+1.

Every (b1, b2, . . . , bm+1) ∈ B starts with an m-bit vector

(b1, b2, . . . , bm) followed by bm+1, which can be either 0 or 1.

Thus

|B| = 2m + 2m = 2m+1.

http://www.csc.liv.ac.uk/~konev/COMP109 Part 2. Set Theory 50 / 53

Page 52: Foundations of Computer Science [.5em] Comp109kjc/COURSENOTES/109/02_Sets.pdf · FoundationsofComputerScience Comp109 UniversityofLiverpool BorisKonev konev@liverpool.ac.uk konev/COMP109

Reflection

The following statements hold:

∅ ∈ {∅} but ∅ < ∅;

∅ ⊆ {5};

{2} ⊈ {{2}} but {2} ∈ {{2}};

{3, {3}} , {3}.

Pow(∅) = {∅}

http://www.csc.liv.ac.uk/~konev/COMP109 Part 2. Set Theory 51 / 53

Page 53: Foundations of Computer Science [.5em] Comp109kjc/COURSENOTES/109/02_Sets.pdf · FoundationsofComputerScience Comp109 UniversityofLiverpool BorisKonev konev@liverpool.ac.uk konev/COMP109

Why is this set theory “naive”

It suffers from paradoxes.

A leading example:

A barber is the man who shaves all those, and only those, men

who do not shave themselves.

Who shaves the barber?

http://www.csc.liv.ac.uk/~konev/COMP109 Part 2. Set Theory 52 / 53

Page 54: Foundations of Computer Science [.5em] Comp109kjc/COURSENOTES/109/02_Sets.pdf · FoundationsofComputerScience Comp109 UniversityofLiverpool BorisKonev konev@liverpool.ac.uk konev/COMP109

Why is this set theory “naive”

It suffers from paradoxes.

A leading example:

A barber is the man who shaves all those, and only those, men

who do not shave themselves.

Who shaves the barber?

http://www.csc.liv.ac.uk/~konev/COMP109 Part 2. Set Theory 52 / 53

Page 55: Foundations of Computer Science [.5em] Comp109kjc/COURSENOTES/109/02_Sets.pdf · FoundationsofComputerScience Comp109 UniversityofLiverpool BorisKonev konev@liverpool.ac.uk konev/COMP109

Russell’s Paradox

Russell’s paradox shows that the ‘object’ {x | P (x)} is not alwaysmeaningful.

Set A = {B | B < B}

Problem: do we have A ∈ A?

Abbreviate, for any set C , by P (C) the statement C < C . Then

A = {B | P (B)}.

If A ∈ A, then (from the definition of P ), not P (A). ThereforeA < A.

If A < A, then (from the definition of P ), P (A). ThereforeA ∈ A.

http://www.csc.liv.ac.uk/~konev/COMP109 Part 2. Set Theory 53 / 53