カリー/ハワード対応と相互関係

型の圏(複圏、多圏もある)と命題の圏(複圏、多圏もある)との関係。カリー/ハワード/ランベック対応(むしろ、カリー/ハワード/ランベック・フレームワーク)があるので似てる。抽象化すれば同じになる。が、型コンテキストの圏の対象の上に命題の圏が乗って置換〈substitution〉と限量子で命題の圏が繋がる構造を持っている。一言で言えば、ハイパードクトリン。インスティチューションとしても定式化できる。

共通の用語や、異なる用語。

  1. コンテキスト → 型コンテキスト、命題コンテキスト
  2. コンテキストのラベル → 変数名/変数番号、命題名/命題番号
  3. 命題コンテキスト = 命題の宣言リスト(実体、データ型として)
  4. 命題コンテキスト = 仮定(役割として)
  5. ターゲット → 関数のターゲット型〈戻り値型〉、導出のターゲット命題
  6. ターゲット命題 = 結論
  7. シーケント〈プロファイル〉 → 型シーケント〈{複}?関数のプロファイル〉、命題シーケント〈導出プロファイル〉
  8. スワップ射 → 型スワップ射、命題スワップ射
  9. コピー射 → 型コピー射、命題コピー射
  10. 破棄射 → 型破棄射、命題破棄射
  11. グラフティング → {複}?関数グラフティング、導出グラフティング
  12. 複結合 → {複}?関数複結合、導出複結合
  13. ペアリング → 関数ペアリング、導出ペアリング
  14. 導出ペアリング = 連言導入
  15. 射影 → 型射影、命題射影
  16. カリー化 → 関数カリー化、導出カリー化
  17. 関数カリー化 = ラムダ抽象
  18. 導出カリー化 = 含意導入リーズニング
  19. アンカリー化 → 関数アンカリー化、命題アンカリー化
  20. 関数アンカリー化 = 関数適用
  21. 命題アンカリー化 = 含意消去リーズニング
  22. 終対象 → 終型、終命題
  23. 終型 = ユニット型
  24. 終命題 = 真命題
  25. 始対象 → 始型、始命題
  26. 始型 = 空型
  27. 始命題 = 偽命題
  28. 終型 = ユニット型
  29. 終命題 = 真命題
  30. 終射 → 終関数、終導出
  31. 始射 → 始関数、始導出
  32. 恒等 → 恒等関数、恒等導出
  33. General substitution
    1. Substitution by Delete
    2. Substitution by Copy
    3. Substitution by Swap
    4. Substitution by Function term
様々な規則

https://cs.au.dk/~birke/papers/categorical-logic-tutorial-notes.pdf の規則を列挙しておく。

型の圏の“規則”

  1. IDENTITY 恒等単純関数がある/使える。
  2. WEAKENING 破棄多関数をプレ多結合してよい。
  3. CONTRACTION コピー多関数をプレ多結合してよい。
  4. EXCHANGE スワップ多関数をプレ多結合してよい。
  5. MULTI-COMPOSITION 多関数を多結合してよい。多関数項と多関数記号を組み合わる。
  6. PAIRING 2つの複関数をペアリングして複関数を作ってよい。デカルト性。
  7. PROJ-1 第一射影単純関数をポスト結合してよい。
  8. PROJ-2 第ニ射影単純関数をポスト結合してよい。
  9. ABS 複関数をカリー化してよい。
  10. APP 複関数をアンカリー化してよい。エバル複関数と複結合してよい。
  11. UNIT 終複関数がある/使える。

恒等単純関すと各種の結合が圏類似構造の公理だとして、次の基本構成の存在を要請している。

  1. 破棄多関数 Γ, σ → Γ
  2. コピー多関数 Γ, σ → Γ , σ, σ
  3. スワップ多関数 Γ, σ, σ' → Γ, σ', σ
  4. 第一射影単純関数 τ×σ → τ
  5. 第ニ射影単純関数 τ×σ → σ
  6. 終複関数 Γ → 1

射もモノイド積に相当するマージ規則を許せば、次のように単純化できる。

  1. 破棄多関数 σ → (,)
  2. コピー多関数 σ → σ, σ
  3. スワップ多関数 σ, σ' → σ', σ
  4. 第一射影単純関数 τ×σ → τ
  5. 第ニ射影単純関数 τ×σ → σ
  6. 終多関数 Γ → (,)

演繹の構造規則

  1. IDENTITY 恒等単純導出がある/使える。
  2. CUT 2つの複導出をグラフティングしてよい。
  3. WEAK-PROP 破棄多導出ををプレ多結合してよい。
  4. CONTR-PROP コピー多導出をプレ多結合してよい。
  5. EXCH-PROP スワップ多導出をプレ多結合してよい。
  6. WEAK-TYPE 破棄多関数で引き戻してよい。
  7. CONTR-TYPE コピー多関数で引き戻してよい。
  8. EXCH-TYPE スワップ多関数で引き戻してよい。
  9. SUBSTITUTION 一般的な複関数で引き戻してよい。

プレ多結合してよい多導出は:

  1. 破棄多導出 Θ, ψ → Θ
  2. コピー多導出 Θ, ψ → Θ, ψ, ψ
  3. スワップ多導出 Θ, φ, ψ → Θ, ψ, φ

引き戻し〈置換 | 翻訳〉に使ってよい関数類は:

  1. 破棄多関数 Γ, σ → Γ
  2. コピー多関数 Γ, σ → Γ , σ, σ
  3. スワップ多関数 Γ, σ, σ' → Γ, σ', σ
  4. 一般的な複関数 Γ → σ (終複関数を含む)

論理の規則 so-called 自然演繹

  1. TRUE 終複導出がある。
  2. FALSE 始単純導出 ⊥ → ψ がある。仮定を水増しして Θ, ⊥ → ψ の形も使う。
  3. AND-I 2つの導出の連言ペアリングをしてよい。直積ペアリングと同様。
  4. AND-E1 第一射影単純導出がある。ポスト結合してよい。
  5. AND-E21 第ニ射影単純導出がある。ポスト結合してよい。
  6. OR-I1 第一入射単純導出がある。ポスト結合してよい。
  7. OR-I2 第ニ入射単純導出がある。ポスト結合してよい。
  8. OR-E 2つの導出の選言コペアリングをしてよい。直和コペアリングと同様。
  9. IMP-I 複導出をカリー化してよい。
  10. IMP-E 複導出をアンカリー化してよい。MP複導出と複結合してよい。
  11. ∀-I x:σ とういう変数を足して、破棄多関数 Γ, σ → Γ の置換の随伴が作れる。
  12. ∀-E 複関数 Γ → σ でインスタンス化できる。
  13. ∃-I 複関数 Γ → σ を証拠にして存在を主張できる。
  14. ∃-I x:σ とういう変数を足して、破棄多関数 Γ, σ → Γ の置換のもうひとつの随伴が作れる。