A rely-guarantee-based simulation for verifying concurrent program transformations

Verifying program transformations usually requires proving that the resulting program (the target) refines or is equivalent to the original one (the source). However, the refinement relation betwee...