# Research

Many difficult computation tasks can be boiled down to one word: **Search**. Be it
program generation, theorem proving, satisfiability modulo theory
(SMT), or playing
board games, the core idea is to search for a configuration or an expression
that satisfies a list of simple but expressive criteria. For theorem proving,
this is the axiomatic type system used in a proof assistant. For board games, it
is the rule of the game. In highly specialized tasks such as SMT and playing
board games, mechanical programs can already achieve super-human performance.
This includes CVC5 (for SMT), or Stockfish (for Chess).

However, the progress of automatically searching for proofs of mathematical statements has been slow due to the unbounded search space of this problem. One reason is the generality of theorem proving: SMT, Chess, Program generation, and natural language reasoning problems can all be expressed in terms of mathematical statements. The reward for developing such an algorithm is also immense and could solve major problems in today’s artificial intelligence systems.

On the other hand, machine learning methods have achieved incredible success in some intellectually challenging tasks. This includes AlphaGo for playing chess, GPT for text generation, Stable Diffusion for image generation, and others. It naturally leads to a question: Can we use machine learning methods be applied to the difficult task of theorem proving?

## Research Interests

My main research interest is to use a hybrid of formal methods and machine
learning in theorem proving. Formal methods have achieved success in problems
with limited domain (e.g. Linear Programming, SAT, Cryptography). I and Dr.
Barrett coined the term **machine-assisted theorem proving** (MATP) for this
hybrid approach. The term MATP was coined to avoid confusion with an existing
term, Automated Theorem Proving (ATP) which refers to first order logic only. It
also emphasises on the secondary nature of machine learning compared to formal
methods.

I created Pantograph / PyPantograph, an interface for Lean 4 with the main target being facilitating the theorem proving search process. Pantograph has been developed from the ground up in Lean to enable the machine to search for any proof a human operator can write down. It also overcomes a couple of design limitations of the previous works, Lean REPL, LeanGym, and LeanDojo.

I’m working on **Trillium**, which is a platform for training and evaluating hybrid
theorem proving agents. Due to the resource intensive nature and unreliability
of large language models, I am testing theorem proving *consortia* consisting of
formal method and neural network agents. By placing neural networks at a place
of secondary importance, we can try using existing, more transparent automated
reasoning methods such as SMT solvers to make progress on a proof. We only
consult the neural network if the automated reasoning method fail.

## Prospective Collaborators

Please send me an email at `aniva at stanford dot edu`

and we can discuss
about collaborations. Undergraduate and master students are welcome.

My current research project (open to collaboration) is to use Language Models with my tool Pantograph. We can now port many algorithms that were previously implemented in Isabelle and try to improve theorem proving performance in Lean. In PyPantograph, I have an example of running the Draft-Sketch-Prove experiment on Lean. This example is still in the early stage and there is room for drastic performance improvements.