theorem-structure-key-modules

关键模块的定理结构(概览)

1. lib/Integers.v(机器整数)

模块目标:形式化 N 位机器整数(模 2^N),定义算术/位运算语义,并证明代数与位级性质。

定理结构分层 1) 表示与范围 - modulus, max_unsigned, max_signed 等定义 - Z_mod_modulus_range, unsigned_range, signed_range:表示范围与归一化性质 - repr_unsigned, unsigned_repr, signed_repr:Z 与 int 的互转一致性

  1. 等价关系与判等
  1. 算术运算
  1. 位运算与移位/旋转
  1. 幂与优化相关定理

依赖关系 - 依赖 ZbitsCoqlib 的整数性质与位操作 - 为 Values.vOp.v、后端优化提供基础代数事实


2. common/Values.v(值域与值运算)

模块目标:统一中间语言使用的值类型与基础运算语义。

定理结构分层 1) 类型匹配 - has_type, has_argtype, has_rettype 与相关判定定理 - has_subtype, has_subtype_list:弱类型系统中的子类型保持

  1. 归一化与载入结果
  1. 算术与逻辑运算等式
  1. 语义弱化/注入性质

依赖关系 - 依赖 Integers, Floats, AST - 为各语言语义(C/Clight/RTL 等)提供统一值语义基础


3. common/Memory.v(内存模型)

模块目标:定义内存状态与 load/store/alloc/free 语义,并提供关键性质。

定理结构分层 1) 权限与合法性 - perm / range_perm 及其推理规则 - valid_blockperm_valid_block - perm_cur/max 等权限单调性

  1. 操作性质
  1. 注入与等价

依赖关系 - 依赖 Memdata, Memtype, Values, AST - 为语义保持证明中的“内存一致性”提供基础


4. common/Smallstep.v(小步语义框架)

模块目标:提供通用小步语义闭包与仿真框架。

定理结构分层 1) 闭包与组合 - star / plus 的构造与组合性质 - star_trans, plus_star 等组合律

  1. 步进与轨迹
  1. 仿真框架基础

依赖关系 - 依赖 Events, Globalenvs, Integers - 贯穿所有语义保持证明