Cornell University
Library
Cornell UniversityLibrary

eCommons

Help
Log In(current)
  1. Home
  2. Cornell Computing and Information Science
  3. Computer Science
  4. Computer Science Technical Reports
  5. Extracting Constructive Content from Classical Proofs

Extracting Constructive Content from Classical Proofs

File(s)
90-1151.pdf (16.28 MB)
90-1151.ps (3.01 MB)
Permanent Link(s)
https://hdl.handle.net/1813/6991
Collections
Computer Science Technical Reports
Author
Murthy, Chetan R.
Abstract

This thesis is concerned with the relationship between classical and constructive mathematics. It is well-known that in many constructive logics, we can interpret mathematical sentences as program specifications, and we can interpret a constructive proof of such a sentence as a program which meets this specification. It is also well-known that many classical logics do not have the property, as shown by Brouwer's counterexamples to some theorems of analysis. Kreisel and Friedman showed that for certain classes of sentences $(\Pi_{2}^{0})$, the classical theories conservatively extend their constructive counterparts, and furthermore give effective translations from classical proofs to constructive proofs. This thesis consists of two parts. In the first, we describe our implementation of Friedman's translation results, and their use in translating Higman's Lemma, a nontrivial theorem of combinatorics. To do this, we delineate a subtheory of a constructive type theory (Nuprl) for which Friedman's translation is guaranteed to succeed. We also extend the Nuprl type theory with impredicative $\Pi$-quantification, and use this to provide a classical proof of Higman's Lemma, which we go on to mechanically translate to a constructive proof. In the second part, we discuss connections that we have discovered between Friedman's translation and a standard compilation technique, continuation-passing-style (CPS) translation. We demonstrate that a classical proof of a $(\Pi_{2}^{0})$ sentence $\Phi$ is a program which meets the specification $\Phi$. We demonstrate that we can consistently give algorithmic content to the only constructively problematic rule of classical logic, the rule of double-negation elimination. This algorithmic content is the nonlocal control operator $C$ (a relative of call-with-current-continuation). Moreover, we show that Friedman's translation is exactly a CPS-translation on the classical "program" (with $C$), converting it into a pure functional program (without $C$). Our work provides a semantic account of Friedman's translation, in terms of its effect on programs, making the connections (and the differences) between classical and constructive systems clearer and more precise. Moreover, we provide the first steps towards integrating nonlocal control operators into a type-theoretic explanation of computation.

Date Issued
1990-08
Publisher
Cornell University
Keywords
computer science
•
technical report
Previously Published as
http://techreports.library.cornell.edu:8081/Dienst/UI/1.0/Display/cul.cs/TR90-1151
Type
technical report

Site Statistics | Help

About eCommons | Policies | Terms of use | Contact Us

copyright © 2002-2026 Cornell University Library | Privacy | Web Accessibility Assistance