Combining Type Checking With Model Checking For System Verification