単純集合論に基づく型システム


11

私が理解しているように、コンピューターサイエンスのデータ型は、ラッセルのパラドックスなどの理由で集合論に基づいていませんが、実際のプログラミング言語のように、「自分自身を含まない集合」のような複雑なデータ型を表現することはできません実際には、型はそのメンバーの無限のセットであり、インスタンスのメンバーシップは、この型/セットに固有の機能の数によって定義されると言います(特定のプロパティ、メソッドの存在)?いいえの場合、反例は何でしょうか?


1
ラッセルのパラドックスは、それとは直接関係ありません。
アンドレイバウアー

回答:


11

型のセマンティクスのセットを回避する主な理由は、一般的なプログラミング言語では任意の再帰関数を定義できるためです。したがって、型の意味が何であれ、固定小数点プロパティを持たなければなりません。このようなプロパティを持つ唯一のセットはシングルトンセットです。

より正確には、再帰的に定義された型の値(通常、は関数型)は、固定小数点方程式によって定義されます。ここで、はどんなプログラムでも。が集合として解釈される場合、すべてのが固定小数点を持つと予想されます。ただし、このプロパティを持つ唯一のセットはシングルトンです。vττv=Φ(v)Φ:τττTf:TTT

もちろん、犯人は古典的な論理であることも理解できます。直観主義的な集合論を扱う場合、固定小数点プロパティを持つ集合が多数あると仮定することは一貫しています。実際、これはプログラミング言語のセマンティクスを提供するために使用されています。たとえば、

アレックス・シンプソン、直観的集合論のモデルにおける再帰型の計算的妥当性、純および応用論理の年報、130:207-275、2004


7

セマンティックサブタイピングは、サブタイピングがサブセットである型の基礎となるセット理論的解釈に基づいています。オリジナルの作品は、XML処理言語CDuceのコンテキストにおけるCastagnaによるものだと思います。タイプはXMLドキュメントのセットに対応します。それ以降、このアイデアはπ計算および計算オブジェクトおよびクラスに再適用ました。π


1
Castagnaの前駆体があります。昔、人々はすでにPERモデルのサブタイプ化のモデリングにサブセットリレーションを使用していました。そこでは、型は部分的同値関係(PER)に対応し、サブタイピングはそのような関係の単なる包含です。
アンドレイバウアー

4

いくつかの例外(Dave Clarkeが引用している例外)を除いて、型の単純な集合論的なセマンティクスは使いにくいです。その理由は、データの抽象化が集合論的なセマンティクスとあまりうまく機能しないためです。

α.ααU

[[α.αα]]=ΠXU.XX

UUXXXUα

α.αα


ニール、この答えは意味がないと思う。言語のセマンティクスが標準のFスタイルのセマンティクスである場合、コンパイラーは型システムに基づいて最適化をうまく行うことができます。セマンティクスが集合論的なセマンティクスである場合、最適化は不適切です。タイプにどのモデルを使用するかは、それには入りません。
サムトビンホッホシュタット

サム、私はあなたの主張を理解していません:あなたは私に完全に同意しているように見えます!標準の集合論的セマンティクスでは、そのタイプの唯一の住民がアイデンティティであることを証明できないため、別のセマンティクスが必要です。
ニールクリシュナスワミ

1
@Neel:あなたが説明する問題は、我々がセットから離れたとしても持続します。解決策は、セットのカテゴリを他のもので変更するのではなく、パラメトリック性を異なる方法でモデル化することです。つまり、ご存じのとおり、リレーショナルパラメトリックを使用する必要があります。しかし、私が間違っていなければ、物事はセットでもうまくいきます。セットの「唯一の」問題は、固定小数点の欠如です(再帰値と再帰型の両方のレベルで)。
アンドレイバウアー

1
ああ、私はあなたとサムを混乱させている理由を理解していると思います!私は確かに、素朴な集合論的モデルを使用することは不適切であると示唆するつもりはありません。ただ、このモデルはしばしば役に立たない答えを与えるだけです。もちろん、セットを使用して有用なモデル(つまり、リレーショナル)を構築できますが、質問で提案されている方法でセットとしての型を解釈することはもうありません。(また、ご存じのように、命令型多型では素朴なモデルはありませんが、パラメータは依然として予測的に意味があります。)
ニールクリシュナスワミ

1
あなたのポイントはセマンティクス間の対応についてだと思います-セット理論セマンティクスはSystem Fスタイルのポリモーフィズムには適していません。しかし、それは集合論的なセマンティクスに対するポイントはなく、私たちのセマンティクスが同意するべきであるという単なる声明です。言語で(たとえばTyped Racketのように)話している関数を表現できる場合、集合論的なセマンティクスが必要になる場合があります。
サムトビンホッホシュタット
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.