Recalling a Witness: Foundations and Applications of Monotonic State - Archive ouverte HAL
Article Dans Une Revue Proceedings of the ACM on Programming Languages Année : 2018

Recalling a Witness: Foundations and Applications of Monotonic State

Résumé

We provide a way to ease the verification of programs whose stateevolves monotonically. The main idea is that a property witnessed ina prior state can be soundly recalled in the current state, provided(1) state evolves according to a given preorder, and (2) the propertyis preserved by this preorder. In many scenarios, such monotonicreasoning yields concise modular proofs, saving the need for explicitprogram invariants. We distill our approach into the monotonic-statemonad, a general yet compact interface for Hoare-style reasoning aboutmonotonic state in a dependently typed language. We prove thesoundness of the monotonic-state monad and use it as a unifiedfoundation for reasoning about monotonic state in the F* verificationsystem. Based on this foundation, we build libraries for variousmutable data structures like monotonic references and apply theselibraries at scale to the verification of several distributed applications.
Fichier principal
Vignette du fichier
1707.02466 (1.27 Mo) Télécharger le fichier
Origine Fichiers produits par l'(les) auteur(s)

Dates et versions

hal-01672733 , version 1 (05-01-2024)

Licence

Identifiants

Citer

Danel Ahman, Cédric Fournet, Cătălin Hriţcu, Kenji Maillard, Aseem Rastogi, et al.. Recalling a Witness: Foundations and Applications of Monotonic State. Proceedings of the ACM on Programming Languages, 2018, 2 (POPL), ⟨10.1145/3158153⟩. ⟨hal-01672733⟩
103 Consultations
6 Téléchargements

Altmetric

Partager

More