「内部」言語の実装


11

"Curry-Howard-Lambek"対応の最も実用的な結果の1つは、十分に構造化されたカテゴリで構築を実行するために、多くのラムダ-カルクリ/ロジックの構文を使用できることです。

たとえば、Synthetic Differential Geometryのtopoiには、滑らかな多様体のカテゴリを含み、埋め込んだモデルがあるため、高次論理を使用して滑らかな関数を構築し、微分方程式を解くことができます。

別の例として、このホワイトペーパーでは、「ステップインデックス」が実際にはプリナチュラル(別のトポス)に対してプリシーブを処理しているだけなので、高次ロジックの構文を使用して、面倒なステップインデックス付き論理関係を定義できます。ステップの操作。

最後に、Andrej BauerがこのMOの質問で、グラフのトポスの「内部言語」で多くのことができることを示しています。

私の質問は、誰もがこのビジョンを定理の証明者の中で文字通り実現しましたか?たとえば、気になるカテゴリがデカルト閉であることがわかった場合は、「内部モード」に移動して、ラムダ計算構文(モデル固有の公理を使用)を記述してから、「外部モード」に戻ることができます。モデルのオブジェクトとして操作しますか?

極端な場合は、topos理論と高次の論理を使用することさえしたいので、ステップなしでステップインデックス付きの論理関係を記述したり、SDGを使用して定理証明で古典力学を教えることができます。誰かが拡張依存型理論を一度実装して素晴らしいツールを提供し、それを上記のように非常に異なるアプリケーションで使用することができるので、これは私にとって非常に強力なアイデアのようです。


わかりやすくするために:基礎となるカテゴリの内部言語で数学理論を書き直したことがあるかどうかを尋ねていますか(定理証明を使用して、そのような数学理論について証明するために)。または、タイプ理論(ある種のカテゴリーの)でモデル理論を実行したことがあるかどうかを知りたいですか?
Giorgio Mossa

私は人々が特定の内部言語で定理証明で行った作業について尋ねているのではありません(ただし、それについての参照は歓迎されます)。誰かが私は内部の言語を使用できるように、定理証明に本質的にDSLとして「内部言語」を実施する作業行っている場合、私は聞いてるのよどの私はに興味があることを特定のモデルとの素敵な構文のすべての利点を取得します。CCCの場合、構文はCoq / Agdaなどで簡単に表現できるため、これは簡単に見えますが、Topoiの方が難しいようです。
Max New

回答:


7

強制的に型理論の拡張ギレム・ジャベールにより、ニコラスTabareauとマチューSozeau、2012年には、強制的直観は、presheaf工事の内在として提示されて実装さ Bernardyとラッソンさんのスタイルで種類保存翻訳としてparametricity翻訳

つまり、通常の型理論で用語を定義してから、それらを別の変換タイプでの変換として解釈される「強制レイヤー」に「変換」できます。たとえば、自然数の減少に対する索引付けによって引き起こされる翻訳では、laterモダリティが定義可能な翻訳後の理論で通常の用語を使用できます。これは、木のトポスで内部的に作業するという考えにかなり近いように思えます。

CoqHott / coq-forcingでこれらのアイデアを実装する新しいよりシンプルなCoqプラグインがあり、特にSI.vはステップインデックス付けのためにこの強制変換を構築しているようです。残念ながら、これはモデルの構築作業を行いますが、実際にはステップインデックス付きの定義に使用する例はありません(強制レイヤーで定義される代わりに変換されるのはForcing Translate eqであり、これはそれほど有益ではありません)。これを使用するのがどれほど(不便)であるかを実験してみることができます。


5

内国語のみで作業する場合は、校正アシスタントを使用できます。証明アシスタントは通常タイプ理論であるため、パワーセットを使用する場合と使用しない場合の技術は多少異なりますが、PropCoqはトポスでのCoqの解釈と一致しています。

ただし、機械を内部言語からモデルの解釈に導く一種の翻訳ツールとして使用することをお勧めします。これは良い考えですが、期待するほど有用ではないと思います。内部言語からモデルへの翻訳が機械的なものであることは事実ですが、残念ながら、それは有用になる前に多くのマッサージを必要とする複雑な翻訳を生成します。(これまでに、Lovevere-Tierneyの解釈をトポスロジックのトポスロジックで使用しようとした場合は、ご存知でしょう。)

もう1つの問題、つまり変換があります。多くの場合、モデルの既知の概念またはオブジェクトから開始し、内部言語での適切な説明または軸化を求めます。これは通常、大変な作業であり、実際の数学です。現在の校正アシスタントがどのように役立つかわかりません。

技術面では、形式化について心配する必要があります。

  • 内部言語の構文と規則
  • モデル
  • 解釈

それも大変な作業です。これらの線に沿ったいくつかのプロジェクトが行われました(たとえば、デカルト閉じたカテゴリーでの -calculusの解釈)。たとえば、ポーズを形式化している人を知りません。λ

要約すると、証明アシスタントを使用して、内部言語で何も問題がないことを確認することをお勧めします(実際には、CoqとAgdaを使用したホモトピー型理論で証明されているように、これは非常に良いアイデアです)後で英語に正式化されなかった新しい定理を開発するためですが、それを使用してモデルに関するステートメントを取得することは、多くの余分な作業なしでは機能しません。それはあなたが試してはならないということではありません!


Type Theory + Prop ~~ toposのリファレンスはありますか?これは私の直感でしたが、今まで誰もそれを言うのを見たことがありません。
Max New

また、モデル固有のロジックの場合、特定の公理はモデルに固有ですが、ロジック全体の構造はまだ高次のロジックにすぎませんよね?モデルの機能(ステップインデクシングペーパーのNext-time functorなど)を外部的に特徴付け、内部言語の公理として単に反映することを想像しています。考え出す素敵完全 axiomatizationsすることはまだ難しい数学のことが、私の希望は、マシンが配管の一部を自動化できるということであるだろう。
Max New

特にステップインデクシングの場合、モーダル演算子を使用してtoposロジックを拡張することは理にかなっています。この意志一般的にあなたがsubtopos気にどのような状況の特徴である、またはあなたが勉強したいこと(コ)モナドなどを持っている
アンドレイ・バウアー

型理論+プロップの場合、すべてのルールをじっと見つめ、プロップをサブオブジェクト分類子として解釈すると、すべてトポスで有効であることがわかります。
Andrej Bauer
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.