Results 1 - 10
of
16
Program Development Using Abstract Interpretation (and The Ciao System Preprocessor
- In 10th International Static Analysis Symposium (SAS’03), number 2694 in LNCS
, 2003
"... Abstract. The technique of Abstract Interpretation has allowed the development of very sophisticated global program analyses which are at the same time provably correct and practical. We present in a tutorial fashion a novel program development framework which uses abstract interpretation as a funda ..."
Abstract
-
Cited by 30 (23 self)
- Add to MetaCart
Abstract. The technique of Abstract Interpretation has allowed the development of very sophisticated global program analyses which are at the same time provably correct and practical. We present in a tutorial fashion a novel program development framework which uses abstract interpretation as a fundamental tool. The framework uses modular, incremental abstract interpretation to obtain information about the program. This information is used to validate programs, to detect bugs with respect to partial specifications written using assertions (in the program itself and/or in system libraries), to generate and simplify run-time tests, and specialization, parallelization, and resource usage control, all in a provably correct way. In the case of validation and debugging, the assertions can refer to a variety of program points such as procedure entry, procedure exit, points within procedures, or global computations. The system can reason with much richer information than, for example, traditional types. This includes data structure shape (including pointer sharing), bounds on data structure sizes, and other operational variable instantiation properties, as well as procedure-level properties such as determinacy, termination, non-failure, and bounds on resource consumption (time or space cost). CiaoPP, the preprocessor of the Ciao multi-paradigm programming system, which implements the described functionality, will be used to illustrate the fundamental ideas.
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 12 (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 data-types 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 regular-types.
Inference of Well-typings for Logic Programs with Application to Termination Analysis
, 2005
"... This paper develops a method to infer a polymorphic well-typing for a logic program. One of the main motivations is to contribute to a better automation of termination analysis in logic programs, by deriving types from which norms can automatically be constructed. Previous work on type-based termina ..."
Abstract
-
Cited by 11 (6 self)
- Add to MetaCart
This paper develops a method to infer a polymorphic well-typing for a logic program. One of the main motivations is to contribute to a better automation of termination analysis in logic programs, by deriving types from which norms can automatically be constructed. Previous work on type-based termination analysis used either types declared by the user, or automatically generated monomorphic types describing the success set of predicates. Declared types are typically more precise and result in stronger termination conditions than those obtained with inferred types. Our type inference procedure involves solving set constraints generated from the program and derives a well-typing in contrast to a success-set approximation. Experiments show that our automatically inferred well-typings are close to the declared types and thus result in termination conditions that are as good as those obtained with declared types for all our experiments to date. We describe the method, its implementation and experiments with termination analysis based on the inferred types.
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.
Abstract conjunctive partial deduction using regular types and its application to model checking
- In Proc. of LOPSTR, number 2372 in LNCS
, 2001
"... Abstract. We present an abstract partial deduction technique which uses regular types as its domain and which can handle conjunctions, and thus perform deforestation and tupling. We provide a detailed description of all the required operations and present an implementation within the ecce system. We ..."
Abstract
-
Cited by 8 (0 self)
- Add to MetaCart
Abstract. We present an abstract partial deduction technique which uses regular types as its domain and which can handle conjunctions, and thus perform deforestation and tupling. We provide a detailed description of all the required operations and present an implementation within the ecce system. We discuss the power of this new specialisation algorithm, especially in the light of verifying and specialising infinite state process algebras. Here, our new algorithm can provide a more precise treatment of synchronisation and can be used for refinement checking. 1
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 type-based norms, one for each data type in the program, are combined together to provi ..."
Abstract
-
Cited by 7 (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 type-based 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 type-based 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
- Logic-based 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.
Monotone AC-Tree Automata
- in "12th International Conference on Logic for Programming Artificial Intelligence and Reasoning", LNCS, SV
, 2005
"... Abstract. We consider several questions about monotone AC-tree automata, a class of equational tree automata whose transition rules correspond to rules in Kuroda normal form of context-sensitive grammars. Whereas it has been proved that this class has a decision procedure to determine if, given a mo ..."
Abstract
-
Cited by 5 (1 self)
- Add to MetaCart
Abstract. We consider several questions about monotone AC-tree automata, a class of equational tree automata whose transition rules correspond to rules in Kuroda normal form of context-sensitive grammars. Whereas it has been proved that this class has a decision procedure to determine if, given a monotone AC-tree automaton, it accepts no terms, other important decidability or complexity results have not been well-investigated yet. In the paper, we prove that the membership problem for monotone AC-tree automata is PSPACE-complete. We then study the expressiveness of monotone AC-tree automata: precisely, we prove that the family of AC-regular tree languages is strictly subsumed in that of AC-monotone tree languages. The proof technique used in obtaining the above result yields the answers to two different questions, specifically that the family of monotone AC-tree languages is not closed under complementation, and that the inclusion problem for monotone AC-tree automata is undecidable.
Propositional tree automata
- Procs. of RTA’06, vol. 4098 of LNCS
, 2006
"... Abstract. In the paper, we introduce a new tree automata framework, called propositional tree automata, capturing the class of tree languages that are closed under an equational theory and Boolean operations. This framework originates in work on developing a sufficient completeness checker for speci ..."
Abstract
-
Cited by 4 (2 self)
- Add to MetaCart
Abstract. In the paper, we introduce a new tree automata framework, called propositional tree automata, capturing the class of tree languages that are closed under an equational theory and Boolean operations. This framework originates in work on developing a sufficient completeness checker for specifications with rewriting modulo an equational theory. Propositional tree automata recognize regular equational tree languages. However, unlike regular equational tree automata, the class of propositional tree automata is closed under Boolean operations. This extra expressiveness does not affect the decidability of the membership problem. This paper also analyzes in detail the emptiness problem for propositional tree automata with associative theories. Though undecidable in general, we present a semi-algorithm for checking emptiness based on machine learning that we have found useful in practice. 1
Inferring Polymorphic Types from Logic Programs
- Proc. of the Int’l Symposium on Logic-based Program Synthesis and Transformation (LOPSTR’04). Springer LNCS
, 2005
"... Abstract. This extended abstract sketches work in progress on how to infer polymorphic types from logic programs. Type information can contribute to a better automation of termination analysis. However, as sketched in the introduction, the monomorphic types describing the success set of predicates, ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
Abstract. This extended abstract sketches work in progress on how to infer polymorphic types from logic programs. Type information can contribute to a better automation of termination analysis. However, as sketched in the introduction, the monomorphic types describing the success set of predicates, as derived by current inference systems, result in weaker termination conditions than those obtainable with declared types. The analysis of a simple example indicates that the polymorphic types, as inferred in this paper, can contribute to stronger termination conditions. In the remainder of this extended abstract, a sketch is given of a procedure to perform polymorphic type inference. The starting point is a more general notion of type rule that also allows both types and type variables as options in the right hand side. 1

