一个用 Lean 打印 Python 并查集的证明
Philip Zucker 写了一篇偏实验性的博客,核心是“证明即搜索过程 trace”这一原则。作者先把并查集(union find)的路径压缩解释为对等式传递性的应用,把 e-graph 的 memo 表解释为节点与 e-id 之间的等式,然后直接把执行过程中产生的步骤以 Lean 的 let 绑定流式写出,生成一个可被 Lean 检查的证词。 文中给出一版带证明输出的 Python 并查集(FatId 把证明 id 和普通 id 打包),用 lake env lean --stdin 做子进程验证,并展示了 union(a,b)、union(b,c) 后 a=c 的 Lean 证明。 作者还讨论了 rerooting、2-union find、Knut-Bendix、proof producing congruence closure(Nieuwenhuis & Oliveras)、Z3 的 proof cert 讨论、以及 Graham 在 Aufbau 里 “vibe code” 出的 proof-producing egraph。 属于偏研究/工程随笔风格,有真实代码、有观点、也留了不少开放问题,对关注 e-graph、定理证明、形式化验证的读者有较强吸引力。 
