Questions: Reduction Techniques for Proving Undecidability

5 questions to test your understanding

Score: 0 / 5
Question 1 Multiple Choice

You want to prove that L = {⟨M⟩ : M accepts at least one string} is undecidable. You build a computable function f where f(⟨M, w⟩) = ⟨M'⟩, and M' is defined to accept all strings if M accepts w, and accept nothing otherwise. What does this prove?

AIt reduces L to the halting problem, proving the halting problem is undecidable relative to L
BIt reduces the halting problem to L (H_TM ≤_m L), proving L is undecidable
CIt reduces L to itself, which is circular and proves nothing
DIt proves L is decidable by showing it can simulate the halting problem
Question 2 Multiple Choice

When constructing the reduction function f for H_TM ≤_m L, you need to build a new machine M' from the input ⟨M, w⟩. Which of the following correctly describes what f does?

Af runs M on w, and if M halts, outputs a description of M' that accepts some strings
Bf outputs a description of M' as a string — encoding what M' would do — without executing M on w
Cf calls a subroutine that decides L on the input ⟨M, w⟩ and builds M' based on the result
Df enumerates strings until it finds one that M accepts, then constructs M' to accept that string
Question 3 True / False

In a many-one reduction from A to B, the reduction function f must be both total (halt on every input) and computable (implementable by a Turing machine).

TTrue
FFalse
Question 4 True / False

To prove that language L is undecidable, the correct strategy is to reduce L to the halting problem — that is, construct a reduction L ≤_m H_TM.

TTrue
FFalse
Question 5 Short Answer

Explain why the reduction function f cannot simply run M on w when constructing the reduced machine M', even though M's behavior on w is what the reduction depends on.

Think about your answer, then reveal below.