Text this: On the correctness of refinement steps in program development /