Name of Project: GPT for Proof Search
Proposal in one sentence: Leverage GPT to enable search using natural language within proof assistants such as ACL2.
Description of the project and what problem it is solving: Proof assistants such as Coq, ACL2s, LEAN, etc. are software similar to integrated developer environments, but useful for writing proofs rather than programs. Such software are used within the specialist formal verification community for mathematical research, compiler development, and the analysis of software. For example, my colleagues and I recently used the ACL2s proof assistant to model and reason about a protocol used by FileCoin and Ethereum, ultimately discovering a vulnerability in the process. The vulnerability was acknowledged by Protocol Labs and the Ethereum Foundation, and awarded a CVE number. This short anecdote illustrates how, when used correctly, proof assistants are powerful tools for reasoning about not only mathematical phenomena but also complex real-world systems such as network protocols.
Unfortunately, proof assistants are very difficult to use, and most practitioners have a graduate degree in computer science or mathematics. One of the most basic challenges in a proof assistant is knowing how to get started. Because these tools are so sophisticated, and typically used by such expert practitioners, there is a dearth of simple tutorials or “hello world” style example-code for novice users to reference. The problem is compounded by poor documentation - like most academic software, proof assistants tend to be poorly documented, if documented at all. Often the best way to learn a proof assistant is to consult with the scientist who created it, or to read the actual source code.
GPT could solve this problem. I propose to train a GPT instance on popular formal methods textbooks and open-source repositories in ACL2, a popular proof assistant I’m personally experienced with. The instance should learn to answer simple natural language queries, look up code examples, and explain concepts. A tool like this would be enormously useful for both students hoping to learn formal methods and also professional software engineers who want to incorporate formal verification into their work-flow or dev-ops pipeline, but lack the time to achieve a graduate-level comprehension of the requisite topics.
Grant Deliverables:
- Trained GPT instance tailored to the ACL2 proof assistant.
- Open-source repository of data used to train the instance.
- Open-source set of benchmark queries the assistant can successfully answer, to be used by future developers training future instances on comparable proof assistants.
Squad
Squad Lead: Max von Hippel (myself), Northeastern PhD student in theoretical computer science. Relevant prior work includes RFCNLP project.
- Twitter handle: @maxvonhippel
- discord handle: @maxvonhippel
- github handle: @maxvonhippel
- website