Title: Comparing Sets Size without Counting
1Comparing Sets Size without Counting
- 2 sets A and B have the same size if there is a
function f A? B such that - For every x ? A there is one and only y ? B such
that f(x) y - Every y ? B has one x ? A such that f(x) y
- In such situations f is said to be a bijective
2Example
B
A
a b c d e f
1 2 3 4 5 6
3Example (2)
E n n is an even natural number N n n
is a natural number
Does E and N have the same size?
Yes
4Example (3)
R1 r r is a real positive number greater
than 1 (0,1 r r is a real number between
0 and 1
Does R1 and (0,1 have the same size?
Yes
5Example (4)
How about R r r is a real non-negative
number N n n is a natural number
Every attempt fails
f(x) x
(leaves numbers like 0.5 out)
f(x) floor(x)
(assigns the same value for numbers like 1.2 and
1.3)
How can we know for sure that there is no
bijective function from R to N?
6Enumerability
- We know that there is an enumeration for all the
natural numbers 1, 2, 3, 4,
, 101000,
The point is that for any natural, say 101000, it
will eventually be listed!
- There is no such enumeration of all the real
numbers between 0 and 1 (i.e., 0, 0.01, 0.1003,
3/?) - Thus there cant be any bijective function f N?
0,1, otherwise f(0), f(1), f(2), would be
an enumeration for 0,1 - Surprisingly there is a enumeration for the
rational numbers (the irrational numbers the ones
that are non enumerable!)
7Enumerability (2)
- The set of all rational numbers
- p/q p, q are natural numbers
is enumerable
Note you could easily write a program in C
that outputs this enumeration (and runs forever)
1 2 3 4 5 q 1 1/1
1/2 1/3 1/4 1/5 1/q 2 2/1 2/2 2/3 2/4 2/5
2/q 3 3/1 4 4/1 5 5/1
5/q p p/1
p/q
Enumeration
1/1, 1/2, 2/1, 1/3, 2/2, 3/1, 1/4, , p/q,
8 0,1) Is Not Enumerable
By contradiction suppose that there is an
enumeration for all the real numbers between 0
and 1
1 0.012304565 ... 2 0.10002344345
... 3 0.865732546789 23
0.4345556
90,1) Is Not Enumerable (II)
We construct a number ? as follows for each
number n in the enumeration, we look at the n-th
digit in n
1 0.012304565 ... 2 0.10002344345 ... 3
0.865732546789 23 0.4345556
? 0.0056
Obviously ? is a real number between 0 and 1
100,1) Is Not Enumerable(III)
We construct a number ? as follows we change
each digit in ? for a different digit
? 0.0056
?
1 0.012304565 ... 2 0.10002344345 ... 3
0.865732546789 23 0.4345556
Thus, it is not possible to enumerate all the
real numbers between 0 and 1!
?
?
11Consequences
- This means that even though the natural and the
real numbers are both infinite, the size of the
set of the real numbers is bigger than the size
of the set of the natural numbers.
This has been known for mathematicians for quite
a long time
Astonishingly, this result is relevant for Turing
Machines!
12Enumerability and Turing Machines
Definition A language L is Turing-enumerable is
there is a Turing machine that enumerates all
words in L in its tape (may run forever)
?w1? w2? w3?
Theorem 1. If a language is decidable then the
language is Turing-enumerable
Theorem 2. A language is semi-decidable if and
only if the language is Turing-enumerable
13Optional Homework (Wednesday)
- Explain why C programs can be simulated with
Turing machines - Enumerate the ways to proof that a language is
- decidable
- semi-decidable
- Enumerable
- 4.20 c)
- 4.24 a)
14? is Turing-Enumerable
- As an example consider ? a, b
- We can define a lt b and then induce a
lexicographical order
gt
- We can can list all elements e, a, b, aa, ab,
bb, aaa,
- We can construct a 3-Tape Turing machine with a
counter i 0, 1, 2, on the second tape, and in
each loop construct all combinations of words of
length i in tape 3. Once done, copy those words
to the end (i.e., ) of the first tape
(cumbersome but doable!)
??
- A similar construction can be made for any ?
(finite)
15Decidable Implies Enumerable
- Let L be a language over the alphabet ?
- If L is decidable there is a Turing Machine that
decides M - Let M be the Turing machine that enumerates ?
- Construct a 3-tape Turing machine that enumerates
L as follows
- M will output words on the 2nd tape
- Every time M outputs a word w, it is copied in
the 3rd tape, where M checks if w is in L - If w is in L it is appended to the end of the 1st
tape
16Enumerable Implies Semi-decidable
- Let L be a Turing-enumerable language
- Thus, there is a Turing machine M that enumerates
words in L - We can construct a Turing machine ML that
semi-decides if a word w is in L as follows
Run M and wait to see if w is put on the tape. If
w is printed on the tape, ML halts. If not, it
continues waiting to see if w is printed on the
tape.
17Backup Slides Please Ignore
18? is Enumerable
Theorem. If ? is finite then ? is enumerable
If ? 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ? 0,
1, , 12, 13, , 654,
If ? a, b, c, d, e, f, g, h, i, j
? a, b, , bc, cd, , gfe,
If ? consist of 500 symbols, we map them to the
first 500 numbers
19Decidable Implies Enumerable
Suppose that L is decidable. By definition, it
means that there is a Turing machine ML that
decides L