Foundational verification allows programmers to build software which has been empirically shown to have high levels of assurance in a variety of important domains. However, the cost of producing foundationally verified software remains prohibitively high for most projects, as it requires significant manual effort by highly trained experts. In my thesis, I developed \name{}, a proof search system using machine learning techniques to produce proofs of software correctness in interactive theorem provers. \name is composed of three parts: a supervised predictor model, a reinforcement predictor model, and a search system which can make use of either model to automatically prove theorems.I demonstrated \name{}'s supervised...