A Lean-checked textbook of structures

Formal Lab

論理・型・計算・圏を、数学的記述とLeanによる検査の往復から理解する。

Mathematical judgmentΓ ⊢ t : A文脈 Γ のもとで、項 t は型 A を持つ
Lean declaration#check telaboratorが補い、kernelが検査する
79
268
問題
139
用語
85
文献
Lean 4.32.2
検査環境

本書は、論理・数学・型理論・圏論を、通常の数学的記述とLeanによる検査を往復しながら学ぶための 教科書です。初めから順に通読することも、後の目的別案内から必要な経路を選ぶこともできます。 各章は一つの主題を、問題となる具体例、定義と定理、形式化、研究史、問題の順に掘り下げます。

本書が答える問い#

数学の文を、Leanが検査できる型と項へどう翻訳するのか。その翻訳によって、命題、 述語、関数、関係、集合、ラムダ計算、依存型、篩型、構成計算(CoC)、普遍性、 双対性がどう一つの体系としてつながるのか。本書は操作の暗記ではなく、この二つの問いを 追います。

読書契約#

各章は編集用の前提一覧からではなく、既知の具体例に残る問題から始まります。導入本文を読み、 何がまだ定義されていないか、どの構成または証明でそれを解決するかを予想してください。 章末の「要点」は暗記項目ではなく、本文を閉じた後に自分で再構成できるかを確かめる索引です。 「問題」は定義の再生だけでなく、証明、反例、Leanでの実装、数学的記法とLean表現の相互翻訳、 文献読解を含みます。

定義と定理は、まず通常の数学的記法で変数、仮定、結論が分かるように述べます。その近くに置かれた Leanの宣言は、同じ内容を型と項として再構成したものです。二つを見比べれば、数式では省略されやすい 引数や束縛を発見でき、コードを隠せば数学的な定義と証明を自力で復元できます。kernel、elaborator、 tactic、暗黙引数などLeanの動作が結論に関係するときは、その箇所で観察できる働きと数学的内容への 影響を説明します。

Choose an entry point

目的別の読書案内

最初から一列に読む必要はありません。知りたい概念から、その理解に必要な章だけを遡れます。

01

篩型を理解したい

第1・2・3章で型、関数、帰納型を確認し、第6・8・9章で命題、述語、等式を学びます。続いて第5章の 宇宙と第31章の依存型を経て、第34章へ進みます。単純型付きラムダ計算から型体系全体の見取り図も得たい 場合は、第4・11・33章を併読してください。

02

ラムダ計算から構成計算まで進みたい

第1〜4章で項、束縛、代入、簡約を学び、第11章で型判断を導入します。第5章と第31章で宇宙と依存型を 理解した後、第33章でラムダ・キューブと構成計算を体系的に位置づけます。

03

数学の証明をLeanで学びたい

第1〜3章の後、第6〜9章で命題論理と量化・等式を学び、第20〜23章へ進みます。この経路では集合、 関数、関係、帰納法を、通常の数学的証明とLeanの証明項を往復しながら学べます。

04

普遍性と双対性から圏論へ入りたい

第1〜3章、第5章、第9章を確認してから、第42〜44章で始対象・終対象、積、余積の普遍性を具体的に 学びます。続く第45〜65章で一般の圏、関手、自然変換、圏同値、極限、表現可能性、米田、随伴、モナド、 始代数・終余代数、前層・層へ進みます。普遍性を既に知っていれば第45章から始められます。

05

前層・サイト・層を理解したい

第45・46章で圏、反対圏、関手を学んだ後、第58章の前層へ進みます。第59章の篩とサイトは第45章から 独立に読めます。この二経路を第60章で合流させ、整合族、貼り合わせ、層化を学びます。米田による層条件も 理解したい場合は、第47章の自然変換と第50・51章の表現可能性・米田の補題を併読してください。

06

end・coendとKan拡張を理解したい

第45〜49章で圏、関手、自然変換、圏同値、極限・余極限を学んでから、第62章へ進みます。Kan拡張は 第52章の随伴と第49章の極限・余極限を直前提として第63章で学べます。end・coendはKan拡張の定義上の 前提ではありませんが、各点公式を別の形で計算する方法を理解するには第62章を先に読むと有効です。

07

テンソル積とモノイダル圏を理解したい

第45〜47章で圏、関手、自然変換を学んでから、第64章へ進みます。集合の直積による例を普遍性からも理解したい 場合は第43章と第49章を併読してください。第64章ではデカルト積に固有の射影・複製と、一般のテンソル積が持つ 結合・単位の構造を分離します。

08

豊穣圏を理解したい

第45〜47章で通常の圏・関手・自然変換を確認し、第64章でモノイダル圏のテンソル積、単位子、結合子を学んでから 第65章へ進みます。第65章そのものは通常圏を定義上の前提としませんが、通常の圏論との比較を理解するために 第45〜47章を推奨します。豊穣自然変換のhom対象をendとして読むには第49章と第62章も併読してください。

09

モノイダル閉圏と内部homを理解したい

第52章で随伴、第64章でテンソル積と整合性を学んでから第75章へ進みます。内部homを関数型の一般化として先に 計算したい場合は、第2・43・70章で関数、積、指数対象を確認して第75章前半を読み、その後に第45〜52・64章を 補えます。内部homが豊穣hom対象になる構成まで追う場合は第65章も併読してください。

10

線形論理と線形型を理解したい

第10章で自然演繹・シーケント計算・構造規則を確認し、第11章で型判断を学びます。圏論的意味論まで追う場合は 第52・64・75章で随伴、モノイダル圏、内部homを確認して第76章へ進みます。第76章前半の導出と変数使用回数は 第10・11章から直接読めるので、その後に圏論側を補って資源意味論へ戻る経路も取れます。

11

モナドと計算効果を理解したい

第13章で値呼びの操作的意味論、第46・47・53章で関手・自然変換・モナドを学んでから第77章へ進みます。 例外と状態の具体計算を先に理解したい場合は、第2・13章から第77章前半へ直接進み、その後に第45〜53章を補って Kleisli圏、強いモナド、Eilenberg–Moore代数、代数的ハンドラを読み直せます。

12

トポスと圏論的論理を理解したい

第45〜52章で圏、関手、自然変換、極限、表現可能性、米田、随伴を学び、第58〜60章で前層、篩、層を確認します。 第70章のデカルト閉圏を経て第78章へ進むと、部分対象分類子、冪対象、内部論理、量化随伴を一つの流れで読めます。 述語から先に具体像を得たい場合は、第6〜9・20章から第78章前半へ進み、その後に圏論側を補えます。

13

再帰型の意味論を理解したい

第14章でiso-recursive型とequi-recursive型、第27〜30章で完備格子、不動点、領域理論を学びます。圏論側は 第46・54〜57章で関手、代数・余代数、始代数・終余代数を確認して第79章へ進みます。構文から先に読みたい場合は、 第13・14・30章から第79章前半へ進み、その後に圏論側を補って代数的コンパクト性まで読み直せます。

14

帰納型・帰納法・始代数の関係を理解したい

第3章で構成子と再帰、第23章で自然数帰納法、第31章で従属和、第36章で一般の帰納族と厳密正値性を学びます。 第46章の関手、第54章の自己関手代数、第55章の始代数を経て第66章へ進むと、非依存foldと依存帰納の差、および 両者を全空間によって接続する際に必要な構造を一つずつ確認できます。第37章のW型を一般の多項式関手の始代数へ 進め、生成元上の自由代数まで理解するには、続けて第67章を読みます。

15

W型・多項式関手・自由代数を理解したい

第31・36章で依存型と一般帰納族を確認し、第37章で形と位置からW型を構成します。第46・54・55章で関手、 自己関手代数、始代数を学んだ後、第66章でfoldと帰納法の論理的な差を整理してから第67章へ進みます。 自然数とリストの一層を多項式表示へ戻す具体例から始めるなら、第37章から第67章へ直接進むこともできます。

16

余帰納法・双模倣・終余代数を理解したい

第27・28章で完備格子と不動点を学び、第29章で最大不動点による余帰納的述語と双模倣へ進みます。圏論側は 第46章の関手、第56章の自己関手余代数、第57章の終余代数を読みます。第68章では二経路を合流させ、決定的 ストリーム系について最大双模倣と終余代数への像の等しさが一致する条件と証明を確認します。

17

無限という語の異なる意味を整理したい

第25章で基数・可算性・対角線論法、第29章で最大不動点と余帰納、第49章で図式・極限、第57章で終余代数を 学びます。第68章で双模倣と終振舞いを接続してから第69章へ進むと、要素数、任意有限時刻の観察、無限図式という 三つの量化を具体的な反例で分離し、有限prefixの逆極限としてストリームを読むことができます。

18

デカルト閉圏と指数対象を理解したい

第43章で積の普遍性、第49章で極限、第50章で表現可能性、第52章で随伴を学んでから第70章へ進みます。 カリー化を型と関数の具体例から先に理解したい場合は、第2・11章を確認して第70章前半を読み、その後に 第45・46・47・52章を補って一般圏のhom同値と随伴へ戻る経路も取れます。

19

単純型付きラムダ計算の圏論的意味論を理解したい

第11章で型判断、第12章で名前変更・弱化・代入を学び、第43章で積、第50章で表現可能性、第52章で随伴を 確認してから、第70・71章へ進みます。第71章前半の Type モデルは第11・12章から直接読めます。そこで 変数・適用・抽象の計算像を得てから第45〜52章と第70章を補い、一般のデカルト閉圏で同じ対応を読み直せます。

20

スライス圏・添字圏・ファイブレーションを理解したい

第31章で型族と依存対、第45〜49章で圏・関手・自然変換・圏同値・引戻しを学んでから第72章へ進みます。 型族の再添字付けを具体例から先に得たい場合は、第31章から第72章前半の Type における引戻しへ直接進み、 その後に第45〜49章を補ってスライス圏とCartesian持ち上げを読み直すこともできます。

21

局所デカルト閉圏と依存積を理解したい

第31章で依存関数型・依存対型、第43・49・52章で積・引戻し・随伴を学び、第70章でデカルト閉圏を確認します。 続いて第72章でスライス圏と再添字付けを理解してから第73章へ進みます。型族の計算を先に見たい場合は、第31章から 第73章前半の Σ_f⊣f⁎⊣Π_f へ直接進み、その後に一般圏の指数化可能射へ戻れます。

22

依存型理論の圏論的意味論を理解したい

第31・32章で型族、Π・Σ、同一性型と輸送を学び、第72章で表示射・引戻し・ファイブレーション、第73章で 三随伴と局所デカルト閉圏を確認してから第74章へ進みます。Type の標準モデルから入りたい場合は、第31・32章から 第74章前半へ直接進み、その後に第72・73章を補って表示射と切断による一般圏の解釈へ戻れます。

The complete text

全79章

章番号は引用の基準、部は問題領域、リンクの順序は概念の前提に逆行しない通読順です。

Part 1 · 第1–5章

形式化の基礎

式を作り、束縛し、計算する
  1. 第1章型・項・定義・計算
  2. 第2章関数・適用・合成
  3. 第3章帰納型・場合分け・再帰・構造体
  4. 第4章非型付きラムダ計算——束縛・代入・簡約
  5. 第5章宇宙階層と宇宙多相

Part 2 · 第6–10章

命題と証明

文を命題にし、証拠を構成する
  1. 第6章命題・証明・含意
  2. 第7章命題論理と構成的・古典的推論
  3. 第8章述語・全称量化・存在量化
  4. 第9章等式・代入・外延性・一意存在
  5. 第10章自然演繹・シーケント計算・証明の正規化

Part 3 · 第11–19章

型付き計算の理論

計算が型を保つ理由を追う
  1. 第11章単純型付きラムダ計算——型判断を規則として読む
  2. 第12章弱化・交換・縮約・代入
  3. 第13章操作的意味論・一段簡約・評価戦略
  4. 第14章再帰型・fold/unfold・型の無限展開
  5. 第15章保存・進行・型安全性
  6. 第16章正規形・弱正規化・強正規化
  7. 第17章System Fとインプレディカティブ多相
  8. 第18章論理関係と基本補題
  9. 第19章パラメトリシティとfree theorem

Part 4 · 第20–25章

数学の基本言語

集合・関数・関係・濃度を形式化する
  1. 第20章集合を述語として読む
  2. 第21章数学的関数とその性質
  3. 第22章関係・同値・順序
  4. 第23章自然数の再帰・場合分け・帰納法
  5. 第24章順序・上限・下限・極大原理
  6. 第25章有限性・可算性・基数・無限

Part 5 · 第26–30章

再帰・不動点・無限

有限な規則から無限の振舞いへ進む
  1. 第26章整礎関係・整礎帰納法・停止する一般再帰
  2. 第27章束・完備格子・単調作用素
  3. 第28章最小・最大不動点とKnaster–Tarski定理
  4. 第29章最大不動点・余帰納的述語・双模倣
  5. 第30章領域理論・連続写像・再帰方程式

Part 6 · 第31–41章

依存型と型システム

値に応じて変わる型と体系を理解する
  1. 第31章型族・依存関数型・依存対型
  2. 第32章同一性型・輸送・外延性原理
  3. 第33章純粋型システム・ラムダ・キューブ・構成計算
  4. 第34章部分型と篩型
  5. 第35章添字付き帰納族
  6. 第36章一般帰納族・除去規則・厳密正値性
  7. 第37章W型・整礎木・多項式的帰納型
  8. 第38章高次同一性・一価性・ホモトピー型理論
  9. 第39章商型とwell-definedness
  10. 第40章法則を持つ構造と型クラス探索
  11. 第41章型推論・単一化・双方向型付け

Part 7 · 第42–65章

圏論と普遍性

構成を射と普遍性によって特徴づける
  1. 第42章始対象と終対象——零項の普遍性
  2. 第43章積の普遍性
  3. 第44章余積と双対性
  4. 第45章圏・射・反対圏・宇宙
  5. 第46章関手——圏の構造を保つ写像
  6. 第47章自然変換と関手圏
  7. 第48章同型・自然同型・圏同値
  8. 第49章図式・錐・極限・余極限
  9. 第50章hom関手・普遍元・表現可能関手
  10. 第51章米田の補題と米田埋め込み
  11. 第52章随伴——homの自然同型・単位・余単位
  12. 第53章モナド・余モナド・Kleisli圏・Eilenberg–Moore圏
  13. 第54章自己関手の代数と代数準同型
  14. 第55章始代数・fold・Lambekの補題
  15. 第56章自己関手の余代数と余代数準同型
  16. 第57章終余代数・anamorphism・振舞意味論
  17. 第58章前層――局所データを制限する反変関手
  18. 第59章篩・Grothendieck位相・サイト
  19. 第60章層条件・貼り合わせ・層化
  20. 第61章比較関手・モナド性・Beckの定理
  21. 第62章end・coend・双自然性
  22. 第63章Kan拡張——関手の普遍的な延長
  23. 第64章モノイダル圏——テンソル積と整合性
  24. 第65章豊穣圏——hom集合を構造ある対象へ置き換える

Part 8 · 第66–79章

型・計算・圏を結ぶ

別々に得た見方を同じ構造で照合する
  1. 第66章帰納型・帰納法・始代数——三つの生成原理を接続する
  2. 第67章W型・多項式関手・自由代数——形と位置から帰納構造を作る
  3. 第68章余帰納法・双模倣・最大不動点・終余代数——関係と振舞いを接続する
  4. 第69章無限の三つの意味——基数・尽きない観察・無限図式
  5. 第70章デカルト閉圏——積・指数対象・カリー化
  6. 第71章単純型付きラムダ計算の圏論的意味論——判断を射へ移す
  7. 第72章スライス圏・添字圏・ファイブレーション——変化する文脈の上で対象を運ぶ
  8. 第73章局所デカルト閉圏——依存積を再添字付けの右随伴として捉える
  9. 第74章依存型理論の圏論的意味論——文脈・型・項・代入を再構成する
  10. 第75章モノイダル閉圏——内部hom・評価・自己豊穣化
  11. 第76章線形論理・線形型——仮定を資源として追跡する
  12. 第77章モナドと計算効果——値から計算を分離して合成する
  13. 第78章トポスと圏論的論理——部分対象を真理値で分類する
  14. 第79章再帰型の意味論——構文・近似・関手不動点を接続する