Results 11  20
of
59
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 10 (3 self)
 Add to MetaCart
(Show Context)
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.fernunihagen.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 ordersorted 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 ordersorted unification as required by the logic pro ..."
Abstract

Cited by 9 (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 ordersorted unification as required by the logic programming language PROTOSL, by refining the abstract type constraints used in [BB96] to the polymorphic ordersorted types of PROTOSL. 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.
Distributed reasoning with ontologies and rules in ordersorted 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
(Show Context)
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 ordersorted logic programming that transfers rigid properties from knowledge bases. Our ordersorted logic contains types (rigid sorts), nonrigid sorts, and unary predicates that distinctly express essential sorts, nonessential sorts, and nonsortal properties. We formalize the ordersorted Hornclause calculus for such expressions in a single knowledge base. This calculus is extended by embedding rigidproperty 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 queryanswering system that combines ordersorted linear resolution and rigidproperty resolution as topdown 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 builtin theories in a deduction process is done for a narrowing process which solves queries in theories defined by rewrite rules with builtin 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 higherorder resolution [16]. The idea is to distinguish two levels of deduction and t...
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 5 (3 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...
Report of the Logic Programming Language PROTOSL
 REVISED VERSION: WORKING PAPER 4, IBM GERMANY, SCIENTIFIC CENTER, INSTITUTE FOR LOGICS AND LINGUISTICS
, 1994
"... PROTOSL 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, highlevel access to external relational databases, and finite domain constraints. The type concept covers user defin ..."
Abstract

Cited by 5 (2 self)
 Add to MetaCart
PROTOSL 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, highlevel 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 userdefined functions are available. The module concept is similar to that of Modula2 and allows to hide implementation details from the user of a module. Database access and modification is fully embedded in the programming language PROTOSL and can be programmed transparent to the user of a program or a program part. Besides simple links to external relations, nonrecursive as well as recursive function free deduction rules can be defined. PROTOSL also provides an easy way to work with windows via an objectoriented interface to the OSF/Mot...
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 builtin 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 builtin 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...
The Completion of Typed Logic Programs and SLDNFResolution
, 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 SLDresolution. Previous work has looked ..."
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 SLDresolution. Previous work has looked at how these conditions may be avoided by adding runtime type checking to the SLDresolution. 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 SLDNFresolution. 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...
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 firstorder 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 firstorder 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...
Constraint Logic Programming in the Sequent Calculus
 Logic Programming and Automated Reasoning
, 1994
"... . In this paper, we are developing a new logical semantics of CLP. It is shown that CLP is based on an amalgamated logic embedding the entailment relation of constraints into a fragment of intuitionistic logic. Constrained SLD resolution corresponds to a complete proof search in the amalgamated logi ..."
Abstract

Cited by 4 (0 self)
 Add to MetaCart
(Show Context)
. In this paper, we are developing a new logical semantics of CLP. It is shown that CLP is based on an amalgamated logic embedding the entailment relation of constraints into a fragment of intuitionistic logic. Constrained SLD resolution corresponds to a complete proof search in the amalgamated logic. The framework provides not only the logical account on the definitional semantics towards CLP but also a general way to integrate constraints into various logic programming systems. 1 Introduction Constraint logic programming has recently attracted much research actively. Intuitively, constraint logic programming languages are designed by replacing unification with constraint solving over a computational domain. Therefore, logic programming can be pursued over any intended domain of discourse. Many CLP languages has been designed [JL87, Col87] and implemented [JL87, Col87]. Their computational domains include linear arithmetic[JL87], boolean algebra [KS89] and finite sets [MHS88]. Since ...