Permission Inference for Array Programs
J\'er\^ome Dohrau, Alexander J. Summers, Caterina Urban, Severin, M\"unger, and Peter M\"uller

TL;DR
This paper introduces a static analysis technique that infers memory permissions for array programs, enabling better verification and parallelization, especially for complex and nested loop structures.
Contribution
It presents a novel permission inference method using maximum elimination, handling concurrent programs and complex access patterns in array manipulation.
Findings
Accurately infers memory permissions for array programs.
Handles concurrent programs and nested loops effectively.
Demonstrates precise results on existing benchmarks.
Abstract
Information about the memory locations accessed by a program is, for instance, required for program parallelisation and program verification. Existing inference techniques for this information provide only partial solutions for the important class of array-manipulating programs. In this paper, we present a static analysis that infers the memory footprint of an array program in terms of permission pre- and postconditions as used, for example, in separation logic. This formulation allows our analysis to handle concurrent programs and produces specifications that can be used by verification tools. Our analysis expresses the permissions required by a loop via maximum expressions over the individual loop iterations. These maximum expressions are then solved by a novel maximum elimination algorithm, in the spirit of quantifier elimination. Our approach is sound and is implemented; an…
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.
