Putting the Squeeze on Array Programs: Loop Verification via Inductive Rank Reduction
Oren Ish Shalom, Shachar Itzhaky, Noam Rinetzky, Sharon Shoham

TL;DR
This paper introduces inductive rank reduction, a novel verification method for array programs that simplifies the verification process by reducing array lengths iteratively, enabling automatic correctness proofs even for complex loops.
Contribution
It proposes a new verification technique based on inductive rank reduction, which bypasses the need for loop invariants and automates the process using symbolic execution, Z3, and heuristic synthesis.
Findings
Successfully verified array programs including a bidirectional summation with complex invariants.
Demonstrated the technique's ability to handle programs with non-first-order expressible invariants.
Automated the verification process for array programs with input-dependent lengths.
Abstract
Automatic verification of array manipulating programs is a challenging problem because it often amounts to the inference of in ductive quantified loop invariants which, in some cases, may not even be firstorder expressible. In this paper, we suggest a novel verification tech nique that is based on induction on userdefined rank of program states as an alternative to loopinvariants. Our technique, dubbed inductive rank reduction, works in two steps. Firstly, we simplify the verification problem and prove that the program is correct when the input state con tains an input array of length B or less, using the length of the array as the rank of the state. Secondly, we employ a squeezing function g which converts a program state sigma with an array of length > B to a state g(sigma) containing an array of length minus 1 or less. We prove that when g satisfies certain natural conditions then if…
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
TopicsFormal Methods in Verification · Software Testing and Debugging Techniques · Logic, programming, and type systems
