Mathematically based techniques for specifying, developing and verifying software and hardware systems.