Formal Methods for Autonomous Systems