How would you formally characterize program states and state transformations? Explain how you may verify the behavior of a program by means of correctness formulae.