प्रकार जो लंबोदर कैलकुलस टाइप करते हैं, वे गणना नहीं कर सकते हैं


12

मैं सिर्फ उन कार्यों के कुछ उदाहरणों को जानना चाहता हूं, जिनकी गणना लाइपडा कैल्कुलस द्वारा नहीं, बल्कि लाइप्डा कैलकुलस द्वारा की जा सकती है।

जैसा कि मैं एक शुरुआती हूं, पृष्ठभूमि की जानकारी के कुछ पुनरावृत्ति की सराहना की जाएगी।

धन्यवाद।

संपादित करें: टाइप किए गए लैम्ब्डा कैल्कुली द्वारा, मैं सिस्टम एफ और बस टाइप किए गए लैम्ब्डा कैलकुलस के बारे में जानना चाहता था। फ़ंक्शन द्वारा, मेरा मतलब किसी भी ट्यूरिंग-कम्प्यूटेबल फ़ंक्शन से है।


कई टाइपिंग डिसिप्लिन -calculi के लिए मौजूद हैं , और आपके अनुरोध का उत्तर आंशिक रूप से इस बात पर निर्भर करता है कि आपके मन में टाइपिंग अनुशासन का कौन सा विकल्प है। यह इस बात पर भी निर्भर करता है कि आप फ़ंक्शन से क्या मतलब है। अंतर का एक उदाहरण यह होगा कि सिस्टम एफ जैसे टाइपिंग डिसिप्लिन केवल सामान्यीकृत प्रोग्राम टाइप कर सकते हैं, जबकि अनकैप्ड -calculus में गैर-सामान्यकरण शब्द होते हैं। λλ
मार्टिन बर्गर

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

जवाबों:


15

एक अच्छा उदाहरण Godelization द्वारा दिया गया है: लैम्ब्डा कैलकुलस में, केवल एक चीज जो आप किसी फ़ंक्शन के साथ कर सकते हैं, वह है इसे लागू करना। नतीजतन, प्रकार का एक बंद फ़ंक्शन लिखने का कोई तरीका नहीं है , जो एक फ़ंक्शन तर्क लेता है और इसके लिए एक Godel कोड देता है।(NN)N

हेयिंग अंकगणित में एक स्वयंसिद्ध के रूप में इसे जोड़ना आमतौर पर "रचनात्मक चर्च थीसिस" कहा जाता है, और एक दृढ़ता से विरोधी शास्त्रीय स्वयंसिद्ध है। अर्थात्, इसे हा में जोड़ना है, लेकिन पीनो अंकगणित में नहीं! (मूल रूप से, यह एक शास्त्रीय तथ्य है कि प्रत्येक ट्यूरिंग मशीन रुकती है या नहीं, और इस तथ्य को देखने के लिए कोई कम्प्यूटेशनल फ़ंक्शन नहीं है।)


मुझे समझ में नहीं आता है कि यह एक बहुआयामी सिद्धांत के अनुरूप कैसे है: f और g को एक समान रूप से समान लें, लेकिन अलग-अलग कार्यान्वयन और इसलिए अलग-अलग ईश्वर कोड। क्या आपका फ़ंक्शन f और g के लिए समान संख्या लौटाता है?
कोड़ी

3
यह व्यापकता के अनुरूप नहीं है! हालांकि, हा और में तार्किक कनेक्टिविटी हैं, फ़ंक्शन / रिकॉर्ड नहीं। इसलिए उन्हें साकार होना चाहिए, लेकिन उनके रियलाइजर्स का विस्तार नहीं होना चाहिए। Andrej Bauer इस सामान के विशेषज्ञ हैं, इसलिए यदि आप एक प्रश्न पूछते हैं तो आपको एक अच्छा उत्तर मिलना सुनिश्चित होता है।
नील कृष्णस्वामी

11

सबसे सरल उत्तर इस तथ्य से दिया जाता है कि टाइप किए गए लंबो कैलकुलि लॉजिक्स के अनुरूप हैं (बस टाइप किए गए लंबो-कैलकुलस -> तर्क की भविष्यवाणी करें; सिस्टम f -> सेकंड-ऑर्डर लॉजिक) और सुसंगत लॉजिक्स अपनी खुद की स्थिरता साबित नहीं कर सकते हैं।

तो चलिए बताते हैं कि आपके टाइप किए गए लैम्ब्डा कैलकुलस में आपके पास नेचुरल नंबर (या नेचुरल नंबर का चर्च एन्कोडिंग) है। एक Gödel नंबरिंग करना संभव है जो सिस्टम F के हर शब्द को एक अद्वितीय प्राकृतिक संख्या में असाइन करता है। फिर, एक फ़ंक्शन जो किसी भी प्राकृतिक संख्या (जो सिस्टम F में अच्छी तरह से टाइप किए गए शब्द से मेल खाती है) को किसी अन्य प्राकृतिक संख्या (जो कि अच्छी तरह से टाइप किए गए सिस्टम F शब्द के सामान्य रूप से मेल खाती है) के लिए लेता है और इसके लिए कुछ और करता है कोई भी प्राकृतिक संख्या जो सिस्टम एफ में एक अच्छी तरह से टाइप किए गए शब्द के अनुरूप नहीं है (कहते हैं, यह शून्य देता है)। फ़ंक्शन कम्प्यूटेशनल है, इसलिए इसकी गणना अनकैप्ड लैम्ब्डा कैलकुलस द्वारा की जा सकती है लेकिन टाइप किए गए लैम्ब्डा कैलकुलस से नहीं। (क्योंकि उत्तरार्द्ध में दूसरे क्रम के तर्क की स्थिरता का प्रमाण होगा ff सेकंड-ऑर्डर लॉजिक, जिसका अर्थ यह होगा कि सेकंड-ऑर्डर लॉजिक असंगत है)।

चेतावनी 1: यदि दूसरे क्रम तर्क है असंगत है, यह हो सकता है लिखने के लिए संभव हो सकता है प्रणाली एफ में ... और / या यह हो सकता है लिखने के लिए संभव नहीं हो untyped लैम्ब्डा पथरी में - आप कुछ लिख सकता है, लेकिन यह नहीं हो सकता है हमेशा समाप्त करें, जो "कम्प्यूटेबल" के लिए एक मानदंड है।ff

कैविएट 2: कभी-कभी "बस टाइप किए गए लैम्ब्डा कैलकुलस" से लोगों का मतलब "बस एक निश्चित-बिंदु ऑपरेटर या पुनरावर्ती कार्यों के साथ लंबो कैलकुलस टाइप किया जाता है।" यह अधिक-या-कम पीसीएफ होगा , जो कि किसी भी कम्प्यूटेशनल फ़ंक्शन की गणना कर सकता है, ठीक उसी तरह जैसे लाइप्डा कैलकुलस।


10

Untyped -calculus posseses के रूप में सामान्य प्रत्यावर्तन Combinator। बस टाइप किया हुआ -calculus नहीं करता है। इस प्रकार, किसी भी फ़ंक्शन को सामान्य पुनरावृत्ति की आवश्यकता होती है, उदाहरण के लिए एकरमैन फ़ंक्शन। (मैं कुछ विवरणों को छोड़ रहा हूं कि हम प्रत्येक प्रणाली में प्राकृतिक संख्याओं का कितना सही प्रतिनिधित्व करते हैं, लेकिन अनिवार्य रूप से कोई भी उचित दृष्टिकोण करेगा।)वाई λλYλ

बेशक, आप की शक्ति से मेल खाने के लिए हमेशा टाइप किए गए -calculus का विस्तार कर सकते हैं , लेकिन फिर आप गेम के नियमों को बदल रहे हैं।λY


किसी कारण के लिए मेरे सिर में यह था कि आप सिस्टम एफ में एकरमैन कर सकते हैं ...
रोब सिमंस

@ रब, जैसा कि मैं समझता हूं, लेडी यह नहीं कहती कि ऐसा नहीं है।
केवह

1
मुझे लगता है कि मैंने कहा कि एकरमन फ़ंक्शन को अनकैप्ड -calculus में क्रमादेशित किया जा सकता है (क्योंकि प्रत्येक कम्प्यूटेशनल फ़ंक्शन कर सकते हैं), लेकिन कोई बस टाइप किया हुआ -calculus। मैंने सिस्टम एफ के बारे में कुछ भी नहीं कहाλλλ
बाउर

ओह, ठीक है, मैं सिर्फ गूंगा हो रहा था। (क्योंकि सिस्टम एफ के बारे में बात करने और एसएलसीएल के बारे में बात करने के बीच यह प्रश्न बहुत अस्पष्ट था, मैंने मजबूत प्रणाली को चुना और सरल प्रश्न के बारे में भूल गया।)
रोब सिमंस

Ackermann फ़ंक्शन in -calculus is । एक प्रकार के अवर के अनुसार मैंने इस सेमेस्टर का निर्माण किया था, इसका सरल प्रकार है: _ , जो अत्याचारी है, लेकिन संभवतः सही है। एसटीएस के साथ समस्या एकरमैन नहीं है - यह, उदाहरण के लिए, एक ट्यूरिंग मशीन का अनुकरण है। आप बस कॉम्बिनेटर के बिना ऐसा नहीं कर सकते । λ एम m ( λ f n n f ( f 1 _ ) ) s u c g ) ( ( (( b c ) a b ) ( b c ) a c ) λλm.m(λfn.nf(f1_)) suc(((((fe)fe)h)((((fe)fe)h) Yhg)g)(((bc)ab)(bc)ac)d)dY
फ्रांसिस्को मोटा

6

बस टाइप किए गए लैम्ब्डा कैलकुलस वास्तव में आश्चर्यजनक रूप से कमजोर हैं। उदाहरण के लिए, यह नियमित भाषा को नहीं पहचान सकता । मैंने कभी भी उन भाषाओं के सेट का सटीक लक्षण वर्णन नहीं किया है जिन्हें STLC पहचान सकता है, हालाँकि।a


5
मुझे लगता है कि जो गणना योग्य है वह उस प्रकार पर निर्भर करता है जिस पर आप देख रहे हैं। जब आप = पर टाइप करते हैं , जहां एक आधार प्रकार है, और समानता को बीटा-समता के रूप में दर्शाते हैं, तो निश्चित कार्य एक्सटेंडेड पॉलीओनियल (बहुपद) + इफ-तब- हैं अन्य)। IIRC, Schwichtenberg ने यह साबित कर दिया है, हालांकि मैंने उनका मूल पेपर (जर्मन में) कभी नहीं पढ़ा है। (मुझे लगता है कि कागजी नाम, अनुवाद, "टाइप्ड लैंबडा कैल्कुल्टी में निश्चित कार्य", 1976 है।)p(pp)ppp
नील कृष्णास्वामी

2
@ नील। एक बेहतर ढंग से बेहतर अनुवाद प्रकार के साथ -calculus में निश्चित कार्यλ होगा । आप इसे यहाँ डाउनलोड कर सकते हैं , यह केवल दो पेज लंबा है। क्या यह पता है कि समानता के अन्य धारणाओं के साथ, या प्राकृतिक संख्याओं के अन्य एन्कोडिंग के साथ अन्य प्रकारों में क्या होता है?
मार्टिन बर्गर

@ कार्टिंग: धन्यवाद! मैं अब जर्मनी में रह रहा हूं, इसलिए यह मेरा जर्मन अभ्यास करने के लिए एक अच्छा अतिरिक्त प्रोत्साहन है। :)
नील कृष्णस्वामी

4

दृढ़ता से सामान्य होने वाली गणना की सीमा की एक दृष्टि जो मुझे पसंद है, वह है संगणना कोण। एक सामान्य रूप से टाइप किए गए कैलकुलस में, जैसे कि कोर बस टाइप किए गए लैम्ब्डा कैलकुलस, सिस्टम एफ, या कंस्ट्रक्टस ऑफ कंस्ट्रक्शंस में, आपके पास एक सबूत होता है कि सभी शब्द अंततः समाप्त हो जाते हैं।

यदि यह प्रमाण रचनात्मक है, तो आपको गणना समय पर एक गारंटीकृत ऊपरी सीमा के साथ सभी शर्तों का मूल्यांकन करने के लिए एक निश्चित एल्गोरिदम मिलता है। या आप (नहीं-जरूरी-रचनात्मक) सबूत का भी अध्ययन कर सकते हैं और इससे एक ऊपरी-सीमा निकाल सकते हैं - जो कि विशाल होने की संभावना है , क्योंकि वे गणना अभिव्यंजक हैं।

यह सीमा आपको फ़ंक्शन के "प्राकृतिक" उदाहरण देती है जिसे इस निश्चित लैम्ब्डा-कैलकुलस में टाइप नहीं किया जा सकता है: सभी अंकगणितीय कार्य जो इस बाउंड के लिए समान रूप से श्रेष्ठ हैं।

अगर मुझे सही से याद है, तो बस टाइप किए गए लंबो-कैलकुलस में टाइप किए गए शब्दों का मूल्यांकन घातांक के टावरों में किया जा सकता है O(2^(2^(...(2^n)..):; इस तरह के सभी टावरों की तुलना में तेजी से बढ़ता एक समारोह इस गणना में व्यक्त नहीं होगा। सिस्टम एफ अंतर्ज्ञानवादी दूसरे क्रम के तर्क से मेल खाता है, इसलिए कम्प्यूटेबिलिटी पावर केवल विशाल है। और भी अधिक शक्तिशाली सिद्धांतों की कम्प्यूटेबिलिटी ताकत को जब्त करने के लिए, हम आमतौर पर सेट थ्योरी और मॉडल सिद्धांत (उदाहरण के लिए क्या ऑर्डिनल्स का निर्माण किया जा सकता है) की तुलना में कम्प्यूटेशनल सिद्धांत के कारण करते हैं।


0

अगर मैं आपके प्रश्न को सही ढंग से समझता हूं, तो मुझे लगता है कि एक साधारण उदाहरण , जो एक फंक्शन लेता है और इसे खुद पर लागू करता है। आप इस फ़ंक्शन को अनकैप्ड लैम्ब्डा कैलकुलस में परिभाषित कर सकते हैं और कम कर सकते हैं (और विशेष रूप से, आपके पास , जो सामान्य नहीं है), लेकिन आप टाइप नहीं कर सकते , क्योंकि एक प्रकार की खोज का मतलब होगा ऐसा है कि ।Δ Δ बीटा Δ Δ Δ एक एक = एक एकΔ=λx.xxΔΔβ ΔΔΔAA=AA


λAAAA

हां, आप सही हैं, लेकिन मैंने सोचा (हो सकता है कि मैं गलत हूं) कि केवल टाइप किए गए लंबो-कैलकुलस या सिस्टम एफ में इस तरह का होना संभव नहीं था, जो दोनों दृढ़ता से सामान्य कर रहे हैं।
चार्ल्स

ΔΔΔΔ

@Kaveh क्यों एक प्रकार हो रही है Aऐसा है कि A \ident A \rightarrow Aअजीब नहीं है? यह मेरे लिए बेतुका लगता है, मैं क्या देख रहा हूँ?
मार्टिज़न

आप शायद सेट और फ़ंक्शन रिक्त स्थान के बारे में उनके बारे में शास्त्रीय रूप से सोच रहे हैं। सोचो जैसे परिमित बाइनरी स्ट्रिंग्स और उनके ऊपर कम्प्यूटेशनल फ़ंक्शंस।
केवह
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.