Intuitively, at any given time
should
execute some self-modification algorithm
(via instruction check()--Item 5 above)
only if it is
the `best' of all possible self-modifications,
given the utility function, which typically
depends on available resources, such as storage size and
remaining lifetime.
At first glance, however, target theorem (2)
seems to implicitly talk about just
one single modification algorithm, namely, switchprog
as set by the systematic proof searcher at time
.
Isn't this type of local search greedy? Couldn't
it lead to a local optimum instead of a global one?
No, it cannot, according to the following global optimality theorem.