[an error occurred while processing this directive] An error occured whilst processing this directive

LFCS (North) Seminar


Logic Programming with Names and Binding

James Cheney

Lab for Foundations of Computer Science
School of Informatics
University of Edinburgh

4pm Tuesday 28 September 2004
Level 2, Appleton Tower


This seminar will take place in the seminar room of "LFCS North", Level 2, Appleton Tower. It will be followed by a housewarming party for LFCS North. If you are coming to the party (all LFCS members are warmly invited -- it's their space) please send a note to Yrsa Roca Fannberg (v1ysanbe@inf.ed.ac.uk) so that we can estimate "consumables" -- Peter Buneman

Abstract

Names, binding, and alpha-equivalence are central concepts in many areas of computer science, especially in the study of programming langauges and logics. Until recently, there were only two real choices for programming and formal verification of systems involving names and binding: a direct approach in which names are implemented as strings and alpha-equivalence, renaming, substitution etc. are implemented manually, or the "higher-order abstract syntax" approach in which the variables and binding features provided by a powerful meta-language such as the lambda-calculus are used for names and binding in object-languages.

The first approach is the most practical but can be difficult to reason about because of the need to reason explicitly about substitution and renaming. The second approach can be easier to reason about in some respects but is semantically very complicated, so for example inductive proof principles are elusive.

Recently Gabbay and Pitts developed a third promising approach that seems to avoid many of the disadvantages of both prior approaches while preserving their advantages. In their approach, binding and substitution are formalized in terms of bijective renaming operations (or swappings). Pitts presented a variant of first-order logic called nominal logic that incorporates these ideas.

I (in collaboration with Christian Urban, University of Cambridge) have been developing an approach to logic programming based on nominal logic. I have developed a variant of Prolog called alphaProlog that incorporates these ideas. In this talk I will provide an overview of nominal logic and then describe the unification and resolution algorithms currently used in alphaProlog and show how they permit more convenient (and more transparently correct) logic programming with names and binding.

Mary Cryan
Friday 17 September 2004
An error occured whilst processing this directive