In mathematical circles, there is the overall opinion that formulae, in their capacity of syntactic units, are dead things, and that formula manipulation tears the heart out of mathematics. In these circles, formulae largely live by virtue of what they stand for, of what they mean, of how they feel and appeal to our intuition—our(?) intuition? And their meanings then tell which formulae to consider next. Poor Leibniz, poor Lagrange, poor Boole, poor Hilbert, and all others who shifted their attention towards uninterpreted formulae manipulation: they were all wrong, weren't they? Oh, and poor we, Edsger W. Dijkstra and all those programmers who converted themselves to formulae manipulators, because their profession demanded it. (This cultural gap in doing mathematics was once expressed quite aptly by Dijkstra when he remarked, “Ik hou van wiskunde, maar spaar me de mathematen”. [“I love mathematics, but it's the mathematicians I cannot stand”.]) Well, our profession of programming demanded a conscious and active engagement in formula manipulation and therefore we entered that field of endeavour; and we learned how mighty and powerful, how prosperous and effective, and how indicative of designing this change in attitude turned out to be, not only for the benefit of programming, but for vast parts of mathematics as well. And moreover, we learned to enjoy the activity. In this note we try to convey the effectiveness and joy of formula manipulation through a small number of simple examples from both mathematics and programming.
Read full abstract