December 1, 2020
Martin Ceresa
Optimising programs is hard. Not only one must preserve semantics, but also one needs to ensure that an optimisation really makes the program better. The first part, preserving semantics, has been, and still is, the subject of much research. We follow a line of work that starts with Morris’ observational equivalence, continues with Abramsky’s applicative bisimilarity and Howe’s method, and concludes in a recent abstract formalization of applicative bisimilarity in the presence of algebraic effects by Dal Lago, Gavazzo and Levy. The second part is a path less traveled, with the improvement theory of Sands being the most prominent example. In this work, we connect these two parts, by obtaining an abstract Theory of Improvements based on effectful applicative bisimilarity that extends Sands’ notion of improvement to effectful languages.