This document discusses applying machine learning techniques to automated theorem proving and formal proof checking. It begins by providing background on logic-based theorem proving and efforts to formally prove mathematical theorems. It then discusses using machine learning to help guide automated theorem provers by selecting optimal heuristics and recommending useful lemmas. The document concludes by noting the challenges of developing mathematical languages that are both natural for humans and amenable to formal verification.