LeanExplore: A search engine for Lean 4 declarations
About
The expanding Lean 4 ecosystem poses challenges for navigating its vast libraries. This paper introduces LeanExplore, a search engine for Lean 4 declarations. LeanExplore enables users to semantically search for statements, both formally and informally, across select Lean 4 packages (including Batteries, Init, Lean, Mathlib, PhysLean, and Std). This search capability is powered by a hybrid ranking strategy, integrating scores from a multi-source semantic embedding model (capturing conceptual meaning from formal Lean code, docstrings, AI-generated informal translations, and declaration titles), BM25+ for keyword-based lexical relevance, and a PageRank-based score reflecting declaration importance and interconnectedness. The search engine is accessible via a dedicated website (https://www.leanexplore.com/) and a Python API (https://github.com/justincasher/lean-explore). Furthermore, the database can be downloaded, allowing users to self-host the service. LeanExplore integrates easily with LLMs via the model context protocol (MCP), enabling users to chat with an AI assistant about Lean declarations or utilize the search engine for building theorem-proving agents. This work details LeanExplore's architecture, data processing, functionalities, and its potential to enhance Lean 4 workflows and AI-driven mathematical research
Related benchmarks
| Task | Dataset | Result | Rank | |
|---|---|---|---|---|
| Theorem Retrieval | Lean Informalized Statement | R@149.2 | 4 | |
| Theorem Retrieval | Lean Synthetic User Query (Sec. 3.1) | Recall@147.1 | 4 | |
| Theorem Retrieval | Lean Augmented Statement | R@159.2 | 4 | |
| Formal Mathematics Retrieval | User Study Real-world Queries | R@170 | 3 | |
| Retrieval | Lean Retrieval Informalized Statement modality (test) | R@131.9 | 3 | |
| Retrieval | Lean Retrieval Synthetic User Query modality (test) | R@130 | 3 | |
| Retrieval | Lean Retrieval Augmented Statement modality (test) | R@10.454 | 3 | |
| Theorem Retrieval | Lean Informalized Statement cleaned (test) | R@135 | 2 | |
| Theorem Retrieval | Lean Synthetic User Query cleaned (test) | Recall@126.3 | 2 | |
| Theorem Retrieval | Lean Augmented Statement cleaned (test) | R@185.8 | 2 |