Text this: A survey on refinement in formal methods and software engineering