The Next 700 Relational Program Logics

07/11/2019
by   Kenji Maillard, et al.
0

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 characterization for 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 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 effects such as exceptions, and are the first to provide a proper semantic foundation and a relational program logic for exceptions.

READ FULL TEXT
POST COMMENT

Comments

There are no comments yet.

Authors

page 1

page 2

page 3

page 4

03/10/2020

An Under-Approximate Relational Logic: Heralding Logics of Insecurity, Incorrect Implementation More

Recently, authors have proposed under-approximate logics for reasoning a...
02/07/2020

RHLE: Automatic Verification of ∀∃-Hyperproperties

Specifications of program behavior typically consider single executions ...
07/13/2020

Thirty-seven years of relational Hoare logic: remarks on its principles and history

Relational Hoare logics extend the applicability of modular, deductive v...
01/06/2021

Logics of First-Order Constraints – A Category Independent Approach

Reflecting our experiences in areas, like Algebraic Specifications, Abst...
02/07/2020

RHLE: Relational Reasoning for Existential Program Verification

Reasoning about nondeterministic programs requires a specification of ho...
01/28/2020

Unifying graded and parameterised monads

Monads are a useful tool for structuring effectful features of computati...
02/06/2019

Finding the Transitive Closure of Functional Dependencies using Strategic Port Graph Rewriting

We present a new approach to the logical design of relational databases,...
This week in AI

Get the week's most popular data science and artificial intelligence research sent straight to your inbox every Saturday.