kirancodes.me
To Proof Maintenance & Beyond!

Binders unbound

Stephanie Weirich, Brent A. Yorgey, Tim Sheard

Abstract

Implementors of compilers, program refactorers, theorem provers, proof checkers, and other systems that manipulate syntax know that dealing with name binding is difficult to do well. Operations such as α-equivalence and capture-avoiding substitution seem simple, yet subtle bugs often go undetected. Furthermore, their implementations are tedious, requiring "boilerplate" code that must be updated whenever the object language definition changes.

Related papers