Characterization Theorem
Published May 25, 2022
-
By
Marco Garosi
Characterization Theorem is a theorem in the computability theory that gives a characterization of recursively enumerable (r.e.) sets. Indeed it provides three different but equivalent statements that, as the name says, chacarterize recursively enumerable sets. Although they might seem completely disconnected from one another — and even somehow weird — they have profound consequences.
Theorem
The theorem states that the following three statements are equivalent:
- A set
A∈r.e.
-
∃φ∈℘μ:A=range(φ) (
A is thus enumerated by partial function
φ)
-
A=∅ or
∃f∈R:A=range(f)
Proof
The theorem states that the three statements are equivalent. This “hides” some implications (
⟹). In order to correctly prove the theorem, it is thus necessary to prove that
1⟹2,
2⟹3 and that
3⟹1. This circularity, if proven, proves the whole theorem.
Before continuing, please recall that
↓ mean the termination (halting) of a Turing Machine, while
↑ stands for it diverging.
Let’s start with the first one. Let
{φx}x∈N be a Turing Machine (TM).
1⟹2
Let
A∈r.e.. By definition, there’s some partial recursive function
φx such that
A=dom(φx)=Wx. Then let’s define:
φ(y)={y↑if φx(y)↓otherwise
φ is partial recursive and
range(φ)=dom(φx)=A. The first implication has now been proven.
2⟹3
Let’s assume
A=range(φx) and that
A=∅. By applying dovetail on the function:
ψ(y)={φx(y)↑if φx(y)↓otherwise
Since
A=range(φx)=∅, there exists
n0∈N such that dovetail halts at the
n0th step.
Let’s define
f by induction on the
nth step of dovetail, thus making sure that
f has only the values in the list
L generated by applying dovetail to
ψ.
Then, if
ψ converges in
{m0,…,mj0} with
0≤j0≤n0, then for all
i∈[0,j0]:f(i)=ψ(mi).
Now let’s suppose that to define
f(jp) we used the
npth step. Then the following cases might show up:
- if in the
{np+1}th dovetail step there are no new terminations, then
f(jp+1)=f(jp);
- if in the
{np+1}th dovetail step
ψ converges (halts) with input
{p0,…,pk} with
0≤k≤np+1, then for all
i∈[0,k]:f(jp+1+i)=ψ(pi).
Iterate the previous step with
jp+1=jp+1+k.
The aforementioned procedure works as expected, thus defining a total recursive function
f such that
A=range(f).
3⟹1
If
A=∅ then
A=dom(ψ) with
ψ=λx.↑.
A is then r.e.
On the other hand, if
A=range(f) (where
f is a total function), you just need to define
φ(x)=μz.(f(z)−x=0)
Of course,
φ∈℘μ. Moreover,
φ(x)↓⟺∃z:f(z)=x.
But then,
A=dom(φ) and
A is thus r.e.
□