Scalable Deductive Verification of Data-Level Parallel Programs

Fuente: arXiv
Guardado en:
Detalles Bibliográficos
Autores principales: Haak, Lars B. van den, Wijs, Anton, Huisman, Marieke
Formato: Preprint
Publicado: 2026
Materias:
Acceso en línea:
Etiquetas: Agregar Etiqueta
Sin Etiquetas, Sea el primero en etiquetar este registro!
_version_ 1866913123548528640
author Haak, Lars B. van den
Wijs, Anton
Huisman, Marieke
author_facet Haak, Lars B. van den
Wijs, Anton
Huisman, Marieke
contents This paper introduces several techniques that improve the scalability of the deductive verification of data-level programs working on arrays and matrices. First of all, we introduce a technique to rewrite expressions with (nested) quantifiers, so suitable triggers can be generated for these expressions. We have proven this rewrite technique correct in a theorem prover. Second, we make reasoning about potentially overlapping arrays easier, by providing specification constructs to indicate and verify that two arrays are not aliases, or that they are immutable, so they can be modelled as mathematical sequences. All our techniques are implemented in the VerCors program verifier. We illustrate how our techniques improve scalability through a large number of experiments. Using our techniques on a set of typical GPU kernels, we achieve a reduction of verification time by, on average, a factor of 9, with outliers being up to 150 times faster. Additionally, applying these techniques to earlier experiments and an earlier case study of a radio telescope pipeline permitted the verification of results which were previously unobtainable and significantly reduced the verification time.
format Preprint
id arxiv_https___arxiv_org_abs_2605_13616
institution arXiv
publishDate 2026
record_format arxiv
spellingShingle Scalable Deductive Verification of Data-Level Parallel Programs
Haak, Lars B. van den
Wijs, Anton
Huisman, Marieke
Software Engineering
This paper introduces several techniques that improve the scalability of the deductive verification of data-level programs working on arrays and matrices. First of all, we introduce a technique to rewrite expressions with (nested) quantifiers, so suitable triggers can be generated for these expressions. We have proven this rewrite technique correct in a theorem prover. Second, we make reasoning about potentially overlapping arrays easier, by providing specification constructs to indicate and verify that two arrays are not aliases, or that they are immutable, so they can be modelled as mathematical sequences. All our techniques are implemented in the VerCors program verifier. We illustrate how our techniques improve scalability through a large number of experiments. Using our techniques on a set of typical GPU kernels, we achieve a reduction of verification time by, on average, a factor of 9, with outliers being up to 150 times faster. Additionally, applying these techniques to earlier experiments and an earlier case study of a radio telescope pipeline permitted the verification of results which were previously unobtainable and significantly reduced the verification time.
title Scalable Deductive Verification of Data-Level Parallel Programs
topic Software Engineering
url https://arxiv.org/abs/2605.13616