The fixpoint theorem
Every expression E has a fixpoint E1 such that
(E E1)
->* E1.
Proof. E1 can be taken to be (Y E)
where
Y =
f.(
x.f (x x))(
x.f (x x))
for then
(Y E) for any expression E
-> (x.E (x x))(
x.E (x x))
-> E (x.E (x x))(
x.E (x x))
= e(Y e).
Note that Y is not the only fixpoint operator, for example
Y1 =
f.(
g.
x.f (g g) x)(
g.
x.f (g g) x)
is one also.