1989
DOI: 10.1007/3-540-50940-2_38
|View full text |Cite
|
Sign up to set email alerts
|

Horn clause programs with polymorphic types: Semantics and resolution

Abstract: This paper presents a Horn clanse logic where functions and predicates are declared with polymorphic types. Types are parameterized with type variables. This leads to an ML-like polymorphic type system. A type declaration of a function or predicate restricts the possible use of this function or predicate so that only certain terms are allowed to be arguments for this function or predicate. The semantic models for polymorphic Horn clause programs are defined and a resolution method for this kind of logic progra… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
7
0

Year Published

1990
1990
2009
2009

Publication Types

Select...
6
2

Relationship

0
8

Authors

Journals

citations
Cited by 24 publications
(7 citation statements)
references
References 20 publications
0
7
0
Order By: Relevance
“…αProlog permits type variables in declarations, which are treated polymorphically, following previous work on polymorphic typing in logic programming [Mycroft and O'Keefe 1984;Hanus 1991]. Polymorphic type checking is performed in the standard way by generating equational constraints and solving them using unification.…”
Section: Syntaxmentioning
confidence: 99%
“…αProlog permits type variables in declarations, which are treated polymorphically, following previous work on polymorphic typing in logic programming [Mycroft and O'Keefe 1984;Hanus 1991]. Polymorphic type checking is performed in the standard way by generating equational constraints and solving them using unification.…”
Section: Syntaxmentioning
confidence: 99%
“…The reader may wonder whether function indexing can be avoided and thus reconstructed. Interestingly enough, the dual of the property of transparency [11], for which the type declaration of every (internal) function is such that every type variable occurring in the domain also occurs in the range, ensures, in the absence of overloading, index reconstruction. Space prevents us from providing a formal proof.…”
Section: Now Given the Ground Instance P([3]) ← Q([ ])mentioning
confidence: 99%
“…The introduction of polymorphism in logic programming has required some care: there are predicate definitions that are semantically non-problematic, yet may lead to runtime errors [15,11]. A sufficient condition is definitional genericity, which requires that the type of a defining occurrence of a predicate must be a renaming of the assigned type signature of the predicate.…”
Section: Related Work and Conclusionmentioning
confidence: 99%
“…In a programming-language setting, logical consistency is not a concern: programs that do not terminate are considered acceptable. Hanus [1988;1989] designed a typed logic programming language where "functions" (data constructors, in our terminology) are introduced by declarations of the form (4). (In fact, in Hanus' system, it is even possible for the result type to be a type variable; it does not have to be an application of a data constructor ε.)…”
Section: An Alternative Formmentioning
confidence: 99%