Existential types: Logical relations and operational equivalence

40Citations
Citations of this article
20Readers
Mendeley users who have this article in their library.
Get full text

Abstract

Existential types have proved useful for classifying various kinds of information hiding in programming languages, such as occurs in abstract datatypes and objects. In this paper we address the question of when two elements of an existential type are semantically equivalent. Of course, it depends what one means by 'semantic equivalence'. Here we take a syntactic approach-so semantic equivalence will mean some kind of operational equivalence. The paper begins by surveying some of the literature on this topic involving 'logical relations'. Matters become quite complicated if the programming language mixes existential types with function types and features involving non-termination (such as recursive definitions). We give an example (suggested by Ian Stark) to show that in this case the existence of suitable relations is sufficient, but not necessary for proving operational equivalences at existential types. Properties of this and other examples are proved using a new form of operationally-based logical relation which does in fact provide a useful characterisation of operational equivalence for existential types.

Cite

CITATION STYLE

APA

Pitts, A. M. (1998). Existential types: Logical relations and operational equivalence. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 1443 LNCS, pp. 309–326). Springer Verlag. https://doi.org/10.1007/bfb0055063

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free