A syntactic theory of sequential control
Theoretical Computer Science
A formulae-as-type notion of control
POPL '90 Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Handbook of logic in computer science (vol. 2)
Basic proof theory
The Warshall Algorithm and Dickson's Lemma: Two Examples of Realistic Program Extraction
Journal of Automated Reasoning
Lambda-My-Calculus: An Algorithmic Interpretation of Classical Natural Deduction
LPAR '92 Proceedings of the International Conference on Logic Programming and Automated Reasoning
Extracting Constructive Content from Classical Logic via Control-like Reductions
TLCA '93 Proceedings of the International Conference on Typed Lambda Calculi and Applications
Program Extraction from Classical Proofs
LCC '94 Selected Papers from the International Workshop on Logical and Computational Complexity
Classical Proofs as Programs: How, What and Why
Classical Proofs as Programs: How, What and Why
Extracting constructive content from classical proofs
Extracting constructive content from classical proofs
Getting results from programs extracted from classical proofs
Theoretical Computer Science
Hi-index | 0.00 |
It is well-known that a constructive proof of a @P"2^0 formula F written as a @l-term via Curry-Howard isomorphism, computes a function that witnesses F. Murthy [Murthy, C.R., Classical proofs as programs: How, what and why, Technical Report TR 91-1215, Cornell University, Department of Computer Science (1991)] outlined an extension of this result to classical logic, with the double-negation rule mapped to Felleisen's control operator C [Felleisen, M., D. Friedman, E. Kohlbecker and B. Duba, A syntactic theory of sequential control, Theoretical Computer Science 52 (1987), pp. 205-237]. Since C is similar to call/cc operator in Scheme and SML/NJ, this opens a possibility of extracting programs in these languages from classical proofs. However, even though the basic idea has appeared in the literature, there appears to be little work that uses Griffin's extension of the Curry-Howard isomorphism to extract practical programs in real programming languages. In this article, we fill in missing steps in Murthy's argument and extend his method to encompass more interesting proofs by allowing additional ubiquitous inference rules: equality rules, rules for atomic formulas (such as transitivity of =). We illustrate the usefulness of this extension with a complete example of program extraction.