为 Lean 定理证明器提供基于大语言模型的证明自动化,包括策略建议、证明搜索和前提选择。
bendlang/bend
一门用法则与证明约束 AI 生成代码、并可编译为 CPU/GPU 并行程序的编程语言。
- Star
- 24,879
- Fork
- 797
- 未关闭 Issue
- 124
- 最近提交
- 4小时前
这是什么?
Bend 是一门旨在让 AI 生成的代码可被验证的编程语言。开发者可以在 LAWS.bend 文件中用“法则”声明程序绝不能违反的规则,编译器在每次修改代码时都要求给出机器可检查的证明,确保这些法则始终成立。语法类似 Python,并带有依赖类型。
在性能方面,Bend 可编译为 C、Metal、CUDA 和 JavaScript,并能把分治式代码自动并行到 CPU 多核或 GPU 线程上,无需手写线程、锁或内核。项目还内置证明检查器,用于处理定理文件。
语言目前仍处于早期阶段:Bend 2 与 Bend 1 及 HVM 不兼容,不做类型推断,暂无调试器,编译器尚未完成全面审计。安装通过一条 shell 命令完成,主要支持 Linux 和 macOS,Windows 需通过 WSL 使用。
核心功能
- 01LAWS.bend 中的法则声明代码修改后必须保持的规则,并通过证明强制执行。
- 02分治式代码在 CPU 多核和 GPU 上自动并行执行。
- 03可编译到 C、Metal、CUDA 和 JavaScript。
- 04采用类 Python 语法的依赖类型系统。
- 05内置证明检查器,内核在 Lean 中形式化。
- 06通过 bend guide 命令即可查看语言指南。
适用场景
- AI 智能体参与修改的后端服务,需要保证关键不变式不被破坏。
- 无需编写 CUDA 内核即可在 GPU 上运行的并行数值或分治类计算。
- 比传统证明助手更快地检查数学证明文件。
- 探索依赖类型编程和经过验证的 AI 生成代码。
快速上手
- 1
运行 README 中的官方安装脚本
- 2
在 AGENTS.md 中添加 README 的说明,让 AI 代理使用 Bend
- 3
提交前运行证明检查
bend PROOF.bend
使用前须知
- Bend 仍很年轻,编译器存在已知缺陷,可能出现问题。
- Bend 最适合在 Linux 或 macOS 上使用,Windows 仅可通过 WSL 运行。
- 编译原生二进制需要 clang 14 或更高版本,GPU 功能需要更新的工具链。
- Bend 2 是全新语言,Bend 1 的程序和 HVM 无法直接迁移。
收录于专题
标签
常见问题
- bend 是什么?
- 一门用法则与证明约束 AI 生成代码、并可编译为 CPU/GPU 并行程序的编程语言。 Bend 是一门旨在让 AI 生成的代码可被验证的编程语言。开发者可以在 LAWS.bend 文件中用“法则”声明程序绝不能违反的规则,编译器在每次修改代码时都要求给出机器可检查的证明,确保这些法则始终成立。语法类似 Python,并带有依赖类型。
- bend 可以免费使用吗?用的什么许可证?
- bend 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
- bend 还在维护吗?
- 活跃维护中。bend 最近一次提交是在 2026年11月7日。
- bend 适合用来做什么?
- AI 智能体参与修改的后端服务,需要保证关键不变式不被破坏。 无需编写 CUDA 内核即可在 GPU 上运行的并行数值或分治类计算。 比传统证明助手更快地检查数学证明文件。 探索依赖类型编程和经过验证的 AI 生成代码。
- bend 怎么安装和运行?
- 运行 README 中的官方安装脚本 在 AGENTS.md 中添加 README 的说明,让 AI 代理使用 Bend 提交前运行证明检查: bend PROOF.bend
- 在哪里获取 bend?
- 源代码和安装说明在 GitHub 上:https://github.com/bendlang/bend
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
基于 Lean 4 的框架,用于神经网络的形式化规约、执行与形式验证,支持形状检查的张量与类 PyTorch 训练。
用 TypeScript 实现的 TLA+ 解释器与模型检查器,可替代基于 Java 的 TLC,在浏览器、Node 和 Bun 中运行。
基于 Mathlib 的 Lean 4 形式化项目,将开源代数几何参考书 Stacks Project 转写为机器可验证的证明。
基于 Lean 4 的形式化验证框架,可对 C#、F# 等 .NET 语言编译出的 CIL 字节码进行机器可检查的正确性与内存安全证明。
GPU.js 可将简单的 JavaScript 函数转译为 GPU 着色器代码,在浏览器和 Node.js 中加速计算,无 GPU 时回退到普通 JavaScript。