kirancodes.me
To Proof Maintenance & Beyond!

Automating Changes of Data Type in Functional Programs

Julian Richardson

Abstract

I present an automatic technique for transforming a program by changing the data types in that program to ones which are more appropriate for the task. Programs are synthesised by proving modified synthesis theorems in the proofs-as-programs paradigm. The transformation can be verified in the logic of type theory. Transformations are motivated by the presence of subexpressions in the synthesised program. A library of data type changes is maintained, indexed by the motivating subexpressions. These transformations are extended from the motivating expressions to cover as much of the program as possible. I describe the general pattern of the revised synthesis proof, and show how such a proof can be guided by difference matching followed by rippling.

BibTeX
@inproceedings{Richardson:ASE95,
  author    = {Julian Richardson},
  title     = {Automating Changes of Data Type in Functional Programs},
  booktitle = {ASE},
  pages     = {166--173},
  publisher = {{IEEE} Computer Society},
  year      = {1995},
}

Related papers