Relating Nominal and Higher-order Abstract Syntax Specifications
Andrew Gacek

TL;DR
This paper unifies nominal and higher-order abstract syntax approaches, providing a translation from nominal-based alpha-Prolog to higher-order G- and integrating higher-order judgments for enhanced specification power.
Contribution
It establishes a concrete, semantics-preserving translation between nominal and higher-order abstract syntax languages, unifying two related communities and enhancing G- with higher-order judgment capabilities.
Findings
Developed a translation from alpha-Prolog to G-
Integrated higher-order judgments into G-
Demonstrated G-'s expressive power with unified syntax approaches
Abstract
Nominal abstract syntax and higher-order abstract syntax provide a means for describing binding structure which is higher-level than traditional techniques. These approaches have spawned two different communities which have developed along similar lines but with subtle differences that make them difficult to relate. The nominal abstract syntax community has devices like names, freshness, name-abstractions with variable capture, and the new-quantifier, whereas the higher-order abstract syntax community has devices like lambda-binders, lambda-conversion, raising, and the nabla-quantifier. This paper aims to unify these communities and provide a concrete correspondence between their different devices. In particular, we develop a semantics-preserving translation from alpha-Prolog, a nominal abstract syntax based logic programming language, to G-, a higher-order abstract syntax based logic…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsLogic, programming, and type systems · Logic, Reasoning, and Knowledge · Formal Methods in Verification
