1,713 research outputs found
Variable elimination for building interpreters
In this paper, we build an interpreter by reusing host language functions
instead of recoding mechanisms of function application that are already
available in the host language (the language which is used to build the
interpreter). In order to transform user-defined functions into host language
functions we use combinatory logic : lambda-abstractions are transformed into a
composition of combinators. We provide a mechanically checked proof that this
step is correct for the call-by-value strategy with imperative features.Comment: 33 page
Observational Equivalence and Full Abstraction in the Symmetric Interaction Combinators
The symmetric interaction combinators are an equally expressive variant of
Lafont's interaction combinators. They are a graph-rewriting model of
deterministic computation. We define two notions of observational equivalence
for them, analogous to normal form and head normal form equivalence in the
lambda-calculus. Then, we prove a full abstraction result for each of the two
equivalences. This is obtained by interpreting nets as certain subsets of the
Cantor space, called edifices, which play the same role as Boehm trees in the
theory of the lambda-calculus
The Biequivalence of Locally Cartesian Closed Categories and Martin-L\"of Type Theories
Seely's paper "Locally cartesian closed categories and type theory" contains
a well-known result in categorical type theory: that the category of locally
cartesian closed categories is equivalent to the category of Martin-L\"of type
theories with Pi-types, Sigma-types and extensional identity types. However,
Seely's proof relies on the problematic assumption that substitution in types
can be interpreted by pullbacks. Here we prove a corrected version of Seely's
theorem: that the B\'enabou-Hofmann interpretation of Martin-L\"of type theory
in locally cartesian closed categories yields a biequivalence of 2-categories.
To facilitate the technical development we employ categories with families as a
substitute for syntactic Martin-L\"of type theories. As a second result we
prove that if we remove Pi-types the resulting categories with families are
biequivalent to left exact categories.Comment: TLCA 2011 - 10th Typed Lambda Calculi and Applications, Novi Sad :
Serbia (2011
Strategic polymorphism requires just two combinators!
In previous work, we introduced the notion of functional strategies:
first-class generic functions that can traverse terms of any type while mixing
uniform and type-specific behaviour. Functional strategies transpose the notion
of term rewriting strategies (with coverage of traversal) to the functional
programming paradigm. Meanwhile, a number of Haskell-based models and
combinator suites were proposed to support generic programming with functional
strategies.
In the present paper, we provide a compact and matured reconstruction of
functional strategies. We capture strategic polymorphism by just two primitive
combinators. This is done without commitment to a specific functional language.
We analyse the design space for implementational models of functional
strategies. For completeness, we also provide an operational reference model
for implementing functional strategies (in Haskell). We demonstrate the
generality of our approach by reconstructing representative fragments of the
Strafunski library for functional strategies.Comment: A preliminary version of this paper was presented at IFL 2002, and
included in the informal preproceedings of the worksho
- …