Programs: Models and Verification