Verifying Array Manipulating Programs with Full-Program Induction
This addresses verification challenges for programs with arrays, offering a novel approach but likely incremental in the field of formal methods.
The authors tackled the problem of verifying array-manipulating programs by introducing a full-program induction technique that avoids loop-specific invariants, and their tool Vajra demonstrated competitive performance against state-of-the-art tools on benchmarks.
We present a full-program induction technique for proving (a sub-class of) quantified as well as quantifier-free properties of programs manipulating arrays of parametric size N. Instead of inducting over individual loops, our technique inducts over the entire program (possibly containing multiple loops) directly via the program parameter N. Significantly, this does not require generation or use of loop-specific invariants. We have developed a prototype tool Vajra to assess the efficacy of our technique. We demonstrate the performance of Vajra vis-a-vis several state-of-the-art tools on a set of array manipulating benchmarks.