A Contract-based Approach to Specifying, Verifying Safety CriticalSystems