Se temos algum programa de computador arbitrário que pode modificar suas instruções, é possível simular esse programa com um programa que não pode modificar suas instruções?
Editar:
Eu sou novo no stackexchange, então não tenho certeza se posso fazer uma nova pergunta aqui, mas aqui vai: Ok, então a prova de que isso é possível é realmente muito simples, como vocês demonstraram. Agora, eu estou me perguntando: existem problemas para os quais é mais eficiente (e em que medida) usar o algoritmo de auto-modificação mais eficiente para resolver o problema, versus o algoritmo não-auto-modificado mais eficiente de entrada-saída-equivalente?