Rust 的核心和分配包的翻译 | Formal Land

主要观点:

  • 用[coq-of-rust]工具将 Rust 代码翻译为形式证明系统[Coq],以验证 Rust 程序,曾受限于处理 Rust 标准库的原始构造。
  • 对 Rust 的[core]和[alloc] crate 进行翻译,解决了一些问题并得到相应文件夹中的翻译结果。
  • 初始运行生成大量 Coq 代码但不编译,通过拆分生成代码等方式解决了一些问题。
  • 修复了模块名冲突相关的 bug,列出了仍不编译的文件。
  • 以[Option::unwrap_or_default]为例展示了翻译及证明其等价性的过程。
  • 结论是可更信任对标准库的形式化,下一步是简化证明过程,对感兴趣的人可联系[mailto:contact@formal.land]。

关键信息:

  • [coq-of-rust]可将 Rust 代码翻译为[Coq]。
  • 翻译[core]和[alloc] crate 及其相关结果。
  • 初始运行生成代码不编译及后续解决措施。
  • 修复模块名冲突 bug 及未编译文件列表。
  • [Option::unwrap_or_default]的翻译与证明。

重要细节:

  • 初始运行时输入 Rust 代码的规模及实际翻译规模。
  • 拆分生成代码的优点。
  • 修复 bug 时对模块名的处理方式。
  • 展示翻译及证明的具体代码示例及相关文件位置。
阅读 10
0 条评论