STEPS TOWARDS MECHANIZING PROGRAM TRANSFORMATIONS USING PVS

Authors
Citation
N. Shankar, STEPS TOWARDS MECHANIZING PROGRAM TRANSFORMATIONS USING PVS, Science of computer programming, 26(1-3), 1996, pp. 33-57
Citations number
23
Categorie Soggetti
Computer Sciences","Computer Science Software Graphycs Programming
ISSN journal
01676423
Volume
26
Issue
1-3
Year of publication
1996
Pages
33 - 57
Database
ISI
SICI code
0167-6423(1996)26:1-3<33:STMPTU>2.0.ZU;2-X
Abstract
PVS is a highly automated framework for specification and verification . We show how the language and deduction features of PVS can be used t o formalize, mechanize, and apply some useful program transformation t echniques, We examine two such examples in detail. The first is a fusi on theorem due to Bird where the composition of a catamorphism (a recu rsive operation on the structure of a datatype) and an anamorphism (an operation that constructs instances of the datatype) are fused to eli minate the intermediate data structure. The second example is Wand's c ontinuation-based transformation technique for deriving tail-recursive functions from non-tail-recursive ones. These examples illustrate the utility of the language and inference features of PVS in capturing th ese transformations in a simple, general, and useful form.