Bend 0.1 发布:一种快速的 CPU/GPU 语言,通过形式化证明阻止 AI 错误

TL;DR

Bend 0.1 作为一款快速、支持并行的语言发布,允许 AI 代理编写代码,同时内置的证明系统会阻止任何违反用户定义的 laws 的更改。


Bend 声称能实现的功能

  • C 语言级别的性能:原生二进制文件在单核上以接近 C 语言的速度运行,并在 GPU 上实现高达 124× 的加速。
  • 以证明驱动的安全性:类型检查器同时也是证明检查器。用户在 LAWS.bend 中编写 laws;任何由 AI 生成的代码都必须生成一个 PROOF.bend,编译器在接受更改前会验证该证明。
  • 零成本并行:运行时会自动将工作分发到所有可用的 CPU 核心或 GPU 线程;无需显式线程或内核代码。
  • 面向代理的工具链:一个简短的 AGENTS.md 片段可告诉基于 LLM 的代理如何调用 Bend(如 bend guide、bend PROOF.bend 等)。

性能数据(Apple M4 Max)

基准测试 单核 Bend 16 核 Bend GPU Bend
类型检查(证明) 0.38 s(对比 Lean 的 19.2 s,Isabelle 超过 5 分钟) — —
运行时(生命游戏) 7.80 s(≈1× C) 0.65 s(≈12×) 0.06 s(≈124×)
类型检查速度对比 Lean ≈50× — —

网站展示了 单核 用时 7.8 s,16 核 用时 0.65 s,以及 GPU 用时 0.06 s,证明了其宣称的可扩展性。


“laws” 如何阻止 AI 错误

  1. 在 LAWS.bend 中声明一个 law(如下例),表达程序绝不能违反的不变性。
  2. AI 编写实现并生成对应的 PROOF.bend。
  3. Bend 的证明检查器验证该证明;若证明失败,更改将被拒绝,AI 必须重试。
# LAW: 没有任何移动序列能导致胜利。
law you_cant_win:
  for moves: List<Move>
    board = replay(start(), moves)
    is_won(board) == False{}

如果 AI 尝试添加一个让玩家获胜的规则,编译器会报告该 law 被破坏,并拒绝合并代码。这一过程将潜在的 bug 转化为必须在存在前证明的 定理。


社区反馈 – 优势与担忧

svachalek(HN 评论) – “移植了一个定时任务;系统工作正常,但需要许多底层算术引理(例如 U32.add_comm)。这些引理可在项目间复用,但当前库中缺乏它们,增加了证明工作量。”

RomanKornev – “laws 可以被修改以适应新功能,这违背了其初衷。某些 laws 必须冻结,否则人类仍是瓶颈。”

jwpapi – “不清楚 Bend 如何证明所有可能的移动序列。大规模状态空间可能无法穷举验证。”

tintor – “有趣的商业模式:一个付费代理,能比人类更快地更新证明。”

plastic041 – “仓库显示 20k 星,但最近一次提交仅一次,问题/拉取请求极少,引发了对透明度和长期维护的疑问。”

mccoyb – “Bend 看起来像是带有仿射类型的 QTT,以实现 GPU 友好的性能,但在密集数组内核上可能无法与 CUDA 或 Futhark 相媲美;其优势在于平衡的递归 ADT 工作负载。”

shantnutiwari – “LLM 可能会简单地忽略或绕过 laws,需要超越静态证明检查的稳健执行机制。”

这些评论突显了实际摩擦点:需要更丰富的引理标准库、关于不可变 laws 的治理机制,以及对复杂领域中证明生成可扩展性的怀疑。


讨论中的常见问题

  • 并行运行时是否支持 Apple Silicon GPU? 网站宣传支持 CUDA,但展示了 Apple M4 Max 的数据;用户已要求澄清。
  • laws 如何在运行时强制执行? 证明在编译时检查;生成的二进制文件中不包含针对 law 的运行时保护。
  • Bend 是否与现有生态系统兼容? 目前为独立语言;集成计划(如 Rust 风格的宏)仍在讨论中。
  • 如何处理无限循环或非终止? 语言强制执行软递归限制(≈2⁴⁸−1),以保证终止,类似于其他以证明为导向的语言中的有界递归。

快速入门

curl -fsSL https://bend-lang.com/install.sh | sh

将以下片段添加到 AGENTS.md,以便 LLM 代理了解如何使用 Bend:

当使用 Bend 时:
- 运行 `bend guide` 学习它
- 使用 `LAWS.bend` 保持重要规则
- 提交前运行 `bend PROOF.bend`
- 尽可能并行化代码

然后只需指示你的代理:“使用 Bend”。


进一步学习


展望

Bend 0.1 展示了一种语言如何结合原生速度编译、自动 CPU/GPU 并行以及基于证明的 AI 生成错误防护。社区的早期反应称赞其性能和新颖性,同时指出实际挑战:更丰富的引理库、透明的项目治理,以及当 LLM 尝试绕过声明的 laws 时的稳健执行机制。随着项目成熟,其影响力将取决于其与现有代码库的整合程度,以及证明工作流能否扩展到真实世界的大状态系统。

Sources

相关

  • Dispatch
  • Dispatch
  • 项目
  • 项目
  • Dispatch