Categories and Subject Descriptors D.3.3 [Programming Languages]:
BibTeX
@MISC{Pouillard_categoriesand,
author = {Nicolas Pouillard and François Pottier},
title = {Categories and Subject Descriptors D.3.3 [Programming Languages]:},
year = {}
}
OpenURL
Abstract
A wide range of computer programs, including compilers and theorem provers, manipulate data structures that involve names and binding. However, the design of programming idioms which allow performing these manipulations in a safe and natural style has, to a large extent, remained elusive. In this paper, we present a novel approach to the problem. Our proposal can be viewed either as a programming language design or as a library: in fact, it is currently implemented within Agda. It provides a safe and expressive means of programming with names and binders. It is abstract enough to support multiple concrete implementations: we present one in nominal style and one in de Bruijn style. We use logical relations to prove that “well-typed programs do not mix names with different scope”. We exhibit an adequate encoding of Pitts-style nominal terms into our system.







