Results 1  10
of
13
When Do Bounds and Domain Propagation Lead to the Same Search Space
 In Proceedings of the Third International Conference on Principles and Practice of Declarative Programming
, 2001
"... This paper explores the question of when two propagationbased constraint systems have the same behaviour, in terms of search space. We categorise the behaviour of domain and bounds propagators for primitive constraints, and provide theorems that allow us to determine propagation behaviours for conj ..."
Abstract

Cited by 23 (3 self)
 Add to MetaCart
This paper explores the question of when two propagationbased constraint systems have the same behaviour, in terms of search space. We categorise the behaviour of domain and bounds propagators for primitive constraints, and provide theorems that allow us to determine propagation behaviours for conjunctions of constraints. We then show how we can use this to analyse CLP(FD) programs to determine when we can safely replace domain propagators by more efficient bounds propagators without increasing search space.
Combining Norms to Prove Termination
, 2002
"... Automatic termination analyzers typically measure the size of terms applying norms which are mappings from terms to the natural numbers. This paper illustrates how to enable the use of size functions defined as tuples of these simpler norm functions. This approach enables us to simplify the problem ..."
Abstract

Cited by 13 (5 self)
 Add to MetaCart
Automatic termination analyzers typically measure the size of terms applying norms which are mappings from terms to the natural numbers. This paper illustrates how to enable the use of size functions defined as tuples of these simpler norm functions. This approach enables us to simplify the problem of deriving automatically a candidate norm with which to prove termination. Instead of deriving a single, complex norm function, it is sufficient to determine a collection of simpler norms, some combination of which, leads to a proof of termination. We propose that a collection of simple norms, one for each of the recursive datatypes in the program, is often a suitable choice. We first demonstrate the power of combining norm functions and then the adequacy of combining norms based on regulartypes.
Termination Analysis with Types is More Accurate
 In ICLP 2003: Proceedings of the 19th International Conference on Logic Programming, C. Palamidessi, Ed. Lecture Notes in Computer Science
, 2003
"... In this paper we show how we can use size and groundness analyses lifted to regular and (polymorphic) Hindley/Milner typed programs to determine more accurate termination of (type correct) programs. ..."
Abstract

Cited by 11 (3 self)
 Add to MetaCart
In this paper we show how we can use size and groundness analyses lifted to regular and (polymorphic) Hindley/Milner typed programs to determine more accurate termination of (type correct) programs.
Reuse of Results in Termination Analysis of Typed Logic Programs
 In Static Analysis, 9th International Symposium
, 2002
"... Recent works by the authors address the problem of automating the selection of a candidate norm for the purpose of termination analysis. These works illustrate a powerful technique in which a collection of simple typebased norms, one for each data type in the program, are combined together to provi ..."
Abstract

Cited by 8 (1 self)
 Add to MetaCart
Recent works by the authors address the problem of automating the selection of a candidate norm for the purpose of termination analysis. These works illustrate a powerful technique in which a collection of simple typebased norms, one for each data type in the program, are combined together to provide the candidate norm. This paper extends these results by investigating type polymorphism. We show that by considering polymorphic types we reduce, without sacrificing precision, the number of typebased norms which should be combined to provide the candidate norm. Moreover, we show that when a generic polymorphic typed program component occurs in one or more specific type contexts, we need not reanalyse it. All of the information concerning its termination and its e ect on the termination of other predicates in that context can be derived directly from the context independent analysis of that component based on norms derived from the polymorphic types.
When Size Does Matter  Termination Analysis for Typed Logic Programs
 Logicbased Program Synthesis and Transformation, 11th International Workshop, LOPSTR 2001, Selected Papers, volume 2372 of LNCS
, 2002
"... Proofs of termination typically proceed by mapping program states to a well founded domain and showing that successive states of the computation are mapped to elements decreasing in size. Automated termination analysers for logic programs achieve this by measuring and comparing the sizes of succ ..."
Abstract

Cited by 6 (4 self)
 Add to MetaCart
Proofs of termination typically proceed by mapping program states to a well founded domain and showing that successive states of the computation are mapped to elements decreasing in size. Automated termination analysers for logic programs achieve this by measuring and comparing the sizes of successive calls to recursive predicates. The size of the call is measured by a level mapping that in turn is based on a norm on the arguments of the call. A norm maps a term to a natural number.
Pos(T): Analyzing Dependencies in Typed Logic Programs
 Presented at the Andrei Ershov Fourth International Conference on Perspectives of System Informatics
, 2001
"... Dependencies play a major role in the analysis of program properties. The analysis of groundness dependencies for logic programs using the class of positive Boolean functions is a main applications area. ..."
Abstract

Cited by 5 (3 self)
 Add to MetaCart
Dependencies play a major role in the analysis of program properties. The analysis of groundness dependencies for logic programs using the class of positive Boolean functions is a main applications area.
Improving Precision of Type Analysis Using NonDiscriminative Union 47
 HigherOrder and Symbolic Computation
, 2003
"... This paper presents a new type analysis for logic programs. The analysis is performed with a priori type definitions; and type expressions are formed from a fixed alphabet of type constructors. Nondiscriminative union is used to join type information from different sources without loss of precision ..."
Abstract

Cited by 4 (4 self)
 Add to MetaCart
This paper presents a new type analysis for logic programs. The analysis is performed with a priori type definitions; and type expressions are formed from a fixed alphabet of type constructors. Nondiscriminative union is used to join type information from different sources without loss of precision. An operation that is performed repeatedly during an analysis is to detect if a fixpoint has been reached. This is reduced to checking the emptiness of types. Due to the use of nondiscriminative union, the fundamental problem of checking the emptiness of types is more complex in the proposed type analysis than in other type analyses with a priori type definitions. The experimental results, however, show that use of tabling reduces the effect to a small fraction of analysis time on a set of benchmarks.
Analysis of Polymorphically Typed Logic Programs Using ACIUnification
 In Proceedings of the Eighth International Conference on Logic for Programming, Artificial Intelligence, and Reasoning. Lecture Notes in Artificial Intelligence
, 2001
"... . Analysis of (partial) groundness is an important application of abstract interpretation. There are several proposals for improving the precision of such an analysis by exploiting type information, including our own work [15], where we had shown how the information present in the type declarations ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
. Analysis of (partial) groundness is an important application of abstract interpretation. There are several proposals for improving the precision of such an analysis by exploiting type information, including our own work [15], where we had shown how the information present in the type declarations of a program can be used to characterise the degree of instantiation of a term in a precise but finite way. This approach worked for polymorphically typed logic programs. Here, we recast this approach following [5, 11]. To formalise which properties of terms we want to characterise, we use labelling functions, which are functions that extract subterms from a term along certain paths. An abstract term collects the results of all labelling functions of a term. For the analysis, programs are executed on abstract terms instead of the concrete ones, and usual unification is replaced by unification modulo an equality theory which includes the wellknown ACItheory. Thus we generalise [5, 11] w.r.t. the type systems considered and relate those two works. 1
Detecting Determinacy in Prolog Programs
 In Proceedings of the Twentysecond International Conference on Logic Programming. Lecture Notes in Computer Science
"... Abstract. In program development it is useful to know that a call to a Prolog program will not inadvertently leave a choicepoint on the stack. Determinacy inference has been proposed for solving this problem yet the analysis was found to be wanting in that it could not infer determinacy conditions ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
Abstract. In program development it is useful to know that a call to a Prolog program will not inadvertently leave a choicepoint on the stack. Determinacy inference has been proposed for solving this problem yet the analysis was found to be wanting in that it could not infer determinacy conditions for programs that contained cuts or applied certain tests to select a clause. This paper shows how to remedy these serious deficiencies. It also addresses the problem of identifying those predicates which can be rewritten in a more deterministic fashion. To this end, a radically new form of determinacy inference is introduced, which is founded on ideas in ccp, that is capable of reasoning about the way bindings imposed by a rightmost goal can make a leftmost goal deterministic. 1
Termination Analysis of Typed Logic Programs
, 2003
"... In this paper we show how we can use size and groundness analyses lifted to regular and (polymorphic) Hindley/Milner typed logic programs to determine more accurate termination of (type correct) programs. Type information for programs may be either inferred automatically or declared by the programme ..."
Abstract
 Add to MetaCart
In this paper we show how we can use size and groundness analyses lifted to regular and (polymorphic) Hindley/Milner typed logic programs to determine more accurate termination of (type correct) programs. Type information for programs may be either inferred automatically or declared by the programmer. The analysis of the typed logic programs is able to completely reuse a framework for termination analysis of untyped logic programs by using abstract compilation of the type abstraction. We de ne a methodology for mapping a typed logic program to a type separated CLP(N) program that allows us to automatically determine termination characteristics of the original program. We demonstrate how the approach is able to prove termination of programs which the untyped analysis can not.