MLTTでの型推論と型チェックの決定可能性


9
  1. マーティン・LOFのではタイプのアン直観主義論:叙述パートにはタイプがチェックしていることを証明された決定可能であるの対象とされてtypeable閉じtypeable用語の正規化定理を証明することによって、最初の場所インチ 一方、複数の場所(Wikipedia、Nördstromなど)で記述されており、(意図的な)MLTTでの型チェックは決定可能であることがわかりました。それらは暗黙的に型付け可能な用語に制限していますか?aa

  2. タイプ可能な用語に限定しない場合、意図的なMLTTでの型推論または型チェックの決定可能性について何か知っていますか?たとえば、型なしの用語を認識する決定プロセスがあるかもしれません。たとえば、どのコンストラクターにも対応しないフォームに正規化することによって、または型なしの用語に非周期的な削減のシーケンスがないことを示すことなどです。

    私は文学であまり見つけることができませんでした。

回答:


9

確かに決定問題

(前)期を考えるタイプありAようAは MLTTに誘導されますか?aa

たまに書か(および型推論の問題と呼ばれます)は決定可能です。つまり、aが適切に型指定されているかどうかに関係なく、答えを得ることができます。実際、MLTTに基づくすべての証明チェッカーは、この決定アルゴリズムのいくつかのバージョンを実装しています!a  a

Γa  

a

その結果、適切に型付けされた用語の正規化は、型推論問題を決定可能にするための必要条件です。

Nordström、Petersson、Smithの紹介を確認することをお勧めします。


型理論を正規化するための型推論アルゴリズムの一般的な説明は知りませんが、Pollackは、純粋な型システムでの型チェックのかなり優れた概要を示しています(ただし、最新技術は改善されています)。


プレタイプ(疑わしいタイプを表す用語)はどうですか?それらのステータスも明確にする価値があるかもしれません。
Andrej Bauer

Cody、ありがとうございます。ALFやCoqなどの証明アシスタントによって実装された型チェックアルゴリズムを参照していますか?私の理解では、それらはそれらが基づいているMLTTの特定のバリアントのアルゴリズムです(Coqの場合はCIC、ALFの場合はそれ以外)。しかし、これらが'73の特定のMLTTの型チェックにどのように使用されるかは不明です。特に、ユニバース階層やその他の詳細な違いがあると、何かが変わる可能性があります...
Josh Chen

...またはこれらの違いをカバーするのに十分一般的なアルゴリズムですか?そのような一般性で結果を見つけるのに苦労しています。私の文献検索で私が見ているように見えるのは、非常に具体的な結果であり、しばしば、いくつかの証明アシスタントの基礎となる理論に合わせて調整されています。
Josh Chen

1
@JoshChenアルゴリズムは、Andrejが説明したように、型指定検索と、よく型付けされた用語での正規化ステップを交互に行うため、非常に一般的なものです。残念ながら、アルゴリズムの一般的な説明はわかりませんが、回答に部分的な参照を追加します。
cody

1
@JoshChen明確にはしていませんが、推論が決定できない「カレースタイル」の用語の推論型を参照している可能性があります。ここで詳しく説明します:cs.stackexchange.com/a/12957/988
cody

8

型検査アルゴリズムが機能する理由についての私の理解を伝える一般的な観察によって、答えをcodyで補足したいと思います。

型理論の広いクラスでは、型チェックまたは推論は、それが型付けされていることを事前に確立していない限り、用語を正規化しようとしない方法で実行されます。同様に、型であることをすでに確認していない限り、型を正規化することは決してありません。このため、正規化は確実に終了します(別の証明が必要です)。

特定のアルゴリズムを見て、それらが実際にこのように機能することを確認する必要がありますが、実際には機能します。何が彼らをカチカチさせるのかを述べたかっただけです。それ以上に、それが彼らがカチカチ音を立てるのを止める理由です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.