HAL will be down for maintenance from Friday, June 10 at 4pm through Monday, June 13 at 9am. More information
Skip to Main content Skip to Navigation

Namely, Painless: A unifying approach to safe programming with first-order syntax with binders

Abstract : This dissertation describes a novel approach to safe meta-programming. A meta-program is a program which processes programs or similar data. Compilers and theorem provers are prime examples of meta-programs which could benefit from this approach. To this end, this work focuses on the representation of names and binders in data structures. Programming errors are really easy to make with usual techniques. We propose an abstract interface to names and binders that rules out these errors. This interface is implemented as a library in Agda. It allows defining and manipulating term representations in nominal style. Thanks to abstraction, other styles are supported as well: the de Bruijn style, the combinations of these styles, and more. Whereas indexing the types of names and terms with a natural number is a well-known technique to better control de Bruijn indices, we index them with worlds. Worlds are at the same time more precise and more abstract than natural numbers. Via logical relations and parametricity, we are able to demonstrate in what sense our library is safe, and to obtain theorems for free about world-polymorphic functions. For instance, we prove that a world-polymorphic term transformation function must commute with any renaming of the free variables. The proof is entirely carried out in Agda. The usability of our technique is shown on several examples including normalization by evaluation which is known to be challenging. We show that our world-indexed approach can express a wide range of data types by embedding several definition languages from the literature.
Document type :
Complete list of metadata

Contributor : Nicolas Pouillard Connect in order to contact the contributor
Submitted on : Saturday, December 1, 2012 - 12:12:21 PM
Last modification on : Thursday, February 3, 2022 - 11:18:26 AM
Long-term archiving on: : Saturday, December 17, 2016 - 6:05:45 PM


  • HAL Id : tel-00759059, version 1



Nicolas Pouillard. Namely, Painless: A unifying approach to safe programming with first-order syntax with binders. Programming Languages [cs.PL]. Université Paris-Diderot - Paris VII, 2012. English. ⟨tel-00759059⟩



Record views


Files downloads