Building Trustworthy Refactoring Tools Prof Simon Thompson, University of Kent Refactorings are program transformations that are intended to change the way that a program works without changing what it does. Refactoring is used to make programs more readable, easier to maintain and extend, or to improve their efficiency. These changes can be complex and wide-ranging, and so tools have been built to automate these transformations. Because refactoring involves changing program source code, someone who uses a refactoring tool needs to be able to trust that the tool will not break their code. In this talk I'll explore what this idea means in practice, and how we provide various levels of assurance for refactorings. While the context is tools for functional programming languages like Haskell and Erlang, the conclusions apply more widely, for instance to object-oriented languages. Biography. Simon Thompson is Professor of Logic and Computation at the University of Kent. Functional programming is his main research field, but he has worked in various aspects of logic, and testing as well. He is the author of books on Haskell, Miranda, Erlang and constructive type theory.