定理証明ライブラリの非互換性と相互運用性

この論文、参考になる。

日付はハッキリしないが、2020以降なのは確か。FAIR (Findable, Accessible, Interoperable, and Reusable) knowledge exchange format という概念が出てくる。

  • ライブラリという概念は直感的にはハッキリしている。ライブラリが膨大だと、ライブラリ検索〈library search〉が大問題になる。
  • 証明系のタコツボ状態が、automated proving, library management, user interfaces の重複実装/再実装を招いている。
  • ※檜山注釈:user interfaceは、LSPで少し改善されたが、まだまだ。

Isabelleの配布構造は、セッション、セオリー、コマンドから構成される。

  • セッションはセオリー〈アーティクル〉の集合。物理的にはディレクトリだろう。PDF文書が含まれてもよい。
  • セッションは、1個の親セッションと幾つかのインポート・セッションを持つ。
  • セッションはだいたいパッケージかな。パッケージ依存性がインポートセッションか。親セッションという概念がイマイチわからん。
  • セオリーが物理的なファイルで、モジュール相当。
  • コマンドは、セオリーコンテキスト=証明状態の状態遷移を引き起こすオペレーター。コマンド実装言語やコマンド・スクリプト言語がある。カートリッジ(カプセル化)により他言語のコマンドを組み込める。
  • ロケールが指標相当。

編成・組織化と依存グラフ構造、それとコマンド〈スキルアイテム〉の構造がある。指標の概念がハッキリしてないのがちょっとイヤ。セオリーは指標の上に構築されるはずだから、ベース指標はハッキリすべき。

"the narrative structure addressed to humans" という概念が出てくる。パラグラフとそれが組織化されたセッションで構造化される。