## Program development through proof transformation (1990)

### Cached

### Download Links

Venue: | CONTEMPORARY MATHEMATICS |

Citations: | 4 - 1 self |

### BibTeX

@ARTICLE{Pfenning90programdevelopment,

author = {Frank Pfenning},

title = {Program development through proof transformation},

journal = {CONTEMPORARY MATHEMATICS},

year = {1990}

}

### OpenURL

### Abstract

We present a methodology for deriving verified programs that combines theorem proving and proof transformation steps. It extends the paradigm employed in systems like NuPrl where a program is developed and verified through the proof of the specification in a constructive type theory. We illustrate our methodology through an extended example -- a derivation of Warshall's algorithm for graph reachability. We also outline how our framework supports the definition, implementation, and use of abstract data types.

### Citations

265 |
Constructive mathematics and computer programming
- Martin-Löf
- 1982
(Show Context)
Citation Context ...nd use of abstract data types. 1 Introduction Program development through theorem proving in a constructive logic or type theory has been suggested in many places in the literature (see, for example, =-=[13,11,1,5]-=-). Example programs illustrating this approach have been derived in [12,17,1,18,15]. NuPrl [4] provides sophisticated machine support for program development using this proofs as programs paradigm. It... |

154 |
A deductive approach to program synthesis
- Manna, Waldinger
- 1980
(Show Context)
Citation Context ...nd use of abstract data types. 1 Introduction Program development through theorem proving in a constructive logic or type theory has been suggested in many places in the literature (see, for example, =-=[13,11,1,5]-=-). Example programs illustrating this approach have been derived in [12,17,1,18,15]. NuPrl [4] provides sophisticated machine support for program development using this proofs as programs paradigm. It... |

101 |
Proofs as programs
- Bates, Constable
- 1985
(Show Context)
Citation Context ...nd use of abstract data types. 1 Introduction Program development through theorem proving in a constructive logic or type theory has been suggested in many places in the literature (see, for example, =-=[13,11,1,5]-=-). Example programs illustrating this approach have been derived in [12,17,1,18,15]. NuPrl [4] provides sophisticated machine support for program development using this proofs as programs paradigm. It... |

72 |
Constructions: A Higher Order Proof System for Mechanizing Mathematics
- Coquand, Huet
- 1985
(Show Context)
Citation Context |

56 |
Constable et al. Implementing Mathematics with the Nuprl Proof Development System
- Robert
- 1986
(Show Context)
Citation Context ...ctive logic or type theory has been suggested in many places in the literature (see, for example, [13,11,1,5]). Example programs illustrating this approach have been derived in [12,17,1,18,15]. NuPrl =-=[4]-=- provides sophisticated machine support for program development using this proofs as programs paradigm. It allows extraction of veri ed programs from completed proofs, unveri ed programs from partial ... |

43 |
The Aggregate Update Problem in Functional Programming Systems. Pages 300–313 of
- Hudak, Bloss
- 1985
(Show Context)
Citation Context ...ery abstract speci cations. Destructive operations can in many cases be introduced during compilation of the extracted program. Advanced compilation techniques for functional programs as described in =-=[9]-=- yield a very e cient, destructive implementation of the functional program extracted from our nal proof. The second criticism relates to the ability to maintain and modify proof objects. It seems di ... |

28 |
Hereditary Harrop formulas and uniform proof systems
- Miller, Nadathur, et al.
- 1987
(Show Context)
Citation Context ...e are currently implementing a system that explicitly provides formally proven tactics through a meta-logical formalism based on LF [7]. Their operational interpretation is based on ideas from Prolog =-=[14]-=-. 2 Warshall's Algorithm In this section we will derive a version of Warshall's algorithm for determining whether there is a path from a node x to a node y in a nite, directed graph. We chose Warshall... |

26 |
A framework for de ning logics
- Harper, Honsell, et al.
- 1992
(Show Context)
Citation Context ... theorems (see Section 2.3). The class of transformations that can be described this way is limited by the expressive power of the logic under consideration. We are therefore now considering using LF =-=[7]-=- as a formal system for describing a logic. This allows the formal statement and proof of meta-theorems. The proof of a meta-theorem then may be used to transform proofs in the object logic. These bas... |

24 |
Writing programs that construct proofs
- Constable, Knoblock, et al.
- 1985
(Show Context)
Citation Context ...m. It allows extraction of veri ed programs from completed proofs, unveri ed programs from partial proofs, and the writing of tactics to automate part of the program synthesis and veri cation process =-=[3,8]-=-. Goad in [6] showed that proof transformations can improve the e ciency of extracted programs in the context of specialization, that is, in situations where a very general program is applied to input... |

20 |
Automating Reasoning in an Implementation of Constructive Type Theory
- Howe
- 1988
(Show Context)
Citation Context ...m. It allows extraction of veri ed programs from completed proofs, unveri ed programs from partial proofs, and the writing of tactics to automate part of the program synthesis and veri cation process =-=[3,8]-=-. Goad in [6] showed that proof transformations can improve the e ciency of extracted programs in the context of specialization, that is, in situations where a very general program is applied to input... |

14 |
Program development as a formal activity
- Broy, Pepper
- 1981
(Show Context)
Citation Context ...g. Of course, theoretically this is possible, since our nal result is no more than a proof of the speci cation. Finally, a formal derivation of Warshall's algorithm is presented by Broy and Pepper in =-=[2]-=-. This allows the reader to compare our approach to the wide-spectrum derivation approach as taken by the CIP group [16] which was used in [2]. We start by deriving the original function in [2]. It ca... |

13 |
Algorithm development in the Calculus of Constructions
- Mohring
- 1986
(Show Context)
Citation Context ...em proving in a constructive logic or type theory has been suggested in many places in the literature (see, for example, [13,11,1,5]). Example programs illustrating this approach have been derived in =-=[12,17,1,18,15]-=-. NuPrl [4] provides sophisticated machine support for program development using this proofs as programs paradigm. It allows extraction of veri ed programs from completed proofs, unveri ed programs fr... |

12 |
Computational Uses of the Manipulation of Formal Proofs
- Goad
- 1980
(Show Context)
Citation Context ...traction of veri ed programs from completed proofs, unveri ed programs from partial proofs, and the writing of tactics to automate part of the program synthesis and veri cation process [3,8]. Goad in =-=[6]-=- showed that proof transformations can improve the e ciency of extracted programs in the context of specialization, that is, in situations where a very general program is applied to inputs satisfying ... |

5 |
A survey of the project CIP: Computer-aided, intuition-guided programming
- Moller
- 1984
(Show Context)
Citation Context ..., a formal derivation of Warshall's algorithm is presented by Broy and Pepper in [2]. This allows the reader to compare our approach to the wide-spectrum derivation approach as taken by the CIP group =-=[16]-=- which was used in [2]. We start by deriving the original function in [2]. It can be extracted from a very natural proof of the speci cation. In several steps we then transform this initial proof into... |

3 |
Deriving and Using Destructive Data Types
- Jotring, Scherlis
- 1987
(Show Context)
Citation Context ... research. One possibility we are exploring is to extract a program and then leave the proofs-as-programs paradigm in favor of correctness preserving program transformation techniques as described in =-=[10]-=- to derive a destructive implementation. De nition 12 An array is a function with nite, enumerated domain. We write [A ! B] for the type arrays with index set A and element type B. Given A and B, ther... |

1 |
Deductive synthesis of the uni cation algorithm
- Manna, Waldinger
- 1981
(Show Context)
Citation Context ...em proving in a constructive logic or type theory has been suggested in many places in the literature (see, for example, [13,11,1,5]). Example programs illustrating this approach have been derived in =-=[12,17,1,18,15]-=-. NuPrl [4] provides sophisticated machine support for program development using this proofs as programs paradigm. It allows extraction of veri ed programs from completed proofs, unveri ed programs fr... |

1 |
Programming in constructive set theory
- Nordstrom
- 1981
(Show Context)
Citation Context ...em proving in a constructive logic or type theory has been suggested in many places in the literature (see, for example, [13,11,1,5]). Example programs illustrating this approach have been derived in =-=[12,17,1,18,15]-=-. NuPrl [4] provides sophisticated machine support for program development using this proofs as programs paradigm. It allows extraction of veri ed programs from completed proofs, unveri ed programs fr... |

1 |
Program Derivation in Type Theory: The Polish Flag Problem
- Petersson, Smith
- 1985
(Show Context)
Citation Context |