Định lý Cantor trong lý thuyết loại


9

Định lý Cantor nói rằng

Đối với bất kỳ tập hợp A nào, tập hợp tất cả các tập hợp con của A có số lượng thẻ lớn hơn chính A.

Có thể mã hóa một cái gì đó như thế này chỉ bằng cách sử dụng các loại / đề xuất mà không cần tham khảo các bộ ZFC? Mã hoặc mã giả để mã hóa đề xuất này bằng ngôn ngữ được gõ phụ thuộc sẽ được đánh giá cao.

Câu trả lời:


9

Câu trả lời ngắn gọn: có! Bạn không cần nhiều máy móc để có được bằng chứng.

Một sự tinh tế: dường như trên mặt của nó có một cách sử dụng phần giữa bị loại trừ: người ta xây dựng một tập hợp và một số d , và cho thấy rằng d D hoặc d D dẫn đến mâu thuẫn. Nhưng có một bổ đề, đúng trong logic trực giác, nói rằng:DddDdD

 for all statements P,(P¬P)

Điều này đủ, cùng với các bằng chứng thông thường. Lưu ý rằng nói chung "từ chối" có thể có một số sắc thái tinh tế trong logic xây dựng / trực giác (không có sự lựa chọn), do đó bạn phải thực hiện do "không thể đảo ngược".

Một bằng chứng rất chuẩn trong Coq (vì lý do nào đó tôi không thể tìm thấy trực tuyến) có thể như sau:

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.

Tất nhiên, khung "đúng" trong đó suy nghĩ về các maters này, có thể được coi là các yêu cầu tối thiểu để chứng minh này được đưa ra, là định lý điểm cố định của Lawvere trong đó nêu định lý trong mọi Thể loại Đóng của Cartesian (vì vậy trong đặc biệt, trong bất kỳ lý thuyết loại hợp lý).

Andrej Bauer viết rất hay về định lý này trong bài báo Về các định lý điểm cố định trong khả năng tính toán tổng hợp , và tôi nghi ngờ có thể có một số điều thú vị để thêm vào câu trả lời này.


Nếu tôi hiểu chính xác, theo định nghĩa của bạn cantor, natsẽ đóng vai trò là "bất kỳ tập hợp A" nào và nat -> Propđóng vai trò là "tập hợp của tất cả các tập hợp con của A". Điều gì sẽ có ý nghĩa của việc thay thế nat -> Propbằng nat -> bool? Tôi đoán sử dụng Proplà phù hợp hơn trong logic xây dựng, nhưng logic cổ điển và lý thuyết tập hợp thường giả định loại trừ giữa, vì vậy chúng ta sẽ có thể thay thế Propbằng boolvà vẫn có thể chứng minh định lý, phải không?
Paula Vega

1
Có, thay thế Prop bằng bool hoạt động tốt bằng cách sử dụng bản đồ phủ định. Định lý điểm cố định của Lawvere cho thấy bạn có thể làm điều đó với bất kỳ loại A nào có bản đồ A -> A không có điểm cố định, do đó, một loại có 3 yếu tố hoặc loại của tất cả các số tự nhiên cũng hoạt động
Tối đa

@PaulaVega Max khá nhiều nói lên tất cả, nhưng tôi khuyên bạn nên chơi đùa với ví dụ này, ví dụ như sử dụng boolthay vì Propnatdiag := fun b => negb (f b b), hoặc chỉ thay thế Propvới natvà sử dụng diag := fun n => (f b b) + 1.
cody
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.