Affiliation:
1. Inria, France / ENS, France
2. Inria, France
3. Inria, France / University of Paris, France
Abstract
We propose the first framework for defining relational program logics for arbitrary monadic effects. The framework is embedded within a relational dependent type theory and is highly expressive. At the semantic level, we provide an algebraic presentation of relational specifications as a class of relative monads, and link computations and specifications by introducing relational effect observations, which map pairs of monadic computations to relational specifications in a way that respects the algebraic structure. For an arbitrary relational effect observation, we generically define the core of a sound relational program logic, and explain how to complete it to a full-fledged logic for the monadic effect at hand. We show that this generic framework can be used to define relational program logics for effects as diverse as state, input-output, nondeterminism, and discrete probabilities. We, moreover, show that by instantiating our framework with state and unbounded iteration we can embed a variant of Benton's Relational Hoare Logic, and also sketch how to reconstruct Relational Hoare Type Theory. Finally, we identify and overcome conceptual challenges that prevented previous relational program logics from properly dealing with control effects, and are the first to provide a relational program logic for exceptions.
Funder
European Research Council
Publisher
Association for Computing Machinery (ACM)
Subject
Safety, Risk, Reliability and Quality,Software
Cited by
22 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Hyper Hoare Logic: (Dis-)Proving Program Hyperproperties;Proceedings of the ACM on Programming Languages;2024-06-20
2. Securing Verified IO Programs Against Unverified Code in F*;Proceedings of the ACM on Programming Languages;2024-01-05
3. A Denotational Approach to Release/Acquire Concurrency;Lecture Notes in Computer Science;2024
4. Operationally-based program equivalence proofs using LCTRSs;Journal of Logical and Algebraic Methods in Programming;2023-10
5. SSProve: A Foundational Framework for Modular Cryptographic Proofs in Coq;ACM Transactions on Programming Languages and Systems;2023-07-20