Decoupling the ascending and descending phases in abstract interpretation

From MaRDI portal
Publication:6176563

DOI10.1007/978-3-031-21037-2_2zbMATH Open1524.68072arXiv2206.10893OpenAlexW4312607842MaRDI QIDQ6176563FDOQ6176563


Authors: Vincenzo Arceri, Isabella Mastroeni, Enea Zaffanella Edit this on Wikidata


Publication date: 25 July 2023

Published in: Programming Languages and Systems (Search for Journal in Brave)

Abstract: Abstract Interpretation approximates the semantics of a program by mimicking its concrete fixpoint computation on an abstract domain mathbbA. The abstract (post-) fixpoint computation is classically divided into two phases: the ascending phase, using widenings as extrapolation operators to enforce termination, is followed by a descending phase, using narrowings as interpolation operators, so as to mitigate the effect of the precision losses introduced by widenings. In this paper we propose a simple variation of this classical approach where, to more effectively recover precision, we decouple the two phases: in particular, before starting the descending phase, we replace the domain mathbbA with a more precise abstract domain mathbbD. The correctness of the approach is justified by casting it as an instance of the A2I framework. After demonstrating the new technique on a simple example, we summarize the results of a preliminary experimental evaluation, showing that it is able to obtain significant precision improvements for several choices of the domains mathbbA and mathbbD.


Full work available at URL: https://arxiv.org/abs/2206.10893







Cites Work






This page was built for publication: Decoupling the ascending and descending phases in abstract interpretation

Report a bug (only for logged in users!)Click here to report a bug for this page (MaRDI item Q6176563)