Verified Self-Explaining Computation

Jan Stolarek,James Cheney
DOI: https://doi.org/10.48550/arXiv.1907.05818
2019-07-12
Programming Languages
Abstract:Common programming tools, like compilers, debuggers, and IDEs, crucially rely on the ability to analyse program code to reason about its behaviour and properties. There has been a great deal of work on verifying compilers and static analyses, but far less on verifying dynamic analyses such as program slicing. Recently, a new mathematical framework for slicing was introduced in which forward and backward slicing are dual in the sense that they constitute a Galois connection. This paper formalises forward and backward dynamic slicing algorithms for a simple imperative programming language, and formally verifies their duality using the Coq proof assistant.
What problem does this paper attempt to address?