बस टाइप किया हुआ लैम्ब्डा कैलकुलस: Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
{{short description|Formal system in mathematical logic}} | {{short description|Formal system in mathematical logic}} | ||
बस टाइप किया हुआ लैम्ब्डा कैलकुस (<math>\lambda^\to</math>), | बस टाइप किया हुआ लैम्ब्डा कैलकुस (<math>\lambda^\to</math>), [[ प्रकार सिद्धांत ]], केवल एक प्रकार के कंस्ट्रक्टर के साथ [[लैम्ब्डा कैलकुलस]] का टाइप किया हुआ लैम्ब्डा कैलकुलस है (<math>\to</math>) जो फ़ंक्शन प्रकार बनाता है। यह टाइप किए गए लैम्ब्डा कैलकुस का प्रामाणिक और सरल उदाहरण है। सामान्य रूप से टाइप किए गए लैम्ब्डा कैलकुलस को मूल रूप से [[अलोंजो चर्च]] द्वारा 1940 में [[अनटाइप्ड लैम्ब्डा कैलकुलस]] के विरोधाभासी उपयोग से बचने के प्रयास के रूप में पेश किया गया था।<ref name="Church 1940" /> | ||
[[ प्रकार सिद्धांत ]], केवल एक प्रकार के कंस्ट्रक्टर के साथ [[लैम्ब्डा कैलकुलस]] का टाइप किया हुआ लैम्ब्डा कैलकुलस है (<math>\to</math>) जो फ़ंक्शन प्रकार बनाता है। यह टाइप किए गए लैम्ब्डा कैलकुस का प्रामाणिक और सरल उदाहरण है। सामान्य रूप से टाइप किए गए लैम्ब्डा कैलकुलस को मूल रूप से [[अलोंजो चर्च]] द्वारा 1940 में [[अनटाइप्ड लैम्ब्डा कैलकुलस]] के विरोधाभासी उपयोग से बचने के प्रयास के रूप में पेश किया गया था।<ref name="Church 1940" /> | |||
शब्द सरल प्रकार का उपयोग केवल टाइप किए गए लैम्ब्डा [[गणना]] जैसे कार्टेशियन उत्पाद, [[सहउत्पाद]] या [[प्राकृतिक संख्या]] (डायलेक्टिका व्याख्या) या यहां तक कि पूर्ण [[ प्रत्यावर्तन ]] (जैसे कंप्यूटेबल फ़ंक्शंस के लिए प्रोग्रामिंग भाषा) के एक्सटेंशन को संदर्भित करने के लिए भी किया जाता है। इसके विपरीत, सिस्टम जो [[पैरामीट्रिक बहुरूपता]] (जैसे [[सिस्टम एफ]]) या [[आश्रित प्रकार]] (जैसे [[एलएफ (तार्किक ढांचा)]]) पेश करते हैं, उन्हें केवल टाइप नहीं माना जाता है। सरल प्रकार, पूर्ण पुनरावर्तन को छोड़कर, अभी भी सरल माने जाते हैं क्योंकि ऐसी संरचनाओं के [[चर्च एन्कोडिंग]] केवल का उपयोग करके किया जा सकता है <math>\to</math> और उपयुक्त प्रकार चर, जबकि [[बहुरूपता (जीव विज्ञान)]] और निर्भरता नहीं हो सकती। | शब्द सरल प्रकार का उपयोग केवल टाइप किए गए लैम्ब्डा [[गणना]] जैसे कार्टेशियन उत्पाद, [[सहउत्पाद]] या [[प्राकृतिक संख्या]] (डायलेक्टिका व्याख्या) या यहां तक कि पूर्ण [[ प्रत्यावर्तन ]] (जैसे कंप्यूटेबल फ़ंक्शंस के लिए प्रोग्रामिंग भाषा) के एक्सटेंशन को संदर्भित करने के लिए भी किया जाता है। इसके विपरीत, सिस्टम जो [[पैरामीट्रिक बहुरूपता]] (जैसे [[सिस्टम एफ]]) या [[आश्रित प्रकार]] (जैसे [[एलएफ (तार्किक ढांचा)]]) पेश करते हैं, उन्हें केवल टाइप नहीं माना जाता है। सरल प्रकार, पूर्ण पुनरावर्तन को छोड़कर, अभी भी सरल माने जाते हैं क्योंकि ऐसी संरचनाओं के [[चर्च एन्कोडिंग]] केवल का उपयोग करके किया जा सकता है <math>\to</math> और उपयुक्त प्रकार चर, जबकि [[बहुरूपता (जीव विज्ञान)]] और निर्भरता नहीं हो सकती। | ||
'''सामान्य रूप से टाइप किया गया लैम्ब्डा कैलकुलस प्रपोजल [[ अंतर्ज्ञानवादी तर्क | अंतर्ज्ञानवादी तर्क]] के इम्प्लीकेशनल फ्रैगमेंट से निकटता से संबंधित है, यानी करी-हावर्ड आइसोमोर्फिज्म के माध्यम से [[न्यूनतम तर्क]] | '''सामान्य रूप से टाइप किया गया लैम्ब्डा कैलकुलस प्रपोजल [[ अंतर्ज्ञानवादी तर्क | अंतर्ज्ञानवादी तर्क]] के इम्प्लीकेशनल फ्रैगमेंट से निकटता से संबंधित है, यानी करी-हावर्ड आइसोमोर्फिज्म के माध्यम से [[न्यूनतम तर्क]]''' | ||
== सिंटेक्स == | == सिंटेक्स == | ||
Line 12: | Line 11: | ||
रिवाज के सन्दर्भ मे, <math>\to</math> दाईं ओर सहयोगी: <math>\sigma\to\tau\to\rho</math> के रूप में पढ़ा जाता है <math>\sigma\to(\tau\to\rho)</math>. | रिवाज के सन्दर्भ मे, <math>\to</math> दाईं ओर सहयोगी: <math>\sigma\to\tau\to\rho</math> के रूप में पढ़ा जाता है <math>\sigma\to(\tau\to\rho)</math>. | ||
प्रकारों को परिभाषित करने के लिए, आधार प्रकारों का | प्रकारों को परिभाषित करने के लिए, आधार प्रकारों का सेट, <math>B</math>, पहले परिभाषित किया जाना चाहिए। इन्हें कभी-कभी परमाणु प्रकार या प्रकार स्थिरांक कहा जाता है। इस निश्चित के साथ, प्रकारों का सिंटैक्स है: | ||
:<math>\tau ::= \tau \to \tau \mid T \quad \mathrm{where} \quad T \in B</math>. | :<math>\tau ::= \tau \to \tau \mid T \quad \mathrm{where} \quad T \in B</math>. | ||
उदाहरण के लिए, <math>B = \{a, b\}</math>, से शुरू होने वाले प्रकारों का | उदाहरण के लिए, <math>B = \{a, b\}</math>, से शुरू होने वाले प्रकारों का अनंत सेट उत्पन्न करता है <math>a,b,</math><math>a \to a,</math><math>a \to b,b\to b,</math><math>b\to a,</math><math> a \to (a \to a),\ldots,</math><math>(b\to a) \to (a\to b), \ldots</math> | ||
आधार प्रकारों के लिए पद स्थिरांकों का | आधार प्रकारों के लिए पद स्थिरांकों का समुच्चय भी निश्चित होता है। उदाहरण के लिए, यह माना जा सकता है कि आधार प्रकार {{mono|nat}}, और पद स्थिरांक प्राकृत संख्याएँ हो सकती हैं। मूल प्रस्तुति में, चर्च ने केवल दो आधार प्रकारों का प्रयोग किया: <math>o</math> प्रस्तावों के प्रकार के लिए और <math>\iota</math> व्यक्तियों के प्रकार के लिए। प्ररूप <math>o</math> कोई शब्द स्थिरांक नहीं है, जबकि <math>\iota</math> पद स्थिर है। अक्सर केवल एक आधार प्रकार के साथ कलन, आमतौर पर <math>o</math>, माना जाता है। | ||
बस टाइप किए गए लैम्ब्डा कैलकुलस का सिंटैक्स अनिवार्य रूप से लैम्ब्डा कैलकुलस का ही है। शब्द <math>x\mathbin{:}\tau</math> दर्शाता है कि चर <math>x</math> प्रकार का है <math>\tau</math>. बैकस-नौर रूप में सिंटैक्स शब्द तब है: | बस टाइप किए गए लैम्ब्डा कैलकुलस का सिंटैक्स अनिवार्य रूप से लैम्ब्डा कैलकुलस का ही है। शब्द <math>x\mathbin{:}\tau</math> दर्शाता है कि चर <math>x</math> प्रकार का है <math>\tau</math>. बैकस-नौर रूप में सिंटैक्स शब्द तब है: | ||
:<math>e ::= x \mid \lambda x\mathbin{:}\tau.e \mid e \, e \mid c</math> | :<math>e ::= x \mid \lambda x\mathbin{:}\tau.e \mid e \, e \mid c</math> | ||
कहाँ <math>c</math> | कहाँ <math>c</math> स्थिरांक है। | ||
यही है, चर संदर्भ, अमूर्तता, अनुप्रयोग और स्थिरांक। | यही है, चर संदर्भ, अमूर्तता, अनुप्रयोग और स्थिरांक। चर संदर्भ <math>x</math> बाध्य है अगर यह अमूर्त बंधन के अंदर है <math>x</math>. यदि कोई अनबाउंड चर नहीं हैं तो शब्द बंद हो जाता है। | ||
इसकी तुलना में, अनटाइप्ड लैम्ब्डा कैलकुलस के सिंटैक्स में ऐसा कोई टाइपिंग या शब्द स्थिरांक नहीं है: | इसकी तुलना में, अनटाइप्ड लैम्ब्डा कैलकुलस के सिंटैक्स में ऐसा कोई टाइपिंग या शब्द स्थिरांक नहीं है: | ||
Line 33: | Line 32: | ||
== टाइपिंग नियम == | == टाइपिंग नियम == | ||
किसी दिए गए प्रकार के अच्छी तरह से टाइप किए गए लैम्ब्डा शब्दों के सेट को परिभाषित करने के लिए, शब्दों और प्रकारों के बीच | किसी दिए गए प्रकार के अच्छी तरह से टाइप किए गए लैम्ब्डा शब्दों के सेट को परिभाषित करने के लिए, शब्दों और प्रकारों के बीच टाइपिंग संबंध को परिभाषित करता है। सबसे पहले, व्यक्ति टाइपिंग संदर्भों या टाइपिंग परिवेशों का परिचय देता है <math>\Gamma,\Delta,\dots</math>, जो टाइपिंग मान्यताओं के सेट हैं। टाइपिंग धारणा का रूप है <math>x\mathbin{:}\sigma</math>, अर्थ <math>x</math> प्रकार है <math>\sigma</math>. | ||
टाइपिंग संबंध <math>\Gamma\vdash e\mathbin{:}\sigma</math> दर्शाता है कि <math>e</math> प्रकार का शब्द है <math>\sigma</math> संदर्भ में <math>\Gamma</math>. इस मामले में <math>e</math> कहा जाता है कि अच्छी तरह से टाइप किया गया है (type <math>\sigma</math>). टंकण संबंध के उदाहरणों को टंकण निर्णय कहा जाता है। | टाइपिंग संबंध <math>\Gamma\vdash e\mathbin{:}\sigma</math> दर्शाता है कि <math>e</math> प्रकार का शब्द है <math>\sigma</math> संदर्भ में <math>\Gamma</math>. इस मामले में <math>e</math> कहा जाता है कि अच्छी तरह से टाइप किया गया है (type <math>\sigma</math>). टंकण संबंध के उदाहरणों को टंकण निर्णय कहा जाता है। टाइपिंग निर्णय की वैधता एक टाइपिंग व्युत्पत्ति प्रदान करके दिखाई जाती है, जिसे [[टाइपिंग नियम]]ों का उपयोग करके बनाया गया है (जिसमें लाइन के ऊपर का परिसर हमें लाइन के नीचे निष्कर्ष निकालने की अनुमति देता है)। सीधे शब्दों में टाइप किया गया लैम्ब्डा कैलकुलस इन नियमों का उपयोग करता है: | ||
{| align="center" cellpadding="9" | {| align="center" cellpadding="9" | ||
Line 47: | Line 46: | ||
# अगर <math>x</math> प्रकार है <math>\sigma</math> संदर्भ में, तब <math>x</math> प्रकार है <math>\sigma</math>. | # अगर <math>x</math> प्रकार है <math>\sigma</math> संदर्भ में, तब <math>x</math> प्रकार है <math>\sigma</math>. | ||
# पद स्थिरांक के उपयुक्त आधार प्रकार होते हैं। | # पद स्थिरांक के उपयुक्त आधार प्रकार होते हैं। | ||
# यदि, | # यदि, निश्चित संदर्भ में <math>x</math> प्रकार होना <math>\sigma</math>, <math>e</math> प्रकार है <math>\tau</math>, फिर, उसी संदर्भ में बिना <math>x</math>, <math>\lambda x\mathbin{:}\sigma.~e</math> प्रकार है <math>\sigma \to \tau</math>. | ||
# अगर, | # अगर, निश्चित संदर्भ में, <math>e_1</math> प्रकार है <math>\sigma \to \tau</math>, और <math>e_2</math> प्रकार है <math>\sigma</math>, तब <math>e_1~e_2</math> प्रकार है <math>\tau</math>. | ||
बंद शर्तों के उदाहरण, यानी खाली संदर्भ में टाइप करने योग्य शब्द हैं: | बंद शर्तों के उदाहरण, यानी खाली संदर्भ में टाइप करने योग्य शब्द हैं: | ||
Line 56: | Line 55: | ||
ये [[संयोजन तर्क]] के बेसिक कॉम्बिनेटर्स के टाइप किए गए लैम्ब्डा कैलकुलस रिप्रेजेंटेशन हैं। | ये [[संयोजन तर्क]] के बेसिक कॉम्बिनेटर्स के टाइप किए गए लैम्ब्डा कैलकुलस रिप्रेजेंटेशन हैं। | ||
प्रत्येक प्रकार <math>\tau</math> | प्रत्येक प्रकार <math>\tau</math> आदेश, संख्या सौंपी जाती है <math>o(\tau)</math>. आधार प्रकार के लिए <math>o(T)=0</math>; समारोह प्रकार के लिए, <math>o(\sigma\to\tau)=\mbox{max}(o(\sigma)+1,o(\tau))</math>. अर्थात्, एक प्रकार का क्रम सबसे बाएँ-नेस्टेड तीर की गहराई को मापता है। इस तरह: | ||
: <math>o(\iota \to \iota \to \iota) = 1</math> | : <math>o(\iota \to \iota \to \iota) = 1</math> | ||
Line 67: | Line 66: | ||
मोटे तौर पर, सामान्य रूप से टाइप किए गए लैम्ब्डा कैलकुलस को अर्थ देने के दो अलग-अलग तरीके हैं, जैसे टाइप की गई भाषाओं के लिए, जिन्हें विभिन्न प्रकार से इंट्रिंसिक बनाम एक्सट्रिंसिक, ऑन्कोलॉजिकल बनाम सिमेंटिकल, या चर्च-शैली बनाम करी-शैली कहा जाता है।<ref name="Church 1940" />{{r|Curry|r={{cite journal|author-link=Haskell Curry| last = Curry| first = Haskell B| date = 1934-09-20| title = Functionality in Combinatory Logic| journal = [[Proceedings of the National Academy of Sciences of the United States of America]]| volume = 20| issue = 11| pages = 584–90| pmid = 16577644| pmc = 1076489| doi = 10.1073/pnas.20.11.584| issn = 0027-8424| bibcode = 1934PNAS...20..584C| doi-access = free}} (presents an extrinsically typed combinatory logic, later adapted by others to the lambda calculus)<ref>{{cite journal |last1=Pfenning |first1=Frank |title=Church and Curry: Combining Intrinsic and Extrinsic Typing |page=1 |url=https://www.cs.cmu.edu/~fp/papers/andrews08.pdf |access-date=26 February 2022}}</ref>}}<ref>{{cite book| first = John | last = Reynolds | author-link=John_C._Reynolds| publisher = Cambridge University Press| location = Cambridge, England| title=प्रोग्रामिंग भाषाओं के सिद्धांत| url = https://archive.org/details/theoriesofprogra0000reyn | url-access = registration | year=1998|pages=327, 334| isbn = 9780521594141 }}</ref> | मोटे तौर पर, सामान्य रूप से टाइप किए गए लैम्ब्डा कैलकुलस को अर्थ देने के दो अलग-अलग तरीके हैं, जैसे टाइप की गई भाषाओं के लिए, जिन्हें विभिन्न प्रकार से इंट्रिंसिक बनाम एक्सट्रिंसिक, ऑन्कोलॉजिकल बनाम सिमेंटिकल, या चर्च-शैली बनाम करी-शैली कहा जाता है।<ref name="Church 1940" />{{r|Curry|r={{cite journal|author-link=Haskell Curry| last = Curry| first = Haskell B| date = 1934-09-20| title = Functionality in Combinatory Logic| journal = [[Proceedings of the National Academy of Sciences of the United States of America]]| volume = 20| issue = 11| pages = 584–90| pmid = 16577644| pmc = 1076489| doi = 10.1073/pnas.20.11.584| issn = 0027-8424| bibcode = 1934PNAS...20..584C| doi-access = free}} (presents an extrinsically typed combinatory logic, later adapted by others to the lambda calculus)<ref>{{cite journal |last1=Pfenning |first1=Frank |title=Church and Curry: Combining Intrinsic and Extrinsic Typing |page=1 |url=https://www.cs.cmu.edu/~fp/papers/andrews08.pdf |access-date=26 February 2022}}</ref>}}<ref>{{cite book| first = John | last = Reynolds | author-link=John_C._Reynolds| publisher = Cambridge University Press| location = Cambridge, England| title=प्रोग्रामिंग भाषाओं के सिद्धांत| url = https://archive.org/details/theoriesofprogra0000reyn | url-access = registration | year=1998|pages=327, 334| isbn = 9780521594141 }}</ref> | ||
आंतरिक शब्दार्थ केवल अच्छी तरह से टाइप किए गए शब्दों को अर्थ प्रदान करता है, या अधिक सटीक रूप से, टाइपिंग व्युत्पत्तियों को सीधे अर्थ प्रदान करता है। इसका प्रभाव यह है कि केवल एनोटेशन के प्रकार से भिन्न होने वाले शब्दों को फिर भी अलग-अलग अर्थ दिए जा सकते हैं। उदाहरण के लिए, पहचान शब्द <math>\lambda x\mathbin{:}\mathtt{int}.~x</math> पूर्णांक और पहचान शब्द पर <math>\lambda x\mathbin{:}\mathtt{bool}.~x</math> बूलियन पर अलग-अलग चीजों का मतलब हो सकता है। (क्लासिक इरादा व्याख्याएं | |||
पूर्णांकों पर पहचान फलन और बूलियन मानों पर पहचान फलन हैं।) | पूर्णांकों पर पहचान फलन और बूलियन मानों पर पहचान फलन हैं।) | ||
इसके विपरीत, | इसके विपरीत, बाहरी शब्दार्थ टाइपिंग की परवाह किए बिना शब्दों को अर्थ प्रदान करता है, क्योंकि उनकी व्याख्या अप्रकाशित भाषा में की जाएगी। इस दृश्य में, <math>\lambda x\mathbin{:}\mathtt{int}.~x</math> और <math>\lambda x\mathbin{:}\mathtt{bool}.~x</math> मतलब एक ही चीज़ (यानी, एक ही चीज़ के रूप में <math>\lambda x.~x</math>). | ||
आंतरिक और बाह्य शब्दार्थ के बीच का अंतर कभी-कभी लैम्ब्डा सार पर एनोटेशन की उपस्थिति या अनुपस्थिति से जुड़ा होता है, लेकिन वास्तव में यह प्रयोग सटीक नहीं है। केवल प्रकारों को अनदेखा करके (अर्थात, प्रकार विलोपन के माध्यम से) एनोटेट शर्तों पर | आंतरिक और बाह्य शब्दार्थ के बीच का अंतर कभी-कभी लैम्ब्डा सार पर एनोटेशन की उपस्थिति या अनुपस्थिति से जुड़ा होता है, लेकिन वास्तव में यह प्रयोग सटीक नहीं है। केवल प्रकारों को अनदेखा करके (अर्थात, प्रकार विलोपन के माध्यम से) एनोटेट शर्तों पर बाहरी शब्दार्थ को परिभाषित करना संभव है, क्योंकि यह संभव है कि जब संदर्भ से (यानी, प्रकार के माध्यम से) अनुमान लगाया जा सकता है, तो असंबद्ध शब्दों पर आंतरिक शब्दार्थ दिया जा सकता है। ). आंतरिक और बाह्य दृष्टिकोण के बीच आवश्यक अंतर यह है कि क्या टाइपिंग नियमों को भाषा को परिभाषित करने के रूप में देखा जाता है, या अधिक आदिम अंतर्निहित भाषा के गुणों को सत्यापित करने के लिए औपचारिकता के रूप में देखा जाता है। नीचे चर्चा की गई अधिकांश विभिन्न शब्दार्थ व्याख्याओं को आंतरिक या बाह्य परिप्रेक्ष्य के माध्यम से देखा जा सकता है। | ||
=== [[समीकरण सिद्धांत]] === | === [[समीकरण सिद्धांत]] === | ||
Line 86: | Line 85: | ||
=== स्पष्ट शब्दार्थ === | === स्पष्ट शब्दार्थ === | ||
बस टाइप किया हुआ लैम्ब्डा कैलकुलस (साथ <math>\beta\eta</math>-equivalence) कार्तीय बंद श्रेणियों (CCCs) की [[आंतरिक भाषा]] है, जैसा कि पहली बार [[जोआचिम लैम्बेक]] द्वारा देखा गया था।<ref name="Lambek 1985" /> किसी भी विशिष्ट सीसीसी को देखते हुए, संबंधित लैम्ब्डा कैलकुस के मूल प्रकार केवल [[वस्तु (श्रेणी सिद्धांत)]] हैं, और शर्तें [[morphism]]s हैं। इसके विपरीत, प्रत्येक सामान्य रूप से टाइप किया गया लैम्ब्डा कैलकुलस | बस टाइप किया हुआ लैम्ब्डा कैलकुलस (साथ <math>\beta\eta</math>-equivalence) कार्तीय बंद श्रेणियों (CCCs) की [[आंतरिक भाषा]] है, जैसा कि पहली बार [[जोआचिम लैम्बेक]] द्वारा देखा गया था।<ref name="Lambek 1985" /> किसी भी विशिष्ट सीसीसी को देखते हुए, संबंधित लैम्ब्डा कैलकुस के मूल प्रकार केवल [[वस्तु (श्रेणी सिद्धांत)]] हैं, और शर्तें [[morphism]]s हैं। इसके विपरीत, प्रत्येक सामान्य रूप से टाइप किया गया लैम्ब्डा कैलकुलस CCC देता है जिसकी वस्तुएँ प्रकार होती हैं, और morphisms शब्दों के तुल्यता वर्ग होते हैं। | ||
पत्राचार को स्पष्ट करने के लिए, कार्टेशियन उत्पाद के लिए एक प्रकार का निर्माता आमतौर पर ऊपर जोड़ा जाता है। [[उत्पाद (श्रेणी सिद्धांत)]] को संरक्षित करने के लिए, युग्मन, प्रक्षेपण और | पत्राचार को स्पष्ट करने के लिए, कार्टेशियन उत्पाद के लिए एक प्रकार का निर्माता आमतौर पर ऊपर जोड़ा जाता है। [[उत्पाद (श्रेणी सिद्धांत)]] को संरक्षित करने के लिए, युग्मन, प्रक्षेपण और इकाई शब्द के लिए टाइपिंग नियम जोड़े जाते हैं। दो शर्तें दी गई हैं <math>s\mathbin{:}\sigma</math> और <math>t\mathbin{:}\tau</math>, शब्द <math>(s,t)</math> प्रकार है <math>\sigma\times\tau</math>. इसी तरह, अगर किसी का कार्यकाल है <math>u\mathbin{:}\tau_1\times\tau_2</math>, तो शर्तें हैं <math>\pi_1(u)\mathbin{:}\tau_1</math> और <math>\pi_2(u)\mathbin{:}\tau_2</math> जहां <math>\pi_i</math> कार्टेशियन उत्पाद के अनुमानों के अनुरूप। प्रकार 1 का इकाई शब्द इस प्रकार लिखा जाता है <math>()</math> और 'शून्य' के रूप में मुखरित, [[अंतिम वस्तु]] है। समान सिद्धांत को इसी तरह विस्तारित किया जाता है, ताकि किसी के पास हो | ||
:<math>\pi_1(s\mathbin{:}\sigma,t\mathbin{:}\tau) = s\mathbin{:}\sigma</math> | :<math>\pi_1(s\mathbin{:}\sigma,t\mathbin{:}\tau) = s\mathbin{:}\sigma</math> | ||
:<math>\pi_2(s\mathbin{:}\sigma,t\mathbin{:}\tau) = t\mathbin{:}\tau</math> | :<math>\pi_2(s\mathbin{:}\sigma,t\mathbin{:}\tau) = t\mathbin{:}\tau</math> | ||
Line 94: | Line 93: | ||
इस अंतिम को ऐसे पढ़ा जाता है जैसे कि t में टाइप 1 है, तो यह शून्य हो जाता है। | इस अंतिम को ऐसे पढ़ा जाता है जैसे कि t में टाइप 1 है, तो यह शून्य हो जाता है। | ||
उपरोक्त प्रकारों को ऑब्जेक्ट (श्रेणी सिद्धांत) के रूप में ले कर एक श्रेणी में बदल दिया जा सकता है। रूपवाद <math>\sigma\to\tau</math> जोड़े के समकक्ष वर्ग हैं <math>(x\mathbin{:}\sigma, t\mathbin{:}\tau)</math> जहाँ x | उपरोक्त प्रकारों को ऑब्जेक्ट (श्रेणी सिद्धांत) के रूप में ले कर एक श्रेणी में बदल दिया जा सकता है। रूपवाद <math>\sigma\to\tau</math> जोड़े के समकक्ष वर्ग हैं <math>(x\mathbin{:}\sigma, t\mathbin{:}\tau)</math> जहाँ x चर है (प्रकार का <math>\sigma</math>) और टी शब्द है (प्रकार का <math>\tau</math>), इसमें (वैकल्पिक रूप से) x को छोड़कर कोई मुक्त चर नहीं है। हमेशा की तरह [[करी]]ने और लगाने से क्लोजर प्राप्त होता है। | ||
अधिक सटीक रूप से, कार्टेशियन बंद श्रेणियों की श्रेणी और सरल रूप से टाइप किए गए लैम्ब्डा सिद्धांतों की श्रेणी के बीच [[ऑपरेटर]] मौजूद हैं। | अधिक सटीक रूप से, कार्टेशियन बंद श्रेणियों की श्रेणी और सरल रूप से टाइप किए गए लैम्ब्डा सिद्धांतों की श्रेणी के बीच [[ऑपरेटर]] मौजूद हैं। | ||
रेखीय प्रकार की प्रणाली का उपयोग करके इस मामले को [[बंद मोनोइडल श्रेणी]] में विस्तारित करना आम है। इसका कारण यह है कि CCC बंद सममित मोनोइडल श्रेणी का विशेष मामला है, जिसे आमतौर पर [[सेट की श्रेणी]] के रूप में लिया जाता है। [[ समुच्चय सिद्धान्त ]] की नींव रखने के लिए यह ठीक है, लेकिन अधिक सामान्य [[ topos ]] बेहतर नींव प्रदान करते हैं। | |||
=== प्रमाण-सैद्धांतिक शब्दार्थ === | === प्रमाण-सैद्धांतिक शब्दार्थ === | ||
Line 106: | Line 105: | ||
== वैकल्पिक सिंटैक्स == | == वैकल्पिक सिंटैक्स == | ||
ऊपर दी गई प्रस्तुति केवल टाइप किए गए लैम्ब्डा कैलकुस के सिंटैक्स को परिभाषित करने का एकमात्र तरीका नहीं है। | ऊपर दी गई प्रस्तुति केवल टाइप किए गए लैम्ब्डा कैलकुस के सिंटैक्स को परिभाषित करने का एकमात्र तरीका नहीं है। विकल्प यह है कि टाइप एनोटेशन को पूरी तरह से हटा दिया जाए (ताकि सिंटैक्स अनटाइप्ड लैम्ब्डा कैलकुलस के समान हो), यह सुनिश्चित करते हुए कि हिंडले-मिलनर प्रकार के अनुमान के माध्यम से शब्द अच्छी तरह से टाइप किए गए हैं। अनुमान एल्गोरिथम समाप्ति, ध्वनि और पूर्ण है: जब भी कोई शब्द टाइप करने योग्य होता है, एल्गोरिथम उसके प्रकार की गणना करता है। अधिक सटीक रूप से, यह शब्द के [[प्रमुख प्रकार]] की गणना करता है, क्योंकि अक्सर अघोषित शब्द (जैसे <math>\lambda x.~x</math>) के एक से अधिक प्रकार हो सकते हैं (<math>\mathtt{int} \to \mathtt{int}</math>, <math>\mathtt{bool} \to \mathtt{bool}</math>, आदि, जो मुख्य प्रकार के सभी उदाहरण हैं <math>\alpha \to \alpha</math>). | ||
सामान्य रूप से टाइप किए गए लैम्ब्डा कैलकुलस की | सामान्य रूप से टाइप किए गए लैम्ब्डा कैलकुलस की अन्य वैकल्पिक प्रस्तुति द्विदिश प्रकार की जाँच पर आधारित है, जिसके लिए हिंडले-मिलनर अनुमान की तुलना में अधिक प्रकार के एनोटेशन की आवश्यकता होती है लेकिन वर्णन करना आसान है। [[प्रकार प्रणाली]] को दो निर्णयों में विभाजित किया गया है, जो लिखित 'जाँच' और 'संश्लेषण' दोनों का प्रतिनिधित्व करते हैं <math>\Gamma \vdash e \Leftarrow \tau</math> और <math>\Gamma \vdash e \Rightarrow \tau</math> क्रमश। परिचालन रूप से, तीन घटक <math>\Gamma</math>, <math>e</math>, और <math>\tau</math> जाँच निर्णय के सभी इनपुट हैं <math>\Gamma \vdash e \Leftarrow \tau</math>, जबकि संश्लेषण निर्णय <math>\Gamma \vdash e \Rightarrow \tau</math> ही लेता है <math>\Gamma</math> और <math>e</math> इनपुट के रूप में, प्रकार का उत्पादन <math>\tau</math> आउटपुट के रूप में। ये निर्णय निम्नलिखित नियमों के माध्यम से प्राप्त किए गए हैं: | ||
{| align="center" cellpadding="9" | {| align="center" cellpadding="9" | ||
| align="center" | <math>{\frac{x\mathbin{:}\sigma \in \Gamma}{\Gamma \vdash x \Rightarrow \sigma} }</math> [1] | | align="center" | <math>{\frac{x\mathbin{:}\sigma \in \Gamma}{\Gamma \vdash x \Rightarrow \sigma} }</math> [1] | ||
Line 134: | Line 133: | ||
== सामान्य अवलोकन == | == सामान्य अवलोकन == | ||
मानक शब्दार्थ को देखते हुए, सामान्य रूप से टाइप किया गया लैम्ब्डा कैलकुलस नॉर्मलाइज़ेशन प्रॉपर्टी (लैम्ब्डा-कैलकुलस) है: यानी, अच्छी तरह से टाइप किए गए शब्द हमेशा एक मान को कम करते हैं, यानी, ए <math>\lambda</math> अमूर्त। ऐसा इसलिए है क्योंकि टाइपिंग नियमों द्वारा रिकर्सन की अनुमति नहीं है: [[फिक्स्ड-पॉइंट कॉम्बिनेटर]] और लूपिंग टर्म के लिए प्रकार खोजना असंभव है <math>\Omega = (\lambda x.~x~x) (\lambda x.~x~x)</math>. रिकर्सन को या तो | मानक शब्दार्थ को देखते हुए, सामान्य रूप से टाइप किया गया लैम्ब्डा कैलकुलस नॉर्मलाइज़ेशन प्रॉपर्टी (लैम्ब्डा-कैलकुलस) है: यानी, अच्छी तरह से टाइप किए गए शब्द हमेशा एक मान को कम करते हैं, यानी, ए <math>\lambda</math> अमूर्त। ऐसा इसलिए है क्योंकि टाइपिंग नियमों द्वारा रिकर्सन की अनुमति नहीं है: [[फिक्स्ड-पॉइंट कॉम्बिनेटर]] और लूपिंग टर्म के लिए प्रकार खोजना असंभव है <math>\Omega = (\lambda x.~x~x) (\lambda x.~x~x)</math>. रिकर्सन को या तो विशेष ऑपरेटर के द्वारा भाषा में जोड़ा जा सकता है <math>\mathtt{fix}_\alpha</math>प्रकार का <math>(\alpha \to \alpha) \to \alpha</math> या सामान्य [[पुनरावर्ती प्रकार]] जोड़ना, हालांकि दोनों मजबूत सामान्यीकरण को समाप्त करते हैं। | ||
चूंकि यह दृढ़ता से सामान्यीकरण कर रहा है, यह [[निर्णायकता (तर्क)]] है कि क्या केवल टाइप किया गया लैम्ब्डा कैलकुलस प्रोग्राम रुकता है या नहीं: वास्तव में, यह हमेशा रुकता है। इसलिए हम यह निष्कर्ष निकाल सकते हैं कि भाषा [[ट्यूरिंग पूर्ण]] नहीं है। | चूंकि यह दृढ़ता से सामान्यीकरण कर रहा है, यह [[निर्णायकता (तर्क)]] है कि क्या केवल टाइप किया गया लैम्ब्डा कैलकुलस प्रोग्राम रुकता है या नहीं: वास्तव में, यह हमेशा रुकता है। इसलिए हम यह निष्कर्ष निकाल सकते हैं कि भाषा [[ट्यूरिंग पूर्ण]] नहीं है। | ||
== महत्वपूर्ण परिणाम == | == महत्वपूर्ण परिणाम == | ||
* टैट ने 1967 में दिखाया कि <math>\beta</math>-रिडक्शन नॉर्मलाइज़ेशन प्रॉपर्टी (लैम्ब्डा-कैलकुलस) है।<ref name="Tait 1967" /> परिणाम के रूप में <math>\beta\eta</math>-समानता निर्णायकता (तर्क) है। स्टेटमैन ने 1979 में दिखाया कि सामान्यीकरण समस्या [[प्राथमिक पुनरावर्ती]] नहीं है,<ref name="Statman 1979" />एक प्रमाण जिसे बाद में मैरसन ने सरल बनाया।<ref name="Mairson 1992" />समस्या सेट में होने के लिए जानी जाती है <math>\mathcal{E}^4</math> ग्रेज़गोर्स्की पदानुक्रम का।<ref>{{cite journal |last1=Statman |first1=Richard |title=The typed λ-calculus is not elementary recursive |journal=Theoretical Computer Science |date=July 1979 |volume=9 |issue=1 |pages=73–81 |doi=10.1016/0304-3975(79)90007-0 |language=en |issn=0304-3975|doi-access=free }}</ref> 1991 में बर्जर और श्विटेनबर्ग द्वारा विशुद्ध रूप से सिमेंटिक सामान्यीकरण प्रमाण ([[मूल्यांकन द्वारा सामान्यीकरण]] देखें) दिया गया था।<ref name="Berger 1991" />* एकीकरण (कंप्यूटिंग) समस्या के लिए <math>\beta\eta</math>-तुल्यता अनिर्णीत है। ह्यूएट ने 1973 में दिखाया कि तीसरे क्रम का एकीकरण अनिर्णीत है<ref name="Huet 1973" />और 1978 में बैक्सटर द्वारा इसमें सुधार किया गया<ref name="Baxter 1978" />फिर 1981 में गोल्डफार्ब द्वारा<ref name="Goldfarb 1981" />यह दिखाते हुए कि दूसरा क्रम एकीकरण पहले से ही अनिर्णीत है। 2006 में कॉलिन स्टर्लिंग द्वारा प्रमाण की घोषणा की गई थी कि उच्च क्रम मिलान (एकीकरण जहां केवल शब्द में अस्तित्वगत चर शामिल हैं) निर्णायक है, और 2009 में पूर्ण प्रमाण प्रकाशित किया गया था।<ref>{{cite journal|last1=Stirling|first1=Colin|title=उच्च-क्रम मिलान की निश्चितता|journal=Logical Methods in Computer Science|date=22 July 2009|volume=5|issue=3|pages=1–52|doi=10.2168/LMCS-5(3:2)2009|arxiv=0907.3804|s2cid=1478837}}</ref> | |||
* टैट ने 1967 में दिखाया कि <math>\beta</math>-रिडक्शन नॉर्मलाइज़ेशन प्रॉपर्टी (लैम्ब्डा-कैलकुलस) है।<ref name="Tait 1967" /> | |||
* हम प्रकार के संदर्भ में प्राकृतिक संख्याओं को सांकेतिक शब्दों में बदल सकते हैं <math>(o\to o)\to(o \to o)</math> ([[चर्च अंक]])। श्विटेनबर्ग ने 1975 में दिखाया कि में <math>\lambda^\to</math> बिल्कुल विस्तारित [[बहुपद]] चर्च अंकों पर कार्यों के रूप में प्रतिनिधित्व योग्य हैं;<ref name="Schwichtenberg 1975" />ये मोटे तौर पर सशर्त संकारक के अंतर्गत बंद किए गए बहुपद हैं। | * हम प्रकार के संदर्भ में प्राकृतिक संख्याओं को सांकेतिक शब्दों में बदल सकते हैं <math>(o\to o)\to(o \to o)</math> ([[चर्च अंक]])। श्विटेनबर्ग ने 1975 में दिखाया कि में <math>\lambda^\to</math> बिल्कुल विस्तारित [[बहुपद]] चर्च अंकों पर कार्यों के रूप में प्रतिनिधित्व योग्य हैं;<ref name="Schwichtenberg 1975" />ये मोटे तौर पर सशर्त संकारक के अंतर्गत बंद किए गए बहुपद हैं। | ||
* का एक पूर्ण मॉडल <math>\lambda^\to</math> सेट-सैद्धांतिक [[समारोह स्थान]] द्वारा [[सेट (गणित)]] और फ़ंक्शन प्रकारों के रूप में आधार प्रकारों की व्याख्या करके दिया जाता है। फ्रीडमैन ने 1975 में दिखाया कि यह व्याख्या [[पूर्णता (तर्क)]] के लिए है <math>\beta\eta</math>-समानता, यदि आधार प्रकार की व्याख्या अनंत सेटों द्वारा की जाती है।<ref name="Friedman 1975" />स्टेटमैन ने 1983 में दिखाया था कि <math>\beta\eta</math>-समतुल्यता अधिकतम तुल्यता है जो आम तौर पर अस्पष्ट है, यानी प्रकार प्रतिस्थापन (स्टेटमैन की विशिष्ट अस्पष्टता प्रमेय) के तहत बंद है।<ref name="Statman 1983" />इसका | * का एक पूर्ण मॉडल <math>\lambda^\to</math> सेट-सैद्धांतिक [[समारोह स्थान]] द्वारा [[सेट (गणित)]] और फ़ंक्शन प्रकारों के रूप में आधार प्रकारों की व्याख्या करके दिया जाता है। फ्रीडमैन ने 1975 में दिखाया कि यह व्याख्या [[पूर्णता (तर्क)]] के लिए है <math>\beta\eta</math>-समानता, यदि आधार प्रकार की व्याख्या अनंत सेटों द्वारा की जाती है।<ref name="Friedman 1975" />स्टेटमैन ने 1983 में दिखाया था कि <math>\beta\eta</math>-समतुल्यता अधिकतम तुल्यता है जो आम तौर पर अस्पष्ट है, यानी प्रकार प्रतिस्थापन (स्टेटमैन की विशिष्ट अस्पष्टता प्रमेय) के तहत बंद है।<ref name="Statman 1983" />इसका परिणाम यह है कि परिमित मॉडल संपत्ति धारण करती है, अर्थात परिमित सेट उन शब्दों को अलग करने के लिए पर्याप्त हैं जिन्हें इसके द्वारा पहचाना नहीं जाता है <math>\beta\eta</math>-तुल्यता। | ||
* प्लॉटकिन ने 1973 में | * प्लॉटकिन ने 1973 में मॉडल के तत्वों की विशेषता के लिए तार्किक संबंधों की शुरुआत की, जो लैम्ब्डा शर्तों द्वारा परिभाषित हैं।<ref name="Plotkin 1973" />1993 में जंग और ट्यूरिन ने दिखाया कि तार्किक संबंध का सामान्य रूप (क्रिपके तार्किक संबंध अलग-अलग एरिटी के साथ) वास्तव में लैम्ब्डा निश्चितता की विशेषता है।<ref name="Jung 1993" />प्लॉटकिन और स्टेटमैन ने अनुमान लगाया कि यह निश्चित है कि परिमित सेट से उत्पन्न मॉडल का दिया गया तत्व लैम्ब्डा शब्द (प्लॉटकिन-स्टेटमैन अनुमान) द्वारा निश्चित है या नहीं। 2001 में लोडर द्वारा अनुमान को झूठा दिखाया गया था।<ref name="Loader 2001" /> | ||
Revision as of 16:09, 25 May 2023
बस टाइप किया हुआ लैम्ब्डा कैलकुस (), प्रकार सिद्धांत , केवल एक प्रकार के कंस्ट्रक्टर के साथ लैम्ब्डा कैलकुलस का टाइप किया हुआ लैम्ब्डा कैलकुलस है () जो फ़ंक्शन प्रकार बनाता है। यह टाइप किए गए लैम्ब्डा कैलकुस का प्रामाणिक और सरल उदाहरण है। सामान्य रूप से टाइप किए गए लैम्ब्डा कैलकुलस को मूल रूप से अलोंजो चर्च द्वारा 1940 में अनटाइप्ड लैम्ब्डा कैलकुलस के विरोधाभासी उपयोग से बचने के प्रयास के रूप में पेश किया गया था।[1]
शब्द सरल प्रकार का उपयोग केवल टाइप किए गए लैम्ब्डा गणना जैसे कार्टेशियन उत्पाद, सहउत्पाद या प्राकृतिक संख्या (डायलेक्टिका व्याख्या) या यहां तक कि पूर्ण प्रत्यावर्तन (जैसे कंप्यूटेबल फ़ंक्शंस के लिए प्रोग्रामिंग भाषा) के एक्सटेंशन को संदर्भित करने के लिए भी किया जाता है। इसके विपरीत, सिस्टम जो पैरामीट्रिक बहुरूपता (जैसे सिस्टम एफ) या आश्रित प्रकार (जैसे एलएफ (तार्किक ढांचा)) पेश करते हैं, उन्हें केवल टाइप नहीं माना जाता है। सरल प्रकार, पूर्ण पुनरावर्तन को छोड़कर, अभी भी सरल माने जाते हैं क्योंकि ऐसी संरचनाओं के चर्च एन्कोडिंग केवल का उपयोग करके किया जा सकता है और उपयुक्त प्रकार चर, जबकि बहुरूपता (जीव विज्ञान) और निर्भरता नहीं हो सकती।
सामान्य रूप से टाइप किया गया लैम्ब्डा कैलकुलस प्रपोजल अंतर्ज्ञानवादी तर्क के इम्प्लीकेशनल फ्रैगमेंट से निकटता से संबंधित है, यानी करी-हावर्ड आइसोमोर्फिज्म के माध्यम से न्यूनतम तर्क
सिंटेक्स
इस लेख में, प्रतीक और प्रकार से अधिक श्रेणी के लिए उपयोग किया जाता है। अनौपचारिक रूप से, फ़ंक्शन प्रकार प्रकार के इनपुट को देखते हुए, प्रकार्यों के प्रकार को संदर्भित करता है , प्रकार का आउटपुट उत्पन्न करें . रिवाज के सन्दर्भ मे, दाईं ओर सहयोगी: के रूप में पढ़ा जाता है .
प्रकारों को परिभाषित करने के लिए, आधार प्रकारों का सेट, , पहले परिभाषित किया जाना चाहिए। इन्हें कभी-कभी परमाणु प्रकार या प्रकार स्थिरांक कहा जाता है। इस निश्चित के साथ, प्रकारों का सिंटैक्स है:
- .
उदाहरण के लिए, , से शुरू होने वाले प्रकारों का अनंत सेट उत्पन्न करता है आधार प्रकारों के लिए पद स्थिरांकों का समुच्चय भी निश्चित होता है। उदाहरण के लिए, यह माना जा सकता है कि आधार प्रकार nat, और पद स्थिरांक प्राकृत संख्याएँ हो सकती हैं। मूल प्रस्तुति में, चर्च ने केवल दो आधार प्रकारों का प्रयोग किया: प्रस्तावों के प्रकार के लिए और व्यक्तियों के प्रकार के लिए। प्ररूप कोई शब्द स्थिरांक नहीं है, जबकि पद स्थिर है। अक्सर केवल एक आधार प्रकार के साथ कलन, आमतौर पर , माना जाता है।
बस टाइप किए गए लैम्ब्डा कैलकुलस का सिंटैक्स अनिवार्य रूप से लैम्ब्डा कैलकुलस का ही है। शब्द दर्शाता है कि चर प्रकार का है . बैकस-नौर रूप में सिंटैक्स शब्द तब है:
कहाँ स्थिरांक है।
यही है, चर संदर्भ, अमूर्तता, अनुप्रयोग और स्थिरांक। चर संदर्भ बाध्य है अगर यह अमूर्त बंधन के अंदर है . यदि कोई अनबाउंड चर नहीं हैं तो शब्द बंद हो जाता है।
इसकी तुलना में, अनटाइप्ड लैम्ब्डा कैलकुलस के सिंटैक्स में ऐसा कोई टाइपिंग या शब्द स्थिरांक नहीं है:
जबकि टाइप किए गए लैम्ब्डा कैलकुस में प्रत्येक अमूर्तता (यानी फ़ंक्शन) को इसके तर्क के प्रकार को निर्दिष्ट करना होगा।
टाइपिंग नियम
किसी दिए गए प्रकार के अच्छी तरह से टाइप किए गए लैम्ब्डा शब्दों के सेट को परिभाषित करने के लिए, शब्दों और प्रकारों के बीच टाइपिंग संबंध को परिभाषित करता है। सबसे पहले, व्यक्ति टाइपिंग संदर्भों या टाइपिंग परिवेशों का परिचय देता है , जो टाइपिंग मान्यताओं के सेट हैं। टाइपिंग धारणा का रूप है , अर्थ प्रकार है .
टाइपिंग संबंध दर्शाता है कि प्रकार का शब्द है संदर्भ में . इस मामले में कहा जाता है कि अच्छी तरह से टाइप किया गया है (type ). टंकण संबंध के उदाहरणों को टंकण निर्णय कहा जाता है। टाइपिंग निर्णय की वैधता एक टाइपिंग व्युत्पत्ति प्रदान करके दिखाई जाती है, जिसे टाइपिंग नियमों का उपयोग करके बनाया गया है (जिसमें लाइन के ऊपर का परिसर हमें लाइन के नीचे निष्कर्ष निकालने की अनुमति देता है)। सीधे शब्दों में टाइप किया गया लैम्ब्डा कैलकुलस इन नियमों का उपयोग करता है:
(1) | (2) |
(3) | (4) |
शब्दों में,
- अगर प्रकार है संदर्भ में, तब प्रकार है .
- पद स्थिरांक के उपयुक्त आधार प्रकार होते हैं।
- यदि, निश्चित संदर्भ में प्रकार होना , प्रकार है , फिर, उसी संदर्भ में बिना , प्रकार है .
- अगर, निश्चित संदर्भ में, प्रकार है , और प्रकार है , तब प्रकार है .
बंद शर्तों के उदाहरण, यानी खाली संदर्भ में टाइप करने योग्य शब्द हैं:
- हर प्रकार के लिए , अवधी (पहचान समारोह / मैं-संयोजक),
- प्रकार के लिए , अवधी (के-कॉम्बिनेटर), और
- प्रकार के लिए , अवधी (एस-कॉम्बिनेटर)।
ये संयोजन तर्क के बेसिक कॉम्बिनेटर्स के टाइप किए गए लैम्ब्डा कैलकुलस रिप्रेजेंटेशन हैं।
प्रत्येक प्रकार आदेश, संख्या सौंपी जाती है . आधार प्रकार के लिए ; समारोह प्रकार के लिए, . अर्थात्, एक प्रकार का क्रम सबसे बाएँ-नेस्टेड तीर की गहराई को मापता है। इस तरह:
शब्दार्थ
आंतरिक बनाम बाहरी व्याख्या
मोटे तौर पर, सामान्य रूप से टाइप किए गए लैम्ब्डा कैलकुलस को अर्थ देने के दो अलग-अलग तरीके हैं, जैसे टाइप की गई भाषाओं के लिए, जिन्हें विभिन्न प्रकार से इंट्रिंसिक बनाम एक्सट्रिंसिक, ऑन्कोलॉजिकल बनाम सिमेंटिकल, या चर्च-शैली बनाम करी-शैली कहा जाता है।[1][3][4] आंतरिक शब्दार्थ केवल अच्छी तरह से टाइप किए गए शब्दों को अर्थ प्रदान करता है, या अधिक सटीक रूप से, टाइपिंग व्युत्पत्तियों को सीधे अर्थ प्रदान करता है। इसका प्रभाव यह है कि केवल एनोटेशन के प्रकार से भिन्न होने वाले शब्दों को फिर भी अलग-अलग अर्थ दिए जा सकते हैं। उदाहरण के लिए, पहचान शब्द पूर्णांक और पहचान शब्द पर बूलियन पर अलग-अलग चीजों का मतलब हो सकता है। (क्लासिक इरादा व्याख्याएं पूर्णांकों पर पहचान फलन और बूलियन मानों पर पहचान फलन हैं।) इसके विपरीत, बाहरी शब्दार्थ टाइपिंग की परवाह किए बिना शब्दों को अर्थ प्रदान करता है, क्योंकि उनकी व्याख्या अप्रकाशित भाषा में की जाएगी। इस दृश्य में, और मतलब एक ही चीज़ (यानी, एक ही चीज़ के रूप में ).
आंतरिक और बाह्य शब्दार्थ के बीच का अंतर कभी-कभी लैम्ब्डा सार पर एनोटेशन की उपस्थिति या अनुपस्थिति से जुड़ा होता है, लेकिन वास्तव में यह प्रयोग सटीक नहीं है। केवल प्रकारों को अनदेखा करके (अर्थात, प्रकार विलोपन के माध्यम से) एनोटेट शर्तों पर बाहरी शब्दार्थ को परिभाषित करना संभव है, क्योंकि यह संभव है कि जब संदर्भ से (यानी, प्रकार के माध्यम से) अनुमान लगाया जा सकता है, तो असंबद्ध शब्दों पर आंतरिक शब्दार्थ दिया जा सकता है। ). आंतरिक और बाह्य दृष्टिकोण के बीच आवश्यक अंतर यह है कि क्या टाइपिंग नियमों को भाषा को परिभाषित करने के रूप में देखा जाता है, या अधिक आदिम अंतर्निहित भाषा के गुणों को सत्यापित करने के लिए औपचारिकता के रूप में देखा जाता है। नीचे चर्चा की गई अधिकांश विभिन्न शब्दार्थ व्याख्याओं को आंतरिक या बाह्य परिप्रेक्ष्य के माध्यम से देखा जा सकता है।
समीकरण सिद्धांत
सामान्य रूप से टाइप किए गए लैम्ब्डा कैलकुलस में βη-तुल्यता का समान समीकरण सिद्धांत है, जैसा कि अनटाइप्ड लैम्ब्डा कैलकुलस # रिडक्शन है, लेकिन टाइप प्रतिबंधों के अधीन है। बीटा कमी के लिए समीकरण
संदर्भ में रखता है जब कभी भी और , जबकि ईटीए कमी के लिए समीकरण
जब भी रखता है और में मुक्त नहीं दिखता .
परिचालन शब्दार्थ
इसी तरह, केवल टाइप किए गए लैम्ब्डा कैलकुलस के परिचालन शब्दार्थ को अनटाइप्ड लैम्ब्डा कैलकुलस के रूप में तय किया जा सकता है, नाम से बुलाओ, मूल्य से कॉल करें, या अन्य मूल्यांकन रणनीति का उपयोग करना। किसी भी टाइप की गई भाषा के लिए, प्रकार की सुरक्षा इन सभी मूल्यांकन रणनीतियों की मूलभूत संपत्ति है। इसके अतिरिक्त, मजबूत सामान्यीकरण गुण केवल टाइप किया हुआ लैम्ब्डा कैलकुलस#महत्वपूर्ण परिणाम दर्शाता है कि कोई भी मूल्यांकन रणनीति सरलता से टाइप किए गए सभी शब्दों पर समाप्त हो जाएगी।
स्पष्ट शब्दार्थ
बस टाइप किया हुआ लैम्ब्डा कैलकुलस (साथ -equivalence) कार्तीय बंद श्रेणियों (CCCs) की आंतरिक भाषा है, जैसा कि पहली बार जोआचिम लैम्बेक द्वारा देखा गया था।[5] किसी भी विशिष्ट सीसीसी को देखते हुए, संबंधित लैम्ब्डा कैलकुस के मूल प्रकार केवल वस्तु (श्रेणी सिद्धांत) हैं, और शर्तें morphisms हैं। इसके विपरीत, प्रत्येक सामान्य रूप से टाइप किया गया लैम्ब्डा कैलकुलस CCC देता है जिसकी वस्तुएँ प्रकार होती हैं, और morphisms शब्दों के तुल्यता वर्ग होते हैं।
पत्राचार को स्पष्ट करने के लिए, कार्टेशियन उत्पाद के लिए एक प्रकार का निर्माता आमतौर पर ऊपर जोड़ा जाता है। उत्पाद (श्रेणी सिद्धांत) को संरक्षित करने के लिए, युग्मन, प्रक्षेपण और इकाई शब्द के लिए टाइपिंग नियम जोड़े जाते हैं। दो शर्तें दी गई हैं और , शब्द प्रकार है . इसी तरह, अगर किसी का कार्यकाल है , तो शर्तें हैं और जहां कार्टेशियन उत्पाद के अनुमानों के अनुरूप। प्रकार 1 का इकाई शब्द इस प्रकार लिखा जाता है और 'शून्य' के रूप में मुखरित, अंतिम वस्तु है। समान सिद्धांत को इसी तरह विस्तारित किया जाता है, ताकि किसी के पास हो
- :
इस अंतिम को ऐसे पढ़ा जाता है जैसे कि t में टाइप 1 है, तो यह शून्य हो जाता है।
उपरोक्त प्रकारों को ऑब्जेक्ट (श्रेणी सिद्धांत) के रूप में ले कर एक श्रेणी में बदल दिया जा सकता है। रूपवाद जोड़े के समकक्ष वर्ग हैं जहाँ x चर है (प्रकार का ) और टी शब्द है (प्रकार का ), इसमें (वैकल्पिक रूप से) x को छोड़कर कोई मुक्त चर नहीं है। हमेशा की तरह करीने और लगाने से क्लोजर प्राप्त होता है।
अधिक सटीक रूप से, कार्टेशियन बंद श्रेणियों की श्रेणी और सरल रूप से टाइप किए गए लैम्ब्डा सिद्धांतों की श्रेणी के बीच ऑपरेटर मौजूद हैं।
रेखीय प्रकार की प्रणाली का उपयोग करके इस मामले को बंद मोनोइडल श्रेणी में विस्तारित करना आम है। इसका कारण यह है कि CCC बंद सममित मोनोइडल श्रेणी का विशेष मामला है, जिसे आमतौर पर सेट की श्रेणी के रूप में लिया जाता है। समुच्चय सिद्धान्त की नींव रखने के लिए यह ठीक है, लेकिन अधिक सामान्य topos बेहतर नींव प्रदान करते हैं।
प्रमाण-सैद्धांतिक शब्दार्थ
सामान्य रूप से टाइप किया गया लैम्ब्डा कैलकुलस प्रपोजल अंतर्ज्ञानवादी तर्क के इम्प्लीकेशनल फ्रैगमेंट से निकटता से संबंधित है, यानी करी-हावर्ड आइसोमोर्फिज्म के माध्यम से न्यूनतम तर्क: शब्द प्राकृतिक कटौती में प्रमाणों के अनुरूप हैं, और आवास टाइप करें वास्तव में मिनिमम का टॉटोलॉजी (तर्क) है। तर्क।
वैकल्पिक सिंटैक्स
ऊपर दी गई प्रस्तुति केवल टाइप किए गए लैम्ब्डा कैलकुस के सिंटैक्स को परिभाषित करने का एकमात्र तरीका नहीं है। विकल्प यह है कि टाइप एनोटेशन को पूरी तरह से हटा दिया जाए (ताकि सिंटैक्स अनटाइप्ड लैम्ब्डा कैलकुलस के समान हो), यह सुनिश्चित करते हुए कि हिंडले-मिलनर प्रकार के अनुमान के माध्यम से शब्द अच्छी तरह से टाइप किए गए हैं। अनुमान एल्गोरिथम समाप्ति, ध्वनि और पूर्ण है: जब भी कोई शब्द टाइप करने योग्य होता है, एल्गोरिथम उसके प्रकार की गणना करता है। अधिक सटीक रूप से, यह शब्द के प्रमुख प्रकार की गणना करता है, क्योंकि अक्सर अघोषित शब्द (जैसे ) के एक से अधिक प्रकार हो सकते हैं (, , आदि, जो मुख्य प्रकार के सभी उदाहरण हैं ).
सामान्य रूप से टाइप किए गए लैम्ब्डा कैलकुलस की अन्य वैकल्पिक प्रस्तुति द्विदिश प्रकार की जाँच पर आधारित है, जिसके लिए हिंडले-मिलनर अनुमान की तुलना में अधिक प्रकार के एनोटेशन की आवश्यकता होती है लेकिन वर्णन करना आसान है। प्रकार प्रणाली को दो निर्णयों में विभाजित किया गया है, जो लिखित 'जाँच' और 'संश्लेषण' दोनों का प्रतिनिधित्व करते हैं और क्रमश। परिचालन रूप से, तीन घटक , , और जाँच निर्णय के सभी इनपुट हैं , जबकि संश्लेषण निर्णय ही लेता है और इनपुट के रूप में, प्रकार का उत्पादन आउटपुट के रूप में। ये निर्णय निम्नलिखित नियमों के माध्यम से प्राप्त किए गए हैं:
[1] | [2] |
[3] | [4] |
[5] | [6] |
निरीक्षण करें कि नियम [1]-[4] उपरोक्त नियमों (1)-(4) के लगभग समान हैं, जांच या संश्लेषण निर्णयों के सावधानीपूर्वक चयन को छोड़कर। इन विकल्पों को इस प्रकार समझाया जा सकता है:
- अगर संदर्भ में है, हम प्रकार को संश्लेषित कर सकते हैं के लिए .
- शब्द स्थिरांक के प्रकार निश्चित होते हैं और इन्हें संश्लेषित किया जा सकता है।
- इसकी जांच के लिए प्रकार है किसी संदर्भ में, हम संदर्भ का विस्तार करते हैं और इसे जांचें प्रकार है .
- अगर प्रकार संश्लेषित करता है (किसी संदर्भ में), और प्रकार के विरुद्ध जाँच करता है (उसी संदर्भ में), तब प्रकार संश्लेषित करता है .
ध्यान दें कि संश्लेषण के नियम ऊपर से नीचे तक पढ़े जाते हैं, जबकि जाँच के नियम नीचे से ऊपर तक पढ़े जाते हैं। विशेष रूप से ध्यान दें कि हमें नियम [3] में लैम्ब्डा अमूर्तता पर किसी एनोटेशन की आवश्यकता नहीं है, क्योंकि बाउंड वेरिएबल के प्रकार को उस प्रकार से घटाया जा सकता है जिस पर हम फ़ंक्शन की जांच करते हैं। अंत में, हम नियम [5] और [6] की व्याख्या इस प्रकार करते हैं: <ओल प्रारंभ = 5>
सामान्य अवलोकन
मानक शब्दार्थ को देखते हुए, सामान्य रूप से टाइप किया गया लैम्ब्डा कैलकुलस नॉर्मलाइज़ेशन प्रॉपर्टी (लैम्ब्डा-कैलकुलस) है: यानी, अच्छी तरह से टाइप किए गए शब्द हमेशा एक मान को कम करते हैं, यानी, ए अमूर्त। ऐसा इसलिए है क्योंकि टाइपिंग नियमों द्वारा रिकर्सन की अनुमति नहीं है: फिक्स्ड-पॉइंट कॉम्बिनेटर और लूपिंग टर्म के लिए प्रकार खोजना असंभव है . रिकर्सन को या तो विशेष ऑपरेटर के द्वारा भाषा में जोड़ा जा सकता है प्रकार का या सामान्य पुनरावर्ती प्रकार जोड़ना, हालांकि दोनों मजबूत सामान्यीकरण को समाप्त करते हैं।
चूंकि यह दृढ़ता से सामान्यीकरण कर रहा है, यह निर्णायकता (तर्क) है कि क्या केवल टाइप किया गया लैम्ब्डा कैलकुलस प्रोग्राम रुकता है या नहीं: वास्तव में, यह हमेशा रुकता है। इसलिए हम यह निष्कर्ष निकाल सकते हैं कि भाषा ट्यूरिंग पूर्ण नहीं है।
महत्वपूर्ण परिणाम
- टैट ने 1967 में दिखाया कि -रिडक्शन नॉर्मलाइज़ेशन प्रॉपर्टी (लैम्ब्डा-कैलकुलस) है।[6] परिणाम के रूप में -समानता निर्णायकता (तर्क) है। स्टेटमैन ने 1979 में दिखाया कि सामान्यीकरण समस्या प्राथमिक पुनरावर्ती नहीं है,[7]एक प्रमाण जिसे बाद में मैरसन ने सरल बनाया।[8]समस्या सेट में होने के लिए जानी जाती है ग्रेज़गोर्स्की पदानुक्रम का।[9] 1991 में बर्जर और श्विटेनबर्ग द्वारा विशुद्ध रूप से सिमेंटिक सामान्यीकरण प्रमाण (मूल्यांकन द्वारा सामान्यीकरण देखें) दिया गया था।[10]* एकीकरण (कंप्यूटिंग) समस्या के लिए -तुल्यता अनिर्णीत है। ह्यूएट ने 1973 में दिखाया कि तीसरे क्रम का एकीकरण अनिर्णीत है[11]और 1978 में बैक्सटर द्वारा इसमें सुधार किया गया[12]फिर 1981 में गोल्डफार्ब द्वारा[13]यह दिखाते हुए कि दूसरा क्रम एकीकरण पहले से ही अनिर्णीत है। 2006 में कॉलिन स्टर्लिंग द्वारा प्रमाण की घोषणा की गई थी कि उच्च क्रम मिलान (एकीकरण जहां केवल शब्द में अस्तित्वगत चर शामिल हैं) निर्णायक है, और 2009 में पूर्ण प्रमाण प्रकाशित किया गया था।[14]
- हम प्रकार के संदर्भ में प्राकृतिक संख्याओं को सांकेतिक शब्दों में बदल सकते हैं (चर्च अंक)। श्विटेनबर्ग ने 1975 में दिखाया कि में बिल्कुल विस्तारित बहुपद चर्च अंकों पर कार्यों के रूप में प्रतिनिधित्व योग्य हैं;[15]ये मोटे तौर पर सशर्त संकारक के अंतर्गत बंद किए गए बहुपद हैं।
- का एक पूर्ण मॉडल सेट-सैद्धांतिक समारोह स्थान द्वारा सेट (गणित) और फ़ंक्शन प्रकारों के रूप में आधार प्रकारों की व्याख्या करके दिया जाता है। फ्रीडमैन ने 1975 में दिखाया कि यह व्याख्या पूर्णता (तर्क) के लिए है -समानता, यदि आधार प्रकार की व्याख्या अनंत सेटों द्वारा की जाती है।[16]स्टेटमैन ने 1983 में दिखाया था कि -समतुल्यता अधिकतम तुल्यता है जो आम तौर पर अस्पष्ट है, यानी प्रकार प्रतिस्थापन (स्टेटमैन की विशिष्ट अस्पष्टता प्रमेय) के तहत बंद है।[17]इसका परिणाम यह है कि परिमित मॉडल संपत्ति धारण करती है, अर्थात परिमित सेट उन शब्दों को अलग करने के लिए पर्याप्त हैं जिन्हें इसके द्वारा पहचाना नहीं जाता है -तुल्यता।
- प्लॉटकिन ने 1973 में मॉडल के तत्वों की विशेषता के लिए तार्किक संबंधों की शुरुआत की, जो लैम्ब्डा शर्तों द्वारा परिभाषित हैं।[18]1993 में जंग और ट्यूरिन ने दिखाया कि तार्किक संबंध का सामान्य रूप (क्रिपके तार्किक संबंध अलग-अलग एरिटी के साथ) वास्तव में लैम्ब्डा निश्चितता की विशेषता है।[19]प्लॉटकिन और स्टेटमैन ने अनुमान लगाया कि यह निश्चित है कि परिमित सेट से उत्पन्न मॉडल का दिया गया तत्व लैम्ब्डा शब्द (प्लॉटकिन-स्टेटमैन अनुमान) द्वारा निश्चित है या नहीं। 2001 में लोडर द्वारा अनुमान को झूठा दिखाया गया था।[20]
टिप्पणियाँ
- ↑ 1.0 1.1 Church, Alonzo (June 1940). "A formulation of the simple theory of types" (PDF). Journal of Symbolic Logic. 5 (2): 56–68. doi:10.2307/2266170. JSTOR 2266170. S2CID 15889861. Archived from the original (PDF) on 12 January 2019.
- ↑ Pfenning, Frank. "Church and Curry: Combining Intrinsic and Extrinsic Typing" (PDF): 1. Retrieved 26 February 2022.
{{cite journal}}
: Cite journal requires|journal=
(help) - ↑ Curry, Haskell B (1934-09-20). "Functionality in Combinatory Logic". Proceedings of the National Academy of Sciences of the United States of America. 20 (11): 584–90. Bibcode:1934PNAS...20..584C. doi:10.1073/pnas.20.11.584. ISSN 0027-8424. PMC 1076489. PMID 16577644. (presents an extrinsically typed combinatory logic, later adapted by others to the lambda calculus)[2]
- ↑ Reynolds, John (1998). प्रोग्रामिंग भाषाओं के सिद्धांत. Cambridge, England: Cambridge University Press. pp. 327, 334. ISBN 9780521594141.
- ↑ Lambek, J. (1986). "Cartesian closed categories and typed λ-calculi". Combinators and Functional Programming Languages. Lecture टिप्पणियाँ in Computer Science (in English). Vol. 242. Springer. pp. 136–175. doi:10.1007/3-540-17184-3_44. ISBN 978-3-540-47253-7.
- ↑ Tait, W. W. (August 1967). "Intensional interpretations of functionals of finite type I". The Journal of Symbolic Logic (in English). 32 (2): 198–212. doi:10.2307/2271658. ISSN 0022-4812. JSTOR 2271658. S2CID 9569863.
- ↑ Statman, Richard (1 July 1979). "The typed λ-calculus is not elementary recursive". Theoretical Computer Science (in English). 9 (1): 73–81. doi:10.1016/0304-3975(79)90007-0. ISSN 0304-3975.
- ↑ Mairson, Harry G. (14 September 1992). "A simple proof of a theorem of Statman". Theoretical Computer Science (in English). 103 (2): 387–394. doi:10.1016/0304-3975(92)90020-G. ISSN 0304-3975.
- ↑ Statman, Richard (July 1979). "The typed λ-calculus is not elementary recursive". Theoretical Computer Science (in English). 9 (1): 73–81. doi:10.1016/0304-3975(79)90007-0. ISSN 0304-3975.
- ↑ Berger, U.; Schwichtenberg, H. (July 1991). "An inverse of the evaluation functional for typed lambda-calculus". [1991] Proceedings Sixth Annual IEEE Symposium on Logic in Computer Science: 203–211. doi:10.1109/LICS.1991.151645. ISBN 0-8186-2230-X. S2CID 40441974.
- ↑ Huet, Gerard P. (1 April 1973). "The undecidability of unification in third order logic". Information and Control (in English). 22 (3): 257–267. doi:10.1016/S0019-9958(73)90301-X. ISSN 0019-9958.
- ↑ Baxter, Lewis D. (1 August 1978). "The undecidability of the third order dyadic unification problem". Information and Control (in English). 38 (2): 170–178. doi:10.1016/S0019-9958(78)90172-9. ISSN 0019-9958.
- ↑ Goldfarb, Warren D. (1 January 1981). "The undecidability of the second-order unification problem". Theoretical Computer Science (in English). 13 (2): 225–230. doi:10.1016/0304-3975(81)90040-2. ISSN 0304-3975.
- ↑ Stirling, Colin (22 July 2009). "उच्च-क्रम मिलान की निश्चितता". Logical Methods in Computer Science. 5 (3): 1–52. arXiv:0907.3804. doi:10.2168/LMCS-5(3:2)2009. S2CID 1478837.
- ↑ Schwichtenberg, Helmut (1 September 1975). "Definierbare Funktionen imλ-Kalkül mit Typen". Archiv für mathematische Logik und Grundlagenforschung (in Deutsch). 17 (3): 113–114. doi:10.1007/BF02276799. ISSN 1432-0665. S2CID 11598130.
- ↑ Friedman, Harvey (1975). "Equality between functionals". Logic Colloquium. Lecture टिप्पणियाँ in Mathematics (in English). Springer. 453: 22–37. doi:10.1007/BFb0064870. ISBN 978-3-540-07155-6.
- ↑ Statman, R. (1 December 1983). "-definable functionals and conversion". Archiv für mathematische Logik und Grundlagenforschung (in English). 23 (1): 21–26. doi:10.1007/BF02023009. ISSN 1432-0665. S2CID 33920306.
- ↑ Plotkin, G.D. (1973). Lambda-definability and logical relations (PDF) (Technical report). Edinburgh University. Retrieved 30 September 2022.
- ↑ Jung, Achim; Tiuryn, Jerzy (1993). "A new characterization of lambda definability". Typed Lambda Calculi and Applications. Lecture टिप्पणियाँ in Computer Science (in English). Springer. 664: 245–257. doi:10.1007/BFb0037110. ISBN 3-540-56517-5.
- ↑ Loader, Ralph (2001). "The Undecidability of λ-Definability". Logic, Meaning and Computation: Essays in Memory of Alonzo Church (in English). Springer Netherlands: 331–342. doi:10.1007/978-94-010-0526-5_15. ISBN 978-94-010-3891-1.
संदर्भ
- H. Barendregt, Lambda Calculi with Types, Handbook of Logic in Computer Science, Volume II, Oxford University Press, 1993. ISBN 0-19-853761-1.
बाहरी संबंध
- Loader, Ralph (February 1998). "Notes on Simply Typed Lambda Calculus".
- "Church's Type Theory" entry in the Stanford Encyclopedia of Philosophy