Symmetry of equality from Eq.rec
Statement
There is a term built only from and ; symmetry is a theorem of CIC, not an extra axiom.
Why is it true?
If equality needed a separate axiom for symmetry, transitivity, congruence, and so on, the trusted kernel would grow with every new fact about . Deriving them all from one eliminator keeps the kernel tiny.
Proof sketch
Fix . We want a function taking (for arbitrary ) to a proof of . Apply with the motive — a family of propositions indexed by the point and the proof connecting to .
The eliminator asks for a proof of the base case , i.e. of ; supply itself. This is legal because the base case is always indexed by at the starting point .
then returns, for every and every , a proof of . Instantiate : we obtain exactly a proof of .
Packaging this as gives the term of type . The kernel accepts it purely by matching this application against the type signature of — no reasoning about "symmetry" as a concept is needed at the kernel level.
Topics that use this theorem
Step-by-step proofs
No step-by-step proof yet for this theorem.
References
- Leonardo de Moura, Sebastian Ullrich (2021). The Lean 4 Theorem Prover and Programming Language
- Xavier Leroy (2009). Formal verification of a realistic compiler
- Terence Tao, et al. (2023). A Proof of the Polynomial Freiman-Ruzsa Conjecture · arXiv:2311.05762