ทฤษฎีต้นเสียงของคันทอร์ในทฤษฎีประเภท


9

ทฤษฎีบทของคันทอร์กล่าวว่า

สำหรับเซต A เซตของเซตย่อยทั้งหมดของ A จะมีภาวะเชิงการนับที่มากกว่าตัว A

เป็นไปได้ไหมที่จะเข้ารหัสบางอย่างเช่นนี้โดยใช้เฉพาะประเภท / ข้อเสนอโดยไม่อ้างอิงชุด ZFC รหัสหรือ pseudocode สำหรับการเข้ารหัสข้อเสนอนี้ในภาษาที่พิมพ์อย่างพึ่งพาจะได้รับการชื่นชม

คำตอบ:


9

คำตอบสั้น ๆ : ใช่! คุณไม่จำเป็นต้องใช้เครื่องจักรจำนวนมากในการพิสูจน์หลักฐาน

หนึ่งความบอบบาง: ดูเหมือนว่าบนใบหน้าของมันว่ามีการใช้งานของกลางที่แยกออก: หนึ่งสร้างชุด D และตัวเลข dและแสดงให้เห็นว่า dD หรือ dDซึ่งนำไปสู่ความขัดแย้ง แต่มีบทแทรก, จริงในตรรกะปรีชาคือ:

 สำหรับงบทั้งหมด 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.

แน่นอนกรอบ "สิทธิ" ที่จะคิดเกี่ยวกับเรื่องเหล่านี้ซึ่งสามารถมองเห็นได้ว่าข้อกำหนดขั้นต่ำสำหรับการพิสูจน์นี้จะต้องผ่านก็คือทฤษฎีบทจุดคงที่ของ Lawvereซึ่งกล่าวถึงทฤษฎีบทในทุกหมวดหมู่คาร์ทีเซียนปิด โดยเฉพาะอย่างยิ่งในทฤษฎีประเภทที่สมเหตุสมผลใด ๆ )

Andrej Bauer เขียนอย่างสวยงามเกี่ยวกับทฤษฎีบทนี้ในกระดาษในทฤษฎีบทคงที่ในการคำนวณสังเคราะห์และฉันสงสัยว่าอาจมีสิ่งที่น่าสนใจเพื่อเพิ่มคำตอบนี้


ถ้าฉันเข้าใจอย่างถูกต้องตามคำจำกัดความของcantorคุณnatเล่นบทบาทของ "ชุดใดก็ได้" และnat -> Propเล่นบทบาทของ "ชุดย่อยทั้งหมดของ A" สิ่งที่จะเป็นผลกระทบของการแทนที่nat -> Propด้วยnat -> bool? ฉันเดาว่าการใช้Propมีความเหมาะสมในตรรกะเชิงสร้างสรรค์มากกว่า แต่ตรรกะคลาสสิกและทฤษฎีเซตมักจะถือว่าไม่รวมกลางดังนั้นเราควรจะสามารถแทนที่Propด้วยboolและยังสามารถพิสูจน์ทฤษฎีบทได้ใช่ไหม
Paula Vega

1
ใช่การแทนที่ Prop ด้วยบูลนั้นทำงานได้ดีโดยใช้แผนผังการปฏิเสธ ทฤษฎีบทจุดคงที่ของ Lawvere แสดงให้เห็นว่าคุณสามารถทำได้กับประเภท A ใด ๆ ที่มีแผนที่ A -> A ที่ไม่มีคะแนนคงที่ดังนั้นประเภทที่มี 3 องค์ประกอบหรือประเภทของตัวเลขธรรมชาติทั้งหมดก็ใช้ได้
Max ใหม่

@PaulaVega แม็กซ์สวยมากกล่าวมันทั้งหมด แต่ผมขอแนะนำให้เล่นรอบกับตัวอย่างเช่นใช้boolแทนPropและnatและdiag := fun b => negb (f b b)หรือเพียงแค่การแทนที่Propด้วยและการใช้nat diag := fun n => (f b b) + 1
ดี้
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.