Lean 是一款证明助手——一种由数学家和计算机科学家用于编写和验证复杂逻辑证明的软件工具。其核心是一个“内核”,即决定证明是否有效的基础代码。由于这些内核对整个系统的完整性至关重要,内核实现中的任何错误都可能导致错误的证明被接受为真。Lean FRO 联合创始人 Leonardo de Moura 宣布,Lean v4.35.0 现在配备了几个新内核,旨在应对 AI 智能体在识别此类软件漏洞方面日益增强的效能。

Lean FRO 联合创始人 Leonardo de Moura 的肖像
Leonardo de Moura,宣布发布 Lean v4.35.0 及其新验证内核的人员。leodemoura.github.io

Leonardo de Moura 是 Lean FRO 的联合创始人,也是宣布这些安全更新的主要人物。

其中主要的补充之一是“con-leche”,这是第一个用 Lean 语言编写并证明一致的 Lean 内核。在这种语境下,一致性意味着内核接受的每一个环境在集合论中都有相应的模型。通过使用用其旨在验证的语言编写的内核,开发人员旨在消除由内核实现中的编程错误引起的某一类漏洞。为了进一步降低构建软件时使用的编译器或运行时环境带来的风险,团队还引入了“con-ron”。该内核是通过使用 AI 将 con-leche 逻辑转换为 Rust,然后使用 Aeneas 进行验证而创建的,Aeneas 是一个用于证明 Rust 代码符合检查算法的工具。通过同时使用 con-leche 和 con-ron 来检查证明,用户可以获得高水平的保护,防止可能存在于一个环境但不存在于另一个环境中的错误。

虽然这些经过验证的内核提供了显著的安全升级,但 Lean 团队承认扩展性仍然是一个挑战。随着社区的增长以及 Mathlib 等库扩展到数百万行代码,目前使用外部内核重新检查开发内容的现有方法可能会变得低效。团队目前正在探索二进制导出格式和增量检查,以处理超过 1 亿行代码等大规模开发。与此同时,用户可以使用新的 `lake check --paranoid` 命令,该命令运行一个使用强化内存分配器构建的官方内核变体,旨在将潜在的内存损坏转化为可检查的中止,而非静默错误。