🤖 AI Summary
This work addresses the challenge of automated reasoning about transitive closures in loops that manipulate arrays. To this end, it introduces a novel loop acceleration technique that unifies the treatment of array and scalar variable updates through the concept of “inductive l-values.” By encoding loop semantics into SMT formulas using λ-expressions instead of traditional quantifiers, the approach yields representations amenable to efficient solving. Furthermore, an on-demand lemma generation mechanism substantially broadens the class of loops amenable to analysis. Experimental evaluation demonstrates that, when integrated into the LoAT tool, the method effectively and competitively handles loops involving complex array operations.
📝 Abstract
We propose a novel acceleration technique for loops operating on arrays. The goal of acceleration is to characterize the transitive closure of loops in a logic which is suitable for automated reasoning. Using the new notion of inductive lvalues, our technique can handle loops where previous techniques fail, and it unifies acceleration for arrays and scalar variables by regarding scalars as arrays of dimension 0. Moreover, our approach uses λs instead of quantifiers. Then the resulting SMT problems can be solved via lemmas on demand. An empirical evaluation of our implementation in the tool LoAT shows the power of our approach.