This special issue of Mathematical Structures in Computer Science is dedicated to the theory
and applications of explicit substitutions, which have attracted a growing community of
researchers in the last decade, especially in the study of explicit substitutions as a means
of bridging the gap between theory and practice in the implementation of programming
languages, as well as theorem provers and proof checkers.
Such implementations typically rely on formal calculi defined using implicit substitution
operations that are left at the meta-level, so that they need to turn these meta-level
operations into efficient executable code, and this is often fairly intricate and distant from
the formal calculi. This causes a significant gap between theory and practice.
Explicit substitutions considerably reduce this gap by bringing the meta-level operations
down to the object-level calculus – where they are represented explicitly – allowing
us in this way to give formal and robust models for the techniques actually used in
implementations, and providing at the same time a more flexible tool for controlling the
intermediate steps of evaluation.
All the papers in this issue were invited on the basis of their quality and relevance
to the domain, and subjected to the refereeing process of MSCS. Most of them are
substantially expanded and revised versions of work originally presented at Westapp'98
and Westapp'99, the first and second ‘Workshop on Explicit Substitutions: Theory and
Applications to Programs and Proofs’, which were held in conjunction with RTA'98 in
Tsukuba, Japan, and with Floc'99 in Trento, Italy, respectively.
As guest editor, I would like to express my warm thanks both to the authors, for their
high-quality contributions to this special issue, and to the referees, whose scientific role
was essential in improving the presentation of these contributions.