Currently, the optimizer must completely derive a new optimizer from the specification (program 3), without looking at the current best optimizer (its own source code).
....
This improvement should make program 2 even better at bettering itself, in addition to doing better on other optimization problems.
Then call this ‘optimizer’ a ‘superhumanly strong AI’, to avoid confusing yourself.
....
Then call this ‘optimizer’ a ‘superhumanly strong AI’, to avoid confusing yourself.