Text this: Reasoning About Program Transformations