Results 1  10
of
15
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 24 (3 self)
 Add to MetaCart
(Show Context)
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
(Show Context)
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 12 (3 self)
 Add to MetaCart
(Show Context)
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
(Show Context)
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
(Show Context)
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
"... 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. Work has been done to improve its precision through the integration of either pattern informati ..."
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. Work has been done to improve its precision through the integration of either pattern information or type information. This paper develops another approach where type information is exploited. Different from previous work, a separate simple analysis is done for each subtype of the types. Also, a technique is developed that reuses the results of a polymorphic predicate for the type instances under which it is called.
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 4 (2 self)
 Add to MetaCart
(Show Context)
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
Improving Precision of Type Analysis Using NonDiscriminative Union
 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
(Show Context)
. 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