Combination of Model Checking and Theorem Proving to Develop and Verify Embedded Software