Lean証明の検査迂回
Leanは、数学的な証明をコンピュータで厳密に確認するための定理証明支援系である。
通常は、Leanの中核部分であるカーネルが証明を検査するため、人間の手作業による確認よりも高い信頼性を持つ。
ただし、「Leanで通った」とされる証明を無条件に正しいものとして扱うことはできない。
デバッグ用の設定などによって、本来行われるべきカーネルの検査が迂回される場合があるためである。
そのため、他人のLeanコードを確認するときは、単にエディタ上でエラーが出ていないかを見るだけでは不十分である。
sorry が残っていないか、不自然な axiom が置かれていないか、debug.skipKernelTC (あるいはその代替実装)のような危険な設定が使われていないかを確認する必要がある。
参考
「Lean で証明が書かれてるなら正しいんだろう…」とは言えない理由 - パンの木を植えて
skipKernelTC: 型検査をスキップ - Lean by Example