まとめ¶
Lean の仕組みを理解するうえで,次の対応を押さえておくと見通しがよくなります.
- parser は文字列を
Syntaxにする. - macro expansion は表面構文をより基本的な構文へ変換する.実際には elaboration と相互に入り組んで進む.
- elaborator は
Syntaxを型つきのExprにし,暗黙引数,型クラス,tactic,再帰定義などを処理する. - kernel は
Exprがコア型理論の規則に従うかを検査する. .oleanは検査済み環境を保存し,import を高速化する.- このプロジェクトの Lean 4.30.0 では
.ileanが language server のための索引として生成される.
普段の証明では,これらをすべて意識する必要はありません. しかし,エラーの原因を切り分けるとき,依存関係を管理するとき,AI や外部ツールから Lean を呼び出すときには,この構造を知っていることが役に立ちます.