Functional Software Verification