Enforcing Termination of Interprocedural Analysis
Stefan Schulze Frielinghaus, Helmut Seidl, Ralf Vogler

TL;DR
This paper introduces a new local solver for abstract equation systems that guarantees termination of interprocedural analysis in non-recursive programs, addressing issues of non-termination in infinite domains.
Contribution
The paper presents a novel local solver for abstract equation systems that ensures termination for non-recursive programs regardless of domain finiteness.
Findings
The solver terminates for all non-recursive programs.
It is sound in the computed results.
Termination is guaranteed even with infinite domains.
Abstract
Interprocedural analysis by means of partial tabulation of summary functions may not terminate when the same procedure is analyzed for infinitely many abstract calling contexts or when the abstract domain has infinite strictly ascending chains. As a remedy, we present a novel local solver for general abstract equation systems, be they monotonic or not, and prove that this solver fails to terminate only when infinitely many variables are encountered. We clarify in which sense the computed results are sound. Moreover, we show that interprocedural analysis performed by this novel local solver, is guaranteed to terminate for all non-recursive programs --- irrespective of whether the complete lattice is infinite or has infinite strictly ascending or descending chains.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsLogic, programming, and type systems · Formal Methods in Verification · Logic, Reasoning, and Knowledge
