Results 1  10
of
11
Splitting a Logic Program
 Principles of Knowledge Representation
, 1994
"... In many cases, a logic program can be divided into two parts, so that one of them, the \bottom " part, does not refer to the predicates de ned in the \top " part. The \bottom " rules can be used then for the evaluation of the predicates that they de ne, and the computed values can be ..."
Abstract

Cited by 267 (15 self)
 Add to MetaCart
In many cases, a logic program can be divided into two parts, so that one of them, the \bottom " part, does not refer to the predicates de ned in the \top " part. The \bottom " rules can be used then for the evaluation of the predicates that they de ne, and the computed values can be used to simplify the \top " de nitions. We discuss this idea of splitting a program in the context of the answer set semantics. The main theorem shows how computing the answer sets for a program can be simpli ed when the program is split into parts. The programs covered by the theorem may use both negation as failure and classical negation, and their rules may have disjunctive heads. The usefulness of the concept of splitting for the investigation of answer sets is illustrated by several applications. First, we show that a conservative extension theorem by Gelfond and Przymusinska and a theorem on the closed world assumption by Gelfond and Lifschitz are easy consequences of the splitting theorem. Second, (locally) strati ed programs are shown to have a simple characterization in terms of splitting. The existence and uniqueness of an answer set for such a program can be easily derived from this characterization. Third, we relate the idea of splitting to the notion of orderconsistency. 1
Tabled Evaluation with Delaying for General Logic Programs
, 1996
"... SLD resolution with negation as finite failure (SLDNF) reflects the procedural interpretation of predicate calculus as a programming language and forms the computational basis for Prolog systems. Despite its advantages for stackbased memory management, SLDNF is often not appropriate for query evalu ..."
Abstract

Cited by 260 (27 self)
 Add to MetaCart
SLD resolution with negation as finite failure (SLDNF) reflects the procedural interpretation of predicate calculus as a programming language and forms the computational basis for Prolog systems. Despite its advantages for stackbased memory management, SLDNF is often not appropriate for query evaluation for three reasons: a) it may not terminate due to infinite positive recursion; b) it may not terminate due to infinite recursion through negation; c) it may repeatedly evaluate the same literal in a rule body, leading to unacceptable performance. We address three problems fir a goaloriented query evaluation of general logic programs by presenting tabled evaluation with delaying (SLG resolution).
On The Correctness Of Unfold/fold Transformation Of Normal And Extended Logic Programs
 JOURNAL OF LOGIC PROGRAMMING
, 1995
"... ..."
Splitting a Default Theory
 In Proc. of AAAI96
, 1996
"... This paper presents mathematical results that can sometimes be used to simplify the task of reasoning about a default theory, by "splitting it into parts." These socalled Splitting Theorems for default logic are related in spirit to "partial evaluation" in logic programming, in which results obtain ..."
Abstract

Cited by 21 (2 self)
 Add to MetaCart
This paper presents mathematical results that can sometimes be used to simplify the task of reasoning about a default theory, by "splitting it into parts." These socalled Splitting Theorems for default logic are related in spirit to "partial evaluation" in logic programming, in which results obtained from one part of a program are used to simplify the remainder of the program. In this paper we focus primarily on the statement and proof of the Splitting Theorems for default logic. We illustrate the usefulness of the results by applying them to an example default theory for commonsense reasoning about action.
Towards Effective Evaluation of General Logic Programs
 in the Proceedings of the 12th PODS
, 1993
"... SLD resolution with negation as finite failure (or SLDNF) reflects the procedural interpretation of Hornclause predicate logic as a programming language and forms the computational basis for Prolog systems. Despite its advantages in memory management, SLDNF is often not appropriate for query evalua ..."
Abstract

Cited by 20 (10 self)
 Add to MetaCart
SLD resolution with negation as finite failure (or SLDNF) reflects the procedural interpretation of Hornclause predicate logic as a programming language and forms the computational basis for Prolog systems. Despite its advantages in memory management, SLDNF is often not appropriate for query evaluation for three reasons: a) it may not terminate due to infinite positive recursion; b) it may not terminate due to infinite recursion through negation; and c) it may repeatedly evaluate the same clause body literal, leading to unacceptable performance. We address all three problems for goaloriented query evaluation of arbitrary programs by presenting an extension of SLDNF, called SLG resolution, with the following distinctive features: (i) SLG resolution is a partial deduction procedure, consisting of several transformations. Each query is transformed step by step into a set of answer clauses; (ii) SLG resolution is sound and search space complete for all nonfloundering queries with respec...
SchemaBased TopDown Design of Logic Programs Using Abstract Data Types
 Proc. LOPSTR /META'94 , pages 138153, LNCS 883
, 1994
"... Data Types E. Marakakis and J.P. Gallagher Department of Computer Science, University of Bristol Queen's Building, University Walk, Bristol BS8 1TR, U.K. email: manolis@compsci.bristol.ac.uk, john@compsci.bristol.ac.uk Abstract. This paper presents a set of schemata that support stepwise topdown ..."
Abstract

Cited by 5 (1 self)
 Add to MetaCart
Data Types E. Marakakis and J.P. Gallagher Department of Computer Science, University of Bristol Queen's Building, University Walk, Bristol BS8 1TR, U.K. email: manolis@compsci.bristol.ac.uk, john@compsci.bristol.ac.uk Abstract. This paper presents a set of schemata that support stepwise topdown design of logic programs using abstract data types (ADTs). There are thus three main components to this approach: topdown design, program schemata and ADTs, all of which are already well established notions. Our aim is to combine these ideas in a framework, amenable to support by design tools and allowing the use of existing logic program transformation techniques to optimise the final programs. 1 Introduction and Motivation This paper presents a set of schemata that support stepwise topdown design of logic programs using abstract data types (ADTs). There are thus three main components to this approach: topdown design, program schemata and ADTs, all of which are already wellestablished ...
TransLog, an interactive tool for transformation of logic programs
, 1995
"... This report describes `TransLog', a prototype of a transformation tool for logic programs. The tool has been developed with the ASF+SDF Metaenvironment, a programming environment generator tool based on algebraic specification. TransLog supports the interactive transformation of (a part of) a prog ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
This report describes `TransLog', a prototype of a transformation tool for logic programs. The tool has been developed with the ASF+SDF Metaenvironment, a programming environment generator tool based on algebraic specification. TransLog supports the interactive transformation of (a part of) a program by means of buttons representing transformation rules. This report contains the complete annotated algebraic specification of TransLog. Keywords: logic programming, algebraic specification, program transformations. 1 Introduction The subject of program transformation deals with transforming a simplebutinefficient program into a more efficient program. An initial program P 0 is modified by applying a sequence of welldefined transformation rules, resulting in a program sequence P 0 : : : P k . As much as possible, the semantic properties of a program are maintained during a transformation sequence. Program transformations have been studied since the seventies. We refer to the work of...
Logic Program Development Based on Typed, Moded Schemata and Data Types
 UNIVERSITY OF BRISTOL
, 1997
"... The main contribution of the thesis is to develop a comprehensive framework for developing logic programs using #ve program schemata and some basic data types, and to evaluate its suitability for developing sizable programs. The schemata are intended to capture design decisions made by a programmer ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
The main contribution of the thesis is to develop a comprehensive framework for developing logic programs using #ve program schemata and some basic data types, and to evaluate its suitability for developing sizable programs. The schemata are intended to capture design decisions made by a programmer during topdown re#nement of a predicate. The schemata are completely independent from the data types, and have associated types and modes. The method of construction is to start from an initial typed moded call, and proceed using precisely defined refinement operations until primitive data type operations are introduced. It is shown that the construction method produces programs that are polymorphic manysorted formulas, and that computations using the programs cannot result in type or mode errors. The framework is compared with previous schemabased program development methods from the literature, and we argue that this method is better suited to the developmentof nontrivial programs, and is more amenable to computerised support. The introduction of types and modes into schemata is a significant addition, not previously reported. An approach to program veri#cation is also introduced, in which the proof of correctness of a program is built from proof schemata corresponding to the program schemata used in the design of the program. Finally an implementation of the system is described and its use is illustrated on some sizable programs. The implementation incorporates a static analysis algorithm for checking the validity of the modes during the development of the program.
Program Synthesis and Transformations in an ObjectOriented Environment
 Proc. ERCIM Workshop on Development and Transformations of Programs
, 1993
"... An objectoriented language with automatic synthesis of methods (programs) and transformations of OO descriptions using a logical metalanguage (Hornclause logic) are considered. Automatic synthesis of methods (ProofAsProgram approach) is based on intuitionistic propositional calculus. The metalan ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
An objectoriented language with automatic synthesis of methods (programs) and transformations of OO descriptions using a logical metalanguage (Hornclause logic) are considered. Automatic synthesis of methods (ProofAsProgram approach) is based on intuitionistic propositional calculus. The metalanguage expresses general knowledge related to classes and objects and it is used for describing transformations of classes and objects according to these knowledge and current state of an object base. Partial deduction in combination with classical deduction is used for manipulating descriptions in the metalanguage. Program synthesis and transformation of classes and objects allow to combine declarative and imperative styles of programming and to support dynamic evolution of OO environment. 1 Introduction The basic notions of objectoriented (OO) programming are objects, classes and inheritance. A class contains the description of state variables and methods and objects interact by means of m...