MathLabs
定理已证明

从Eq.rec推出相等的对称性

命题陈述

存在仅由 refla:a=a\mathrm{refl}_a : a = a 与 Eq.rec\mathsf{Eq.rec} 构造出的项 Eq.symm:a=b→b=a\mathrm{Eq.symm} : a = b \to b = a;对称性是CIC的一个定理,而非额外公理。

为什么成立?

如果相等需要为对称性、传递性、合同性等分别设立公理,可信内核就会随着关于 == 的每条新事实而膨胀。从一个消去子推出所有这些性质,才能让内核保持很小。

证明思路

固定 aa。我们想要一个函数,对任意 bb,把 h:a=bh : a = b 变成 b=ab = a 的证明。用动机(motive)C(y,h):=(y=a)C(y, h) := (y = a) 来使用 Eq.rec\mathsf{Eq.rec}——这是一族由点 yy 及连接 aa 到 yy 的证明 hh 索引的命题。

消去子要求提供基础情形 C(a,refl a)C(a, \mathrm{refl}\,a) 的证明,即 a=aa = a;我们提供 refl a\mathrm{refl}\,a 本身。这是合法的,因为基础情形总是在起点 aa 处由 refl\mathrm{refl} 索引。

于是 Eq.rec\mathsf{Eq.rec} 对每个 yy 与每个 h:a=yh : a = y 返回 C(y,h)=(y=a)C(y,h) = (y = a) 的证明。代入 y:=b, h:=hy := b,\ h := h:我们恰好得到 b=ab = a 的证明。

把它打包为 Eq.symm h:=Eq.rec (C:=λy h, y=a) (refl a) b h\mathrm{Eq.symm}\,h := \mathsf{Eq.rec}\,(C := \lambda y\, h,\, y = a)\,(\mathrm{refl}\,a)\,b\,h,就得到类型为 Eq.symm:a=b→b=a\mathrm{Eq.symm} : a = b \to b = a 的项。内核仅通过将这个应用与 Eq.rec\mathsf{Eq.rec} 的类型签名匹配就能接受它——在内核层面完全不需要对"对称性"这一概念进行推理。

用到此定理的主题

分步证明

该定理暂无分步证明。

参考文献

  1. Leonardo de Moura, Sebastian Ullrich (2021). The Lean 4 Theorem Prover and Programming Language
  2. Xavier Leroy (2009). Formal verification of a realistic compiler
  3. Terence Tao, et al. (2023). A Proof of the Polynomial Freiman-Ruzsa Conjecture · arXiv:2311.05762