PLApr 24

Ownership Refinement Types for Pointer Arithmetic and Nested Arrays

arXiv:2604.223615.5h-index: 4
AI Analysis

For developers of verified software, this work incrementally extends an existing verification technique to handle nested arrays, a common data structure.

The paper extends a prior type system for verifying functional correctness of programs with pointer arithmetic to support nested arrays (e.g., matrices), proving soundness and demonstrating verification of programs that were previously out of reach.

Tanaka et al. proposed a type system for verifying functional correctness properties of programs that use arrays and pointer arithmetic. Their system extends ConSORT -- a type system combining fractional ownership and refinement types for imperative program verification -- with support for pointer arithmetic. Their idea was to extend fractional ownership so that it can depend on an array index. Their formulation, however, does not handle nested arrays, which are essential for representing practical data structures such as matrices. We extend Tanaka et al.'s type system to support nested arrays by generalizing the notion of ownership to be able to refer to the indices of the outer arrays and prove the soundness of the extended type system. We have implemented a verifier based on the proposed type system and demonstrated that it can verify the correctness of programs that manipulate nested arrays, which were beyond the reach of Tanaka et al.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes