A formal theory cannot describe its own evolution into a more advances formal theory. Anything that is derivable inside it is so right from the start and that does not change. Some fact or formula or expression or piece of data either can be derived inside a given formal theory or it cannot. In this sense, formal systems do not have a history. In a way, they are timeless.
Algorithms can be described by corresponding formal theories. As a result, a system that can be described or implemented in terms of an algorithm cannot evolve. It has a fixed structure.
Looking at this the other way around, we can say: if a system can evolve from a state describable by one algorithm or formal system into one describable by another algorithm or formal system, and the new formal description was not already contained in the old one, i.e. if there is any kind of evolution in the system, then the system in its entirety cannot be described by any algorithm or formal system whatsoever. Any formal description of an evolving system must necessarily be incomplete. A system that is truly capable of evolving – be it a biological/genetic evolution, a learning process in a nervous system or a learning process in an artificial, technical system – would not be describable completely in terms of any single formal theory.
One can say that a formal system cannot contain a true reference to itself in its entirety. It cannot look at itself from a meta-level and then make some change to itself. If you try to put the meta-level inside the system, making the process that changes the system part of the formal system or algorithm itself, it stops being the meta-level. The result is another formal system that only can do a limited range of things (although this might be more than what the original system could do), and you get a new meta-viewpoint that is outside of the system again. We have seen such a situation in mathematics with the concept of a productive function. Applying a productive function to a formal system can generate something new that was not derivable inside the system. From the original formal system and this new item, we can then construct a new formal system that is “more advanced”. We can try to build the productive function into the formal system, but this does not yield a complete system or a system capable of unlimited self-evolution but just another limited formal system (to which the productive function can – again –be applied from the outside. There is no way to design a formal system or algorithm in such a way that it can self-develop (evolve) into some other formal system or algorithm.
This does not mean that such development is impossible but just that a system capable of doing it cannot be described completely by any formal theory. Development is an informal process.