Results 1  10
of
24
Parametric Polymorphism and Operational Equivalence
 MATHEMATICAL STRUCTURES IN COMPUTER SCIENCE
, 2000
"... Studies of the mathematical properties of impredicative polymorphic types have for the most part focused on the polymorphic lambda calculus of Girard–Reynolds, which is a calculus of total polymorphic functions. This paper considers polymorphic types from a functional programming perspective, where ..."
Abstract

Cited by 74 (2 self)
 Add to MetaCart
Studies of the mathematical properties of impredicative polymorphic types have for the most part focused on the polymorphic lambda calculus of Girard–Reynolds, which is a calculus of total polymorphic functions. This paper considers polymorphic types from a functional programming perspective, where the partialness arising from the presence of fixpoint recursion complicates the nature of potentially infinite (‘lazy’) data types. An approach to Reynolds' notion of relational parametricity is developed that works directly on the syntax of a programming language, using a novel closure operator to relate operational behaviour to parametricity properties of types. Working with an extension of Plotkin's PCF with ∀types, lazy lists and existential types, we show by example how the resulting logical relation can be used to prove properties of polymorphic types up to operational equivalence.
StepIndexed Syntactic Logical Relations for Recursive and Quantified Types
 of Lecture Notes in Computer Science
, 2006
"... We present a sound and complete proof technique, based on syntactic logical relations, for showing contextual equivalence of expressions in a #calculus with recursive types and impredicative universal and existential types. Our development builds on the stepindexed PER model of recursive types ..."
Abstract

Cited by 72 (10 self)
 Add to MetaCart
We present a sound and complete proof technique, based on syntactic logical relations, for showing contextual equivalence of expressions in a #calculus with recursive types and impredicative universal and existential types. Our development builds on the stepindexed PER model of recursive types presented by Appel and McAllester. We have discovered that a direct proof of transitivity of that model does not go through, leaving the "PER" status of the model in question. We show how to extend the AppelMcAllester model to obtain a logical relation that we can prove is transitive, as well as sound and complete with respect to contextual equivalence. We then augment this model to support relational reasoning in the presence of quantified types.
Free Theorems in the Presence of seq
, 2004
"... Parametric polymorphism constrains the behavior of pure functional programs in a way that allows the derivation of interesting theorems about them solely from their types, i.e., virtually for free. Unfortunately, the standard parametricity theorem fails for nonstrict languages supporting a polymorph ..."
Abstract

Cited by 37 (12 self)
 Add to MetaCart
Parametric polymorphism constrains the behavior of pure functional programs in a way that allows the derivation of interesting theorems about them solely from their types, i.e., virtually for free. Unfortunately, the standard parametricity theorem fails for nonstrict languages supporting a polymorphic strict evaluation primitive like Haskell's $\mathit{seq}$. Contrary to the folklore surrounding $\mathit{seq}$ and parametricity, we show that not even quantifying only over strict and bottomreflecting relations in the $\forall$clause of the underlying logical relation  and thus restricting the choice of functions with which such relations are instantiated to obtain free theorems to strict and total ones  is sufficient to recover from this failure. By addressing the subtle issues that arise when propagating up the type hierarchy restrictions imposed on a logical relation in order to accommodate the strictness primitive, we provide a parametricity theorem for the subset of Haskell corresponding to a GirardReynoldsstyle calculus with fixpoints, algebraic datatypes, and $\mathit{seq}$. A crucial ingredient of our approach is the use of an asymmetric logical relation, which leads to ``inequational'' versions of free theorems enriched by preconditions guaranteeing their validity in the described setting. Besides the potential to obtain corresponding preconditions for standard equational free theorems by combining some new inequational ones, the latter also have value in their own right, as is exemplified with a careful analysis of $\mathit{seq}$'s impact on familiar program transformations.
Operational Semantics and Program Equivalence
 INRIA Sophia Antipolis, 2000. Lectures at the International Summer School On Applied Semantics, APPSEM 2000, Caminha, Minho
, 2000
"... This tutorial paper discusses a particular style of operational semantics that enables one to give a `syntaxdirected' inductive definition of termination which is very useful for reasoning about operational equivalence of programs. We restrict attention to contextual equivalence of expressions ..."
Abstract

Cited by 34 (4 self)
 Add to MetaCart
This tutorial paper discusses a particular style of operational semantics that enables one to give a `syntaxdirected' inductive definition of termination which is very useful for reasoning about operational equivalence of programs. We restrict attention to contextual equivalence of expressions in the ML family of programming languages, concentrating on functions involving local state. A brief tour of structural operational semantics culminates in a structural definition of termination via an abstract machine using `frame stacks'. Applications of this to reasoning about contextual equivalence are given.
Existential Types: Logical Relations and Operational Equivalence
 In Proceedings of the 25th International Colloquium on Automata, Languages and Programming
, 1998
"... . 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 ..."
Abstract

Cited by 31 (2 self)
 Add to MetaCart
. 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 approachso 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 nontermination (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 operatio...
Finitary PCF is not decidable
 Theoretical Computer Science
, 1996
"... The question of the decidability of the observational ordering of finitary PCF was raised [5] to give mathematical content to the full abstraction problem for PCF [9, 14]. We show that the ordering is in fact undecidable. This result places limits on how explicit a representation of the fully abstra ..."
Abstract

Cited by 25 (0 self)
 Add to MetaCart
The question of the decidability of the observational ordering of finitary PCF was raised [5] to give mathematical content to the full abstraction problem for PCF [9, 14]. We show that the ordering is in fact undecidable. This result places limits on how explicit a representation of the fully abstract model can be. It also gives a slight strengthening of the author’s earlier result on typed λdefinability [6].
Abstract Interpretation of Functional Languages: From Theory to Practice
, 1991
"... Abstract interpretation is the name applied to a number of techniques for reasoning about programs by evaluating them over nonstandard domains whose elements denote properties over the standard domains. This thesis is concerned with higherorder functional languages and abstract interpretations with ..."
Abstract

Cited by 25 (0 self)
 Add to MetaCart
Abstract interpretation is the name applied to a number of techniques for reasoning about programs by evaluating them over nonstandard domains whose elements denote properties over the standard domains. This thesis is concerned with higherorder functional languages and abstract interpretations with a formal semantic basis. It is known how abstract interpretation for the simply typed lambda calculus can be formalised by using binary logical relations. This has the advantage of making correctness and other semantic concerns straightforward to reason about. Its main disadvantage is that it enforces the identification of properties as sets. This thesis shows how the known formalism can be generalised by the use of ternary logical relations, and in particular how this allows abstract values to deno...
Typed closure conversion preserves observational equivalence
, 2008
"... Languagebased security relies on the assumption that all potential attacks are bound by the rules of the language in question. When programs are compiled into a different language, this is true only if the translation process preserves observational equivalence. We investigate the problem of fully ..."
Abstract

Cited by 17 (4 self)
 Add to MetaCart
Languagebased security relies on the assumption that all potential attacks are bound by the rules of the language in question. When programs are compiled into a different language, this is true only if the translation process preserves observational equivalence. We investigate the problem of fully abstract compilation, i.e., compilation that both preserves and reflects observational equivalence. In particular, we prove that typed closure conversion for the polymorphic λcalculus with existential and recursive types is fully abstract. Our proof uses operational techniques in the form of a stepindexed logical relation and construction of certain wrapper terms that “backtranslate ” from target values to source values. Although typed closure conversion has been assumed to be fully abstract, we are not aware of any previous result that actually proves this.
Relational Properties of Recursively Defined Domains
 In 8th Annual Symposium on Logic in Computer Science
, 1993
"... This paper describes a mixed induction/coinduction property of relations on recursively defined domains. We work within a general framework for relations on domains and for actions of type constructors on relations introduced by O'Hearn and Tennent [20], and draw upon Freyd's analysis [7] of recurs ..."
Abstract

Cited by 15 (2 self)
 Add to MetaCart
This paper describes a mixed induction/coinduction property of relations on recursively defined domains. We work within a general framework for relations on domains and for actions of type constructors on relations introduced by O'Hearn and Tennent [20], and draw upon Freyd's analysis [7] of recursive types in terms of a simultaneous initiality/finality property. The utility of the mixed induction/coinduction property is demonstrated by deriving a number of families of proof principles from it. One instance of the relational framework yields a family of induction principles for admissible subsets of general recursively defined domains which extends the principle of structural induction for inductively defined sets. Another instance of the framework yields the coinduction principle studied by the author in [22], by which equalities between elements of recursively defined domains may be proved via `bisimulations'. 1 Introduction A characteristic feature of higherorder functional lan...