प्रकार के सिद्धांत में कैंटर का प्रमेय


9

कैंटर के प्रमेय में कहा गया है कि

किसी भी सेट ए के लिए, ए के सभी सबसेट के सेट में ए की तुलना में कड़ाई से अधिक कार्डिनैलिटी है।

क्या ZFC सेट्स का जिक्र किए बिना केवल प्रकारों / प्रस्तावों का उपयोग करके इस तरह से कुछ को एनकोड करना संभव है? एक भरोसेमंद रूप से टाइप की गई भाषा में इस प्रस्ताव को एन्कोड करने के लिए कोड या स्यूडोकोड की सराहना की जाएगी।

जवाबों:


9

संक्षिप्त उत्तर: हाँ! आप के माध्यम से जाने के लिए सबूत प्राप्त करने के लिए उस मशीनरी की आवश्यकता नहीं है।

एक सूक्ष्मता: यह उसके चेहरे पर लगता है कि बहिष्कृत मध्य का उपयोग होता है: एक सेट बनाता है D और एक संख्या d, और यह भी दिखाता है dD या dDजो एक विरोधाभास की ओर जाता है। लेकिन एक लेम्मा है, अंतर्ज्ञानवादी तर्क में सच है, जो बताता है:

 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.

बेशक, इन दाताओं के बारे में सोचने के लिए "सही" ढांचा, जिसे इस प्रमाण से गुजरने के लिए न्यूनतम आवश्यकताओं के रूप में देखा जा सकता है, लॉवेर्स का निश्चित बिंदु प्रमेय है जो प्रमेय को प्रत्येक कार्टेशियन बंद श्रेणी (इसलिए) में रखता है। विशेष रूप से, किसी भी उचित प्रकार के सिद्धांत में)।

पेपर में इस प्रमेय के बारे में सुंदर ढंग से लिखता है, बॉर्न बाउर ने सिंथेटिक कम्प्यूटेबिलिटी में निश्चित-बिंदु प्रमेयों पर , और मुझे संदेह है कि इस उत्तर को जोड़ने के लिए कुछ दिलचस्प चीजें हो सकती हैं।


अगर मैं सही ढंग से समझता हूं, की परिभाषा में cantor, nat"किसी भी सेट ए" nat -> Propकी भूमिका निभाता है और "ए के सभी सबसेट के सेट" की भूमिका निभाता है। के nat -> Propसाथ प्रतिस्थापित करने के निहितार्थ क्या होंगे nat -> bool? मैं का उपयोग कर लगता है कि Propरचनात्मक तर्क में अधिक उपयुक्त है, लेकिन शास्त्रीय तर्क और सेट सिद्धांत अक्सर मध्य बाहर रखा गया यह मानें कि, तो हम को बदलने के लिए सक्षम होना चाहिए Propके साथ boolऔर प्रमेय, सही साबित करने के लिए सक्षम होने के लिए अभी भी?
पाउला वेगा

1
हां, बूल के साथ प्रोप की जगह नेगेटिव मैप का उपयोग करके ठीक काम करता है। Lawvere के निश्चित बिंदु प्रमेय से पता चलता है कि आप इसे किसी भी प्रकार ए के साथ कर सकते हैं जिसमें एक नक्शा A -> कोई निश्चित बिंदुओं के साथ है, इसलिए एक प्रकार जिसमें 3 तत्व या सभी प्राकृतिक संख्याओं के प्रकार भी काम करते हैं
अधिकतम नया

@PaulaVega मैक्स काफी यह सब कहते हैं, लेकिन मैं उदाहरण के साथ प्रयोग करना की सलाह देते हैं, जैसे का उपयोग कर boolके बजाय Propऔर natऔर diag := fun b => negb (f b b), या बस की जगह Propके साथ natऔर का उपयोग कर diag := fun n => (f b b) + 1
कोड़ी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.