# Program Verification and Functioning of Operative Computing Revisited: How about Mathematics Engineering?

- First Online:

- Received:
- Accepted:

- 101 Downloads

## Abstract

The issue of proper functioning of operative computing and the utility of program verification, both in general and of specific methods, has been discussed a lot. In many of those discussions, attempts have been made to take mathematics as a model of knowledge and certitude achieving, and accordingly infer about the suitable ways to handle computing. I shortly review three approaches to the subject, and then take a stance by considering social factors which affect the epistemic status of both mathematics and computing. I use the analogy between mathematics and computing in reverse—that is to say, I consider operative computing as a form of making mathematics, and so attempt to learn from computing to mathematics in general. I conclude that “mathematics engineering” is a field to be both developed for practical improvement of doing mathematics and taken into consideration while philosophizing about mathematics as well.

### Keywords

Computing engineering Operative computing Philosophy of mathematics Program verification Software engineering### References

- Asperti, A., Geuvers, H., & Natarajan, R. (2009). Social processes, program verification and all that.
*Mathematical Structures in Computer Science,**19*(5), 877–896.MathSciNetMATHCrossRefGoogle Scholar - Auslander, J. (2008). On the roles of proof in mathematics. In B. Gold & R. A. Simons (Eds.),
*Proof and other dilemmas: Mathematics and philosophy*(pp. 61–77). Washington: Mathematical Association of America.Google Scholar - Bjørner, D. (2006).
*Software engineering 1: Abstraction and modelling*. An EATCS Series. Berlin: Springer.Google Scholar - Bloor, D. (1994). What can the sociologist of knowledge say about 2 + 2=4? In P. Ernest (Ed.),
*Mathematics, education and philosophy: An international perspective*(pp. 15–26). London: Falmer Press.Google Scholar - Cockburn, A. (2004). The end of software engineering and the start of economic-cooperative gaming.
*Computer Science and Information System,**1*(1), 1–32.CrossRefGoogle Scholar - Colburn, T. R., Fetzer, J. H., & Rankin, T. L. (Eds.). (1993).
*Program verification: Fundamental issues in computer science*. Dordrecht: Kluwer Academic Publishers.MATHGoogle Scholar - Collins, H. (1990).
*Artificial experts: Social knowledge and intelligent machines*. Cambridge: Cambridge University Press.Google Scholar - Crowe, M. J. (1988). Ten misconceptions about mathematics and its history. In W. Aspray & P. Kitcher (Eds.),
*History and philosophy of modern mathematics*(pp. 260–277). Minneapolis: University of Minnesota Press.Google Scholar - Davis, P. J. (1972). Fidelity in mathematical discourse: Is one and one really two?
*American Mathematical Monthly,**79*(3), 252–263.MathSciNetMATHCrossRefGoogle Scholar - De Millo, R. A., Lipton, R. J., & Perlis, A. J. (1979). Social processes and proofs of theorems and programs.
*Communications of the ACM,**22*(5), 271–280.CrossRefGoogle Scholar - Detlefsen, M. (Ed.). (1992).
*Proof and knowledge in mathematics*. London: Routledge.MATHGoogle Scholar - Ernest, P. (1991).
*The philosophy of mathematics education*. London: Falmer Press.Google Scholar - Fetzer, J. H. (1988). Program verification: The very idea.
*Communications of the ACM,**31*(9), 1048–1063.CrossRefGoogle Scholar - Giaquinto, M. (2005). Mathematical activity. In P. Mancosu, K. F. Jorgensen, & S. A. Pedersen (Eds.),
*Visualization explanation and reasoning styles in mathematics*(pp. 75–87). Dordrecht: Springer.CrossRefGoogle Scholar - Harel, D. (with Feldman Y.) (2004). Algorithmics: The spirit of computing, 3rd ed. Reading: Addison-Wesley.Google Scholar
- Hersh, R. (1997).
*What is mathematics, really?*Oxford: Oxford University Press.Google Scholar - Hoare, C. A. R. (1969). An axiomatic basis for computer programming.
*Communications of the ACM*12(10), 576–580, 583.Google Scholar - Hoare, C. A. R. (1986). Mathematics of Programming.
*BYTE*(August). Reprinted in Colburn, T. R., Fetzer, J. H., & Rankin, T. L. (Eds.) (1993) (pp. 135–154).Google Scholar - Kitcher, P. (1984).
*The nature of mathematical knowledge*. Oxford: Oxford University Press.Google Scholar - Liskov, B., & Zilles, S. (1977). An introduction to formal specifications of data abstractions. In R. T. Yeh (Ed.),
*Current trends in programming methodology*(pp. 1–32). Englewood Cliffs: Prentice Hall.Google Scholar - MacKenzie, D. (2001).
*Mechanizing proof: Computing, risk, and trust*. Cambridge: Cambridge University Press.MATHGoogle Scholar - MacKenzie, D. (2005). What in the name of Euclid is going on here?
*Science,**207*(5714), 1402–1403.MathSciNetGoogle Scholar - Mancosu, P. (2000). On mathematical explanation. In E. Grosholtz & H. Berger (Eds.),
*Growth of mathematical knowledge*(pp. 103–120). Dordrecht: Kluwer Academic Publishers.Google Scholar - Pelaez, E. (1988).
*A Gift from Pandora’s Box: The Software Crisis*. Ph.D. dissertation. Edinburgh: University of Edinburgh.Google Scholar - Putnam, H. (1962). It Ain’t necessarily so.
*Journal of Philosophy,**59*, 658–671.CrossRefGoogle Scholar - Putnam, H. (2002).
*The collapse of the fact/value dichotomy*. Cambridge: Cambridge University Press.Google Scholar - Quine, W. V. O. (1951). Two dogmas of empiricism.
*Philosophical Review,**60*, 20–43.CrossRefGoogle Scholar - Rapaport, W. J. (2007). Can Programs Be Verified? http://www.cse.buffalo.edu/~rapaport/510/canprogsbeverified.html.
- Resnik, M., & Kushner, D. (1987). Explanation, independence and realism in mathematics.
*British Journal for the Philosophy of Science,**38*, 141–158.MathSciNetMATHCrossRefGoogle Scholar - Rota, G. C. (1997). The phenomenology of mathematical proof.
*Synthese,**111*, 183–196.MathSciNetMATHCrossRefGoogle Scholar - Sandborg, D. (1998). Mathematical explanation and the theory of why-questions.
*British Journal for the Philosophy of Science,**49*, 603–624.MathSciNetMATHCrossRefGoogle Scholar - Sasaki, C. (2005). What are revolutions in mathematics? And how do they differ from those in the natural sciences? Lecture given in Peking University. http://www.phil.pku.edu.cn/documents/Revolutions_in_Math.1.rtf.
- Schach, S. R. (2007).
*Algorithmics: Object-oriented and classical software engineering*(7th ed.). New York: McGraw-Hill.Google Scholar - Scherlis, W. L., & Scott, D. S. (1983). First steps towards inferential programming. In R. E. A. Mason (Ed.),
*Information processing 83*(pp. 199–212). Amsterdam: Elsevier Science Publishers.Google Scholar - Shapiro, S. (2000).
*Thinking about mathematics: The philosophy of mathematics*. Oxford: Oxford University Press.MATHGoogle Scholar - Simons, C. L., Parmee, I. C., & Coward, P. D. (2003). 35 years on: To What extent has software engineering design achieved its goals?
*IEE Proceedings–Software,**19*(5), 337–350.Google Scholar - Smith, B. C. (1985).
*Limits of correctness in computers. As center for the study of language and information report No. CSLI-85–36*. Stanford: Ventura Hall.Google Scholar - Steiner, M. (1978). Mathematical explanation.
*Philosophical Studies,**34*, 131–151.MathSciNetCrossRefGoogle Scholar - Thurston, W. P. (1994). On proof and progress in mathematics.
*Bulletin of the American Mathematical Society,**30*, 161–171.MathSciNetMATHCrossRefGoogle Scholar - TRD, (2009). The risks digest—Forum on risks to the public in computers and related systems, regularly updated. http://catless.ncl.ac.uk/risks.
- Tymoczko, T. (1979). The four-color problem and its philosophical significance.
*Journal of Philosophy,**76*, 57–83.CrossRefGoogle Scholar - Zemanek, H. (1979). Abstract architecture. In D. Bjørner (Ed.),
*Abstract software specifications*(pp. 1–42). Copenhagen: Springer.Google Scholar