Correctness preserving program refinements by Back