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.
| Origine | Fichiers produits par l'(les) auteur(s) |
|---|---|
| Licence |
![]()
Cite 10.5281/zenodo.7305463 Article Denis, X., & Jourdan, J.-H. (2022). Artifact for Paper ‘Specifying and Verifying Higher-order Rust Iterators’. Zenodo. https://doi.org/10.5281/ZENODO.7305463