Demanded abstract interpretation
Benno Stein, Bor-Yuh Evan Chang, Manu Sridharan
Abstract
We consider the problem of making expressive static analyzers interactive. Formal static analysis is seeing increasingly widespread adoption as a tool for verification and bug-finding, but even with powerful cloud infrastructure it can take minutes or hours to get batch analysis results after a code change. While existing techniques offer some demand-driven or incremental aspects for certain classes of analysis, the fundamental challenge we tackle is doing both for arbitrary abstract interpreters. Our technique, demanded abstract interpretation, lifts program syntax and analysis state to a dynamically evolving graph structure, in which program edits, client-issued queries, and evaluation of abstract semantics are all treated uniformly. The key difficulty addressed by our approach is the application of general incremental computation techniques to the complex, cyclic dependency structure induced by abstract interpretation of loops with widening operators. We prove that desirable abstract interpretation meta-properties, including soundness and termination, are preserved in our approach, and that demanded analysis results are equal to those computed by a batch abstract interpretation. Experimental results suggest promise for a prototype demanded abstract interpretation framework: by combining incremental and demand-driven techniques, our framework consistently delivers analysis results at interactive speeds, answering 95% of queries within 1.2 seconds.
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 bf2735bf-08ed-4ac3-8bba-2a4020724e7cCited by top-tier papers6
- Incremental Verification of Neural NetworksShubham Ugare, Debangshu Banerjee, Sasa Misailovic, Gagandeep SinghPLDI 2023 · 19 citations
- Incremental Randomized Smoothing CertificationShubham Ugare, Tarun Suresh, Debangshu Banerjee, Gagandeep Singh et al.ICLR 2024 · 14 citations
- IncIDFA: An Efficient and Generic Algorithm for Incremental Iterative Dataflow AnalysisAman Nougrahiya, V. Krishna NandivadaOOPSLA 2025 · 4 citations
- Webs and Flow-Directed Well-Typedness Preserving Program TransformationsBenjamin Quiring, David Van Horn, John H. Reppy, Olin ShiversPLDI 2025 · 2 citations
- Persisting and Reusing Results of Static Program Analyses on a Large ScaleJohannes Düsing, Ben HermannASE 2023 · 1 citation
Related papers
- A programming model for semi-implicit parallelization of static analysesDominik Helm, Florian Kübler, Jan Thomas Kölzer, Philipp Haller et al.ISSTA 2020 · 8 citations
- Automatically Tailoring Abstract Interpretation to Custom Usage ScenariosMuhammad Numair Mansur, Benjamin Mariano, Maria Christakis, Jorge A. Navas et al.CAV 2021 · 5 citations
- Deterministic parallel fixpoint computationSung Kook Kim, Arnaud J. Venet, Aditya V. ThakurPOPL 2020 · 9 citations
- Compiling with Abstract InterpretationDorian Lesbre, Matthieu LemerrePLDI 2024 · 6 citations
- Taking Out the Toxic Trash: Recovering Precision in Mixed Flow-Sensitive Static AnalysesFabian Stemmler, Michael Schwarz, Julian Erhard, Sarah Tilscher et al.PLDI 2025 · 3 citations
