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 の証明を返す関数が欲しい。モチーフ 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