Accelerating Loops with Arrays
This work advances automated reasoning for loops with arrays, benefiting program verification and analysis tools.
The paper introduces a novel acceleration technique for loops with arrays using inductive lvalues, unifying array and scalar acceleration, and replacing quantifiers with λs. The implementation in LoAT demonstrates improved effectiveness over previous methods.
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.