## LNgen: Tool Support for Locally Nameless Representations

### Cached

### Download Links

Citations: | 10 - 3 self |

### BibTeX

@MISC{Aydemir_lngen:tool,

author = {Brian Aydemir and Stephanie Weirich},

title = {LNgen: Tool Support for Locally Nameless Representations},

year = {}

}

### Years of Citing Articles

### OpenURL

### Abstract

Given the complexity of the metatheoretic reasoning involved with current programming languages and their type systems, techniques for mechanical formalization and checking of the metatheory have received much recent attention. In previous work, we advocated a combination of locally nameless representation and cofinite quantification as a lightweight style for carrying out such formalizations in the Coq proof assistant. As part of the presentation of that methodology, we described a number of operations associated with variable binding and listed a number of properties, called “infrastructure lemmas, ” about those operations that needed to be shown. The proofs of these infrastructure lemmas are generally straightforward, given a specification of the binding structure of the language. In this work, we present LNgen, a prototype tool for automatically generating these definitions, lemmas, and proofs from Ott-like language specifications. Furthermore, the tool also generates a recursion scheme for defining functions over syntax, which was not available in our previous work. We also show the soundness and completeness of our tool’s output. For untyped lambda terms, we prove the adequacy of our representation with respect to a fully concrete representation, and we argue that the representation is complete—that we generate the right set of lemmas—with respect to Gordon and Melham’s “Five Axioms of Alpha-Conversion. ” Finally, we claim that our recursion scheme is simpler to work with than either Gordon and Melham’s recursion scheme or the recursion scheme of Nominal Logic. 1.

### Citations

697 | A Framework for Defining Logics
- Harper, Honsell, et al.
- 1992
(Show Context)
Citation Context ... for Coq and Ott to generate code for other tools and proof assistants (L ATEX, Isabelle/HOL, etc.). Figures 1 and 2 show sample input files to LNgen (and Ott) for lambda calculus expressions and LF (=-=Harper et al. 1993-=-). The meaning of each file should be intuitive—the syntax is intended to mimic what one might write informally. A detailed description of the Ott language can be found elsewhere (Sewell and Nardelli ... |

313 | System description: Twelf - a meta-logical framework for deductive systems
- Pfenning, Schürmann
(Show Context)
Citation Context ... mechanization is the treatment of binding. Many tools exist to aid in this practice—Hybrid (Momigliano et al. 2008), Lambda Tamer (Chlipala 2008), Nominal-Isabelle (Urban and Berghofer 2008), Twelf (=-=Pfenning and Schürmann 1999-=-)—as well as many representation techniques—de Bruijn indices (1972), locally named (McKinna and Pollack 1999), locally nameless (Pollack 1994), nested datatypes (Bird and Paterson 1999), weak HOAS (D... |

303 | Lambda calculus notation with nameless dummies, a tool for automatic formal manipulation with application to the Church-Rosser theorem
- Bruijn
- 1972
(Show Context)
Citation Context ...e treatment of binding. Many tools exist to aid in this practice— Abella [1], Hybrid [2], Lambda Tamer [3], Nominal Isabelle [4], Twelf [5]—as well as many representation techniques—de Bruijn indices =-=[6]-=-, higher-order abstract syntax (hoas) [7], locally named [8], locally nameless [9], weak hoas [10], etc. As a programming language designer, how should we compare these methodologies? What tools shoul... |

303 |
Higher-order abstract syntax
- Pfenning, Elliott
- 1988
(Show Context)
Citation Context ...to aid in this practice— Abella [1], Hybrid [2], Lambda Tamer [3], Nominal Isabelle [4], Twelf [5]—as well as many representation techniques—de Bruijn indices [6], higher-order abstract syntax (hoas) =-=[7]-=-, locally named [8], locally nameless [9], weak hoas [10], etc. As a programming language designer, how should we compare these methodologies? What tools should we use? The PoplMark challenge [11] lai... |

167 | Nominal logic: A first order theory of names and binding
- Pitts
(Show Context)
Citation Context ...e no correspondence to pencil and paper proofs. 2. Logical expressivity. There should be minimal restriction on the logic that we use for formal developments. For example, the models of Nominal Logic =-=[12]-=- require that all definable relations be equivariant. To allow similar reasoning in higher-order logic, where this is not the case, Nominal Isabelle must require equivariance proofs (many of which can... |

154 | De Bruijn. Lambda calculus notation with nameless dummies - G - 1972 |

139 | Mechanized metatheory for the masses: The POPLmark challenge
- Aydemir, Bohannon, et al.
- 2005
(Show Context)
Citation Context ...oas) [7], locally named [8], locally nameless [9], weak hoas [10], etc. As a programming language designer, how should we compare these methodologies? What tools should we use? The PoplMark challenge =-=[11]-=- laid out a number of criteria, which we have come to interpret with respect to existing technologies, for evaluating potential answers: 1. Transparency. Reasoning should be similar to that done with ... |

84 | Engineering formal metatheory
- Aydemir, Charguéraud, et al.
- 2008
(Show Context)
Citation Context ...ant our representation of syntax to use what proof assistants are good at: specifying inductive datatypes and generating their associated induction principles and recursion schemes. In previous work (=-=Aydemir et al. 2008-=-), we proposed a completely manual scheme for reasoning about binding structure based on a locally nameless representation and defining inference rules with cofinite quantification. As part of the pre... |

81 | Nominal Techniques in Isabelle/HOL
- Urban
(Show Context)
Citation Context ...h recent attention. One question that is foremost in any mechanization is the treatment of binding. Many tools exist to aid in this practice—Abella [1], Hybrid [2], Lambda Tamer [3], Nominal Isabelle =-=[4]-=-, Twelf [5]—as well as many representation techniques—de Bruijn indices [6], higher-order abstract syntax (hoas) [7], locally named [8], locally nameless [9], weak hoas [10], etc. As a programming lan... |

53 | Some lambda calculus and type theory formalized
- McKinna, Pollack
- 1999
(Show Context)
Citation Context ...008), Lambda Tamer (Chlipala 2008), Nominal-Isabelle (Urban and Berghofer 2008), Twelf (Pfenning and Schürmann 1999)—as well as many representation techniques—de Bruijn indices (1972), locally named (=-=McKinna and Pollack 1999-=-), locally nameless (Pollack 1994), nested datatypes (Bird and Paterson 1999), weak HOAS (Despeyroux et al. 1995), etc. As a programming language designer, how should we compare these methodologies? W... |

44 | Aura: a programming language for authorization and audit - Jia, Vaughan, et al. - 2008 |

24 | 2008): The Abella Interactive Theorem Prover (System Description
- Gacek
(Show Context)
Citation Context ...lizations of programming languages have received much recent attention. One question that is foremost in any mechanization is the treatment of binding. Many tools exist to aid in this practice—Abella =-=[1]-=-, Hybrid [2], Lambda Tamer [3], Nominal Isabelle [4], Twelf [5]—as well as many representation techniques—de Bruijn indices [6], higher-order abstract syntax (hoas) [7], locally named [8], locally nam... |

22 | André Hirschowitz, Higher-order abstract syntax with induction - Despeyroux - 1994 |

22 | Closure Under AlphaConversion
- Pollack
- 1993
(Show Context)
Citation Context ...id [2], Lambda Tamer [3], Nominal Isabelle [4], Twelf [5]—as well as many representation techniques—de Bruijn indices [6], higher-order abstract syntax (hoas) [7], locally named [8], locally nameless =-=[9]-=-, weak hoas [10], etc. As a programming language designer, how should we compare these methodologies? What tools should we use? The PoplMark challenge [11] laid out a number of criteria, which we have... |

21 | Parametric higher-order abstract syntax for mechanized semantics
- Chlipala
- 2008
(Show Context)
Citation Context ...received much recent attention. One question that is foremost on any mechanization is the treatment of binding. Many tools exist to aid in this practice—Hybrid (Momigliano et al. 2008), Lambda Tamer (=-=Chlipala 2008-=-), Nominal-Isabelle (Urban and Berghofer 2008), Twelf (Pfenning and Schürmann 1999)—as well as many representation techniques—de Bruijn indices (1972), locally named (McKinna and Pollack 1999), locall... |

9 | A.P.: Two-level Hybrid: A system for reasoning using higher-order abstract syntax
- Momigliano, Martin, et al.
- 2009
(Show Context)
Citation Context ...izations of programming languages have received much recent attention. One question that is foremost on any mechanization is the treatment of binding. Many tools exist to aid in this practice—Hybrid (=-=Momigliano et al. 2008-=-), Lambda Tamer (Chlipala 2008), Nominal-Isabelle (Urban and Berghofer 2008), Twelf (Pfenning and Schürmann 1999)—as well as many representation techniques—de Bruijn indices (1972), locally named (McK... |

8 | C.: Nominal inversion principles
- Berghofer, Urban
- 2008
(Show Context)
Citation Context ... logic (Pitts 2003) within higher-order logic. It provides convenient support for defining functions by recursion (Urban 2008), and strengthened induction and inversion principles (Urban et al. 2007; =-=Berghofer and Urban 2008-=-) that do not require variable renaming. Here, we focus on defining recursive functions. We can make a direct comparison between defining recursive functions in a nominal setting versus in a locally n... |

3 | Nominal reasoning techniques in Coq (extended abstract
- Aydemir, Bohannon, et al.
- 2007
(Show Context)
Citation Context ...l Isabelle must require equivariance proofs (many of which can be provided automatically). 3. Traction The strategy should draw on the strengths of the proof assistant. For example, in previous work (=-=Aydemir et al. 2007-=-), we explored nominal reasoning in Coq by defining an interface which specified the constructors of a nominal datatype, as well as an induction principal and recursion scheme for that datatype. We ch... |

1 |
Locally nameless backend for Ott. See http: //moscova.inria.fr/ ∼zappa/projects/ln ott
- Nardelli
- 2009
(Show Context)
Citation Context ... al. 1993). The meaning of each file should be intuitive—the syntax is intended to mimic what one might write informally. A detailed description of the Ott language can be found elsewhere (Sewell and =-=Nardelli 2009-=-). Here, we give only a brief review of the subset that LNgen supports. The first part of an input file for LNgen consists of a list of metavar declarations. Each declaration defines a new type for ob... |

1 | Generic programming and proving for programming language metatheory
- Chlipala
- 2007
(Show Context)
Citation Context ...ages have received much recent attention. One question that is foremost in any mechanization is the treatment of binding. Many tools exist to aid in this practice—Abella [1], Hybrid [2], Lambda Tamer =-=[3]-=-, Nominal Isabelle [4], Twelf [5]—as well as many representation techniques—de Bruijn indices [6], higher-order abstract syntax (hoas) [7], locally named [8], locally nameless [9], weak hoas [10], etc... |

1 |
A.: Higher-order abstract syntax in Coq. In: Typed Lambda Calculi and
- Despeyroux, Felty, et al.
- 1995
(Show Context)
Citation Context ...Tamer [3], Nominal Isabelle [4], Twelf [5]—as well as many representation techniques—de Bruijn indices [6], higher-order abstract syntax (hoas) [7], locally named [8], locally nameless [9], weak hoas =-=[10]-=-, etc. As a programming language designer, how should we compare these methodologies? What tools should we use? The PoplMark challenge [11] laid out a number of criteria, which we have come to interpr... |