Text this: Reasoning about program transformations : imperative programming and flow of data / Jean-François Collard.