2004
DOI: 10.1007/978-3-540-25951-0_6
|View full text |Cite
|
Sign up to set email alerts
|

Analysing Logic Programs by Reasoning Backwards

Abstract: Abstract. One recent advance in program development has been the application of abstract interpretation to verify the partial correctness of a (constraint) logic program. Traditionally forwards analysis has been applied that starts with an initial goal and traces the execution in the direction of the control-flow to approximate the program state at each program point. This is often enough to verify assertions that a property holds. The dual approach is to apply backwards analysis to propagate properties of the… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
10
0

Year Published

2005
2005
2024
2024

Publication Types

Select...
4
3
1

Relationship

1
7

Authors

Journals

citations
Cited by 12 publications
(10 citation statements)
references
References 64 publications
0
10
0
Order By: Relevance
“…The specialized CLP clauses may enable more efficient bounded verification, and they can also be used as input to other tools for analysis and verification (such as constraint-based analyzers [3,11] and SMT solvers [8,14]), which have already been shown to be effective in other contexts [2,4,5]. Moreover, the specialized clauses can be used to apply backward analysis techniques for CLP programs based on abstract interpretation (see, for instance, [9,12]). Backward analysis aims at deriving from a property that is expected to hold at the end of the execution of a program, conditions on the query which guarantee that the desired property indeed holds.…”
Section: Discussionmentioning
confidence: 99%
“…The specialized CLP clauses may enable more efficient bounded verification, and they can also be used as input to other tools for analysis and verification (such as constraint-based analyzers [3,11] and SMT solvers [8,14]), which have already been shown to be effective in other contexts [2,4,5]. Moreover, the specialized clauses can be used to apply backward analysis techniques for CLP programs based on abstract interpretation (see, for instance, [9,12]). Backward analysis aims at deriving from a property that is expected to hold at the end of the execution of a program, conditions on the query which guarantee that the desired property indeed holds.…”
Section: Discussionmentioning
confidence: 99%
“…Projection analysis [Wadler and Hughes 1987;Hughes 1988;Davis and Wadler 1990] in functional programs and mode analyses [King and Lu 2002;Howe et al 2004] in logic programs both underapproximate the weakest preconditions sharing the same goal as our abstract-value slicer, but their techniques are not directly applicable to the problem of this article. The projection analysis estimates a function that transforms the demand for the output to the one for the input.…”
Section: Related Workmentioning
confidence: 99%
“…Thus, for non-leftmost unfolding to be able to "jump over" internal predicates, it is required that such pure assertions are available not only for external predicates, but also for predicates internal to the module. Such assertions can be manually added by the user or, much more interestingly, as our system does, by backwards analysis [5,3,6]. Indeed, we believe that manual introduction of assertions about purity of goals is too much of a burden for the user.…”
Section: Automatic Inference Of Purity Assertionsmentioning
confidence: 99%
“…For logic programs without impure predicates, non-leftmost unfolding is sound thanks to the independence of the computation rule (see for example [13]). 5 Unfortunately, non-leftmost unfolding poses several problems in the context of full Prolog programs with impure predicates, where such independence does not hold anymore. For instance, ground/1 is an impure predicate since, under LD resolution, the goal ground(X),X=a fails whereas X=a,ground(X) succeeds with computed answer X/a.…”
Section: Introductionmentioning
confidence: 99%