Affiliation:
1. University of Pisa, Italy
2. University of Verona, Italy / IMDEA Software Institute, Spain
3. IMDEA Software Institute, Spain / Universidad Politécnica de Madrid, Spain
4. University of Hawaii, USA
Abstract
In this paper we generalise the notion of extensional (functional) equivalence of programs to
abstract equivalences
induced by
abstract interpretations
. The standard notion of extensional equivalence is recovered as the special case, induced by the concrete interpretation. Some properties of the extensional equivalence, such as the one spelled out in Rice’s theorem, lift to the abstract equivalences in suitably generalised forms. On the other hand, the generalised framework gives rise to interesting and important new properties, and allows refined, non-extensional analyses. In particular, since programs turn out to be extensionally equivalent if and
only if
they are equivalent just for the concrete interpretation, it follows that any non-trivial abstract interpretation uncovers some intensional aspect of programs. This striking result is also effective, in the sense that it allows constructing, for any non-trivial abstraction, a pair of programs that are extensionally equivalent, but have different abstract semantics. The construction is based on the fact that abstract interpretations are always sound, but that they can be made incomplete through suitable code transformations. To construct these transformations, we introduce a novel technique for building
incompleteness cliques
of extensionally equivalent yet abstractly distinguishable programs: They are built together with abstract interpretations that produce false alarms. While programs are forced into incompleteness cliques using both control-flow and data-flow transformations, the main result follows from limitations of data-flow transformations with respect to control-flow ones. A further consequence is that the class of incomplete programs for a non-trivial abstraction is Turing complete. The obtained results also shed a new light on the relation between the techniques of code obfuscation and the precision in program analysis.
Publisher
Association for Computing Machinery (ACM)
Subject
Safety, Risk, Reliability and Quality,Software
Cited by
18 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Compiling with Abstract Interpretation;Proceedings of the ACM on Programming Languages;2024-06-20
2. Monotonicity and the Precision of Program Analysis;Proceedings of the ACM on Programming Languages;2024-01-05
3. Demystifying Template-Based Invariant Generation for Bit-Vector Programs;2023 38th IEEE/ACM International Conference on Automated Software Engineering (ASE);2023-09-11
4. A Correctness and Incorrectness Program Logic;Journal of the ACM;2023-03-25
5. Witnessability of Undecidable Problems;Proceedings of the ACM on Programming Languages;2023-01-09