High Integrity Software: The SPARK Approach to Safety and Security