开源SMT验证工具
Alt-Ergo 是 OCamlPro 维护的自动 SMT 求解器,核心用途是证明程序验证过程中生成的数学公式。它源自法国学术机构长期研究,面向演绎式程序验证、硬件设计、软件验证、形式化测试、B 模型与密码协议验证等严肃场景,并不是通用 IDE 插件或低代码工具。
在输入与理论支持上,Alt-Ergo 使用类似 ML 的多态一阶逻辑作为原生语言,同时支持 SMT-LIB v2。内置理论覆盖未解释符号等式、整数和有理数线性算术、部分非线性算术、带外延性的多态函数数组、枚举类型、记录类型、AC 符号以及固定长度位向量等。生态方面,它最重要的价值是作为 Why/Why3 后端,并被 Frama-C 用于 C 代码验证、被 SPARK 工具链用于 Ada 程序验证,也可用于 B 建模和密码协议验证。网站还提供 Try-Alt-Ergo JavaScript 版本,可直接在浏览器试用,并被 TryWhy3 用作后端证明器。
Alt-Ergo 的发布模式较特殊:最新版本以 OCamlPro Non-Commercial License 发布;延迟数年的 Alt-Ergo-Free 版本以 Apache License 2.0 发布。用户可以通过 GitHub 源码、tar 包和 OPAM 安装,也可以本地运行,因此具备自托管能力。商业层面提供用户俱乐部、定制许可、专属支持、生产支持、版本冻结/维护、qualification kit、按需开发和重新授权,但正文没有公开价格。
优点是定位非常清晰,围绕程序验证公式做了长期优化;学术论文、版本历史和工业用户俱乐部显示出较强持续性;并且与 Why3、Frama-C、SPARK 等成熟形式化工具链有实际结合。缺点是最新版本并非直接采用宽松开源许可证,Apache 版存在时间延迟;定价信息不透明;对普通开发者而言,SMT、形式化方法和输入语言都有学习门槛;正文也未说明独立 API/SDK 能力。
它适合做安全关键系统、编译器/静态分析、C/Ada 程序验证、形式化方法研究和工业级证明工具链的团队。如果只是日常 Web/移动开发,价值有限。中国访问情况正文未提供,需实际测试;支付方式也未披露。可对比 Z3、CVC5、Yices、Boolector、MathSAT 等 SMT 求解器。
本测评基于公开资料整理,不构成购买建议,请以 ocaml.pro 官网实际信息为准。
Alt-Ergo官网,形式化验证开发者有用。
评分明细(分布与用户短评)接入中。当前展示 TG4G 综合评分,数据源自公开测评与用户反馈。