Reputation: 11
I need to prove that the language L(EVEN) = { M : |L(M)| is even }
is undecidable.
In other words, the language L(EVEN)
is the set of all Turing Machines which accept some language of even cardinality.
Here, M
is the encoding of some Turing Machine which would be passed in as input if there existed a decider for L(EVEN)
.
I've completed other problems similar to this one using Turing Reductions, one example can be seen here:
My issue is that I am unable to come up with some previously proved undecidable language that would be useful to show L <= L(EVEN)
.
The undecidable languages weve covered so far in class are as follows:
- L(emptyset) = { M | M is a TM and |L(M)| = emptyset}
- L(ACC) = { (M, x) | M is a TM, and M accepts input x}
- L(HALT) = { (M, x) | M is a TM, and M halts on input x}
- L(EQ) = { (M1, M2) | M1, M2 are TMs, and L(M1) == L(M2) }
- L(∈ - HALT) = { M | M is a TM, M halts on input ∈ }
I could also possibly use the complements of these languages as decidability is closed under complementation. How could I use one of these undecidable languages to prove that L(EVEN) is also undecidable, using a similar setup to the example problem I included?
Upvotes: 1
Views: 2162
Reputation: 28302
Suppose we had a decider for L(EVEN). Then, we can decide L(ACC) as follows:
From input M to the TM for L(ACC), construct a TM M' which first verifies the input tape is the input x to M, and then runs M on x. M' so constructed either accepts the language {x}, if M accepts x, or the empty language if M does not.
By using our decider for L(EVEN) on the encoding of M', we can tell if |L(M')| is even (in which case L(M') is empty and M does not accept x) or odd (in which case L(M') = {x} and M accepts x).
Upvotes: 2