Remonter les barrières pour ouvrir une clôture
Résumé
Dans de nombreux programmes, les clôtures permettent d'exprimer de manière concise des transformations de données. Mais lorsqu'un outil de vérification est utilisé, elles doivent être accompagnées de spécifications souvent plus longues que leur corps. C'est un problème particulièrement désagréable, car ces clôtures sont fréquemment simples et leur spécification est redondante.
Dans ce travail, nous présentons un mécanisme d'inférence de spécification des clôtures pour la vérification formelle de programmes Rust. Nous proposons l'utilisation du langage intermédiaire de vérification Coma comme backend par l'outil de vérification déductive Creusot. Notre conception est capable de gérer l'état mutable interne d'une clôture et d'inférer sa spécification. Nous utilisons ce mécanisme pour vérifier de manière ergonomique et modulaire une série de programmes Rust utilisant des fonctions d'ordre supérieur.
Domaines
Informatique [cs]Origine | Fichiers produits par l'(les) auteur(s) |
---|