証明関係、混乱の原因

次を区別しなくてはならない。

  1. 命題
  2. 証明〈証拠〉
  3. 判断〈主張〉シーケント
  4. 質問〈問題 | 問い合わせ〉シーケント
  5. フォワードリーズニング(推論ルール含む)
  6. バックワードリーズニング(バックワード推論ルール含む)

定理は、証拠〈証明〉を引数として証拠を返す関数で、その型プロファイルがステートメント。判断シーケントは、コンテキストとターゲット命題のペアだが、意味的には証明項の存在の主張〈メタ命題〉。質問シーケント=ゴールは、コンテキストとターゲット命題のペアではあるが、証明項が不明で未知ラベル〈未知数〉になっている。

次の混乱がある。

  1. 命題(型)と証拠(要素)の混同
  2. 命題へのオペレーター(論理コネクティブ | 型演算)と証明へのオペレーター(推論 | 基本リーズニング | ルール)の混同
  3. 定理と、その定理を使ったルール(ポスト結合リーズニング)の混同
  4. 推論の意味が、定理または証明の基本構成素(関数)と、リーズニングの基本構成素(高階関数)でオーバーロードされている。どちらも関数だが、命題の要素が引数か、シーケントの集合が引数かの違いがある。

言葉として次が欠けている。

  1. FR=フォワードリーズニング
  2. BR=バックワードリーズニング
  3. FRルール=FRの基本構成素
  4. BRルール=BRの基本構成素
  5. 証明機械と証明状態〈ステージ〉
  6. FRコマンド(状態遷移)
  7. BRコマンド=タクティク(状態遷移)

ステージには判断と質問がいくつかあり、ステージ自体にコンテキスト(ステージ・コンテキスト=暗黙のコンテキスト)が付いている。コンテキストの変更は重要な操作になる。ステージコンテキストの背後にライブラリコンテキストがある。

ライブラリ、コンテキスト、ステージ、判断、質問、リーズニングルール、リーズニングコンビネータなど、命題以外のメカニズムを理解するのが困難。

追記:まとめ

「混同するな、区別しよう」「同じだから区別するな」を標語にまとめれば:

  1. 命題とその証拠は違う
  2. 証拠〈witness〉と証明〈proof〉は同じ
  3. 証拠と要素〈element〉も(宇宙多相で)同じ
  4. 証明にプロファイル〈シーケント〉とオプショナルに名前を明示すると定理
  5. 定理の引数は命題ではなくて証拠。
  6. 定理の戻り値も命題ではなくて証拠。
  7. 証明とリーズニングはまったく違う
  8. 定理はリーズニングの基本構成素になる。
  9. リーズニングの基本構成素をルールと呼ぶ。
  10. 定理と推論規則〈ルール〉と基本リーズニングは同じ
  11. 証明/定理は、FRコマンドに埋め込める。apply 定理
  12. 証明/定理は、BRコマンドに埋め込める。deapply 定理 だが、タクティク名は apply 、最悪。
  13. リーズニング(FRとBR)は、リーズニングステージの時間的推移過程を表すリーズニング図〈リーズニンググラフ〉で表現できる。
  14. リーズニング図のトランジションがリーズニング・コマンドで引き起こされる。