Local Reasoning for Robust Observational Equivalence

07/02/2019
by   Dan R. Ghica, et al.
0

We propose a new core calculus for programming languages with effects, interpreted using a hypergraph-rewriting abstract machine inspired by the Geometry of Interaction. The intrinsic calculus syntax and semantics only deal with the basic structural aspects of programming languages: variable binding, name binding, and thunking. Everything else, including features which are commonly thought of as intrinsic, such as arithmetic or function abstraction and application, must be provided as extrinsic operations, with associated rewrite rules. The graph representation yields natural concepts of locality and robustness for equational properties and reduction rules, which enable a novel flexible and powerful reasoning methodology about (type-free) languages with effects. We illustrate and motivate the technique with challenging examples from the literature.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
10/25/2019

A Calculus for Language Transformations

In this paper we propose a calculus for expressing algorithms for progra...
research
02/04/2021

Operational Semantics with Hierarchical Abstract Syntax Graphs

This is a motivating tutorial introduction to a semantic analysis of pro...
research
07/11/2023

Simple Reference Immutability for System F-sub

Reference immutability is a type based technique for taming mutation tha...
research
12/15/2022

The Functional Machine Calculus

This paper presents the Functional Machine Calculus (FMC) as a simple mo...
research
06/13/2020

Pure Pattern Calculus à la de Bruijn

It is well-known in the field of programming languages that dealing with...
research
08/21/2023

Typing Composable Coroutines

Coroutine, as a powerful programming construct, is widely used in asynch...
research
07/25/2019

Explicit and Controllable Assignment Semantics

Despite the plethora of powerful software to spot bugs, identify perform...

Please sign up or login with your details

Forgot password? Click here to reset