A language is said to be computably enumerable if there is some machine that is:
- Sound: if then
- Complete: if then
Theorem: The Halting problem is computably enumerable.
Proof:
- Construct the following sound and complete machine :

- Note the following relationship:
- By the definition of our Universal Turing Machine we have that:
- The right-to-left direction is soundness
- The left-to-right direction is completeness
Theorem: The non-emptiness problem is C.E.
Proof:
- Let be an enumeration of all possible input words from .
- Construct the following algorithm :
- For each :
- For each :
- Run on for steps
- If accepts then return True
- For each :
- For each :
- Note the following relationship:
- By definition of , we have that
- The right-to-left direction is soundness
- The left-to-right direction is completeness
Co-computable Enumerability
A language is said to be co-computably enumerable if it’s complement is computably enumerable.
Theorem: if and are both C.E., then is decidable.
Proof:
- Suppose that (i) is C.E. and (ii) is C.E.
- By (i), let be a machine that is sound and complete w.r.t. By (ii), let be a machine that is sound and complete w.r.t.
- Construct a machine which runs and in parallel

Theorem: The non-Halting problem is not C.E.
Proof:
- We have that:
- However, we have that is undecidable but C.E.:
- Therefore, must not be C.E. as required: