# Leanstral 1.5：面向所有人的丰富性证明

- 来源：Hacker News 热门（buzzing.cc 中文翻译）
- 作者：programLyrique
- 发布时间：2026-07-04 11:03
- AIHOT 分数：73
- AIHOT 标记：精选
- AIHOT 链接：https://aihot.virxact.com/items/cmr5shajy058gslc7emhochnk
- 原文链接：https://mistral.ai/news/leanstral-1-5

## 精选理由

Leanstral 1.5将形式验证的成本压到每问题4美元，基准全饱和还自动发现真实代码bug，做证明工程和代码安全的现在就能上手用。

## AI 摘要

Mistral AI 发布 Leanstral 1.5，采用 Apache-2.0 许可，总参数 119B、活跃参数 6B。该模型在形式验证基准上表现突出：完全饱和 miniF2F，解决 PutnamBench 中 587/672 道题，在 FATE-H 和 FATE-X 上分别达到 87% 和 34% 的新 SOTA。训练经过中期训练、监督微调和基于 CISPO 的强化学习三阶段。在代码验证中，于 57 个开源仓库发现 5 个此前未知的 bug。模型已通过 Hugging Face 和免费 API 完全开源，支持 Lean 4 的实际 proof engineering，推理成本约每问题 4 美元。

## 正文

Leanstral 1.5 是一款采用 Apache-2.0 许可证的免费模型，拥有 60 亿活跃参数，在形式化验证方面实现了重大性能升级：在 miniF2F 基准上达到饱和，解决了 PutnamBench 中 672 道题目中的 587 道，并在 FATE-H（87%）和 FATE-X（34%）上取得了最先进的结果。该模型通过中期训练、监督微调以及基于 CISPO 的强化学习进行训练，在智能体式证明工程和真实世界代码验证方面表现出色，在测试的 57 个代码仓库中发现了 5 个此前未知的错误。Leanstral 1.5 已完全开源，可通过 Hugging Face 和免费 API 获取，现已可用于 Lean 4 的实际证明工程。

自发布以来，Leanstral 为 Lean 4 中的证明工程提供了一种开放、实用的方法。今天，我们发布了 Leanstral 1.5，这是一款采用 Apache-2.0 许可证的免费模型，总参数量为 1190 亿，但活跃参数仅为 60 亿，其性能升级使得形式化验证比以往任何时候都更强大、更易用。

Leanstral 1.5 在 miniF2F 上达到饱和，解决了 PutnamBench 中 672 道题目中的 587 道，并在 FATE-H 上取得了 87%、在 FATE-X 上取得了 34% 的最新最优结果。除了基准测试之外，它还能验证复杂的代码属性，并在开源代码仓库中发现此前未知的错误——证明了严谨的形式化方法对于实际应用既有效又实用。

训练 Leanstral

Leanstral 1.5 经历了三个阶段：中期训练、监督微调以及基于 CISPO 的强化学习。Leanstral 1.5 在两个强化学习环境上进行了大量训练：

在多轮交互环境中，模型会收到一个定理陈述，必须证明或证伪它。模型提交一个证明，接收 Lean 编译器的反馈，并在每次尝试中优化其方法。如果证明通过编译，则成功；否则循环继续，直到模型解决问题或耗尽预算。

在代码智能体环境中，Leanstral 的操作方式类似于在原始文件系统中工作的开发者：它编辑文件、运行 bash 命令，并利用 Lean 语言服务器实时检查目标、错误和类型信息。这使得它能够处理长周期任务，例如补全代码仓库中的部分证明、构建辅助引理，并在多轮上下文压缩过程中持续工作。该模型学会了驾驭完整的证明工程工作流，并最终通过我们基于 SafeVerify 的分支进行正确性验证，验证依据是一系列目标定理。

评估

我们在以下基准上对 Leanstral 进行评估：

miniF2F 是一个跨系统的形式化数学基准，涵盖从基础问题到国际数学奥林匹克（IMO）级别的挑战，测试代数、组合数学和数论方面的多样化证明能力。

PutnamBench 包含来自普特南数学竞赛的 672 道题目，需要深度推理和长证明链来解决具有挑战性的数学问题。

FATE-H 和 FATE-X 分别是面向研究生和博士级别问题的抽象代数基准，测试群论、环论和模论等领域的进阶推理能力。

FLTEval 基于费马大定理代码仓库中的真实拉取请求，测试具有现实复杂度的实际证明工程能力。

我们完全饱和了 miniF2F，在验证集和测试集上均达到 100%。在 PutnamBench 和 FATE-H/X 上，我们将 Leanstral 1.5 与无自然语言引导的 Goedel-Architect、高设置下的 Seed-Prover 1.5 以及 AxProverBase 进行了比较。Leanstral 在 FATE-H/X 上达到了新的最优水平，分别解决了 87 个和 34 个问题。在 PutnamBench 上，它以远低于 Seed-Prover 1.5 高设置的成本（每个问题约 4 美元，而 Seed-Prover 高设置每个问题预算约为 10 个 H20 天，估计成本 300 美元或更多）多解决了 7 个问题。排名更高的证明器运行条件不同——有些接收自然语言证明引导，另一些运行成本则高得多，例如 Aleph Prover 每个问题成本为 54 至 68 美元。

Leanstral 1.5 展现了我们在形式化推理模型中所见过的最强测试时扩展能力。下图追踪了在 PutnamBench 上，当我们将每次尝试的 token 预算从 25k 提升至 4M 时的 Pass@8 表现：性能在整个过程中平滑且单调地上升，从 50k 时解决 44 道题，到 200k 时解决 244 道，1M 时解决 493 道，最终在 4M 时解决 587 道。当证明过程变长时，Leanstral 并不会放弃，而是持续推理、编辑文件并在数百万个 token 间进行修订，直接将预算转化为已解决的问题——这正是下方 AVL 树证明背后的相同行为，该证明在 22 次压缩中运行了超过 270 万个 token。

在此次发布中，我们还完全开源了 FLTEval。Leanstral 1.5 将该基准上的 pass@1 从 21.9 提升至 28.9，pass@8 从 31.9 提升至 43.2，以七分之一的成本超越了 Opus 4.6 的 39.6。如下图所示，它还扩大了对规模大 3–10 倍的开源模型的领先优势。

代码验证案例研究

尽管 Leanstral 1.5 主要针对数学进行训练，但它在代码验证方面也展现出强大的能力。我们提供两个关键案例研究来展示其影响。

AVL 树：证明时间复杂度

AVL 树是自平衡二叉搜索树，通过在插入和删除过程中进行再平衡来维持 O(log n) 的高度。Leanstral 1.5 为一个真实实现证明了这些时间复杂度保证——这项任务需要结构归纳来镜像树的递归结构，仔细处理单子时间追踪，并对再平衡路径进行穷举情况分析。在超过 270 万个 token 和 22 次压缩中，Leanstral 系统地展开了 TimeM 单子的每一层，揭示了底层计算，尽管它们与控制流交织在一起。它为每次插入建立了每个高度单位约 48 步加上一个常数的近乎紧致上界，然后通过对数关系将高度与树大小联系起来，提供了完整、经过验证的证明，证明插入和删除确实是 O(log n)。

漏洞发现：寻找隐藏缺陷

为了测试 Leanstral 的捉虫能力，我们构建了一条自动化流水线：Aeneas 将 Rust 代码翻译成 Lean，而 Leanstral 则从代码中推断用户意图并生成正确性属性。随后，Leanstral 会尝试在四次尝试内证明每个属性。如果全部失败，它就会转而尝试证明该属性的否定形式，同样也是四次尝试。在 57 个测试仓库中，该流程标记了 47 个违反的属性，其中 11 个指向了真正的 bug——其中有 5 个是之前在 GitHub 上未被报告过的。

其中一个 bug 出现在 datrs/varinteger 库的锯齿解码符号函数中。当输入为 `Std.U64.MAX` 时，表达式 `(value + 1)` 发生溢出，导致调试模式下崩溃，发布模式下则造成静默数据损坏——这是一个测试和模糊测试通常会遗漏的边界情况。Leanstral 的流水线自动捕获了它，这证明了形式化验证已经可以应用于真实世界的代码库，并发现一些传统方法会忽略的 bug。

Leanstral 1.5 采用 Apache-2.0 许可证。权重可在 HuggingFace 上找到，同时现在也可通过免费 API 端点 leanstral-1-5 获取。我们建议在 Mistral Vibe 中使用它。要开始你的旅程，请获取一个 API 密钥，然后：

设置 Mistral Vibe

uv tool install mistral-vibeuv tool update mistral-vibevibe --setup

安装 Leanstral 1.5

/leanstallexit

启动智能体

vibe --agent lean

安装 Lean LSP MCP（可选）

强烈建议通过将以下内容添加到你的 ~/.vibe/config.toml 来安装 Lean LSP MCP

[[mcpservers]]name = "lean-lsp"transport = "stdio"command = "uvx"args = ["lean-lsp-mcp"]tooltimeoutsec = 600

如果没有现有的 MCP 服务器，你可能需要移除 `mcpservers = []`。

开始证明

让 Leanstral 去攻克一个定理、调试一个证明，或者为一个仓库做贡献。就这么简单。
