Relational reasoning on monadic semantics
Résumé
Effectful programs can be given denotational semantics using expressive enough domains. With applications to formally verified compilation in mind, I mechanise an axiomatization of domains with monadic and iteration operators. Refinements between semantics are derived within this abstraction using heterogeneous relations. By using appropriate rules, it is possible to reason about divergence, non-determinism and undefined behaviors. I give a model based on Labeled Transition System which implements those effects. I demonstrate the use of the library with a compositional proof of a Dead Code Elimination transformation.
Domaines
Informatique [cs]Origine | Fichiers produits par l'(les) auteur(s) |
---|