Lecture 3 reasoning