#1 Introduction to Functional Programming and Formal Methods