Program construction consists of a sequence of refinement steps.