Abstract

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.

Highlights

  • Programs with loops manipulating arrays are common in a variety of applications

  • Instead of inducting over the iterations of each individual loop, we propose to reason about the entire program directly, while inducting on the parameter N

  • If the loop terminates by a violation of the condition in line 18, we report that verification by full-program induction failed

Read more

Summary

Introduction

Programs with loops manipulating arrays are common in a variety of applications. assertion checking in such programs is undecidable. The technique of [28] is applicable only to a small part of the program-assertion space over which our technique works Techniques such as tiling [4] reason one loop at a time and apply only when loops have simple data dependencies across iterations (called non-interference of tiles in [4]). It effectively uses a slice of the post-condition of a loop as an inductive invariant, and requires strong enough mid-conditions to be generated in the case of sequentially composed loops. For some other techniques for analyzing array manipulating programs, please see [7,19,18]

Overview of Full-program Induction
Preliminaries
Core Modules in the Technique
Limitations
Implementation and Experiments
Conclusion

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.