एक वास्तविक संख्या को "प्रतिनिधित्व" या "लागू" करने के लिए इसका क्या अर्थ है, इस बारे में भ्रमित होना आसान है। वास्तव में, हम टिप्पणियों में एक चर्चा देख रहे हैं जहां प्रतिनिधित्व विवादास्पद है। तो मुझे यह पहले संबोधित करते हैं।
हम कैसे जानते हैं कि एक कार्यान्वयन सही है?
सिद्धांत जो बताता है कि कंप्यूटर में चीजों का प्रतिनिधित्व कैसे किया जाता है, वह वास्तविकता है । मूल विचार यह है कि, एक सेट दिया है , हम एक डेटाप्रकार लेने τ और हर के लिए एक्स ∈ एक्स एक प्रकार की मूल्यों का वह समूह τ जो एहसास यह। हम लिखने वी ⊢ एक्स ∈ एक्स जब वी एक मूल्य है कि एहसास है x । उदाहरण के लिए (मैं कोई अच्छे कारण के लिए हास्केल का उपयोग होना चाहिए), की एक समझदार कार्यान्वयन एन डेटाप्रकार हो सकता है जहां वी ⊢ कश्मीर ∈ एन जब वीXτx∈Xτv⊢x∈XvxNInteger
v⊢k∈Nv को अंक लिए (इस प्रकार विशेष रूप से एक प्राकृतिक संख्या का प्रतिनिधित्व नहीं करता है, और न ही एक विचलन कार्यक्रम करता है)। लेकिन कुछ जोकर द्वारा चल सकते हैं और सुझाव दे सकते हैं कि हम टी आर यू ई oker के साथ प्राकृतिक संख्याओं का प्रतिनिधित्व करने के लिए उपयोग करते हैंk¯¯¯-42
Bool
और एफ एक एल एस ई ⊢ n ∈ एन के लिए n ≠ 42 । यह गलत क्यों है? हमें एककसौटी चाहिए।True⊢42∈NFalse⊢n∈Nn≠42
"जोकर संख्या" के मामले में आसान अवलोकन यह है कि इसके अलावा इसे लागू नहीं किया जा सकता है। मैं आपको बता मैं दो नंबर हैं, दोनों के प्रतिनिधित्व वाले मान लीजिए । क्या आप उनकी राशि के लिए एक रियाल्टार दे सकते हैं? खैर, यह निर्भर करता है कि योग 42 है, लेकिन आप नहीं बता सकते। चूंकि जोड़ "प्राकृतिक संख्याएं क्या हैं" का एक अनिवार्य हिस्सा है, यह अस्वीकार्य है। दूसरे शब्दों में, कार्यान्वयन सेटों के बारे में नहीं है, बल्कि संरचनाओं के बारे में है , अर्थात, हमें इस तरह से सेटों का प्रतिनिधित्व करना होगा ताकि संबंधित संरचना को लागू करना भी संभव हो। मुझे इस पर जोर देने दें:False
हम संरचनाएं लागू करते हैं, नंगे सेट नहीं। इसलिए, हमें कार्यान्वयन को सही करने के लिए, संचालन और सभी स्वयंसिद्धों के साथ, संपूर्ण संरचना को लागू करने में सक्षम होना चाहिए।
यदि आप इस सिद्धांत का पालन नहीं करते हैं, तो आपको शुद्धता का एक वैकल्पिक गणितीय मानदंड सुझाना होगा । मुझे एक का पता नहीं है।
उदाहरण: प्राकृतिक संख्याओं का प्रतिनिधित्व
प्राकृतिक संख्याओं के लिए प्रासंगिक संरचना का वर्णन पीनो एक्सियलम्स द्वारा किया गया है, और इसे लागू करने वाले महत्वपूर्ण स्वयंसिद्ध इंडक्शन (लेकिन , उत्तराधिकारी, + और × ) भी है। हम वास्तविकता का उपयोग करके गणना कर सकते हैं कि प्रेरण का कार्यान्वयन क्या करता है। यह एक नक्शा (जहां अभी तक अज्ञात डेटाटाइप है जो प्राकृतिक संख्याओं का प्रतिनिधित्व करता है) बन जाता है0+×nat
induction : 'a -> (nat -> 'a -> 'a) -> 'nat -> 'a
संतोषजनक induction x f zero = x
और induction x f (succ n) = f n (induction x f n)
। यह सब वास्तविकता से बाहर आता है। हमारे पास एक मानदंड है: प्राकृतिक संख्याओं का क्रियान्वयन सही है जब यह पीनो स्वयंसिद्धों के कार्यान्वयन की अनुमति देता है। इसी तरह का परिणाम प्राप्त किया जाएगा यदि हमने फन्तेरे लिए प्रारंभिक बीजगणित के रूप में संख्याओं के लक्षण वर्णन का उपयोग किया ।X↦1+X
वास्तविक संख्याओं का सही क्रियान्वयन
आइए हम वास्तविक संख्या और प्रश्न पर ध्यान दें। पहला सवाल यह पूछना है कि "वास्तविक संख्याओं की प्रासंगिक संरचना क्या है?" जवाब है: आर्किमिडीज कॉची पूरा ऑर्डर किया हुआ क्षेत्र । यह "वास्तविक संख्या" का स्थापित अर्थ है। आपको इसे बदलने के लिए नहीं मिलता है, यह आपके लिए दूसरों द्वारा तय किया गया है (हमारे मामले में वैकल्पिक डेडेकिंड रियल, कॉची रियल के लिए आइसोमॉर्फिक है, जिसे हम यहां पर विचार कर रहे हैं।) आप इसका एक हिस्सा नहीं ले सकते। आपको यह कहने की अनुमति नहीं है कि "मुझे इसके अतिरिक्त कार्यान्वयन की परवाह नहीं है", या "मुझे आदेश की परवाह नहीं है"। यदि आप ऐसा करते हैं, तो आपको इसे "वास्तविक संख्या" नहीं कहना चाहिए, लेकिन "वास्तविक संख्याएं जहां हम रैखिक क्रम को भूल जाते हैं" जैसा कुछ।
मैं सभी विवरणों में नहीं जा रहा हूं, लेकिन मुझे यह समझाने की कोशिश करें कि संरचना के विभिन्न भाग कैसे वास्तविक पर विभिन्न संचालन देते हैं:
- आर्किमिडीज़ स्वयंसिद्ध के बारे में कंप्यूटिंग है तर्कसंगत reals का अनुमान
- क्षेत्र संरचना सामान्य अंकगणितीय संचालन देती है
- रैखिक क्रम हमें x < y का परीक्षण करने के लिए एक ठोस प्रक्रिया प्रदान करता हैx<y
- कॉची पूर्णता हमें एक समारोह देता है
lim : (nat -> real) -> real
जो एक (के प्रतिनिधित्व) लेता है तेजी से कॉची अनुक्रम और अपनी सीमा देता है। (ए अनुक्रम तेजी से है अगर | एक्स एन - एक्स मीटर | ≤ 2 मिनट ((xn)n सभी के लिएमीटर,एन।)|xn−xm|≤2min(n,m)m,n
हमें जो नहीं मिलता है वह समानता के लिए एक परीक्षण कार्य है। लोकों के लिए स्वयंसिद्धों में कुछ भी नहीं है जो पूछता है कि निंदनीय हो। (इसके विपरीत, पीनो स्वयंसिद्ध का अर्थ है कि प्राकृतिक संख्याएं निर्णायक हैं, और आप केवल एक मजेदार अभ्यास के रूप में उपयोग करके यह साबित कर सकते हैं )।=eq : nat -> nat -> Bool
induction
यह एक तथ्य है कि मानवता द्वारा उपयोग किए जाने वाले वास्तविक का सामान्य दशमलव प्रतिनिधित्व बुरा है क्योंकि इसके साथ हम इसके अलावा लागू नहीं कर सकते हैं। अनंत मंटिसा के साथ फ्लोटिंग बिंदु भी विफल रहता है (व्यायाम: क्यों?)। हालाँकि, क्या काम करता है, पर हस्ताक्षर प्रतिनिधित्व, यानी, जिसमें हम नकारात्मक अंकों के साथ-साथ सकारात्मक लोगों को भी अनुमति देते हैं। या हम तर्कसंगत के अनुक्रमों का उपयोग कर सकते हैं जो तेजी से कॉची परीक्षण को संतुष्ट करते हैं, जैसा कि ऊपर कहा गया है।
त्सुओशी प्रतिनिधित्व कुछ भी लागू करता है, लेकिन आर नहींR
आइए हम वास्तविक के निम्नलिखित प्रतिनिधित्व पर विचार करें: एक वास्तविक को एक जोड़ी ( q , b ) द्वारा दर्शाया जाता है , जहाँ ( q n ) n एक तेजी से कैची अनुक्रम है जो x में परिवर्तित होता है और b एक बूलियन है जो दर्शाता है कि x एक पूर्णांक है। इसके लिए वास्तविक का प्रतिनिधित्व करने के लिए, हमें इसके अतिरिक्त कार्यान्वयन करना होगा, लेकिन जैसा कि यह पता चलता है कि हम बूलियन झंडे की गणना नहीं कर सकते हैं। तो यह वास्तविकताओं का प्रतिनिधित्व नहीं है। लेकिन यह अभी भी कुछ का प्रतिनिधित्व करता है, अर्थात् वास्तविक का सबसेटx(q,b)(qn)nxbxZ∪(R∖Z)। दरअसल, साकार व्याख्या के अनुसार एक संघ एक झंडा यूनियन हम में हैं के किस हिस्से का संकेत के साथ किया जाता है। वैसे, Z∪(R∖Z) एक है नहीं के बराबर बाहर रखा गया बीच में, जब तक आप विश्वास करते हैं जो लागू नहीं किया जा सकता है और इसलिए इस चर्चा के लिए काफी अप्रासंगिक है। हम कंप्यूटर द्वारा चीजों को अंतर्ज्ञान से करने के लिए मजबूर हैं।R
हम परीक्षण नहीं कर सकते कि क्या वास्तविक पूर्णांक है
अंत में, मैं उस प्रश्न का उत्तर दूं जो पूछा गया था। अब हम जानते हैं कि वास्तविक का एक स्वीकार्य प्रतिनिधित्व तर्कसंगत रूप से तीव्र कॉची दृश्यों द्वारा एक है। (एक महत्वपूर्ण प्रमेय में कहा गया है कि वास्तविक रूप से स्वीकार्य किसी भी दो का प्रतिनिधित्व वास्तव में अनिवार्य रूप से आइसोमॉर्फिक है)।
प्रमेय: यह परीक्षण करना कि क्या वास्तविक पूर्णांक है, निर्णायक नहीं है।
प्रमाण। मान लीजिए कि हम परीक्षण कर सकते हैं कि क्या कोई वास्तविक पूर्णांक है (निश्चित रूप से, वास्तविक एक तीव्र कैची अनुक्रम द्वारा महसूस किया गया है)। विचार, जो यदि आप चाहते हैं, तो आपको बहुत अधिक सामान्य प्रमेय साबित करने की अनुमति देगा, जो कि एक पूर्णांक के रूप में परिवर्तित होने वाले गैर-पूर्णांकों का एक तीव्र कैची अनुक्रम का निर्माण करना है । यह आसान है, बस x n = 2 - n लें । अगला, हल करने की समस्या को निम्नानुसार हल करें। ट्यूरिंग मशीन T को देखते हुए , y n = { x n if T द्वारा
एक नया अनुक्रम ( y n ) n परिभाषित करें(xn)nxn=2−nT(yn)n
यही है, अनुक्रम की तरह नया अनुक्रम दिखता है(एक्सएन)nजब तकटीरन है, लेकिन फिर इसे "अटक" हो जाता हैएक्सहूँअगरटीचरण में हाल्टमीटर। बहुत महत्वपूर्ण बात, नया अनुक्रम भी एक तीव्र कैची अनुक्रम है (और हमटीहॉल्ट्सको जाने बिना यह साबित कर सकते हैं)। इसलिए, हम इसकी सीमाz= कीगणना कर सकते हैं
yn={xnxmif T has not stopped within n stepsif T stopped in step m and m≤n
(xn)nTxmTmTz=limnyn, क्योंकि हमारी वास्तविकताओं का प्रतिनिधित्व सही है। परीक्षण करें कि क्या
एक पूर्णांक है। यदि यह है, तो यह
0 होना चाहिए और यह केवल तब होता है जब
टी हमेशा के लिए चलता है। अन्यथा,
z एक पूर्णांक नहीं है, इसलिए
T बंद होना चाहिए। QED।
z0TzT
व्यायाम: उपरोक्त प्रमाण को यह दिखाने के लिए अनुकूलित करें कि हम तर्कसंगत संख्याओं के लिए परीक्षण नहीं कर सकते हैं। फिर इसे दिखाने के लिए अनुकूलित करें कि हम किसी भी गैर-तुच्छ चीज़ के लिए परीक्षण नहीं कर सकते (यह थोड़ा कठिन है)।
कभी-कभी लोग इस सभी परीक्षण व्यवसाय के बारे में भ्रमित हो जाते हैं। उन्हें लगता है कि हमने साबित कर दिया है कि हम कभी भी यह परीक्षण नहीं कर सकते हैं कि क्या वास्तविक पूर्णांक है। लेकिन निश्चित रूप से, 42 एक वास्तविक है और हम बता सकते हैं कि क्या यह पूर्णांक है। वास्तव में, कोई विशेष वास्तविक हमारे साथ आता है, , 88 ln 89 ,sin1188ln89 , आदि, हम पूरी तरह से अच्छी तरह से बता सकते हैं कि क्या वे पूर्णांक हैं। संक्षेप में,हमबता सकते हैं क्योंकिहमारेपास अतिरिक्त जानकारी है: इन वास्तविकताओं को हमें दृश्यों के रूप में नहीं दिया जाता है, बल्कि प्रतीकात्मक अभिव्यक्तियों के रूप में दिया जाता है, जिनसे हम Tsuyoshi बिट की गणना कर सकते हैं। जैसे ही हमारे पास वास्तविक के बारे में एकमात्र जानकारी तर्कसंगत सन्निकटन का एक क्रम है, जो इसे परिवर्तित करता है (और मुझेअनुक्रम का वर्णन करने वाली एक प्रतीकात्मक अभिव्यक्तिनहींहै, लेकिन एक ब्लैक बॉक्स जोएनआउटपुट करता है।eπ163√n इनपुट पर -th शब्द का ) तब हम मशीनों की तरह असहाय हो जाएगा।n
कहानी का नैतिक पहलू है
किसी सेट के कार्यान्वयन के बारे में बात करने का कोई मतलब नहीं है जब तक कि हम यह नहीं जानते कि हम उस पर किस प्रकार का संचालन करना चाहते हैं।