Effectful improvement theory
Martín Ceresa and Mauro JaskelioffScience of Computer Programming(2022)
Abstract
Optimizing programs is hard. Not only one must preserve semantics, but one also needs to ensure that an optimization truly makes the program better. The first part, preserving program 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, ensuring that an optimization truly makes the program better, 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.