An introduction to Formal Verification for Software Systems