Lune

PLDI2026Top-tier venue

Verifying Array Properties in Pure Data-Parallel Programs

Nikolaj Hey Hinnerskov, Robert Schenck, Cosmin E. Oancea

2026Year
1Citations

Abstract

In functional data-parallel programs, index array computations are separated (fissioned) into sequences of bulkparallel operators-map, prefix sum, scatter-and used to gather or scatter data array elements, thus determining data array properties. This programming style is problematic for general-purpose verification frameworks (e.g., Dafny, F*, Liquid Haskell), which are flexible and powerful, but require verbose annotations and non-trivial user proofs, making them inaccessible to non-experts. We present a compiler approach to verifying array properties with high automation, aimed at making verification of data-parallel programs more accessible to users without verification expertise. We support a small but powerful predefined set of properties-equivalences, ranges, injectivity, bijectivity, monotonicity, filtering, partitioning-that enable the compiler to (automatically) reason at a higher level of abstraction. We evaluate our approach on challenging applications with non-linear indexing, including graph algorithms, Cooley-Tukey FFT, filtering, multi-way partitioning, and flattened irregular nested parallel programs that are difficult to verify, such as batch operations on arrays of different sizes.

Ask about this paper

Your agent reads all of it.

Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.

Questions to start from

Your agent calls

Luneget_paper_fulltext

Ask in Lune

Free to start. No credit card required.

lune papers fulltext 26d14c1a-202c-43a5-aa2d-936b59730fff

Builds on10

Related papers

Dusk over the sea between two cliffs drawn in fine vertical lines