Mathematics as Programming
In a sufficiently rich programming language it is possible to express a very substantial amount of mathematics in a natural way. I don't mean only that one can write down functions or solve equations, I mean that one can write theorems and proofs. Moreover, expressing mathematics in this way reveals its computational content and makes it available for use with digital computers. This point is illustrated with reference to a programming language which is sufficiently rich in the above sense. I develop parts of Basic Recursive Function Theory and logic to illustrate the way in which doing some rather abstract mathematics is like programming. I chose BRFT in order to make certain points about the programming language by reflecting part of it inside itself. For example, while Church's Thesis can be false inside the language, it is true outside, reflecting in some sense the fact that while we may believe it, we do not expect to prove it. I chose a bit of logic to illustrate that the virtues of model theory (a certain abstractness and notation independence) are sometimes possible without sacrificing computational meaning.