タイプ割り当てシステム(TA)とHindley-Milnerシステムの関係


8

最近、型理論/型システムとラムダ計算の研究を始めました。

Church and Curryスタイルの単純型付きラムダ計算についてはすでに読みました。最後の1つは、タイプ割り当てシステム(TA)とも呼ばれます。

TAと、MLやHaskellのような言語のシステムであるHindley-Milner(HM)の関係について考えています。

ラムダ計算と結合子:はじめに(Hindley)の本は、TAは多態性であると述べています(ページ119)。それは、HMやSystem-Fなどのシステムでの多態性と同じ意味ですか?

TAは強力な正規化特性を持つと言われているため、完全なチューリングではありません。HMシステムを使用する言語は、Haskellなどのように完全なものになりつつあります。したがって、HMシステムでは、無限ループような用語が型を受け取ることができるようになっている必要があります。それは正しいですか、それとも何か不足していますか?Ω

とにかくTAとHMの関係を知りたい。


1
型付き割り当てシステムについて聞いたことがありません。私はそれをググって、そしてこの質問を3番目の答えとして得ました、それはそれが非常にニッチでなければならないことを意味します。それは何ですか?また、「無限ループ」とは何ですか?停止しない計算を意味しますか?
gardenhead 2016

型の割り当ては、カリーによって作成された単純型付きラムダ計算のバージョンです。あなたは言及された本でそれを探すべきです。そして、はい、はデフォルトの無限ループ微積分または非停止プログラムです。λΩλ
ラファエルカストロ

私は他のより理論的/数学的なスタック交換でこの質問をするべきだと思います。したほうがいい?
ラファエルカストロ

あなたが試すことができます。cstheoryとmathoverflowを試してみてください。ただ、「最近勉強を始めた」とおっしゃっていたので、それ以上の質問だったら驚きます。単純な概念を説明するために、あまり一般的でない用語を使用していると思います(ただし、間違っている可能性もあります)。たとえば、無限ループは通常、ボトムタイプと呼ばれます(私が正しく理解している場合)。
gardenhead

1
間違いなく私の質問は研究レベルではありません。私の質問は、「ねえ、私はこの基本的な概念を正しく理解していますか?」のようなものです。しかし、私は試みます、多分私は答えを得ます。
ラファエルカストロ

回答:


9

システムFとそのサブシステムHMには、普遍的な定量化のための型フォーマーがあります。

τ::=x.τ | ...

Hindley / Seldinのシステムにはありません。それが大きな違いです。

現在、システムFには決定可能な型推論がありません。HMは、型推論を合理的に表現可能なパラメトリック多態性と組み合わせる方法です。HMは、最も外側の普遍的な数量化のみを許可することでこれを実現します。つまり、すべてのタイプが次の形式になります。

x1x2...xn.τ

ここで、は量指定子なし(および)です。HMは、この方法で入力できるプログラムのみが許可されることを保証するルールシステムを提供します。これは「let-polymorphism」によって実現されます。Hindley / Seldinのシステムはそれを何もしません。その後、第13章で、Hindley / Seldinはピュアタイプシステム(PTS)を紹介します。このシステムFは特殊なケースです。HMをPTSとして表現できるかどうかはわかりません。N 0τn0


強力な正規化の問題は直交しています。システムFとHMは強く正規化されていますが、固定小数点コンビネーターなどを導入することで簡単に修正できます。 L. DamasとR. Milnerによる論文 Principal type-schemes of functionprogramsさらにはこう述べています:「たとえば、再帰は、多相固定小数点演算子を追加するだけで導入できるので省略されます...固定小数点の紹介、システムTuringを完全なものにすることは、型推論の観点から問題を引き起こしません。


HM = TA +「let-polymorphism」と考えるのは正しいでしょうか?これまでのところ、ラムダ計算と結合子(Hindley)という本は、型に関する普遍的な数量化については何も述べていません。TAは型変数を使用しますが、これらの型の範囲については何も知りません。明確にするために、私はまだHMシステムを研究していませんが、何に使用されているかはわかっています。
Rafael Castro

@RafaelCastro目を細める場合... CSの経歴がある場合、PierceのTAPLの本 は、おそらくHMとタイピングシステム全般のよりわかりやすい説明です。私が参照したDamas / Milnerの論文は、古臭いタイプセッティングを過ぎて見ることができれば、非常に読みやすいです。私は最初の博士課程の学生にそれを与えます。読んでください!Hindley / Seldinは少しフォーマルな面があります。
Martin Berger

@RafaelCastro型変数の範囲は、型によって異なります。いろんなタイプ。これが、システムFが命令的である理由です。
Martin Berger

ありがとうございました。はい、私はCSの学部生なので、PierceのTAPLの本を試します。
Rafael Castro

@RafaelCastro TAPLを読んで、そこで議論されている型付けシステムを実装することほど、型について学ぶより良い方法はないでしょう。
Martin Berger
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.