Nominal Sets in Rocq
By: Fabrício Sanches Paranhos, Daniel Ventura
Potential Business Impact:
Makes computer code easier to write and check.
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.
Similar Papers
Nominal Type Theory by Nullary Internal Parametricity
Logic in Computer Science
Makes computer language rules easier to check.
Nominal Algebraic-Coalgebraic Data Types, with Applications to Infinitary Lambda-Calculi
Logic in Computer Science
Lets computers work with tricky math symbols.
Nominal anti-unification
Logic in Computer Science
Helps computers learn patterns with tricky rules.