Soror PhoenixAngel's recent post pleasantly reminded me about the real analysis and mathematical logic courses i took a number of years ago, and about Paul Halmos' lovely little textbook "Naive Set Theory." (It's "naive" not because it's easy, but because Prof. Halmos didn't focus too much on avoiding the minefield of potential paradoxes when discussing the infinite. Take a look at the cover for a hint at the easiest of the paradoxes.) These topics share in common with other branches of mathematics the intention to find the minimal set of axioms needed to construct everything -- or at least, as much of mathematics as possible. The Peano Axioms are a good example; from them comes all the real numbers. It didn't occur to me at the time that they also define a concrete representation of the integers, from which one can construct a machine to do arithmetic. The resulting "unary" arithmetic is slow compared with other number systems, like the binary numbers found in modern computers, but it's still perfectly functional. When I took a one-semester course tracing the development ofGoedel's Incompleteness Theorem, it became more clear to me how a set of axioms or even the process of deducing theorems can be a computational process. Goedel proved the theorem by translating mathematical statements into numbers, and operating on those numbers. Without realizing it, he had defined a computer for mathematical logic: a terribly slow and space-inefficient computer, but plenty capable. That was a hard semester for me, but i saw computer science in an entirely different way afterwards.
Essays like the respected Soror's remind me of the central role of computation in understanding the universe, whether that be mathematical understanding, as in Goedel's theorem, or metaphysical understanding. Abstracting metaphysical processes as symbols and transformations on symbols has a long history in esoteric thought. Furthermore, both practicing mathematicians and practicing metaphysicians realize that symbols aren't detached from that which they symbolize. This is because we pick symbols as tools to model reality. A hammer has the shape it has because it's useful for pounding nails, and it lacks that which would interfere with that task. Similarly, good mathematical definitions (or good source code) are good because they point back to the concrete examples they model, without including details that would interfere with their utility in making deductions. It's good mental exercise to make and refine definitions, to refactor source code, and to draw analogies and pare away unnecessary details. It's always fun for me to read articles like Soror PhoenixAngel's and watch that process of drawing analogies in action.