Polarnova/CryptBoolean

GitHub: Polarnova/CryptBoolean

基于 Lean 4 和 Mathlib 的密码学布尔函数形式化定理库,系统性验证布尔函数代数、频谱理论与编码理论的数学结论。

Stars: 0 | Forks: 0

# CryptBoolean:Lean 中的密码学布尔函数 CryptBoolean 是一个基于 Lean 4 和 Mathlib 的密码学布尔函数形式化项目,参考 Claude Carlet 的《密码学与纠错码布尔函数》(*Boolean Functions for Cryptography and Error Correcting Codes*)。它开发了 代数、频谱、编码理论和密码学理论,作为一个可重用的定理库。 该项目使用 [FABL](https://github.com/Polarnova/FABL) 进行布尔傅里叶分析,并提供了 FABL 的归一化系数与 Carlet 的原始 Walsh 变换之间的明确桥梁。 ## 状态 目前经过验证的产出范围涵盖了 Carlet 第 2 章和第 3 章的部分结论。 每个 Blueprint 节点都有完整的数学陈述和经过审查的依赖关系。形式化的 节点与已编译的 Lean 声明相关联;未证明的开源定理仍然可见,且没有占位符关联。 | 章节 | 主题 | 陈述 | 形式化 | 开放 | Lean 声明 | 依赖边 | |---|---|---:|---:|---:|---:|---:| | 2 | 表示与傅里叶/Walsh 变换 | 36 | 35 | 1 | 159 | 45 | | 3 | 布尔函数与 Reed--Muller 编码 | 7 | 6 | 1 | 21 | 19 | | **总计** | | **43** | **41** | **2** | **180** | **64** | 第 2 章的范围包括代数与数值标准型、Walsh 和伪布尔 傅里叶变换、反演与 Plancherel 恒等式、完整的原始泊松公式、 数值标准型整性判据、仿射不变性、限制恢复、 谱支撑界、导数、自相关和有限域表示。第 3 章 定义了 Reed--Muller 码并证明了一般的距离界、维度和基数 公式,以及对偶定理。 目前仍有恰好两处源陈述处于开放状态。Carlet 命题 3 需要一个有限域坐标 桥接,将 ANF 次数与单变量指数的最大二进制权重相对应,并 保证在相关的分圆轨道上不会发生抵消。Carlet 第 3 章命题 12 需要 任意仿射平面标准型、仿射平面指示子的余维数--次数定理, 以及用于最小权重分类的等号情形切片基础设施。 生产库中包含零个 `sorry`、项目自定义的公理、不安全的声明,或 原生证明快捷方式。 ## 使用 CryptBoolean 本仓库固定使用 Lean 和 Mathlib `v4.32.0` 以及最新的稳定版 FABL 发行版,目前为 `v0.5.6`。克隆后,获取并验证预编译的依赖项,然后构建 CryptBoolean: ``` lake exe cache get ./.github/scripts/require_latest_fabl_release.sh lake build CryptBoolean ``` 发布检查会在 Linux x86-64 和 macOS arm64 上下载 FABL 和 ProbabilityApproximation 归档文件; 如果找不到匹配的已验证资产,将会直接报错,而不是去编译其源代码。 一个每小时运行的工作流(也可以通过 FABL 发布调度来触发)会在 FABL 发布更新的稳定版时,提交一个精确版本锁定的升级 pull request。它会更新 Lean 工具链和两个 Lake manifest,在 GitHub Actions 中运行完整的 CryptBoolean 和 Blueprint 构建,并且只会合并状态为成功的依赖项更新。 根模块导入了每个经验证的产出模块: ``` import CryptBoolean ``` 源模块位于 `CryptBoolean/Carlet` 下,遵循 Carlet 的章节结构。表示桥梁位于 `CryptBoolean/Bridge` 下。 ## 书籍与依赖图 Verso Blueprint 在其 Lean 声明旁边展示了面向源码的陈述,并记录了 经过审查的依赖图。陈述块仅包含数学内容;实现和 归一化说明会单独渲染。GitHub Actions 执行完整的发布构建。 要在根库处于最新状态后进行本地预览: ``` cd blueprint-verso lake exe cache get ./scripts/site.sh serve dev ``` 然后打开 [http://localhost:8000/](http://localhost:8000/)。生成的文件位于 `blueprint-verso/_out/` 下。推送到 `main` 分支会运行相同的检查构建,并 通过 GitHub Pages 自动发布书籍,网址为 [polarnova.github.io/CryptBoolean](https://polarnova.github.io/CryptBoolean/)。 `dev` 配置文件保留了用于审查的保真度元数据;公共 CI 使用默认的 `release` 配置文件,并在阅读视图中省略这些标签。 ## 贡献 阅读 [`AGENTS.md`](AGENTS.md) 以了解贡献者契约和验证工作流程。 ## 参考文献与先前工作 - Claude Carlet,《密码学与纠错码布尔函数》(*Boolean Functions for Cryptography and Error Correcting Codes*),2010 年。 - Thomas W. Cusick 和 Pantelimon Stănică,《密码学布尔函数及其应用》(*Cryptographic Boolean Functions and Applications*), 第二版,2009 年。 - Ryan O'Donnell,《布尔函数分析》(*Analysis of Boolean Functions*),2021 年 5 月版,由 [FABL](https://github.com/Polarnova/FABL) 形式化。 - [Mathlib](https://github.com/leanprover-community/mathlib4),CryptBoolean 所使用的 数学基础。 - [Verso Blueprint](https://github.com/leanprover/verso-blueprint),用于面向源码的书籍 和依赖图。
标签:Lean 4, 密码学, 布尔函数, 形式化验证, 手动系统调用, 数学定理库