2015
DOI: 10.1145/2775051.2676987
|View full text |Cite
|
Sign up to set email alerts
|

Analyzing Program Analyses

Abstract: We want to prove that a static analysis of a given program is complete, namely, no imprecision arises when asking some query on the program behavior in the concrete (ie, for its concrete semantics) or in the abstract (ie, for its abstract interpretation). Completeness proofs are therefore useful to assign confidence to alarms raised by static analyses. We introduce the completeness class of an abstraction as the set of all programs for which the abstraction is complete. Our first result shows that for any nont… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
7
0

Year Published

2016
2016
2022
2022

Publication Types

Select...
3
2
1

Relationship

1
5

Authors

Journals

citations
Cited by 7 publications
(7 citation statements)
references
References 27 publications
0
7
0
Order By: Relevance
“…We leave as a future work the connection with domain completion techniques [12,18,32] which, intuitively, define strategies to enrich an abstract domain with new values as long as it is not precise enough to prove a given property. The correspondence between completeness in abstract interpretation and soundness in up-to techniques can also motivate the extension of methods for proving the absence of false alarms in abstract interpretations, such as the proof system in [16], to prove soundness of corresponding up-to techniques.…”
Section: Resultsmentioning
confidence: 99%
See 2 more Smart Citations
“…We leave as a future work the connection with domain completion techniques [12,18,32] which, intuitively, define strategies to enrich an abstract domain with new values as long as it is not precise enough to prove a given property. The correspondence between completeness in abstract interpretation and soundness in up-to techniques can also motivate the extension of methods for proving the absence of false alarms in abstract interpretations, such as the proof system in [16], to prove soundness of corresponding up-to techniques.…”
Section: Resultsmentioning
confidence: 99%
“…Remark 5.7. Some works [16,18] have studied modularity for proofs of full-completeness of abstract domains, but always focusing on up-closures rather than on monotone maps. This example, together with the results in Section 6, shows that also for abstract domains could be convenient to decompose up-closures into smaller monotone maps.…”
Section: Proving Soundness Of Equivalence Closurementioning
confidence: 99%
See 1 more Smart Citation
“…For instance, the work by Ranzato (2013) demonstrates how completeness can be crucial for designing static analyzers for a number of common intra-procedural properties (e.g., signs, constant propagation, polyhedra domains, etc), encouraging one to reason about the completeness properties of their underlying abstract domains. Giacobazzi et al (2015) go even further, providing a proof system for showing that the result of a certain analysis on a particular given program is precise. Those works address mostly numerical properties.…”
Section: Proving Static Analyzers Completementioning
confidence: 99%
“…Theorem 1 shows that, at least as regards non-convex invariants, the development and use of heuristics is indeed vindicated and will continue to remain essential. Related questions of completeness of given abstraction scheme have also been examined by Giaccobazzi et al in [14,13].…”
Section: Introductionmentioning
confidence: 99%