# Show that the set of all languages that are not recursively enumerable on {a} is not countable?

A Recursively enumerable language is the language that accepts every string otherwise not. If a language that halt on every string, then we call it as recursive language.

### Problem

We need to prove that the set of all languages that are not recursively enumerable on {a} is not countable.

First let see what the recursive enumerable language is −

Recursive Enumerable Language

A language L is recursively enumerable if L is the set of strings accepted by some TM.

• If L is a recursive enumerable language then −

if w ∈ L then a TM halts in a final state,

if w ∉ L then a TM halts in a non-final state or loops forever.

• If L is a recursive language then −

if w ∈ L then a TM halts in a final state,

if w ∉ L then TM halts in a non-final state.

Now, by understanding the definition of recursively enumerable language, prove that the set of all languages that are not recursively enumerable on {a} is not countable.

Proof

Step 1 − Let us assume S be the set of all the languages over an alphabet ∑.

Step 2 − Let us assume that the set S of all languages is uncountable.

Step 3 − The set S is the union of two sets S1 and S2, such that, set S1 consists form all the recursively enumerable languages (those languages that are accepted by Turing Machines), and, set S2 consists from all the non recursively enumerable languages (note that S1' = S2).

Step 4 − Now, we have to prove that S2 is uncountable. As we have S = S1∪S2. And we know that the set S1 is countable, since the set of Turing Machines is countable.

Step 5 − If S2 was countable then we can say that set S is also countable (as the union of two countable sets is countable). But this cannot be possible, since set S is uncountable. Therefore, we can say that set S2 is uncountable.