Hostname: page-component-586b7cd67f-tf8b9 Total loading time: 0 Render date: 2024-12-05T14:49:37.186Z Has data issue: false hasContentIssue false

Program equivalence in a linear functional language

Published online by Cambridge University Press:  01 March 2000

G. M. BIERMAN
Affiliation:
Department of Computer Science, University of Warwick, Coventry CV4 7AL, UK
Rights & Permissions [Opens in a new window]

Abstract

Core share and HTML view are not available for this content. However, as you have access to this content, a full PDF is available via the ‘Save PDF’ action button.

Researchers have recently proposed that for certain applications it is advantageous to use functional languages whose type systems are based upon linear logic: so-called linear functional languages. In this paper we develop reasoning techniques for programs in a linear functional language, linPCF, based on their operational behaviour. The principal theorem of this paper is to show that contextual equivalence of linPCF programs can be characterised coinductively. This characterisation provides a tractable method for reasoning about contextual equivalence, and is used in three ways:

[bull ] A number of useful contextual equivalences between linPCF programs is given.

[bull ] A notion of type isomorphism with respect to contextual equivalence, called operational isomorphism, is given. In particular the types !ϕ[otimes ]!ψ and !(ϕ&ψ) are proved to be operationally isomorphic.

[bull ] A translation of non-strict PCF into linPCF is shown to be adequate, but not fully abstract, with respect to contextual equivalence.

Type
Research Article
Copyright
© 2000 Cambridge University Press
Submit a response

Discussions

No Discussions have been published for this article.