跳到主要内容

1 篇博文 含有标签「comparator」

查看所有标签

Comparator 到底在检查什么:从 Challenge/Solution 到 external kernel

· 阅读需 12 分钟

一份不可信的 Lean 项目能够 lake build,不等于它证明了你以为的 theorem。

它可能重新定义了 statement 里的 identifier,用 macro 或 notation 改变表面语法的含义,用不同 typeclass instance 让同一个类型别名展开成另一项,也可能在 build 阶段运行 meta code、写文件,最后再把 sorry warning 藏起来。Lean 很灵活,这种灵活性对正常开发是能力,对 adversarial proof 则是攻击面。

Comparator 的工作,是在一个 reviewer 控制的 theorem statement 与 untrusted proof project 之间建立边界。它不只问“这份代码能否编译”,而是问:它是否证明了 trusted Challenge 中那个精确的 statement,只用了允许的 axioms,并且能被指定的 kernel 接受?