Specifying and Verifying Higher-order Rust Iterators - Archive ouverte HAL
Communication Dans Un Congrès Année : 2023

Specifying and Verifying Higher-order Rust Iterators

Résumé

In Rust, programs are often written using iterators, but these pose problems for verification: they are non-deterministic, infinite, and often higher-order, effectful and built using combinators. We present a general framework for specifying and reasoning with Rust iterators in first-order logic. Our approach is capable of addressing the challenges set out above, which we demonstrate by verifying real Rust iterators, including a higher-order, effectful Map. Using the Creusot verification platform, we evaluate our framework on clients of iterators, showing it leads to efficient verification of complex functional properties.
Fichier principal
Vignette du fichier
main.pdf (558.19 Ko) Télécharger le fichier
Origine Fichiers produits par l'(les) auteur(s)

Dates et versions

hal-03827702 , version 1 (25-10-2022)
hal-03827702 , version 2 (20-04-2023)

Identifiants

Citer

Xavier Denis, Jacques-Henri Jourdan. Specifying and Verifying Higher-order Rust Iterators. Tools and Algorithms for the Construction and Analysis of Systems (TACAS), ETAPS, Apr 2023, Paris, France. pp.93-110, ⟨10.1007/978-3-031-30820-8_9⟩. ⟨hal-03827702v2⟩
1428 Consultations
1996 Téléchargements

Altmetric

Partager

More