Results 1 
3 of
3
Extraction of Structured Programs from Specification Proofs
 Workshop on Algebraic Development Techniques, volume 1827 of Lecture Notes in Computer Science
"... We present a method using an extended logical system for obtaining "correct" programs from specifications written in a sublanguage of CASL. By "correct" we mean programs that satisfy their specifications. The technique we use is to extract programs from proofs in formal logic by techniques due to Cu ..."
Abstract

Cited by 3 (3 self)
 Add to MetaCart
We present a method using an extended logical system for obtaining "correct" programs from specifications written in a sublanguage of CASL. By "correct" we mean programs that satisfy their specifications. The technique we use is to extract programs from proofs in formal logic by techniques due to Curry and Howard. The logical calculus, however, has the novel feature that as well as the conventional logical rules it includes structural rules corresponding to the standard ways of modifying specifications: translating (renaming), taking unions of specifications and hiding signatures. Although programs extracted by the CurryHoward process can be very cumbersome, we use a number of simplifications that ensure that the programs extracted are in a language close to a standard highlevel programming language. We use this to produce an executable refinement of a given specification and we then provide a method for producing a program module which respects the original structure of the specific...
A layered approach to extracting programs from proofs with an application in Graph Theory
 in Graph Theory. Paper presented at the Seventh Aisan Logic Conference, HsiTou
, 1999
"... In this paper we describe our system for automatically extracting "correct" programs from proofs using a development of the CurryHoward process. Although program extraction has been developed by many authors (see [5, ?,?]), our system has a number of novel features designed to make it very easy to ..."
Abstract

Cited by 2 (2 self)
 Add to MetaCart
In this paper we describe our system for automatically extracting "correct" programs from proofs using a development of the CurryHoward process. Although program extraction has been developed by many authors (see [5, ?,?]), our system has a number of novel features designed to make it very easy to use and as close as possible to ordinary mathematical terminology and practice. These features include 1. the use of Henkin's technique [6] to reduce higherorder logic to manysorted (firstorder) logic 2. the free use of new rules for induction subject to certain conditions 3. the extensive use of previously programmed (primitive) recursive functions. 4. the use of templates to make the reasoning much closer to normal mathematical proofs. 5. an extension of the technique of the use of Harrop formulae to classically true formulae (cf. the footnote on p. 101 in Kreisel [9]); As an example of our system we give a constructive proof of the wellknown theorem that every graph of even par...
Fred: An implementation of a layered approach to extracting programs from proofs. Part I: an application in Graph Theory
, 2000
"... In this paper we describe our system Fred for automatically extracting "correct" programs from proofs using a development of the CurryHoward process. Although program extraction has been developed by many authors (see [5, 2, 8]), our system has a number of novel features designed to make it very ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
In this paper we describe our system Fred for automatically extracting "correct" programs from proofs using a development of the CurryHoward process. Although program extraction has been developed by many authors (see [5, 2, 8]), our system has a number of novel features designed to make it very easy to use and as close as possible to ordinary mathematical terminology and practice. These features include 1. the use of Henkin's technique [6] to reduce higherorder logic to manysorted (firstorder) logic 2. the free use of new rules for induction subject to certain conditions 3. the extensive use of previously programmed (primitive) recursive functions 4. the use of templates to make the reasoning much closer to normal mathematical proofs. 5. an extension of the technique of the use of Harrop formulae to classically true formulae (cf. the footnote on p. 101 in Kreisel [10]). As an example of our system we give a constructive proof of the wellknown theorem that every graph ...