Abstract
There are those, such as Hoare [20], who maintain that computer programming should strive to become more like mathematics. Others, such as DeMillo, Lipton and Perlis [8], contend this suggestion is mistaken because it rests upon a misconception. Their position emphasizes the crucial role of social processes in coming to accept the validity of a proof or the truth of a theorem, no matter whether within purely mathematical contexts or without: “We believe that, in the end, it is a social process that determines whether mathematicians feel confident about a theorem” [8, p. 271]. As they perceive it, the situation with respect to program verification is worse insofar as no similar social process occurs between program verifiers. The use of verification to guarantee the performance of a program is therefore bound to fail. Although Hoare’s work receives scant attention in their paper, there should be no doubt that his approach — and that of others, such as E. W. Dijkstra [10], who share a similar point of view — is the intended object of their criticism.
I hold the opinion that the construction of computer programs is a mathematical activity like the solution of differential equations, that programs can be derived from their specifications through mathematical insight, calculation, and proof, using algebraic laws as simple and elegant as those of elementary arithmetic.
C. A. R. Hoare
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Benacerraf, P. and Putnam, H., (Eds.): 1964, Philosophy of Mathematics: Selected Readings. Prentice-Hall, Englewood Cliffs, N.J.
Black, M.: 1967, ‘Induction’, The Encylopedia of Philosophy 4, Edwards, P., Editor-in-Chief. Macmillan, New York, pp. 169–181.
Blumberg, A.: 1967, ‘Logic, modern’, The Encyclopedia of Philosophy 5, Edwards, P., Editor-in-Chief, Macmillian, New York, pp. 12–34.
Bochner, S.: 1966, The Role of Mathematics in the Rise of Science. Princeton Univ. Press, Princeton, N.J.
Cerutti. E. and Davis, P.: 1969, ‘Formac meets Pappus’. Am. Math. Monthly 76, 895–904.
Church. A.: 1959, ‘Logistic system’. Dictionary of Philosophy. Runes. D.. (Ed.) Littlefield. Adam & Co.. Ames. Iowa. pp. 182–183.
Dancy. J.: 1985, An Introduction to Contemporary Epistemology. Blackwell, Oxford.
DeMillo, R., Lipton, R. and Perlis, A.: 1979, ‘Social processes and proofs of theorems and programs’. Commun. ACM 22, 5, 271–280.
Detlefsen, M. and Luker, M.: 1980, ‘The four-color theorem and mathematical proof’, J. Philos. 77, 12, 803–820.
Dijkstra, E. W.: 1976, A Discipline of Programming. Prentice-Hall, Englewood Cuffs. N. J.
Fetzer. J. H.: 1981, Scientific Knowledge. Reidel, Dordrecht. Holland.
Fetzer, J. H.: 1988, ‘Signs and minds: An introduction to the theory of semiotic systems’, in Aspects of Artificial Intelligence, Fetzer, J.. (Ed.) Kluwer. Dordrecht/ Boston/London/Tokyo, pp. 133–161.
Glazer, D.: 1979, ‘Letter to the editor’, Commun. ACM 22, 11,621.
Hacking, I.: 1967, ‘Slightly more realistic personal probabilities.’ Philos. Sci. 34, 4, 311–325.
Heise, D. R.: 1975, Causal Analysis. Wiley, New York.
Hempel, C. G.: 1949, ‘On the nature of mathematical truth’, in Readings in Philosophical Analysis, Feigl, N. and Sellars, W., (Eds.) Appleton-Century-Crofts, New York, pp. 222–237.
Hempel, C. G: 1949, ‘Geometry and empirical science’, in Readings in Philosophical Analysis, Feigl, H. and Sellars, W., (Eds.) Appleton-Century-Crofts, New York, pp. 238–249.
Hesse, M.: 1966, Models and Analogies in Science, Univ. of Notre Dame Press, Notre Dame, Ind.
Hoare, C. A. R.: 1969, ‘An axiomatic basis for computer programming’. Commun. ACM 12, 576–580, 583.
Hoare, C. A. R.: 1986, ‘Mathematics of programming’, BYTE, 115–149.
Holt, R.: 1986, ‘Design goals for the Turing programming language. Technical Report CSRI-187’, Computer Systems Research Institute, Univ. of Toronto.
Kling, R.: 1987, ‘Defining the boundaries of computing across complex organization’, in Critical Issues in Information Systems, Boland, R. and Hirschheim, R. (Eds.). Wiley, New York.
Kuhn, T. S.: 1970, The Structure of Scientific Revolutions, 2d ed. Univ. of Chicago Press, Chicago.
Lakatos, I.: 1976, Proofs and Refutations, Cambridge Univ. Press, Cambridge, U.K.
Lakatos, I., and Musgrave, A. (Eds.): 1970, Criticism and the Growth of Knowledge, Cambridge Univ. Press, Cambridge, U.K.
Lamport, L.: 1979, ‘Letter to the editor’, Commun. ACM 22, 11, 624.
Marcotty, M. and Ledgard, H.: 1986, Programming Language Landscape: Syntax/ Semantics/Implementations, 2d ed. Science Research Associates, Chicago.
Maurer, W.D.: 1979, ‘Letter to the editor’, Commun. ACM 22,11,625–629.
Michalos, A.: 1969, Principles of Logic, Prentice-Hall, Englewood Cliffs, N.J.
Moor, J. H.: 1988. ‘The pseudorealization fallacy and the Chinese room’, in Aspects of Artificial Intelligence, Fetzer, J. (Ed.) Kluwer, Dordrecht/Boston/ London/Tokyo, pp. 35–53.
Pagels, H.: 1982, The Cosmic Code, Simon & Schuster, New York.
Popper, K. R.: 1965, Conjectures and Refutations, Harper & Row, New York.
Popper, K. R.: 1972, Objective Knowledge, Clarendon Press, Oxford.
Suppe, F. (Ed.): 1977, The Structure of Scientific Theories, 2d ed. University of Illinois Press, Urbana, Ill.
Teller, P.: 1980, ‘Computer proof’, J. Philos. 77, 12, 797–803.
Tymoczko, T.: 1979, ‘The four-color theorem and its philosophical significance’. J. Philos. 76, 2, 57–83.
van den Bos, J.: 1979, ‘Letter to the editor’, Commun. ACM 22, 11, 623.
Author information
Authors and Affiliations
Rights and permissions
Copyright information
© 2001 Springer Science+Business Media Dordrecht
About this chapter
Cite this chapter
Fetzer, J.H. (2001). Program Verification: The Very Idea. In: Computers and Cognition: Why Minds are not Machines. Studies in Cognitive Systems, vol 25. Springer, Dordrecht. https://doi.org/10.1007/978-94-010-0973-7_8
Download citation
DOI: https://doi.org/10.1007/978-94-010-0973-7_8
Publisher Name: Springer, Dordrecht
Print ISBN: 978-1-4020-0243-4
Online ISBN: 978-94-010-0973-7
eBook Packages: Springer Book Archive