TLA+ 能验证什么,不能验证什么
来源:buttondown.com — 7 分 · by b-man
📋 概述
Claude Code 的作者 Boris Cherny 提到 Opus 能用 TLA+ 找出代码里的竞态条件,随后全网开始热议形式化验证。作为长期教授和推广 TLA+ 的人,作者感到兴奋,但也很担心这波狂热:很多人说形式化方法将一劳永逸地解决智能体软件开发的问题,这是胡说。已经有很多文章谈过 TLA+ 在保证能力上的局限,比如正确的设计不会自动变成正确的代码,所以本文聚焦另一个限制——要验证一个性质,首先得有一个可被表达的性质。文章由此讨论哪些性质是 TLA+ 连表达都做不到的,包括如何用行为序列、状态与 []P、P-next 等时序算子来表述系统。
🔑 核心要点
- 触发点是 Boris Cherny 称 Opus 能用 TLA+ 找出代码中的竞态条件。
- 作者认同 TLA+ 擅长设计复杂并发系统并保证其无 bug,但警告这波狂热是危险的。
- 一个已知局限是正确的设计不会自动翻译成正确的代码。
- 文章聚焦另一个更根本的限制:要验证性质,先得有能被表达的性质。
- TLA+ 把系统拆成行为序列,用 []P(永远)与 P'(下一步)等时序算子表达约束。
💡 金句
要验证一个性质,我们首先得有一个性质可以验证!那么,哪些性质是 TLA+ 连表达都做不到的?
👍 0
👎 0
← 返回 Hacker News 首页