型理論におけるカントールの定理


9

カンターの定理は、

どのセットAについても、Aのすべてのサブセットのセットのカーディナリティは、A自体よりも厳密に大きくなります。

ZFCセットを参照せずにタイプ/命題のみを使用してこのようなものをエンコードすることは可能ですか?この命題を従属的に型付けされた言語でエンコードするためのコードまたは疑似コードがいただければ幸いです。

回答:


9

短い答え:はい!証明を通過するためにそれほど多くの機械は必要ありません。

一つ微妙:除外され、中央の使用があることは、それの顔に思える:1セットのビルドと数dはどちらかということ、そしてショーD DまたはD D矛盾につながります。しかし、直観主義的な論理に当てはまる、次のような補題があります。DddDdD

 for all statements P,(P¬P)

通常の証明とともに、これで十分です。一般に、「サージェクション」は、建設的/直観的なロジック(選択なし)に微妙なニュアンスをもたらす可能性があるため、代わりに「正しい反転可能」を使用する必要があることに注意してください。

Coqの非常に標準的な証明(何らかの理由でオンラインで見つけることができなかった)は次のようになります。

Inductive right_invertible {A B:Type}(f : A->B):Prop :=
| inverse: forall g, (forall b:B, f (g b) = b) -> right_invertible f.


Lemma case_to_false :  forall P : Prop, (P <-> ~P) -> False.
Proof.
  intros P H; apply H.
    - apply <- H.
      intro p.
      apply H; exact p.
    - apply <- H; intro p; apply H; exact p.
Qed.


Theorem cantor :  forall f : nat -> (nat -> Prop), ~right_invertible f.
Proof.
  intros f inv.
  destruct inv.
  pose (diag := fun n => ~ (f n n)).
  apply case_to_false with (diag (g diag)).
  split.
  - intro I; unfold diag in I.
    rewrite H in I. auto.
  - intro nI.
    unfold diag. rewrite H. auto.
Qed.

もちろん、この証明を通過するための最小要件と見なすことができる、これらの問題について考える「正しい」フレームワークは、定理がすべてのデカルト閉じたカテゴリーで保持されていることを示すローヴェルの不動点定理です(特に、合理的な型理論では)。

Andrej Bauerがこの定理について論文「合成計算能力の固定小数点定理について」で美しく書いています。この答えに興味深いことがあると思います。


私が正しく理解している場合、の定義ではcantornat「任意のセットA」nat -> Propの役割を果たし、「Aのすべてのサブセットのセット」の役割を果たします。交換の意味は何でしょうnat -> Propnat -> boolProp構成的論理では使用する方が適切だと思いますが、古典的論理と集合論はしばしば除外された中間を想定しているので、定理に置き換えPropbool、定理を証明できるはずですよね?
ポーラベガ

1
はい、Propをboolで置き換えると、否定マップを使用して正常に機能します。Lawvereの固定小数点定理は、マップA-> Aに固定点がないタイプAで実行できることを示しているため、3つの要素を持つタイプまたはすべての自然数のタイプも機能します
Max New

@PaulaVegaマックスはかなりそれをすべて言うが、私は例えば、一例で遊んで使用することをお勧めしますbool代わりにPropし、natかつdiag := fun b => negb (f b b)、または単に交換するPropnatして使用してdiag := fun n => (f b b) + 1
cody
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.