# Homework Assignments

From Introduction to the Theory of Computation by Michael Sipser, PWS Publishing unless otherwise noted.

### Homework 1, due Thursday 02/06

1. 1.4 (c, f & l)
2. 1.5 (b, c)
3. For any language L, subset of Sigma*, define HALF(L) as follows:
HALF(L) = { x in Sigma* | there exists y in Sigma*, |x| = |y| and xy is in L }.
Show that if L is regular, then HALF(L) must also be regular.

### Homework 2, due Thursday 02/13

1. 1.23 (c & d)
2. 1.31
3. See handout (in PDF).

### Homework 3, due Thursday 02/27

1. 2.6 (a & d)
2. 2.17 (a & b)
3. 2.18 (c & d)

1. 3.10
2. 3.12
3. 3.16

### Homework 5, due Thursday 03/20

1. 5.10
2. 5.14 & 5.15
3. Prove directly that the following language is undecidable (i.e., don't use Rice's Theorem).
L17 = { i | L(Mi) contains exactly 17 strings },
where Mi is the ith Turing Machine in the canonical list of Turing Machines.
Optional: Show that L17 is not Turing recognizable.

### Homework 6, due Thursday 04/03

1. 5.20
2. 5.21
3. A set is cofinite if it is the complement of a finite set. Let
COF = { < M > | M is a TM and L(M) is cofinite}
FIN = { < M > | M is a TM and L(M) is finite}
Prove that FIN ≤m COF. That is FIN reduces to COF via a many-one reduction (a.k.a. a "mapping" reduction).

### Homework 7, due Thursday 04/10

1. 6.5
2. 6.17
3. Prove directly that ATMm-reduces to FIN and the complement of ATMm-reduces to FIN, where:
FIN = { < M > | M is a TM and L(M) is finite}

1. 9.18 & 9.19
2. 9.20
3. 9.21

1. 7.21
2. 7.27
3. 7.30

### Homework 10, due Thursday 05/08

1. Prove that Dominating Set is NP-complete by showing that Vertex Cover reduces to Dominating Set via a polynomial-time many-one reduction, where
VC = { < G, k > | G = (V,E) is an undirected graph and there exists a subset V' of V with |V'| <= k such that for each edge (u,v) in E either u or v is in V' }
DOM = { < G, k > | G = (V,E) is an undirected graph and there exists a subset V' of V with |V'| <= k such that for each vertex u in V - V' there exists v in V' such that (u,v) is in E.
2. Construct a logspace transducer that takes as input an undirected graph encoded as a list of edges and outputs the same graph encoded as an adjacency matrix.
3. 8.19