Nominal terms (computer science)

Nominal terms (computer science)

Nominal terms are a metalanguage for embedding object languages with binding constructs into. Intuitively, they may be seen as an extension of first-order terms with support for name binding. Consequently, the native notion of equality between two nominal terms is alpha-equivalence (equivalence up to a permutative renaming of bound names). Nominal terms came out of a programme of research into nominal sets, and have a concrete semantics in those sets.

Nominal unification is efficiently decidable. This fact led to the development of alphaProlog, a Prolog-like logic programming language with facilities for binding names in terms, where Prolog's standard first-order unification algorithm is replaced with nominal unification.

Nominal term embeddings may be seen as alternatives to de Bruijn encodings and higher-order abstract syntax, where the latter uses the simply typed lambda calculus as a metalanguage.

Contents

Motivation

Many interesting calculi, logics and programming languages that are commonly seen in computer science feature name binding constructs. For instance, the universal quantifier from first-order logic, the lambda-binder from the lambda-calculus, and the pi-binder from the pi-calculus are all examples of name-binding constructs.

Computer scientists often need to manipulate abstract syntax trees. For instance, compiler writers perform many manipulations of abstract syntax trees during the various optimisation and elaboration phases of compiler execution. In particular, when working with abstract syntax trees with name binding constructs, we often want to work on alpha-equivalence classes, implement capture-avoiding substitutions, and make it easy to generate fresh names. How best to do this, in a bug free and reliable manner, motivates a large amount of research.

Prior attempts at solving this problem include 'nameless approaches' such as de Bruijn indices and levels, and higher-order approaches such as higher-order abstract syntax. Nominal terms are another, relatively new, approach that retain explicit names for bound variables like higher-order abstract syntax, whilst retaining the first-order flavour (and first-order computational properties) of de Bruijn encodings.

Syntax

Example embeddings

Unification algorithm

Relation with higher-order patterns

Higher-order unification is known to be undecidable. This motivates the search for subsets of lambda-terms that enjoy a computationally well-behaved unification procedure. Higher-order patterns, proposed by Miller, are one such set.

Higher-order patterns are lambda-terms where the arguments of a free variable are all distinct bound variables. They possess an efficiently decidable unification procedure, and as a result, have been widely implemented, notably in the logic programming language lambdaProlog.

A recent body of work has investigated the connections between nominal terms and higher-order patterns, and consequently between nominal unification and higher-order pattern unification. Cheney proposed an extension of nominal terms called nominal patterns. He then provided a translation between nominal patterns and higher-order patterns which preserved unifiers. Later, Levy and Villaret demonstrated a translation between nominal terms and higher-order patterns that preserves the notion of unifiability. That is, if two nominal terms are unifiable, then their translated pattern counterparts are also unifiable.

Dowek and Gabbay later sharpened Levy and Villaret's translation, proving that in some sense their translation is the best that there can be, and proved that the improved translation preserves unifiers. That is, if two nominal terms are unifiable by some substitution, then the corresponding higher-order pattern unification problem under the translation is solved by the translated substitution. For their proof, Dowek and Gabbay used a variation of nominal terms called permissive nominal terms. However, a translation from permissive nominal terms and back again also exists, completing the translation between nominal terms and higher-order patterns.

References

  • Christophe Calves and Maribel Fernandez (2008). "A polynomial nominal unification algorithm". Theoretical Computer Science 403: 285–306. 
  • James Cheney (2005). "Relating higher-order pattern unification and nominal unification". Proceedings of the 19th International Workshop on Unification (UNIF). pp. 104–119. 
  • Gilles Dowek, Murdoch J. Gabbay and Dominic P. Mulligan (2010). "Permissive nominal terms and their unification". Logic Journal of the IGPL. 
  • Jorgi Levy and Mateu Villaret (2008). "Nominal unification from a higher-order perspective". Proceedings of the 19th International Workshop on Rewriting Techniques and Applications (RTA). pp. 246–260. 
  • Christian Urban, Andrew M. Pitts and Murdoch J. Gabbay (2004). "Nominal unification". Theoretical Computer Science 323: 473–497. doi:10.1016/j.tcs.2004.06.016. 

Wikimedia Foundation. 2010.

Игры ⚽ Нужен реферат?

Look at other dictionaries:

  • Nominal terms — may refer to: Nominal terms (computer science) Real versus nominal value (economics) This disambiguation page lists articles associated with the same title. If an internal link led you here, you may wi …   Wikipedia

  • Nominal techniques — are a range of techniques, based on nominal sets, for handling names and binding, e.g. in abstract syntax. Research into nominal sets gave rise to nominal terms, a metalanguage for embedding object languages with name binding constructs into. See …   Wikipedia

  • Science — This article is about the general term, particularly as it refers to experimental sciences. For the specific topics of study by scientists, see Natural science. For other uses, see Science (disambiguation) …   Wikipedia

  • Nominal (disambiguation) — A nominal is one of the parts of speech. Nominal may also refer to: Nominal aphasia, a problem remembering words and names Nominal category, a group of objects or ideas that can be collectively grouped on the basis of shared, arbitrary… …   Wikipedia

  • Science fiction convention — Fans talk after panel Science fiction conventions are gatherings of fans of various forms of speculative fiction including science fiction and fantasy. Historically, science fiction conventions had focused primarily on literature, but the purview …   Wikipedia

  • Seven Kingdoms (computer game) — Infobox VG title = Seven Kingdoms developer = Enlight publisher = Interactive Magic distributor = designer = Trevor Chan engine = version = released = November 30, 1997 genre = Real time strategy modes = Single player, Multiplayer ratings =… …   Wikipedia

  • education — /ej oo kay sheuhn/, n. 1. the act or process of imparting or acquiring general knowledge, developing the powers of reasoning and judgment, and generally of preparing oneself or others intellectually for mature life. 2. the act or process of… …   Universalium

  • Economic Affairs — ▪ 2006 Introduction In 2005 rising U.S. deficits, tight monetary policies, and higher oil prices triggered by hurricane damage in the Gulf of Mexico were moderating influences on the world economy and on U.S. stock markets, but some other… …   Universalium

  • Academic degree — An academic degree is a position and title within a college or university that is usually awarded in recognition of the recipient having either satisfactorily completed a prescribed course of study or having conducted a scholarly endeavour deemed …   Wikipedia

  • Romania — This article is about the modern country. For other uses, see Romania (disambiguation). Romania România …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”