Published November 21, 2020 | Version v3
Other Open

Dijkstra Monads Forever: Termination-Sensitive Specifications for Interaction Trees

Authors/Creators

  • 1. University of Pennsylvania
  • 2. Stephan

Description

This paper extends the Dijkstra monad framework, designed for writing specifications over effectful programs using monadic effects, to handle termination sensitive specifications over interactive programs. We achieve this by introducing base specification monads for non-terminating programs with uninterpreted events. We model such programs using interaction trees, a coinductive datatype for representing programs with algebraic effects in Coq, which we further develop by adding trace semantics. We show that this approach subsumes typical, simple proof principles. The framework is implemented as an extension of the Interaction Trees Coq library.

Files

InteractionTrees.zip

Files (560.2 kB)

Name Size Download all
md5:3f9689ce62c0112b763e66d5c4fc63d8
560.2 kB Preview Download