  The Turing machine, as it was presented by Turing himself, models the
calculations done by a person. This means that we can compute whatever any
Turing machine can compute, and therefore we are Turing complete. The question
addressed here is why, Why are we Turing complete? Being Turing complete also
means that somehow our brain implements the function that a universal Turing
machine implements. The point is that evolution achieved Turing completeness,
and then the explanation should be evolutionary, but our explanation is
mathematical. The trick is to introduce a mathematical theory of problems,
under the basic assumption that solving more problems provides more survival
opportunities. So we build a problem theory by fusing set and computing
theories. Then we construct a series of resolvers, where each resolver is
defined by its computing capacity, that exhibits the following property: all
problems solved by a resolver are also solved by the next resolver in the
series if certain condition is satisfied. The last of the conditions is to be
Turing complete. This series defines a resolvers hierarchy that could be seen
as a framework for the evolution of cognition. Then the answer to our question
would be: to solve most problems. By the way, the problem theory defines
adaptation, perception, and learning, and it shows that there are just three
ways to resolve any problem: routine, trial, and analogy. And, most
importantly, this theory demonstrates how problems can be used to found
mathematics and computing on biology.
