Abstract Interpreters: a Monadic Approach to Modular Verification (DRAFT) - Inria - Institut national de recherche en sciences et technologies du numérique
Pré-Publication, Document De Travail Année : 2024

Abstract Interpreters: a Monadic Approach to Modular Verification (DRAFT)

Résumé

We argue that monadic interpreters built as layers of interpretations stacked atop the free monad constitute a promising way to implement and verify abstract interpreters in dependently-typed theories such as the one underlying the Coq proof assistant. The approach enables modular proofs of soundness of the resulting interpreters. We provide generic abstract control flow combinators proven correct once and for all against their concrete counterpart. We demonstrate how to relate concrete handlers implementing effects to abstract variants of these handlers, essentially capturing the traditional soundness of transfer functions in the context of monadic interpreters. Finally, we provide generic results to lift soundness statements via the interpretation of stateful and failure effects. We formalize all the aforementioned combinators and theories in Coq, and demonstrate their benefits by implementing and proving correct two illustrative abstract interpreters for a structured imperative language and a toy assembly.
Fichier principal
Vignette du fichier
itree-ai.pdf (602.01 Ko) Télécharger le fichier
Origine Fichiers produits par l'(les) auteur(s)

Dates et versions

hal-04385725 , version 1 (11-01-2024)

Licence

Identifiants

  • HAL Id : hal-04385725 , version 1

Citer

Sébastien Michelland, Yannick Zakowski, Laure Gonnord. Abstract Interpreters: a Monadic Approach to Modular Verification (DRAFT). 2024. ⟨hal-04385725⟩
96 Consultations
103 Téléchargements

Partager

More