Program Verification and Functioning of Operative Computing Revisited: How about Mathematics Engineering?
 Uri Pincas
 … show all 1 hide
Rent the article at a discount
Rent now* Final gross prices may vary according to local VAT.
Get AccessAbstract
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.
 Asperti, A., Geuvers, H., & Natarajan, R. (2009). Social processes, program verification and all that. Mathematical Structures in Computer Science, 19(5), 877–896. CrossRef
 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.
 Bjørner, D. (2006). Software engineering 1: Abstraction and modelling. An EATCS Series. Berlin: Springer.
 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.
 Cockburn, A. (2004). The end of software engineering and the start of economiccooperative gaming. Computer Science and Information System, 1(1), 1–32. CrossRef
 Colburn, T. R., Fetzer, J. H., & Rankin, T. L. (Eds.). (1993). Program verification: Fundamental issues in computer science. Dordrecht: Kluwer Academic Publishers.
 Collins, H. (1990). Artificial experts: Social knowledge and intelligent machines. Cambridge: Cambridge University Press.
 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.
 Davis, P. J. (1972). Fidelity in mathematical discourse: Is one and one really two? American Mathematical Monthly, 79(3), 252–263. CrossRef
 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. CrossRef
 Detlefsen, M. (Ed.). (1992). Proof and knowledge in mathematics. London: Routledge.
 Ernest, P. (1991). The philosophy of mathematics education. London: Falmer Press.
 Fetzer, J. H. (1988). Program verification: The very idea. Communications of the ACM, 31(9), 1048–1063. CrossRef
 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. CrossRef
 Harel, D. (with Feldman Y.) (2004). Algorithmics: The spirit of computing, 3rd ed. Reading: AddisonWesley.
 Hersh, R. (1997). What is mathematics, really? Oxford: Oxford University Press.
 Hoare, C. A. R. (1969). An axiomatic basis for computer programming. Communications of the ACM 12(10), 576–580, 583.
 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).
 Kitcher, P. (1984). The nature of mathematical knowledge. Oxford: Oxford University Press.
 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.
 MacKenzie, D. (2001). Mechanizing proof: Computing, risk, and trust. Cambridge: Cambridge University Press.
 MacKenzie, D. (2005). What in the name of Euclid is going on here? Science, 207(5714), 1402–1403.
 Mancosu, P. (2000). On mathematical explanation. In E. Grosholtz & H. Berger (Eds.), Growth of mathematical knowledge (pp. 103–120). Dordrecht: Kluwer Academic Publishers.
 Maurer, W. D. (1979). Letter to the editor. Communications of the ACM, 22, 625–629.
 Pelaez, E. (1988). A Gift from Pandora’s Box: The Software Crisis. Ph.D. dissertation. Edinburgh: University of Edinburgh.
 Pigden, C. R. (1987). Two dogmatists. Inquiry, 30(1), 173–193. CrossRef
 Putnam, H. (1962). It Ain’t necessarily so. Journal of Philosophy, 59, 658–671. CrossRef
 Putnam, H. (2002). The collapse of the fact/value dichotomy. Cambridge: Cambridge University Press.
 Quine, W. V. O. (1951). Two dogmas of empiricism. Philosophical Review, 60, 20–43. CrossRef
 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. CrossRef
 Rota, G. C. (1997). The phenomenology of mathematical proof. Synthese, 111, 183–196. CrossRef
 Sandborg, D. (1998). Mathematical explanation and the theory of whyquestions. British Journal for the Philosophy of Science, 49, 603–624. CrossRef
 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: Objectoriented and classical software engineering (7th ed.). New York: McGrawHill.
 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.
 Shapiro, S. (2000). Thinking about mathematics: The philosophy of mathematics. Oxford: Oxford University Press.
 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.
 Smith, B. C. (1985). Limits of correctness in computers. As center for the study of language and information report No. CSLI85–36. Stanford: Ventura Hall.
 Steiner, M. (1978). Mathematical explanation. Philosophical Studies, 34, 131–151. CrossRef
 Thurston, W. P. (1994). On proof and progress in mathematics. Bulletin of the American Mathematical Society, 30, 161–171. CrossRef
 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 fourcolor problem and its philosophical significance. Journal of Philosophy, 76, 57–83. CrossRef
 Zemanek, H. (1979). Abstract architecture. In D. Bjørner (Ed.), Abstract software specifications (pp. 1–42). Copenhagen: Springer.
 Title
 Program Verification and Functioning of Operative Computing Revisited: How about Mathematics Engineering?
 Journal

Minds and Machines
Volume 21, Issue 2 , pp 337359
 Cover Date
 20110501
 DOI
 10.1007/s110230119237z
 Print ISSN
 09246495
 Online ISSN
 15728641
 Publisher
 Springer Netherlands
 Additional Links
 Topics
 Keywords

 Computing engineering
 Operative computing
 Philosophy of mathematics
 Program verification
 Software engineering
 Industry Sectors
 Authors

 Uri Pincas ^{(1)}
 Author Affiliations

 1. The Open University of Israel, Raanana, Israel