Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Church vs Curry Typing といくつか型の概念の調査

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for Yuki Otsuka Yuki Otsuka
April 26, 2025
170

Church vs Curry Typing といくつか型の概念の調査

OSunC-2025でのLT資料

Avatar for Yuki Otsuka

Yuki Otsuka

April 26, 2025
Tweet

Transcript

  1. アジェンダ • この話をするまでのきっかけ • 型付けスタイルと定義順序の違い • 単純型付きλ計算について • 型付きλ計算の説明を入れた背景 •

    Church vs Curry の対比 • 篩型 (Refinement Types) と依存型 (Dependent Types) • 漸進的型付け (Gradual Typing) • まとめ 3
  2. 単純型付きλ計算入門① 変数・抽象・適用 • 変数: x, y, z などで値を表現 • 抽象:

    λx. M で引数 x に対する関数 M を定義 • 適用: 式 M N は関数 M を引数 N に適用 → 例: (λx. x) 42 は 42 と評価される。 7
  3. 単純型付きλ計算入門② 型付け • simply-typed λ-calculus: 型 A → B を持つ関数を導入

    • 抽象: λx:A. M で x の型を A と明示 • 適用: 式 M N がある際、M の型 A→B と N の型 A をチェックし、結果型 B を得る。 → well-typedプログラムは型安全性*が保証される。 *型の進行性と保存性(Progress & Preservation) 8
  4. 型付け規則 (Typing Rules) 環境 Γ と型付け関係 ⊢ を用いて,次の3つの推論則で型を付ける • (Var)

    Γ ⊢ x : A • ————————————— if (x : A) ∈ Γ • (Abs) Γ, x:A ⊢ M : B • ————————————————————— • Γ ⊢ λx:A. M : A → B • (App) Γ ⊢ M : A → B Γ ⊢ N : A • ————————————————————————————— • Γ ⊢ M N : B 9
  5. Church-style (ドメイン付き) 型付け ・λx:A. M により引数 x の型 (domain) を明示

    – domain は関数の入力型(引数の型)、codomain は出力型(戻り値の型) ・Rocq や Agda, F*のような証明支援系で利用される(依存型, 後述) ・注釈が冗長でも仕様が明確 12
  6. Curry-style (ドメイン無し) 型付け ・λx. M と記述し、文脈 Γ (コンテキスト) から型を推論 –

    Γ は変数とその型の環境 (例: x:A, y:B) を保持 ・MLやHaskellなどの言語がこのスタイルも持つ印象、いわゆる型推論が機能する。 ・コードの簡潔さに寄与する。 13
  7. Church vs Curry スタイルの比較 ・Church: 強い型検証 & 証明可能性 ↑/注釈負担 ↑

    ・Curry: 記述量 ↓ & 文脈による汎用性 ↑/文脈による推論依存 14
  8. 篩型の適用例 ・数値型: {x: Int | x > 0} など正の整数のみ受け入れる ・文字列型:

    {s: String | matches(s, regex)} で入力フォーマットを保証 17
  9. Appendix: 参考文献 ・ピアス, ベンジャミン C. 著; 住井英二郎 監訳・遠藤侑介, 酒井政裕, 今井敬吾,

    黒木裕介, 今井宜洋, 才川隆文, 今井健男 訳.『型システム入門―プログラミング言語と型の理論』. 東京: オーム社, 2013年3月. pp. 75–84 • Jacques Garrigue “Typed λ-Calculus”: https://www.math.nagoya-u.ac.jp/~garrigue/lecture/2023_tenbo_en/typed_en.pdf • Eric Normand “Church vs Curry Types”: https://ericnormand.me/article/church-vs-curry-types 23