🤖 AI Summary
This paper addresses the challenge of uniformly formalizing core semantic notions—name dependency, freshness, and α-equivalence—in nominal computation. We propose a constructive nominal sets theory based on a type-class hierarchy and generalized rewriting. Implemented in Rocq (formerly Coq), our framework models name dependencies via group actions of name permutations, and formally develops nominal sets, freshness, nominal α-equivalence, name abstraction, and finite-support functions, together with associated recursive and inductive combinators. The approach mitigates the “set-theoretic hell” problem, enabling concise definitions and mechanized reasoning. Its type-class architecture ensures extensibility, while generalized rewriting significantly improves the efficiency of equivalence reasoning. The resulting framework provides a rigorous, machine-checked foundation for the syntax and semantics of binding structures.
📝 Abstract
Nominal techniques have been praised for their ability to formalize grammars with binding structures closer to their informal developments. At its core, there lies the definition of nominal sets, which capture the notion of name (in)dependence through a simple, and uniform, metatheory based on name permutations. We present a formal constructive development of nominal sets in Rocq (formerly known as Coq), with its main design and project decisions. Furthermore, we formalize the concepts of freshness, nominal alpha-equivalence, name abstraction, and finitely supported functions. Our implementation relies on a type class hierarchy which, combined with Rocq generalized rewriting mechanism, achieves concise definitions and proofs, whilst easing the well-known "setoid hell" scenario. We conclude with a discussion on how to obtain the constructive alpha-structural recursion and induction combinators, towards a nominal framework.