Results 11 - 20
of
41
Type Checking and Type Inferencing for Logic Programs with Subtypes and Parametric Polymorphism
- Subtypes and Parametric Polymorphism, Informatik Berichte 200, Fern Universitat
, 1996
"... We analyze basic shortcomings of existing proposals for type checking and type inferencing in logic programming languages. A new type system is presented using simple and declarative type annotations. It includes parametric polymorphism and subtyping. Static type checking and inferencing within the ..."
Abstract
-
Cited by 9 (2 self)
- Add to MetaCart
We analyze basic shortcomings of existing proposals for type checking and type inferencing in logic programming languages. A new type system is presented using simple and declarative type annotations. It includes parametric polymorphism and subtyping. Static type checking and inferencing within the new type system is able to detect more programming errors than in other comparable systems. Our approach is independent of a specific resolution calculus and therefore applicable to a wide range of logic languages. A type inferencing algorithm is presented for reconstructing variable typings. As a concrete instance, the results were applied to unrestricted standard Prolog with type annotations, for which a type checking and type inferencing tool is available. This report is part of the documentation for a type checking tool available at !URL:http://www.fernuni-hagen.de/pi8/typical/?. It is complemented by a report "On the Use of Types in Logic Programming" [Mey96]. Research supported by ...
Refinement of a typed WAM extension by polymorphic order-sorted types
, 1996
"... . We refine the mathematical specification of a WAM extension to typeconstraint logic programming given in [BB96]. We provide a full specification and correctness proof of the PROTOS Abstract Machine (PAM), an extension of the WAM by polymorphic order-sorted unification as required by the logic prog ..."
Abstract
-
Cited by 8 (3 self)
- Add to MetaCart
. We refine the mathematical specification of a WAM extension to typeconstraint logic programming given in [BB96]. We provide a full specification and correctness proof of the PROTOS Abstract Machine (PAM), an extension of the WAM by polymorphic order-sorted unification as required by the logic programming language PROTOS-L, by refining the abstract type constraints used in [BB96] to the polymorphic order-sorted types of PROTOS-L. This allows us to develop a detailed and mathematically precise account of the PAM's compiled type constraint representation and solving facilities, and to extend the correctness theorem to compilation on the fully specified PAM. 1. Introduction In [BR95] a mathematical elaboration of Warren's Abstract Machine ([War83], [AK91]) for executing Prolog is given, coming in several refinement levels together with correctness proofs, and a correctness proof w.r.t. Borger's phenomenological Prolog description [Bor90]. In [BB96] we demonstrated how the evolving algeb...
Distributed reasoning with ontologies and rules in order-sorted logic programming
- Journal of Web Semantics
"... Integrating ontologies and rules on the Semantic Web enables software agents to interoperate between them; however, this leads to two problems. First, reasoning services in SWRL (a combination of OWL and RuleML) are not decidable. Second, no studies have focused on distributed reasoning services for ..."
Abstract
-
Cited by 7 (6 self)
- Add to MetaCart
Integrating ontologies and rules on the Semantic Web enables software agents to interoperate between them; however, this leads to two problems. First, reasoning services in SWRL (a combination of OWL and RuleML) are not decidable. Second, no studies have focused on distributed reasoning services for integrating ontologies and rules in multiple knowledge bases. In order to address these problems, we consider distributed reasoning services for ontologies and rules with decidable and effective computation. In this paper, we describe multiple order-sorted logic programming that transfers rigid properties from knowledge bases. Our order-sorted logic contains types (rigid sorts), non-rigid sorts, and unary predicates that distinctly express essential sorts, non-essential sorts, and non-sortal properties. We formalize the order-sorted Horn-clause calculus for such expressions in a single knowledge base. This calculus is extended by embedding rigid-property derivation for multiple knowledge bases, each of which can transfer rigidproperty information from other knowledge bases. In order to enable the reasoning to be effective and decidable, we design a query-answering system that combines order-sorted linear resolution and rigid-property resolution as top-down algorithms.
On The Use Of Constraints In Automated Deduction
, 1995
"... . This paper presents three approaches dealing with constraints in automated deduction. Each of them illustrates a different point. The expression of strategies using constraints is shown through the example of a completion process using ordered and basic strategies. The schematization of complex un ..."
Abstract
-
Cited by 7 (1 self)
- Add to MetaCart
. This paper presents three approaches dealing with constraints in automated deduction. Each of them illustrates a different point. The expression of strategies using constraints is shown through the example of a completion process using ordered and basic strategies. The schematization of complex unification problems through constraints is illustrated by the example of an equational theorem prover with associativity and commutativity axioms. The incorporation of built-in theories in a deduction process is done for a narrowing process which solves queries in theories defined by rewrite rules with built-in constraints. Advantages of using constraints in automated deduction are emphasized and new challenging problems in this area are pointed out. 1 Motivations Constraints have been introduced in automated deduction since about 1990, although one could find similar ideas in theory resolution [32] and in higher-order resolution [16]. The idea is to distinguish two levels of deduction and t...
Constraint Solving by Narrowing in Combined Algebraic Domains
- Proc. 11th International Conference on Logic Programming
, 1994
"... Narrowing is a way to integrate function evaluation and equality definition into logic programming. Here we show how this can be combined with the constraint paradigm. We propose a solver for goals with constraints in theories defined by unconstrained equalities and rewrite rules with constraints ex ..."
Abstract
-
Cited by 5 (4 self)
- Add to MetaCart
Narrowing is a way to integrate function evaluation and equality definition into logic programming. Here we show how this can be combined with the constraint paradigm. We propose a solver for goals with constraints in theories defined by unconstrained equalities and rewrite rules with constraints expressed in an algebraic built-in structure. The narrowing method reduces the goal solving problem in the whole theory to rewriting and constraint solving in an adequate combined theory. The combined solver is obtained through the combination of a solver in the built-in structure and a solver for the unconstrained equalities. Sufficient syntactic conditions are proposed to get a process that enumerates a complete set of solutions. 1 Introduction Narrowing provides integration of function evaluation and equality definition into logic programming [6, 12, 8, 18, 10]. In this work, we show how this can be connected with the constraint paradigm to get a constraint solver on combined algebraic dom...
Report of the Logic Programming Language PROTOS-L
- Revised version: Working Paper 4, IBM Germany, Scientific Center, Institute for Logics and Linguistics
, 1994
"... : PROTOS-L is a language based on logic programming that integrates a variety of concepts for programming large knowledge based systems like a powerful type concept, a module concept, high-level access to external relational databases, and finite domain constraints. The type concept covers user defi ..."
Abstract
-
Cited by 5 (2 self)
- Add to MetaCart
: PROTOS-L is a language based on logic programming that integrates a variety of concepts for programming large knowledge based systems like a powerful type concept, a module concept, high-level access to external relational databases, and finite domain constraints. The type concept covers user defined sorts, subsort relationships supporting multiple inheritance and parameterized sorts in the form of polymorphism. In addition to relations, also user-defined functions are available. The module concept is similar to that of Modula-2 and allows to hide implementation details from the user of a module. Database access and modification is fully embedded in the programming language PROTOS-L and can be programmed transparent to the user of a program or a program part. Besides simple links to external relations, non-recursive as well as recursive function free deduction rules can be defined. PROTOS-L also provides an easy way to work with windows via an object-oriented interface to the OSF/Mot...
Redundancy Criteria for Constrained Completion
- 5th International Conference on Rewriting Techniques and Applications (RTA)', LNCS 690
, 1995
"... This paper studies completion in the case of equations with constraints consisting of first-order formulae over equations, disequations, and an irreducibility predicate. We present several inference systems which show in a very precise way how to take advantage of redundancy notions in this framewor ..."
Abstract
-
Cited by 5 (1 self)
- Add to MetaCart
This paper studies completion in the case of equations with constraints consisting of first-order formulae over equations, disequations, and an irreducibility predicate. We present several inference systems which show in a very precise way how to take advantage of redundancy notions in this framework. A notable feature of these systems is the variety of tradeooes they present for removing redundant instances of the equations involved in an inference. The irreducibility predicates simulate redundancy criteria based on reducibility (such as prime superposition and Blocking in Basic Completion) and the disequality predicates simulate the notion of subsumed critical pairs; in addition, since constraints are passed along with equations, we can perform hereditary versions of all these redundancy checks. This combines in one consistent framework stronger versions of all practical critical pair criteria. We also provide a rigorous analysis of the problem with completing sets of equation...
The Completion of Typed Logic Programs and SLDNF-Resolution
, 1993
"... We consider logic programming languages with a parametric type system, first described by Mycroft and O'Keefe, that allows generic polymorphism. It is well known that provided certain conditions hold typed definite logic programs do not go wrong under SLD-resolution. Previous work has looked at ..."
Abstract
-
Cited by 5 (1 self)
- Add to MetaCart
We consider logic programming languages with a parametric type system, first described by Mycroft and O'Keefe, that allows generic polymorphism. It is well known that provided certain conditions hold typed definite logic programs do not go wrong under SLD-resolution. Previous work has looked at how these conditions may be avoided by adding run-time type checking to the SLD-resolution. However, only definite programs have been considered and the program's theory was assumed to be given by the statements of the program and not its completion. This paper establishes results showing that the conditions are also necessary for almost all typed logic programs if the declarative semantics is the completion semantics and the procedural semantics is based on SLDNF-resolution. 1 Introduction The type system considered here is parametric. Parametric type systems have been described in a number of papers, including [2], [3], [6], [7], [8], [10], [11], and [13]. Such a type system is one...
On the Use of Types in Logic Programming
, 1996
"... In procedural and functional languages it is rather clear what a type error is and the main purpose of typing is to detect programming errors automatically. Furthermore, in these languages the semantics of a program is usually independent of types. Type systems for logic programming languages differ ..."
Abstract
-
Cited by 4 (2 self)
- Add to MetaCart
In procedural and functional languages it is rather clear what a type error is and the main purpose of typing is to detect programming errors automatically. Furthermore, in these languages the semantics of a program is usually independent of types. Type systems for logic programming languages differ considerably on these aspects. We will show that these differences lead to several theoretical and practical problems. The mixture of static type checking purposes on the one hand and computations with type constraints in the CLP(X) style on the other hand will be marked as the central source of problems. As a solution we propose a typing scheme which separates these issues. We distinguish three almost independent dimensions of types in logic programming: types as approximations, types as constraints and types for proving partial correctness. Based on the notion of useless expressions, we develop a method that allows static program analysis for finding type errors, which enables error detec...
Algebraic Semantics for Functional Logic Programming with Polymorphic Order-Sorted Types
, 1996
"... . In this paper we present the semantics of a functional logic language with parametric and order-sorted polymorphism. Typed programs consist of a polymorphic signature and a set of constructor-based conditional rewriting rules for which we define a semantic calculus. The denotational semantics of t ..."
Abstract
-
Cited by 4 (2 self)
- Add to MetaCart
. In this paper we present the semantics of a functional logic language with parametric and order-sorted polymorphism. Typed programs consist of a polymorphic signature and a set of constructor-based conditional rewriting rules for which we define a semantic calculus. The denotational semantics of the language is based on Scott domains interpreting constructors and functions by monotonic and continuous mappings, respectively, in every instance of the declared type. We prove initiality results for the free ground term algebra. We also prove that the free term algebra with variables is freely generated in the category of models. The semantic calculus is proved to be sound and complete w.r.t. the denotational semantics. As in logic programming, we define the immediate consequence operator, proving that the Hebrand model is the least model of a program. 1 Introduction Type systems have been traditionally considered in functional languages and incorporated as an extension to logic program...

