Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Decidability and Recursive Enumerability

Say there exist Turing Machines M1, M2, M3, the languages they recognize being L(M1), L(M2), and L(M3), respectively. The following language L = {(M1, M2, M3) : L(M1), L(M2), and L(M3) are not equal} Is the language decidable? Recursively enumerable? Or neither?

like image 618
Glen Marek Avatar asked Nov 04 '22 04:11

Glen Marek


1 Answers

Let MMi,I be a machine that simulates running some other machine Mi on input I and returns true if Mi eventually halts on I, and loops forever otherwise.

Let M be a trivial machine that simply loops forever.

Then, (MMi,I, M, M) is in L iff Mi halts on input I.

This reduces decidability of the halting problem to decidability of L, so therefore L is undecidable.

=============

Next, let's prove that L is not recursively enumerable by contradiction.

Assume that L is recursively enumerable, so there exists a Turing Machine M such that if Mi, Mj, and Mk are three Turing Machines whose respective languages are not equal, then M will eventually spit out the triple (Mi, Mj, Mk).

Now let's consider a modification to M, called M', that's defined by taking M and adding the value (M, M', M') to L(M'). The important question to ask is if (M, M', M') is in L? Well, if (M, M', M') is in L, then L(M) must not be equal L(M') (otherwise it wouldn't fit the definition to be in L), so L(M) must not include (M, M', M') (since that's the only modification we made). Conversely, if (M, M', M') is not in L, then L(M) != L(M') (because we added that tripe to L(M')), so it must therefore be in L(M), because the languages are not equal.

Thus, we've reached a paradox which implies that M cannot exist, and therefore L is not recursively enumerable.

like image 56
Ben Taitelbaum Avatar answered Nov 23 '22 08:11

Ben Taitelbaum