2008
DOI: 10.1145/1387673.1387675
|View full text |Cite
|
Sign up to set email alerts
|

Nominal logic programming

Abstract: Nominal logic is an extension of first-order logic which provides a simple foundation for formalizing and reasoning about abstract syntax modulo consistent renaming of bound names (that is, α-equivalence). This article investigates logic programming based on nominal logic. This technique is especially well-suited for prototyping type systems, proof theories, operational semantics rules, and other formal systems in which bound names are present. In many cases, nominal logic programs are essentially literal tran… Show more

Help me understand this report
View preprint versions

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
87
0

Year Published

2009
2009
2020
2020

Publication Types

Select...
5

Relationship

2
3

Authors

Journals

citations
Cited by 39 publications
(87 citation statements)
references
References 84 publications
(153 reference statements)
0
87
0
Order By: Relevance
“…Section 4 introduces the main contribution of the paper, a typed higher-order functional programming language that extends core ML with name-binding types, a type of "semi-decidable propositions" and existential quantification for types in a class of equality types coinciding with the arities of a user-declared nominal signature. This language, which we call αML, draws upon the ideas of αProlog [7], extending them to higher-order functional programming. αML is a simplification of both our first attempt to do this [16] and of αProlog itself, in that it avoids the use of concrete names and name-permutations in programs (see Remark 2.2 and Sect.…”
Section: Contributions Of This Papermentioning
confidence: 99%
See 4 more Smart Citations
“…Section 4 introduces the main contribution of the paper, a typed higher-order functional programming language that extends core ML with name-binding types, a type of "semi-decidable propositions" and existential quantification for types in a class of equality types coinciding with the arities of a user-declared nominal signature. This language, which we call αML, draws upon the ideas of αProlog [7], extending them to higher-order functional programming. αML is a simplification of both our first attempt to do this [16] and of αProlog itself, in that it avoids the use of concrete names and name-permutations in programs (see Remark 2.2 and Sect.…”
Section: Contributions Of This Papermentioning
confidence: 99%
“…At the very least we need name-inequality constraints x = x , where x, x ∈ Var (N ) with N a name sort. Experience with nominal logic [23,11] and nominal logic programming [7] shows that it is useful to generalize name-inequality to name freshness constraints, x # p where x ∈ Var (N ) and p ∈ Pat Σ (A), even though these can be inductively defined in terms of name-inequality (cf. Fig.…”
Section: Remark 22mentioning
confidence: 99%
See 3 more Smart Citations