Modular Denotational Semantics for Effects with Guarded Interaction Trees

07/17/2023
by   Dan Frumin, et al.
0

We present guarded interaction trees – a structure and a fully formalized framework for representing higher-order computations with higher-order effects in Coq, inspired by domain theory and the recently proposed interaction trees. We also present an accompanying separation logic for reasoning about guarded interaction trees. To demonstrate that guarded interaction trees provide a convenient domain for interpreting higher-order languages with effects, we define an interpretation of a PCF-like language with effects and show that this interpretation is sound and computationally adequate; we prove the latter using a logical relation defined using the separation logic. Guarded interaction trees also allow us to combine different effects and reason about them modularly. To illustrate this point, we give a modular proof of type soundness of cross-language interactions for safe interoperability of different higher-order languages with different effects. All results in the paper are formalized in Coq using the Iris logic over guarded type theory.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
02/27/2019

HoCHC: a Refutationally-complete and Semantically-invariant System of Higher-order Logic Modulo Theories

We present a simple resolution proof system for higher-order constrained...
research
02/16/2015

Rewriting Higher-Order Stack Trees

Higher-order pushdown systems and ground tree rewriting systems can be s...
research
03/07/2022

Handling Higher-Order Effects

Algebraic effect handlers is a programming paradigm where programmers ca...
research
03/02/2023

Separated and Shared Effects in Higher-Order Languages

Effectful programs interact in ways that go beyond simple input-output, ...
research
03/17/2018

Attack Trees in Isabelle

In this paper, we present a proof theory for attack trees. Attack trees ...
research
12/31/2018

Eff Directly in OCaml

The language Eff is an OCaml-like language serving as a prototype implem...
research
08/25/2021

Latent Effects for Reusable Language Components: Extended Version

The development of programming languages can be quite complicated and co...

Please sign up or login with your details

Forgot password? Click here to reset