1,956 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
Zipper logic
Zipper logic is a graph rewrite system, consisting in only local rewrites on
a class of zipper graphs. Connections with the chemlambda artificial chemistry
and with knot diagrammatics based computation are explored in the article.Comment: 16 pages, 24 colour figure
From nominal to higher-order rewriting and back again
We present a translation function from nominal rewriting systems (NRSs) to
combinatory reduction systems (CRSs), transforming closed nominal rules and
ground nominal terms to CRSs rules and terms, respectively, while preserving
the rewriting relation. We also provide a reduction-preserving translation in
the other direction, from CRSs to NRSs, improving over a previously defined
translation. These tools, together with existing translations between CRSs and
other higher-order rewriting formalisms, open up the path for a transfer of
results between higher-order and nominal rewriting. In particular, techniques
and properties of the rewriting relation, such as termination, can be exported
from one formalism to the other.Comment: 41 pages, journa
Using Inhabitation in Bounded Combinatory Logic with Intersection Types for Composition Synthesis
We describe ongoing work on a framework for automatic composition synthesis
from a repository of software components. This work is based on combinatory
logic with intersection types. The idea is that components are modeled as typed
combinators, and an algorithm for inhabitation {\textemdash} is there a
combinatory term e with type tau relative to an environment Gamma?
{\textemdash} can be used to synthesize compositions. Here, Gamma represents
the repository in the form of typed combinators, tau specifies the synthesis
goal, and e is the synthesized program. We illustrate our approach by examples,
including an application to synthesis from GUI-components.Comment: In Proceedings ITRS 2012, arXiv:1307.784
Are there Hilbert-style Pure Type Systems?
For many a natural deduction style logic there is a Hilbert-style logic that
is equivalent to it in that it has the same theorems (i.e. valid judgements
with empty contexts). For intuitionistic logic, the axioms of the equivalent
Hilbert-style logic can be propositions which are also known as the types of
the combinators I, K and S. Hilbert-style versions of illative combinatory
logic have formulations with axioms that are actual type statements for I, K
and S. As pure type systems (PTSs)are, in a sense, equivalent to systems of
illative combinatory logic, it might be thought that Hilbert-style PTSs (HPTSs)
could be based in a similar way. This paper shows that some PTSs have very
trivial equivalent HPTSs, with only the axioms as theorems and that for many
PTSs no equivalent HPTS can exist. Most commonly used PTSs belong to these two
classes. For some PTSs however, including lambda* and the PTS at the basis of
the proof assistant Coq, there is a nontrivial equivalent HPTS, with axioms
that are type statements for I, K and S.Comment: Accepted in Logical Methods in Computer Scienc
- …