Formal Verification: Using Mathematics to Ensure Resilient Code