Object Oriented Design and Mathematical Research

04 January 2015

I've been thinking more about the relationship between writing code and writing a proof, and I've decided to expand on the connection between object-oriented design and a way in which mathematical proofs are often structured.

Most mathematicians will tell you they discover math rather than invent it, but will shift to speaking of invention when discussing methods used in proving results. We use what we call mathematical "machinery" to prove complex results, and generally think of the machinery as invented.

For example, in my work, I use machinery (invented by others) called fat-vertex graphs. These graphs arise from the intersections of two particular surfaces in several different situations. Much can be proven about fat-vertex graphs directly from their definitions, without considering their topological origin. This is not pure luck, it's the result of finding the right definition for "fat-vertex graph", so that the behavior of the graphs that do not depend on their external use can be easily and usefully separated from the specific context in which they are being used.

This is precisely the motivation behind object-oriented design. What's interesting to me is that while object-oriented design is explicitly taught to CS students, machinery-based proof construction is something mathematicians must pick up from simply reading many, many proofs. I suspect this is due to the discomfort the mathematics community has with the notion that mathematics is in any sense invented.

comments powered by Disqus