# Classical proofs as programs

## Abstract

We present an extension of the correspondence between intuitionistic proofs and functional programs to *classical proofs*, and more precisely to second order classical proofs. The advantage of classical logic in this context is that it allows to model *imperative features* of programming languages too (cf [5]). But there is an intrinsic difficulty with classical logic which lies in certain non-determinism of its computational interpretations. The use of a natural deduction system removes a part of this non determinism by fixing the inputs to the left of the sequents (cf [10] and [11]). However a conflict remains between the *confluence* of the computation mechanism and the *uniqueness* of the representation of data (for instance the uniqueness of the representation of the natural number 1). In this paper we develop the solution to this problem proposed in [11]: we show how to *extract the intuitionistic representation of a data from a classical one* using an “output” operator, while keeping a confluent computation mechanism. This result allows to extend in a sound way the proofs-as-programs paradigm to classical proofs in a framework where all the usual theoretical properties of intuitionistic proofs still hold.

## Preview

Unable to display preview. Download preview PDF.

## References

- [1]H. BARENDREGT, The Lambda-Calculus, North-Holland, 1981.Google Scholar
- [2]J.Y. GIRARD, Interprétation fonctionnelle et élimination des coupures de l'arithmétique d'ordre supérieure. Thése, Université Paris 7, 1972.Google Scholar
- [3]J.Y. GIRARD, A new constructive logic: classical logic. Mathematical Structures in Computer Science, vol. 1, 1991, pp. 255–296.Google Scholar
- [4]J.Y. GIRARD, Y. LAFONT, and P. TAYLOR, Proofs and Types, Cambridge University Press, 1989.Google Scholar
- [5]T. GRIFFIN, A formulae-as-types notion of control, Proc. POPL, 1990.Google Scholar
- [6]J.L. KRIVINE, Lambda-calcul, types et modèles, Masson, 1990.Google Scholar
- [7]J.L. KRIVINE, Opérateurs de mise en mémoire et traduction de Gödel. Archiv for Mathematical Logic 30, 1990, pp 241–267.Google Scholar
- [8]J.L. KRIVINE, M. PARIGOT, Programming with proofs. EIK 26(3), 1990, pp 149–167.Google Scholar
- [9]D. LEIVANT, Reasoning about functional programs and complexity classes associated with type disciplines. Proc. FOCS, 1983, pp 460–469.Google Scholar
- [10]M. PARIGOT, Free Deduction: an Analysis of “Computations” in Classical Logic. Proc. Russian Conference on Logic Programming, St Petersburg (Russia), 1991, Springer LNCS 592, pp. 361–380.Google Scholar
- [11]M. PARIGOT, λμ-calculus: an Algorithmic Interpretation of Classical Natural Deduction. Proc. International Conference on Logic Programming and Automated Reasoning, St Petersburg (Russia), 1992, Springer LNCS 624, pp. 190–201.Google Scholar
- [12]M. PARIGOT, Strong Normalisation for Second Order Classical Natural Deduction, Proc. LICS 1993 (to appear).Google Scholar