Abstract interpretation repair
Roberto Bruni, Roberto Giacobazzi, Roberta Gori, Francesco Ranzato
Abstract
Abstract interpretation is a sound-by-construction method for program verification: any erroneous program will raise some alarm. However, the verification of correct programs may yield false-alarms, namely it may be incomplete. Ideally, one would like to perform the analysis on the most abstract domain that is precise enough to avoid false-alarms. We show how to exploit a weaker notion of completeness, called local completeness, to optimally refine abstract domains and thus enhance the precision of program verification. Our main result establishes necessary and sufficient conditions for the existence of an optimal, locally complete refinement, called pointed shell. On top of this, we define two repair strategies to remove all false-alarms along a given abstract computation: the first proceeds forward, along with the concrete computation, while the second moves backward within the abstract computation. Our results pave the way for a novel modus operandi for automating program verification that we call Abstract Interpretation Repair (AIR): instead of choosing beforehand the right abstract domain, we can start in any abstract domain and progressively repair its local incompleteness as needed. In this regard, AIR is for abstract interpretation what CEGAR is for abstract model checking.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext 167ac66d-319b-403d-8e5c-a0a23e956b0aCited by top-tier papers6
- A Logic for the Imprecision of Abstract InterpretationsMarco Campion, Mila Dalla Preda, Roberto Giacobazzi, Caterina UrbanPOPL 2026 · 2 citations
- The Best of Abstract InterpretationsRoberto Giacobazzi, Francesco RanzatoPOPL 2025 · 1 citation
- Monotonicity and the Precision of Program AnalysisMarco Campion, Mila Dalla Preda, Roberto Giacobazzi, Caterina UrbanPOPL 2024 · 1 citation
- LOUD: Synthesizing Strongest and Weakest SpecificationsKanghee Park, Xuanyu Peng, Loris D'AntoniOOPSLA 2025 · 1 citation
- Initial Algebra Correspondence under Reachability ConditionsMayuko Kori, Kazuki Watanabe, Jurriaan RotLICS 2025
Builds on4
- Incorrectness logicPeter W. O'HearnPOPL 2020 · 122 citations
- Local Reasoning About the Presence of Bugs: Incorrectness Separation LogicAzalea Raad, Josh Berdine, Hoang-Hai Dang, Derek Dreyer et al.CAV 2020 · 70 citations
- A Logic for Locally Complete Abstract InterpretationsRoberto Bruni, Roberto Giacobazzi, Roberta Gori, Francesco RanzatoLICS 2021 · 34 citations
- Abstract extensionality: on the properties of incomplete abstract interpretationsRoberto Bruni, Roberto Giacobazzi, Roberta Gori, Isabel Garcia-Contreras et al.POPL 2020 · 27 citations
Related papers
- Partial (In)Completeness in abstract interpretation: limiting the imprecision in program analysisMarco Campion, Mila Dalla Preda, Roberto GiacobazziPOPL 2022 · 21 citations
- Abstract Interpretation with Confidence: Quantifying the Precision of Dataflow Analysis with ProbabilitiesYuanfeng Shi, Ziyue Jin, Xin ZhangPLDI 2026
- Data flow refinement type inferenceZvonimir Pavlinovic, Yusen Su, Thomas WiesPOPL 2021 · 15 citations
- Trace Abstraction-Based Verification for Uninterpreted ProgramsWeijiang Hong, Zhenbang Chen, Yide Du, Ji WangFM 2021 · 2 citations
- Memory-Safety Verification of Open Programs with Angelic AssumptionsGourav Takhar, Baldip Bijlani, Prantik Chatterjee, Akash Lal et al.OOPSLA 2025 · 2 citations
