A similar objection would be that we can never tell for sure how the virtual-reality generator will behave under the control of a given program, because that depends on the functioning of the machine and ultimately on the laws of physics. Since we cannot know the laws of physics for sure, we cannot know for sure that the machine is genuinely rendering Euclidean geometry. But again, no one denies that unforeseen physical phenomena — whether they result from unknown laws of physics or merely from brain disease or trick ink — could mislead a mathematician. But if the laws of physics are in relevant respects as we think they are, then the virtual-reality generator can do its job perfectly, even though we cannot be certain that it is doing so. We must be careful here to distinguish between two issues: whether we can know that the virtual-reality machine is rendering a perfect circle; and whether it is in fact rendering one. We can never know for sure, but that need not detract one iota from the perfection of the circle that the machine actually renders. I shall return to this crucial distinction — between perfect knowledge (certainty) about an entity, and the entity itself being ‘perfect’ — in a moment.
Suppose that we deliberately modify the Euclidean geometry program so that the virtual-reality generator will still render circles quite well, but less than perfectly. Would we be unable to infer anything about perfect circles by experiencing this imperfect rendering? That would depend entirely on whether we knew in what respects the program had been altered. If we did know, we could work out with certainty (apart from blunders, etc.) which aspects of the experiences we had within the machine would faithfully represent perfect circles, and which would not. And in that case the knowledge we gained there would be just as reliable as any we gained when we were using the correct program.
When we imagine circles we are doing just this sort of virtual-reality rendering within our own brains. The reason why this is not a useless way of thinking about perfect circles is that we are able to form accurate theories about what properties our imagined circles do or do not share with perfect ones.
Using a perfect virtual-reality rendering, we might experience six identical circles touching the edge of another identical circle in a plane without overlapping. This experience, under those circumstances, would amount to a rigorous proof that such a pattern is possible, because the geometrical properties of the rendered shapes would be absolutely identical with those of the abstract shapes. But this sort of ‘hands-on’ interaction with perfect shapes is not capable of yielding every sort of knowledge of Euclidean geometry. Most of the interesting theorems refer not to one geometrical pattern but to infinite classes of patterns. For example, the sum of the angles of any Euclidean triangle is 180°. We can measure particular triangles with perfect accuracy in virtual reality, but even in virtual reality we cannot measure all triangles, and so we cannot verify the theorem.
How do we verify it? We prove it. A proof is traditionally defined as a sequence of statements satisfying self-evident rules of inference, but what does the ‘proving’ process amount to physically? To prove a statement about infinitely many triangles at once, we examine certain physical objects — in this case symbols — which have properties in common with whole classes of triangles. For example, when, under appropriate circumstances, we observe the symbols ‘АВС=DEF’ (i.e. ‘triangle ABC is congruent to triangle DEF’), we conclude that a whole class of triangles that we have defined in a particular way always have the same shape as corresponding triangles in another class which we have defined differently. The ‘appropriate circumstances’ that give this conclusion the status of proof are, in physical terms, that the symbols appear on a page underneath other symbols (some of which represent axioms of Euclidean geometry) and that the pattern in which the symbols appear conforms to certain rules, namely the rules of inference.
But which rules of inference should we use? This is like asking how we should program the virtual-reality generator to make it render the world of Euclidean geometry. The answer is that we must use rules of inference which, to the best of our understanding, will cause our symbols to behave, in the relevant ways, like the abstract entities they denote. How can we be sure that they will? We cannot. Suppose that some critics object to our rules of inference because they think that our symbols will behave differently from the abstract entities. We cannot appeal to the authority of Aristotle or Plato, nor can we prove that our rules of inference are infallible (quite apart from Gödel’s theorem, this would lead to an infinite regress, for we should first have to prove that the method of proof that we used was itself valid). Nor can we haughtily tell the critics that there must be something wrong with their intuition, because our intuition says that the symbols will mimic the abstract entities perfectly. All we can do is explain. We must explain why we think that, under the circumstances, the symbols will behave in the desired way under our proposed rules. And the critics can explain why they favour a rival theory. A disagreement over two such theories is, in part, a disagreement about the observable behaviour of physical objects. Such disagreements can be addressed by the normal methods of science. Sometimes they can be readily resolved; sometimes not. Another cause of such a disagreement could be a conceptual clash about the nature of the abstract entities themselves. Then again, it is a matter of rival explanations, this time about abstractions rather than physical objects. Either we could come to a common understanding with our critics, or we could agree that we were discussing two different abstract objects, or we could fail to agree. There are no guarantees. Thus, contrary to the traditional belief, it is not the case that disputes within mathematics can always be resolved by purely procedural means.
A conventional symbolic proof seems at first sight to have quite a different character from the ‘hands-on’ virtual-reality sort of proof. But we see now that they are related in the way that computations are to physical experiments. Any physical experiment can be regarded as a computation, and any computation is a physical experiment. In both sorts of proof, physical entities (whether in virtual reality or not) are manipulated according to rules. In both cases the physical entities represent the abstract entities of interest. And in both cases the reliability of the proof depends on the truth of the theory that physical and abstract entities do indeed share the appropriate properties.
We can also see from the above discussion that proof is a physical process. In fact, a proof is a type of computation. ‘Proving’ a proposition means performing a computation which, if one has done it correctly, establishes that the proposition is true. When we use the word ‘proof’ to denote an object, such as an ink-on-paper text, we mean that the object can be used as a program for recreating a computation of the appropriate kind.
It follows that neither the theorems of mathematics, nor the process of mathematical proof, nor the experience of mathematical intuition, confers any certainty. Nothing does. Our mathematical knowledge may, just like our scientific knowledge, be deep and broad, it may be subtle and wonderfully explanatory, it may be uncontroversially accepted; but it cannot be certain. No one can guarantee that a proof that was previously thought to be valid will not one day turn out to contain a profound misconception, made to seem natural by a previously unquestioned ‘self-evident’ assumption either about the physical world, or about the abstract world, or about the way in which some physical and abstract entities are related.