Abstract
About the year 1900 there was just “one true logic”: classical logic. In such a logic one would expect that everything was clear. Certainly, in that logic, any statement was either true or false: there was the law of the excluded middle, (A ˅ ¬A). But how do we check an infinite number of instances? What does it mean to say that there is no largest pair of twin primes, that is to say that there is an end to such pairs such as 5 and 7; 11 and 13 or even 202 289 and 202 291?
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
A formula F is a Harrop formula if it is (1) an atomic formula, (2) of the form \((A \wedge B)\) where A and B are Harrop formulae, (3) of the form \((A \rightarrow B)\) where B (but not necessarily A) is a Harrop formula, or (4) of the form \(\forall x .A\) where A is a Harrop formula. Harrop formulae, in a sense, contribute no information for the program. However, the rule (⊥-E) easily extends, through a proof by induction, to provide a proof of any formula A from the false formula ⊥ since atomic formulae are Harrop and so are their negations \((A\rightarrow\perp)\).
- 2.
α-reduction refers to the simple renaming of one variable by another (without clashes).
- 3.
The square brackets indicate that A can be discharged, i.e. is not needed for the proof of B, though it is for the proof of B, of course.
- 4.
Here we have written \(f(a)\) to show that we think of a as being involved in f.
- 5.
This process of reduction is also called cut elimination.
- 6.
Some people use the term isomorphism but there are technical difficulties involved in making the correspondence one to one, so I prefer the weaker terminology.
- 7.
The process can also be extended to higher order logic.
- 8.
Intuitively speaking, the specification is the statement about the result of the program. See also below Section 6.4.1.
- 9.
The logical system that we then have is therefore related to the labelled deduction systems of Gabbay [9].
- 10.
It can be avoided by adding extra predicates, one for each sort. In this case instead of \(x:s\) meaning “x is of sort s” we have a predicate s and we write \(s(x)\rightarrow \ldots\), which can be read as “If x is of sort s, then …”.
- 11.
The restriction to constructive systems of logic is essential for us.
- 12.
This is a very serious issue when it comes to the control of powerful systems, in particular, the control of nuclear weapons.
- 13.
This was inspired by looking at work of Helmut Schwichtenberg on program extraction in [3].
References
Barendregt P. H. The Lambda Calculus, Its Syntax and Semantics. North Holland Publishing Company, Amsterdam, 1995.
Barendregt P. H. Lambda calculi with types. In S. Abramsky and D. Gabbay and T. Maibaum, editors, Handbook of Logic in Computer Science, vol. 2, pages 117–309 (Background: Computational Structures). Clarendon Press, Oxford, 1992.
Berger U., and Schwichtenberg H. Program extraction from classical proofs. In D. Leivant, editor, Logic and Computational Complexity, International Workshop LCC ’94, Indiapolis, IN, USA, October 1994, pages 77–97, 1995.
CoFI Language Design Task Group on Language Design. CASL, The Common Algebraic Specification Language, Summary, 25 March 2001, March 2001. Available at http://www.brics.dk/Projects/CoFI/Documents/CASL/Summary/ (accessed 3.i.05)
Crossley J. N. What is mathematical logic? A survey. Tutorial at the First International Conference on Logic and and its application to other disciplines, IIT Bombay, 2005, submitted for publication.
Crossley J. N. Iman Poernomo, and Martin Wirsing. Extraction of structured programs from specification proofs. In D. Bert, C. Choppy, and P. Mosses, editors, Workshop on Algebraic Development Techniques, vol. 1827 of LNCS, pages 419–437, 1999.
Crossley, J. N., and Shepherdson J. C. Extracting programs from proofs by an extension of the Curry-Howard process. In J. N. Crossley, J. B. Remmel, R. A. Shore, and M. E. Sweedler, editors, Logical Methods: In honor of AnilNerode’s Sixtieth Birthday, pages 222–288. Birkhäuser, Boston, MA, 1993.
Dummett M. Elements of Intuitionism. Oxford University Press, Oxford, 1977.
Gabbay D. Labelled Deductive Systems. Oxford University Press, Oxford, 1996.
Girard J. Y. Interprétation functionelle et élimination des coupures dans l’arithmétiqued’ordre supérieure. PhD thesis, Université Paris VII, Paris, 1972.
Girard J. Y., Lafont Y., and Taylor P. Proofs and Types. Cambridge University Press, Cambridge, 1989.
Hoare C. A. R. An axiomatic basis for computer programming, Commun. Assoc Comput. Machinery, 1210: 576–80, 1969.
Howard W. The formulae-as-types notion of construction. In J. R. Hindley and J. Seldin, editors, To H.B. Curry: Essays on Combinatory Logic, Lambda Calculus, and Formalism, pages 479–490. Academic Press, New York, NY, 1969.
Kleene S. C. Introduction to Metamathematics. North-Holland, Amsterdam, 1952.
Peterreins H. A natural-deduction-like calculus for structured specifications. PhD thesis, Ludwig-Maximilians-Universität, München, 1996.
Poernomo I. H., Crossley J. N., and Wirsing M. Adapting Proofs-Asprograms. Springer, New York, NY, 2005.
Wirsing M. Structured specifications: Syntax, semantics and proof calculus. In M. Broy, editor, Informatik und Mathematik, Festschrift für F. L. Bauer, pages 269–283. Springer, Berlin, 1991.
Acknowledgements
Many years ago Georg Kreisel said that I should not work in proof theory, which is the setting of the work described here. I have not taken that advice but am grateful to him for his enthusiasm and stimulation over many decades. I was originally introduced to the area of program extraction when visiting my old friend Anil Nerode in Cornell in the 1990s where we studied Girard’s thesis [10], essentially published as [11]. Later John Shepherdson (Bristol) and I extended the Curry-Howard terms to cover all the standard logical connectives directly, that is to say, without going through what I regard as the tortuous translations of Girard into higher order logic. Martin Wirsing of Ludwig-Maximilians Universität, Munich, and I, inspired by work of Martin and his student Hannes Peterreins, began to produce elegant rules for the context of algebraic specifications. From then on, with my former student Iman Poernomo, now at King’s College, London we have extended the logical systems even further to structured specifications and then to imperative programming. The idea of the Curry-Howard protocol is due to Iman Poernomo. His thesis, part of which is the basis for Section 6.4.2, has recently been published in a revised version as [16]. I am extremely grateful to all of these colleagues for their friendship, ideas and stimulation.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2011 Springer Science+Business Media B.V.
About this chapter
Cite this chapter
Crossley, J.N. (2011). What Is the Difference Between Proofs and Programs?. In: van Benthem, J., Gupta, A., Parikh, R. (eds) Proof, Computation and Agency. Synthese Library, vol 352. Springer, Dordrecht. https://doi.org/10.1007/978-94-007-0080-2_6
Download citation
DOI: https://doi.org/10.1007/978-94-007-0080-2_6
Published:
Publisher Name: Springer, Dordrecht
Print ISBN: 978-94-007-0079-6
Online ISBN: 978-94-007-0080-2
eBook Packages: Humanities, Social Sciences and LawPhilosophy and Religion (R0)