1 पॉइंट द्वारा GN⁺ 2025-06-15 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Peano arithmetic (PA) यांत्रिक गणना प्रक्रिया को व्यक्त कर सकता है, इसलिए PA में हर एकल Goodstein sequence के समाप्त होने को सिद्ध किया जा सकता है
  • Cantor normal form और hereditary base notation के माध्यम से Goodstein sequence और उसके अवरोही स्वभाव आदि को व्यक्त किया जाता है, और इसके कारण सीमित लंबाई का proof construction संभव होता है
  • Induction (strong induction / transfinite induction) के माध्यम से किसी विशेष degree के ordinal तक proofs को क्रमशः विस्तारित किया जा सकता है
  • PA हर natural number n के लिए “G(n) 0 तक पहुँचता है” को सिद्ध कर सकता है, लेकिन पूरे Goodstein theorem (सभी n) का समग्र proof संभव नहीं है
  • PA के साथ calculation, data structure (List, Pair आदि), यहाँ तक कि programming language (Lisp) स्वयं का encoding और अपने ही proof process का encoding भी पर्याप्त रूप से लागू किया जा सकता है

परिचय और समस्या की पृष्ठभूमि

  • यह लेख बताता है कि Peano arithmetic (PA) Goodstein sequence के “हर n के लिए 0 तक पहुँचना (G(n) terminates)” को सिद्ध कर सकता है
  • यह तर्कशास्त्रियों को स्वयंसिद्ध लग सकता है, लेकिन प्रोग्रामर समझ सकें इसलिए इसे computation encoding के दृष्टिकोण से समझाया गया है
  • Goodstein sequence के हर मामले के लिए PA के भीतर ठोस proof routine बनाई जा सकती है

Ordinals (क्रमसूचक संख्याएँ) और Goodstein sequence

  • Von Neumann पद्धति से ordinals (Sets as Ordinals) बनाए जाते हैं
    • 0 शून्य समुच्चय है, 1 = {0}, 2 = {0,1}, ω = {0,1,2,…}, ω+1 = {0,1,2,…,ω} आदि, और क्रम अच्छी तरह परिभाषित होता है
  • Goodstein sequence को Cantor normal form का उपयोग करने वाली hereditary base notation से वर्णित किया जाता है
    • उदाहरण: ω^ω है ((1,ω)), अर्थात ((1,(1,1)))
    • < क्रम का निर्णय हर पद के exponent/coefficient पर lexicographic comparison से किया जाता है

Induction और transfinite induction

  • Peano arithmetic का induction: यदि 0 के लिए सत्य है, और n→n+1 के लिए सत्य है, तो यह सभी natural numbers पर सत्य है
  • Strong induction भी PA में सिद्ध किया जा सकता है
  • Transfinite induction: ZFC आदि में इसे infinite ordinals तक विस्तारित किया जा सकता है, और Cantor normal form में लिखी संख्याओं पर लागू किया जा सकता है
    • Theorem 1: Cantor normal form के भीतर अवरोही sequence हमेशा सीमित होती है
    • Theorem 2: Cantor normal form संख्याओं पर transfinite induction का उपयोग संभव है

PA में transfinite induction और Goodstein sequence proof की लंबाई

  • PA किसी भी n के लिए Goodstein sequence के समाप्ति-प्रमाण का निर्माण कर सकता है
    • Cantor normal form की tower height m=O(log* n) (iterated log) के अनुसार proof बनाया जा सकता है
    • हर चरण में m proofs को जोड़कर कुल proof length O(m^2) बनती है, या विशेष notation (ω[m]) लाने पर इसे O(m log m) तक घटाया जा सकता है
  • लेकिन पूरे Goodstein theorem (सभी n) का proof PA में असंभव है (ε0 के लिए transfinite induction संभव नहीं)
    • यदि यह संभव होता, तो PA की consistency भी सिद्ध की जा सकती, जो Gödel की second incompleteness theorem से टकराती

PA में program और data structure का encoding

  • PA computation/program/data structure (संख्याएँ, जोड़े, सूची, और अन्य सभी संरचनाएँ) को पर्याप्त रूप से encode कर सकता है
  • निम्न जैसे तरीकों से विभिन्न कार्य लागू किए जा सकते हैं:
    • आधारभूत logic और operations (+, *, pow, //, %, min, max आदि)
    • pattern matching और conditional branching (if, cond आदि)
    • एक संख्या को दो संख्याओं (pair) के रूप में encode करना, या pair से फिर list जैसी अधिक जटिल संरचनाओं तक बार-बार विस्तार करना (recursive list, tree, text आदि)
  • इन data structure encodings के जरिए किसी भी virtual machine/programming language (जैसे Lisp) interpreter तक बनाया जा सकता है

Lisp में bootstrap और encoding

  • Lisp को उदाहरण बनाकर, आधारभूत numeric और logical operations, data structures, programming language interpreter लागू करने के तरीके समझाए गए हैं
  • Lisp की संरचना (command/argument mapping, special forms, macro आदि) सब PA में उपयुक्त function combinations से लागू की जा सकती है
  • इससे आगे PA के भीतर PA का proof process, logical proof procedure, self-referential structure तक सब प्रतीकात्मक रूप से encode और लागू किए जा सकते हैं

PA के भीतर स्वयं logic का encoding

  • mathematical logic में first-order logic की proof process को PA की संख्याओं के data के रूप में encode किया जा सकता है
  • हर proof step/proposition/inference rule/valid proof check को संख्यात्मक functions/list processing की श्रृंखला के रूप में पहचाना और संसाधित किया जा सकता है
  • ऐसा meta-level, self-referential encoding Gödel की incompleteness और Halting problem के proofs तक जुड़ता है

निष्कर्ष

  • Computation, data structures, programs, यहाँ तक कि logical proof process भी PA में पर्याप्त रूप से encode, prove और interpret किए जा सकते हैं
  • इसलिए किसी भी Goodstein sequence (n के लिए G(n) का समाप्त होना) को PA के भीतर ठोस रूप से सिद्ध किया जा सकता है
  • लेकिन पूरे Goodstein theorem (सभी n) के लिए "PA, PA के भीतर Goodstein theorem को सिद्ध करता है" जैसा proof तर्कशास्त्र की सीमाओं के कारण असंभव है
  • प्रोग्रामर के दृष्टिकोण से PA गणना स्वयं को encode कर सकने वाला एक पूर्ण logical foundation है

1 टिप्पणियां

 
GN⁺ 2025-06-15
Hacker News टिप्पणी
  • यह लेख मेरे उस Stack Overflow सवाल को ब्लॉग पोस्ट में बदला गया रूप है। इसमें Peano axioms से क्या-क्या सिद्ध किया जा सकता है, उसकी सीमाएँ, और Peano axioms के भीतर Lisp को कैसे bootstrap किया जाए, इसकी व्याख्या शामिल है। ज़्यादातर मज़ाक दूसरे सेक्शन में हैं। सुधार या अतिरिक्त सवाल भी स्वागतयोग्य हैं।
    • यह पढ़ते समय मैंने "Why Lisp?" सेक्शन में एक जगह parentheses मेल न खाने की बात देखी (defun not (x) (if x false true) उदाहरण देखें)। जैसे ही कोई parentheses इस्तेमाल करना शुरू करता है, मैं सहज ही देखता हूँ कि वे सही तरह से बंद हुए हैं या नहीं। बाद में जब यह लिखा देखा कि "parentheses संतुलित हैं या नहीं, यह कंप्यूटर से प्रोग्राम कराना आसान है", तो मैं ज़ोर से हँस पड़ा। ऐसा मज़ाक सच में बहुत मज़ेदार था, और "Basic Number Theory" सेक्शन में ; After a while, you stop noticing that stack of closing parens. वाली टिप्पणी भी यादगार लगी। काफ़ी समय बाद फिर से Lisp से सामना हुआ, और लेख सच में बहुत मज़ेदार था।
    • यह लेख सच में बहुत दिलचस्प है। मैंने अभी सिर्फ़ परिचय ही पढ़ा है, लेकिन यह बात रोचक है कि Peano arithmetic (PA) के भीतर Goodstein sequence के हर विशेष मामले के 0 तक पहुँचने को सिद्ध किया जा सकता है, लेकिन ‘सभी’ मामलों के 0 तक पहुँचने को सिद्ध नहीं किया जा सकता। (असल में यह अपेक्षित नतीजा है, फिर भी रोमांचक है।) और सिर्फ़ Peano arithmetic से computation को encode किया जा सकता है, यह बात भी बहुत अजीब लगती है। सिद्धांत की दृष्टि से यह स्वाभाविक है, लेकिन मैंने पहले self-reference की एक और परत के बारे में नहीं सोचा था। संयोग से हाल ही में मैंने set theory थोड़ा और पढ़ने की कोशिश की थी और Intro to Set Theory में Goodstein sequence वाले हिस्से तक पहुँचा था। अगर कोई advanced set theory की किताब, या Peano arithmetic में गहराई से जाने वाली किताब सुझा सके तो आभारी रहूँगा। Goodstein theorem के proof के लिए PA क्यों काफ़ी नहीं है, यह समझना मेरा छोटा-सा लक्ष्य है, लेकिन कोई दूसरा रास्ता सुझाना भी स्वागतयोग्य है।
    • लेख में omega के दो स्थानों पर \omega लिखना भूल गए हैं।
  • यह Boyer-Moore theory से बहुत मिलता-जुलता है। वह theory, Peano axioms के स्तर पर गणित को खड़ा करती है। Boyer और Moore ने इस theory को लागू करने वाला एक automated theorem prover विकसित किया था, और GNU Common LISP पर चलने वाली उसकी एक कॉपी भी है। "A Computational Logic" पेपर और nqthm implementation भी देखने लायक हैं। पेपर में उदाहरण के तौर पर यह बात प्रभावशाली लगी कि Peano axioms से शुरुआत करने पर primes के multiplication जैसे जटिल theorems कठिन होते हैं, लेकिन commutativity of addition, distributivity of multiplication, और GCD function से जुड़े theorems अच्छी तरह सिद्ध किए जा सकते हैं।
  • मेरी पृष्ठभूमि गणित और प्रोग्रामिंग दोनों में है, और व्यक्तिगत रूप से मुझे Goodstein theorem की independence वाला हिस्सा इस वजह से और भी दिलचस्प लगता है कि उसे self-reference के ज़रिए बायपास किया जा सकता है। मुझे लगता है कि PA+"PA is omega-consistent" जैसा अनुमान जोड़ दिया जाए तो Goodstein theorem सिद्ध हो जाना चाहिए, और शायद इससे epsilon_0 तक transfinite induction भी संभव हो। EDIT: शायद सिर्फ़ "PA is consistent" भी काफ़ी हो?
    • दुर्भाग्य से ऐसा नहीं है। और सिर्फ़ Con(PA) ही नहीं, बल्कि किसी भी universally quantified formula से भी यह काफ़ी नहीं होता। संबंधित Math StackExchange उत्तर देखें। पहले सवाल के बारे में, omega-consistency को PA के formula के रूप में कैसे encode किया जाता है, यह जानने की जिज्ञासा है; तुरंत समझ नहीं आया।
    • Stack Overflow पर सवाल पूछने वाला मैं ही हूँ। मैंने सवाल में कुछ उत्तरों के लिंक और जोड़ दिए हैं। मूल बात यह है कि सिर्फ़ "PA is consistent" काफ़ी नहीं है, लेकिन "जो PA में सिद्ध है, वह सत्य है" जैसी एक तरह की "uniform reflection principle" हो तो वह काफ़ी है। मैं पक्का नहीं कह सकता कि यह omega-consistency के पूरी तरह बराबर है, लेकिन Wikipedia की व्याख्या के अनुसार ऐसा ही लगता है। अगर T omega-consistent है, तो उसका अर्थ कुछ ऐसा है कि "T + RFN_T + सभी true formulas का समुच्चय consistent है", और इसे "T + RFN_T सत्य है" के समतुल्य पढ़ा जा सकता है।
    • मुझे इस तरह की inductive (recursive) संरचना भी पसंद है। आख़िरकार हम इस बारे में meta-proof बना रहे हैं कि PA क्या सिद्ध करता है, और अगर आप PA पर भरोसा करते हैं, तो इस meta-proof पर भी भरोसा कर सकते हैं। सिर्फ़ "PA is consistent" से काम चल जाने वाली बात मुझे पूरी तरह स्पष्ट नहीं लगती। मेरे हिसाब से PA+"PA consistency" ऐसे model की अनुमति देगा जिसमें standard natural numbers के दायरे में Goodstein theorem सत्य हो, लेकिन साथ ही किसी nonstandard integer N के लिए Goodstein theorem असत्य हो। omega-consistency जैसा अधिक शक्तिशाली कथन ऐसे मामलों को बाहर कर सकता है।
    • Math Exchange पोस्ट में कहा गया है कि PA+transfinite induction(epsilon_0) से PA खुद सिद्ध हो जाता है। मुझे लगता है कि PA+"PA consistency" से epsilon_0 तक transfinite induction सिद्ध की जा सकती है।
    • अब यह विषय शायद उन विवरणों से आगे चला गया है जिन पर मैं आराम से बोल सकूँ। ChatGPT के अनुसार, "PA+PA consistency" से ही काम नहीं चलता। ChatGPT ने इतने logic की किताबें पढ़ी होंगी कि अगर वह ऐसा कहता है तो शायद भरोसा किया जा सकता है।
  • Stack Overflow पर JoJoModding को लिखा गया मेरा कमेंट सही नहीं है। मैंने कहा था, "nonstandard PA models में infinite natural numbers होते हैं, इसलिए भले ही PA यह सिद्ध कर दे कि उसने कोई proof बना लिया है, वह यह सिद्ध नहीं कर सकता कि उसकी लंबाई finite है"। लेकिन वास्तव में अगर PA यह सिद्ध करता है कि "PA ने X को सिद्ध किया", तो PA, X को भी सिद्ध करता है। महत्वपूर्ण बात nonstandard models का अस्तित्व नहीं, बल्कि यह है कि standard natural numbers का model, PA का model है। इसलिए अगर "PA यह सिद्ध करता है कि उसने X को सिद्ध किया", तो वस्तुतः standard finite natural number के अनुरूप एक proof बनता है, और उसी संख्या का उपयोग करके PA के भीतर X का वास्तविक proof बनाया जा सकता है।
    • मेरे पास तर्क को विस्तार से जाँचने का समय नहीं है, लेकिन सामान्य भाषा में देखें तो फ़र्क यह है कि बात "PA proves forall n, G(n)" की नहीं बल्कि "PA proves forall n, Provable(G(n))" की है। मैं logic में बहुत मज़बूत नहीं हूँ, इसलिए अगर कोई ठोस रूप से समझा सके कि forall n, Provable(P(n)) को सिद्ध करने से Provable(forall n, P(n)) क्यों सिद्ध नहीं होता, तो आभारी रहूँगा।
    • "अगर PA यह सिद्ध करे कि 'PA proves X', तो PA, X को सिद्ध करता है" — यह कथन सही नहीं है। PA के भीतर एक ऐसा function बनाया जा सकता है जो सभी संभावित proofs खोजे, और मैंने उत्तर के आख़िरी हिस्से में इसका खाका भी दिया है। इससे will-return, opposite-return जैसे functions भी बनाए जा सकते हैं, और यह halting problem के मानक proof से मेल खाता है। opposite-return(opposite-return, opposite-return) वाले मामले पर सोचें: अगर PA सिद्ध करे कि opposite-return return करता है, तो यह भी सिद्ध होगा कि वह वास्तव में return नहीं करता; और अगर सिद्ध करे कि वह return नहीं करता, तो यह सिद्ध होगा कि वह return करता है। अगर PA यह जैसी कोई और मज़बूत बात मान ले कि "जो सिद्ध करने योग्य है वह वास्तव में सिद्ध है", तो यह सीधे Gödel के second incompleteness theorem की दिशा में जाता है, यानी PA inconsistent हो जाएगा। इसलिए सिर्फ़ "PA proves" और "PA proves that it proves" के बीच का अंतर बनाए रखना ज़रूरी है।
  • सिर्फ़ pure lambda calculus भी काफ़ी है, क्योंकि lambda calculus खुद computation को encode करता है।
  • मैं किसी से inductive data types के बारे में बात कर रहा था और उसे zero/succ से बनी Nat की परिभाषा दिखाई (जैसी Lean या Rocq में दिखती है)। उसने पूछा, "क्या सिर्फ़ इतना काफ़ी है?", "क्या हमें Peano arithmetic चाहिए? क्या inductive data type से भी ज़्यादा primitive कुछ है?" इससे मुझे लगा कि यह बार-बार याद दिलाना अच्छा है कि Peano arithmetic को स्वयंसिद्ध मान लेना ज़रूरी नहीं; यह भी एक design choice है।
    • "क्या inductive data type से भी ज़्यादा मूलभूत कुछ है?" इसके जवाब में, मुझे लगता है कि natural numbers खुद inductive data type से ज़्यादा primitive हैं। हर inductive data type को natural numbers और कुछ गिने-चुने primitive type constructors (Π, Σ, =, Ω) से बनाया जा सकता है।
  • Kirby-Paris theorem पर Q&A देखें।
  • PA consistency से जुड़ा एक वीडियो साझा कर रहा हूँ, जिसमें बताया गया है कि PA के भीतर क्या सिद्ध किया जा सकता है: YouTube लिंक
    • non-logicians के लिए यह वह हिस्सा है जिसे ज़रूर समझाना पड़ता है। Gödel के second incompleteness theorem के अनुसार, अगर PA अपनी ही consistency सिद्ध कर सके, तो PA inconsistent हो जाएगा (और तब false statements सहित कुछ भी सिद्ध किया जा सकेगा)। यह वीडियो यह नहीं दिखाता कि PA inconsistent है; बल्कि यह दिखाता है कि PA एक कमज़ोर अर्थ में अपनी "consistency" सिद्ध कर सकता है। अगर logic की बुनियाद का ज्ञान न हो तो इसे ठीक-ठीक समझना कठिन है, लेकिन यह काफ़ी रोचक है।
  • यह विषय यहाँ 123 points पा रहा है, जबकि असली SO पोस्ट पर सिर्फ़ 11 upvotes हैं।
    • Stack Overflow पर upvote करने के लिए 15 points चाहिए होते हैं। reputation की वजह से लोग वहाँ पोस्ट करने से हिचकते भी हैं, और लगता है कि 15-point की सीमा upvoting को रोकती है।
  • क्या सिर्फ़ computation काफ़ी है? computable reals, सभी reals का सिर्फ़ एक subset हैं।
    • मुझे लगता है कि "real numbers" नाम ही कुछ हद तक भ्रामक है। इसे वास्तविक भौतिक ratios के रूप में भी समझा जा सकता है। उदाहरण के लिए, अगर कोई 180.255 pounds है, तो उसका अर्थ Jones के वास्तविक body weight और standard pound के बीच का वास्तविक physical ratio है। ऐसे ratios भी भौतिक रूप से मौजूद हैं। इस अर्थ में reals को physical ratios के रूप में समझा जा सकता है। दूसरी ओर, आजकल प्रचलित दृष्टिकोण यह है कि numbers को reality से अलग एक abstract concept की तरह देखा जाए, जो खास तौर पर Platonist दृष्टिकोण है। लेकिन वास्तविक दुनिया में अनंत precision के साथ किसी चीज़ को मापना या व्यक्त करना संभव नहीं है। उदाहरण के लिए, 50 digits से अधिक precision तक measurement quantum mechanics की सीमाओं के कारण असंभव है। अगर आप solar system की objects की orbit को बिना error के मापना चाहें, तो 50 digits के बाद पास के सितारों के mass effects शामिल करने पड़ेंगे, 100 digits के बाद पूरी galaxy को model करना पड़ेगा, और अंततः ऐसे physical influences भी शामिल करने होंगे जिन्हें मापा ही नहीं जा सकता। इसलिए वास्तविक दुनिया में सिर्फ़ finite-precision mathematics ही संभव है। यानी सिद्धांत रूप में सब कुछ computable हो सकता है, लेकिन infinity की ओर बढ़ने पर mathematical model खुद भी अर्थहीन होने लगता है।
    • क्या सच में ऐसा है? असल में uncountable के "ज़्यादा होने" की धारणा ही एक गलतफ़हमी से शुरू होती है। मेरी व्याख्या वाली पोस्ट देखें। अगर आप मान लें कि uncountables ज़्यादा हैं, तो आपको "अस्तित्व" के बारे में एक विवादास्पद रुख अपनाना पड़ता है। संबंधित चर्चा भी देखें। आख़िर में, चाहे हम तर्क को कितना भी आगे बढ़ाएँ, सब कुछ कंप्यूटर पर व्यक्त किया जा सकता है। ZFC में बड़े cardinals जोड़ने पर भी, PA से शुरुआत करके किसी भी conclusion तक reasoning की जा सकती है; इसलिए व्यावहारिक रूप से मुझे लगता है कि PA ही काफ़ी है। अगर थोड़ा और मनाना हो तो Gödel, Escher, Bach किताब सुझाऊँगा।
    • मेरा नज़रिया थोड़ा अलग है। सामान्य reals को computation, symbolization, recording — किसी भी रूप में पूरी तरह संभाला नहीं जा सकता, लेकिन reals के बारे में ‘statements’ को कई बार उपयोगी रूप में व्यक्त और compute किया जा सकता है। Harvey Friedman या इस लेख के लेखक जैसे लोग जब बहुत साधारण systems से कल्पना से परे जटिल values बनाते हैं, तो वह सच में बहुत दिलचस्प लगता है। (नोट: audiomulch वेबसाइट खुल नहीं रही।)
    • "काफ़ी है" — जब तक उसके साथ कोई लक्ष्य न जुड़ा हो, यह सवाल परिभाषा के स्तर पर अस्पष्ट है। किस काम के लिए काफ़ी है, यही असली बात है।
    • मुझे लगता है कि "क्या सिर्फ़ computation काफ़ी है?" सवाल ही गलत है। बिल्कुल नहीं, अगर ऐसा होता तो वे लोग सही साबित हो जाते जो reality को किसी भरोसेमंद clockwork की तरह समझना चाहते हैं। वास्तविकता उससे कहीं ज़्यादा दिलचस्प और जटिल है।