Computer Science Department
School of Computer Science, Carnegie Mellon University


Focusing on Binding and Computation

Daniel R. Licata, Noam Zeilberger, Robert Harper
February 2008


An abbreviated version appears in
IEEE Symposium on Logic in Computer Science
June 2008.

Keywords: Type theory, proof theory, focusing, polarity, variable binding, higher-order abstract syntax, definitional reflection

Variable binding is a prevalent feature of the syntax and proof theory of many logical systems. In this paper, we define a programming language that provides intrinsic support for both representing and computing with binding. This language is extracted as the Curry-Howard interpretation of a focused sequent calculus with two kinds of implication, of opposite polarity. The representational arrow extends systems of definitional reflection with the notion of a scoped inference rule, which permits the adequate representation of binding via higher-order abstract syntax. On the other hand, the usual computational arrow classifies recursive functions over such higher-order data. Unlike many previous approaches, both binding and computation can mix freely. Following Zeilberger [POPL 2008], the computational function space admits a form of open- endedness, in that it is represented by an abstract map from patterns to expressions. As we demonstrate with Coq and Agda implementations, this has the important practical benefit that we can reuse the pattern coverage checking of these tools.

32 pages

Return to: SCS Technical Report Collection
School of Computer Science

This page maintained by