Results 1 
4 of
4
Relational Parametricity for a Polymorphic Linear Lambda Calculus
"... Abstract. This paper presents a novel syntactic logical relation for a polymorphic linear λcalculus that treats all types as linear and introduces the constructor! to account for intuitionistic terms. We define a logical relation for open values under both open linear and intuitionistic contexts, t ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
Abstract. This paper presents a novel syntactic logical relation for a polymorphic linear λcalculus that treats all types as linear and introduces the constructor! to account for intuitionistic terms. We define a logical relation for open values under both open linear and intuitionistic contexts, then extend it for open terms with evaluation and open relation substitutions. Relations that instantiate type quantifiers are for open terms and types. We demonstrate the applicability of this logical relation through its soundness with respect to contextual equivalence, along with free theorems for linearity that are difficult to achieve by closed logical relations. When interpreting types on only closed terms, the model defaults to a closed logical relation that is both sound and complete with respect to contextual equivalence, and is sufficient to reason about isomorphisms of type encodings. The idea of using open logical relations also extends easily to System F ◦ —an extension of System F that uses kinds to distinguish linear from intuitionistic types. All of our results have been mechanically verified in Coq, which are also extensive formalizations for polymorphic linear languages in proof assistants. 1
Elementary Order Theory
"... We review ordered sets. An order, or “comparison”, can be used to generate equivalences. We discuss inductively, and coinductively defined sets. Such sets arise naturally when defining, and reasoning about, programs and processes. We define proof principles for such sets. We use the principle of coi ..."
Abstract
 Add to MetaCart
We review ordered sets. An order, or “comparison”, can be used to generate equivalences. We discuss inductively, and coinductively defined sets. Such sets arise naturally when defining, and reasoning about, programs and processes. We define proof principles for such sets. We use the principle of coinduction to validate equivalences, and discuss when this is possible.
Relational Parametricity for Linear System F ◦
"... This paper presents a novel syntactic logical relation for System F ◦ , a simple variant of the linear polymorphic λcalculus. We define a logical relation for open values under both open linear and unrestricted contexts, then extend it for open terms with evaluation and open relation substitutions. ..."
Abstract
 Add to MetaCart
This paper presents a novel syntactic logical relation for System F ◦ , a simple variant of the linear polymorphic λcalculus. We define a logical relation for open values under both open linear and unrestricted contexts, then extend it for open terms with evaluation and open relation substitutions. Relations that instantiate type quantifiers are for open terms and types. We demonstrate the applicability of this logical relation through its soundness with respect to contextual equivalence, along with free theorems for linearity that are difficult to achieve by closed logical relations. When interpreting types on only closed terms, the model defaults to a closed logical relation that is both sound and complete with respect to contextual equivalence, and is sufficient to reason about isomorphisms of type encodings. The idea of using open logical relations also extends easily to more traditional formulations of polymorphic linear type systems that use the! type constructor. 1.
Alpha Equivalence Equalities
, 2012
"... Programming languages and logics, which are pervasive in Computer Science, have syntax which involves variable binding constructors. As such, reasoning about such languages in general, and formal reasoning in particular (such as within a theorem prover), requires frameworks within which the syntax m ..."
Abstract
 Add to MetaCart
Programming languages and logics, which are pervasive in Computer Science, have syntax which involves variable binding constructors. As such, reasoning about such languages in general, and formal reasoning in particular (such as within a theorem prover), requires frameworks within which the syntax may be properly represented. One key requirement is a correct representation of αequivalence. The current literature provides a number of different definitions of the notion of αequivalence. The formal definitions may be nameless as in the approach of de Bruijn, or have explicit names, as in the approaches that use either a renaming/substitution axiom, or instead use a notion of variable swapping. The first contribution of this paper is to draw together five definitions of αequivalence relations and to prove formally and in detail, but using mathematics, that the relations are all equal. There are two key reasons for doing this: Firstly, the literature has many examples of proofs of results involving αequivalence which contain technical errors. Such examples concern both the application of αequivalence, and the metatheory of αequivalence itself. Secondly, the literature does not currently contain detailed presentations of such results. The point of giving the detail is partly to avoid falling into common errortraps, but mainly to provide clear mathematical machinery that will be useful to those working in the area. This includes systems of inductive rules and proofs by induction, and clear accounts of the key lemmas that support the main proofs. The second contribution is to provide two definitions of αequivalence relations over (program) contexts, namely expressions with a single metavariable (or “hole”). One of the definitions is already in the literature, and the other is new. We prove some basic properties of αequivalence on contexts, and show that the two definitions give rise to the same relation.