- coq-of-rust 简介:用于 Rust 的形式验证工具,能检查程序 100%的执行情况以打造超安全应用。Rust 的类型系统虽能避免很多错误,但仍可能存在漏洞,而“coq-of-rust”可通过数学证明程序对所有输入都符合规范,提供形式验证服务,包括设计规范和证明,开发主要由 Aleph Zero 基金会资助。
主要内容:
- Example(示例):核心是将 Rust 程序翻译为 Coq 证明系统,如一个简单的 Rust 函数
fn add_one(x: u32) -> u32 { x + 1 }
,经“coq-of-rust”翻译后在 Coq 中为Definition add_one (τ : list Ty.t) (α : list Value.t) : M :=...
,并可在 Coq 中表达和验证代码规范。 - Workflow(工作流程):典型工作流程为将 Rust 代码经“coq-of-rust”翻译为 Coq 代码,通过链接和模拟等步骤使其更适合形式验证,最后编写规范并证明 Rust 程序满足规范,从而几乎将漏洞降为零。
- Rationale(原理):形式验证可预防关键软件中的所有错误,Rust 的类型系统虽有保障但测试不完备,形式验证可覆盖所有情况,“coq-of-rust”将 Rust 程序翻译为 Coq 以使其 100%安全。
- Prerequisites(前提条件):需具备 Rust 和 Coq(参考 coq-of-rust.opam)。
- Installation and User Guide(安装和用户指南):build 教程提供构建和安装指导,user 教程介绍命令行界面和支持的选项。
- Language features(语言特性):在 Rust 的 THIR 中间表示层面工作,支持 99%的 Rust 示例,包括基本控制结构、循环、引用、闭包、恐慌处理、用户类型、 trait 定义和实现等。
- Contact(联系):如需 Rust 代码库的形式验证服务,可联系 mailto:contact@formal.land,可应用于智能合约、数据库引擎等关键 Rust 项目。
- Alternative Projects(替代项目):其他从事 Rust 形式验证的项目有 Aeneas、Hacspec v2、Creusot、Verus、Kani 等。
- Contributing(贡献):是开源软件,欢迎提交 pull 请求或 issue 参与贡献,Rust 代码遵循 AGPL 许可证,Coq 库遵循 MIT 许可证,部分代码取自 Creusot 项目以实现特定功能。
- Example(示例):核心是将 Rust 程序翻译为 Coq 证明系统,如一个简单的 Rust 函数
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。