Nominal Reasoning Techniques in Coq
(Work in Progress). Brian Aydemir, Aaron Bohannon, and Stephanie
Weirich. In International Workshop
on Logical Frameworks and Meta-Languages:Theory and Practice (LFMTP
2006).
We explore an axiomatized nominal approach to variable binding
in Coq, using an untyped lambda-calculus as our test case. In our
nominal approach, alpha-equality of lambda terms coincides with
Coq's
built-in equality. Our axiomatization includes a nominal
induction
principle and functions for calculating free variables and
substitution.
These axioms are collected in a module signature and proved sound using
locally nameless terms as the underlying representation. Our
experience so far suggests that it is
feasible to work from such axiomatized theories in Coq and that the
nominal
style of variable binding corresponds closely with paper proofs.
We
are currently working on proving the soundness of a primitive recursion
combinator and developing a method of generating these axioms and their
proof of soundness from a grammar describing the syntax of terms and
binding.
[full paper (pdf)] [slides
(pdf)]
[source code (tar.gz)] [source documentation]
The source code requires Coq
8.1beta to compile. The included README file details differences
between the code and the description in the paper.
@InProceedings{aydemir+:nominal-coq,
author = {Brian Aydemir and Aaron Bohannon and Stephanie Weirich},
title = {Nominal Reasoning Techniques in {Coq}},
booktitle = {International Workshop on Logical Frameworks and
Meta-Languages:Theory and Practice (LFMTP) },
year = 2006,
address = {Seattle, WA, USA},
month = aug
}
This material is based upon work supported by the National Science
Foundation under Grant No. 0551589. Any opinions, findings, and
conclusions or recommendations expressed in
this material are those of the author(s) and do not necessarily reflect
the views of the National Science Foundation.
Stephanie Weirich