Correctness-preserving program transformations | Synapse