HaliVer: Deductive Verification and Scheduling Languages Join Forces

Fuente: arXiv
Enregistré dans:
Détails bibliographiques
Auteurs principaux: Haak, Lars B. van den, Wijs, Anton, Huisman, Marieke, Brand, Mark van den
Format: Preprint
Publié: 2024
Sujets:
Accès en ligne:
Tags: Ajouter un tag
Pas de tags, Soyez le premier à ajouter un tag!
_version_ 1866913200723722240
author Haak, Lars B. van den
Wijs, Anton
Huisman, Marieke
Brand, Mark van den
author_facet Haak, Lars B. van den
Wijs, Anton
Huisman, Marieke
Brand, Mark van den
contents The HaliVer tool integrates deductive verification into the popular scheduling language Halide, used for image processing pipelines and array computations. HaliVer uses Vercors, a separation logic-based verifier, to verify the correctness of (1) the Halide algorithms and (2) the optimised parallel code produced by \halide when an optimisation schedule is applied to the algorithm. This allows proving complex, optimised code correct while reducing the effort to provide the required verification annotations. For both approaches, the same specification is used. We evaluated the tool on several optimised programs generated from characteristic Halide algorithms, using all but one of the essential scheduling directives available in Halide. Without annotation effort, Haliver proves memory safety in almost all programs. With annotations Haliver, additionally, proves functional correctness properties. We show that the approach is viable and reduces the manual annotation effort by an order of magnitude.
format Preprint
id arxiv_https___arxiv_org_abs_2401_10778
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle HaliVer: Deductive Verification and Scheduling Languages Join Forces
Haak, Lars B. van den
Wijs, Anton
Huisman, Marieke
Brand, Mark van den
Logic in Computer Science
Programming Languages
The HaliVer tool integrates deductive verification into the popular scheduling language Halide, used for image processing pipelines and array computations. HaliVer uses Vercors, a separation logic-based verifier, to verify the correctness of (1) the Halide algorithms and (2) the optimised parallel code produced by \halide when an optimisation schedule is applied to the algorithm. This allows proving complex, optimised code correct while reducing the effort to provide the required verification annotations. For both approaches, the same specification is used. We evaluated the tool on several optimised programs generated from characteristic Halide algorithms, using all but one of the essential scheduling directives available in Halide. Without annotation effort, Haliver proves memory safety in almost all programs. With annotations Haliver, additionally, proves functional correctness properties. We show that the approach is viable and reduces the manual annotation effort by an order of magnitude.
title HaliVer: Deductive Verification and Scheduling Languages Join Forces
topic Logic in Computer Science
Programming Languages
url https://arxiv.org/abs/2401.10778