Learning an Effective Premise Retrieval Model for Efficient Mathematical Formalization

Yicheng Tao, Haotian Liu, Shanwen Wang, Hongteng Xu
1/21/2025
cs.CLcs.AIcs.IR

Official code: ruc-ai4math/Premise-Retrieval (19 stars, last commit 2025-01-20).

Abstract

Formalized mathematics has recently garnered significant attention for its ability to assist mathematicians across various fields. Premise retrieval, as a common step in mathematical formalization, has been a challenge, particularly for inexperienced users. Existing retrieval methods that facilitate natural language queries require a certain level of mathematical expertise from users, while approaches based on formal languages (e.g., Lean) typically struggle with the scarcity of training data, hindering the training of effective and generalizable retrieval models. In this work, we introduce a novel method that leverages data extracted from Mathlib to train a lightweight and effective premise retrieval model. In particular, the proposed model embeds queries (i.e., proof state provided by Lean) and premises in a latent space, featuring a tokenizer specifically trained on formal corpora. The model is learned in a contrastive learning framework, in which a fine-grained similarity calculation method and a re-ranking module are applied to enhance the retrieval performance. Experimental results demonstrate that our model outperforms existing baselines, achieving higher accuracy while maintaining a lower computational load. We have released an open-source search engine based on our retrieval model at https://premise-search.com/. The source code and the trained model can be found at https://github.com/ruc-ai4math/Premise-Retrieval.

View on arXivView PDF

Code Implementations(1)

193PythonJan 20, 20251 years ago

Similar Papers

Cite this paper

@article{tao2025learning,
  title  = {Learning an Effective Premise Retrieval Model for Efficient Mathematical Formalization},
  author = {Yicheng Tao and Haotian Liu and Shanwen Wang and Hongteng Xu},
  year   = {2025},
  eprint = {2501.13959},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2501.13959v3}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2501.13959.svg)](https://codeofpaper.com/paper/2501.13959)

Discussion