A Notion of Equivalence for Refactorings with Abstract Execution


Relational verification through dynamic logic is a promising approach for verifying object oriented programs. Recent advances from symbolic to abstract executions have enabled reasoning about incomplete/abstract versions of such programs. This has proven fruitful in the exploration of correctness of refactorings primarily related to code blocks in Java. In this paper we explore further types of equivalent transformations and refactorings and discuss the challenges that still need to be overcome for full round-trip correctness of refactorings in object-oriented languages.

Proceedings of 11th International Symposium On Leveraging Applications of Formal Methods, Verification and Validation