Write a Blog >>
ICFP 2019
Sun 18 - Fri 23 August 2019 Berlin, Germany
Wed 21 Aug 2019 10:52 - 11:15 at Aurora Borealis - Program Verification Chair(s): Adam Chlipala

This paper proposes a general semantic framework for verifying programs with arbitrary monadic side-effects using Dijkstra monads, which we define as monad-like structures indexed by a specification monad. We prove that any monad morphism between a computational monad and a specification monad gives rise to a Dijkstra monad, which provides great flexibility for obtaining Dijkstra monads tailored to the verification task at hand. We moreover show that a large variety of specification monads can be obtained by applying monad transformers to various base specification monads, including predicate transformers and Hoare-style pre- and postconditions. For defining correct monad transformers, we propose a language inspired by Moggi’s monadic metalanguage that is parameterized by a dependent type theory. We also develop a notion of algebraic operations for Dijkstra monads, and start to investigate two ways of also accommodating effect handlers. We implement our framework in both Coq and F*, and illustrate that it supports a wide variety of verification styles for effects such as exceptions, nondeterminism, state, input-output, and general recursion.

Wed 21 Aug
Times are displayed in time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change

10:30 - 12:00: Program VerificationResearch Papers at Aurora Borealis
Chair(s): Adam ChlipalaMassachusetts Institute of Technology
10:30 - 10:52
A predicate transformer semantics for effects (Functional Pearl)
Research Papers
Wouter SwierstraUtrecht University, Netherlands, Tim BaanenUtrecht University
10:52 - 11:15
Dijkstra Monads for All
Research Papers
Kenji MaillardInria Paris and ENS Paris, Danel AhmanUniversity of Ljubljana, Robert AtkeyUniversity of Strathclyde, Guido MartínezCIFASIS-CONICET, Argentina, Cătălin HriţcuInria Paris, Exequiel RivasInria Paris, Éric TanterUniversity of Chile & Inria Paris
11:15 - 11:37
Mechanized Relational Verification of Concurrent Programs with Continuations
Research Papers
Amin Timanyimec-Distrinet KU-Leuven, Lars BirkedalAarhus University
11:37 - 12:00
Sequential Programming for Replicated Data Stores
Research Papers
Nicholas V. LewchenkoUniversity of Colorado Boulder, Arjun RadhakrishnaMicrosoft, Akash Gaonkar, Pavol CernyUniversity of Colorado Boulder
DOI Pre-print