बस टाइप किया हुआ लैम्ब्डा कैलकुलस: Difference between revisions

From Vigyanwiki
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>\to</math>) है | जो फ़ंक्शंस टाइप बनाता है। यह टाइप किए गए लैम्ब्डा कैलकुस का प्रामाणिक और सरल उदाहरण है। सामान्य रूप से टाइप किए गए लैम्ब्डा कैलकुलस को मूल रूप से [[अलोंजो चर्च]] द्वारा 1940 में [[अनटाइप्ड लैम्ब्डा कैलकुलस]] के विरोधाभासी उपयोग से बचने के प्रयास के रूप में प्रस्तुत किया गया था।<ref name="Church 1940" />
साधारणतः टाइप किया हुआ लैम्ब्डा कैलकुस (<math>\lambda^\to</math>), [[ प्रकार सिद्धांत |टाइप सिद्धांत]] , केवल एक टाइप के कंस्ट्रक्टर के साथ [[लैम्ब्डा कैलकुलस]] का टाइप किया हुआ लैम्ब्डा कैलकुलस (<math>\to</math>) है। जो फ़ंक्शंस टाइप बनाता है। यह टाइप किए गए लैम्ब्डा कैलकुस का प्रामाणिक और सरल उदाहरण है। सामान्य रूप से टाइप किए गए लैम्ब्डा कैलकुलस को मूल रूप से [[अलोंजो चर्च]] द्वारा 1940 में [[अनटाइप्ड लैम्ब्डा कैलकुलस]] के विरोधाभासी उपयोग से बचने के प्रयास के रूप में प्रस्तुत किया गया था।<ref name="Church 1940" />
 
शब्द सरल टाइप का उपयोग केवल टाइप किए गए लैम्ब्डा [[गणना]] जैसे कार्टेशियन उत्पाद, [[सहउत्पाद]] या [[प्राकृतिक संख्या]] (डायलेक्टिका व्याख्या) या यहां तक ​​​​कि पूर्ण [[ प्रत्यावर्तन ]] (जैसे कंप्यूटेबल फ़ंक्शंस के लिए प्रोग्रामिंग भाषा) के एक्सटेंशन को संदर्भित करने के लिए भी किया जाता है। इसके विपरीत, सिस्टम जो [[पैरामीट्रिक बहुरूपता]] (जैसे [[सिस्टम एफ]]) या [[आश्रित प्रकार|आश्रित टाइप]] (जैसे [[एलएफ (तार्किक ढांचा)|एलएफ (तार्किक रुपरेखा)]]) प्रस्तुत करते हैं | उन्हें केवल टाइप नहीं माना जाता है। सरल टाइप, पूर्ण पुनरावर्तन को छोड़कर, अभी भी सरल माने जाते हैं क्योंकि ऐसी संरचनाओं के [[चर्च एन्कोडिंग]] केवल का उपयोग करके किया जा सकता है | <math>\to</math> और उपयुक्त टाइप चर, जबकि [[बहुरूपता (जीव विज्ञान)]] और निर्भरता नहीं हो सकती है।
 
'''सामान्य रूप से टाइप किया गया लैम्ब्डा कैलकुलस प्रपोजल [[ अंतर्ज्ञानवादी तर्क | अंतर्ज्ञानवादी तर्क]] के इम्प्लीके''' 


शब्द सरल टाइप का उपयोग केवल टाइप किए गए लैम्ब्डा [[गणना]] जैसे कार्टेशियन उत्पाद, [[सहउत्पाद]] या [[प्राकृतिक संख्या]] (डायलेक्टिका व्याख्या) या यहां तक ​​​​कि पूर्ण [[ प्रत्यावर्तन |प्रत्यावर्तन]] (जैसे कंप्यूटेबल फ़ंक्शंस के लिए प्रोग्रामिंग भाषा) के एक्सटेंशन को संदर्भित करने के लिए भी किया जाता है। इसके विपरीत, सिस्टम जो [[पैरामीट्रिक बहुरूपता]] (जैसे [[सिस्टम एफ]]) या [[आश्रित प्रकार|आश्रित टाइप]] (जैसे [[एलएफ (तार्किक ढांचा)|एलएफ (तार्किक रुपरेखा)]]) प्रस्तुत करते हैं | उन्हें केवल टाइप नहीं माना जाता है। सरल टाइप, पूर्ण पुनरावर्तन को छोड़कर, अभी भी सरल माने जाते हैं क्योंकि ऐसी संरचनाओं के [[चर्च एन्कोडिंग]] केवल का उपयोग करके किया जा सकता है। <math>\to</math> और उपयुक्त टाइप चर, जबकि [[बहुरूपता (जीव विज्ञान)]] और निर्भरता नहीं हो सकती है।
== सिंटेक्स ==
== सिंटेक्स ==


इस लेख में, प्रतीक <math>\sigma</math> और <math>\tau</math> टाइप से अधिक श्रेणी के लिए उपयोग किया जाता है। अनौपचारिक रूप से, फ़ंक्शंस टाइप <math>\sigma \to \tau</math> टाइप के इनपुट को देखते हुए, टाइप के टाइप को संदर्भित करता है | जो <math>\sigma</math> टाइप <math>\tau</math> का आउटपुट उत्पन्न करें | सन्दर्भ मे, <math>\to</math> दाईं ओर सहयोगी: <math>\sigma\to\tau\to\rho</math> के रूप में <math>\sigma\to(\tau\to\rho)</math> पढ़ा जाता है |
इस लेख में, प्रतीक <math>\sigma</math> और <math>\tau</math> टाइप से अधिक श्रेणी के लिए उपयोग किया जाता है। अनौपचारिक रूप से, फ़ंक्शंस टाइप <math>\sigma \to \tau</math> टाइप के इनपुट को देखते हुए, टाइप के टाइप को संदर्भित करता है। जो <math>\sigma</math> टाइप <math>\tau</math> का आउटपुट उत्पन्न करें | सन्दर्भ मे, <math>\to</math> दाईं ओर सहयोगी: <math>\sigma\to\tau\to\rho</math> के रूप में <math>\sigma\to(\tau\to\rho)</math> पढ़ा जाता है।


टाइप को परिभाषित करने के लिए, आधार टाइप का सेट, <math>B</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>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> से प्रारंभ होने वाले टाइप का अनंत सेट उत्पन्न करता है |
उदाहरण के लिए, <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>, माना जाता है।
आधार टाइप के लिए पद स्थिरांकों का सेट भी निश्चित होता है। उदाहरण के लिए, यह माना जा सकता है कि आधार टाइप {{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> के अंदर है | यदि कोई अनबाउंड चर नहीं हैं तो शब्द बंद हो जाता है।
यही है, चर संदर्भ, अमूर्तता, अनुप्रयोग और स्थिरांक चर संदर्भ <math>x</math> बाध्य है। यदि यह अमूर्त बंधन <math>x</math> के अंदर है। यदि कोई अनबाउंड चर नहीं हैं तो शब्द बंद हो जाता है।


इसकी तुलना में, अनटाइप्ड लैम्ब्डा कैलकुलस के सिंटैक्स में ऐसा कोई टाइपिंग या शब्द स्थिरांक नहीं है |
इसकी तुलना में, अनटाइप्ड लैम्ब्डा कैलकुलस के सिंटैक्स में ऐसा कोई टाइपिंग या शब्द स्थिरांक नहीं है।


:<math>e ::= x \mid \lambda x.e \mid e \, e</math>
:<math>e ::= x \mid \lambda x.e \mid e \, e</math>
Line 32: Line 29:
== टाइपिंग नियम ==
== टाइपिंग नियम ==


किसी दिए गए टाइप के अच्छी तरह से टाइप किए गए लैम्ब्डा शब्दों के सेट को परिभाषित करने के लिए, शब्दों और टाइप के बीच टाइपिंग संबंध को परिभाषित करता है। सबसे पहले, व्यक्ति टाइपिंग संदर्भों या टाइपिंग परिवेशों <math>\Gamma,\Delta,\dots</math> का परिचय देता है | जो टाइपिंग मान्यताओं के सेट हैं। टाइपिंग धारणा <math>x\mathbin{:}\sigma</math>, अर्थ <math>x</math> <math>\sigma</math> का टाइप रूप है |
किसी दिए गए टाइप के अच्छी तरह से टाइप किए गए लैम्ब्डा शब्दों के सेट को परिभाषित करने के लिए, शब्दों और टाइप के बीच टाइपिंग संबंध को परिभाषित करता है। सबसे पहले, व्यक्ति टाइपिंग संदर्भों या टाइपिंग परिवेशों <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>\Gamma</math> <math>\sigma</math> टाइप का शब्द है | इस स्थिति में <math>e</math> कहा जाता है कि अच्छी तरह से टाइप किया गया है | (type <math>\sigma</math>). टंकण संबंध के उदाहरणों को टंकण निर्णय कहा जाता है। टाइपिंग निर्णय की वैधता एक टाइपिंग व्युत्पत्ति प्रदान करके दिखाई जाती है | जिसे [[टाइपिंग नियम]] का उपयोग करके बनाया गया है | (जिसमें लाइन के ऊपर का परिसर हमें लाइन के नीचे निष्कर्ष निकालने की अनुमति देता है)। सीधे शब्दों में टाइप किया गया लैम्ब्डा कैलकुलस इन नियमों का उपयोग करता है:
टाइपिंग संबंध <math>\Gamma\vdash e\mathbin{:}\sigma</math> दर्शाता है कि <math>e</math> संदर्भ में <math>\Gamma</math> <math>\sigma</math> टाइप का शब्द है। इस स्थिति में <math>e</math> कहा जाता है कि अच्छी तरह से टाइप किया गया है। (type <math>\sigma</math>). टंकण संबंध के उदाहरणों को टंकण निर्णय कहा जाता है। टाइपिंग निर्णय की वैधता एक टाइपिंग व्युत्पत्ति प्रदान करके दिखाई जाती है। जिसे [[टाइपिंग नियम]] का उपयोग करके बनाया गया है। (जिसमें लाइन के ऊपर का परिसर हमें लाइन के नीचे निष्कर्ष निकालने की अनुमति देता है)। सीधे शब्दों में टाइप किया गया लैम्ब्डा कैलकुलस इन नियमों का उपयोग करता है:


{| align="center" cellpadding="9"
{| align="center" cellpadding="9"
Line 44: Line 41:
|}
|}
शब्दों में,
शब्दों में,
# यदि <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>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> है |
# यदि, निश्चित संदर्भ में, <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> है।


बंद नियमो के उदाहरण, अर्थात खाली संदर्भ में टाइप करने योग्य शब्द हैं |
बंद नियमो के उदाहरण, अर्थात खाली संदर्भ में टाइप करने योग्य शब्द हैं |
* प्रत्येक टाइप <math>\tau</math> के लिए , एक पद <math>\lambda x\mathbin{:}\tau.x\mathbin{:}\tau\to\tau</math> (पहचान फ़ंक्शन / -संयोजक) है |
* प्रत्येक टाइप <math>\tau</math> के लिए , एक पद <math>\lambda x\mathbin{:}\tau.x\mathbin{:}\tau\to\tau</math> (पहचान फ़ंक्शन / -संयोजक) है।
* टाइप के लिए <math>\sigma,\tau</math>, एक पद <math>\lambda x\mathbin{:}\sigma.\lambda y\mathbin{:}\tau.x\mathbin{:}\sigma \to \tau \to \sigma</math> (के-कॉम्बिनेटर), और
* टाइप के लिए <math>\sigma,\tau</math>, एक पद <math>\lambda x\mathbin{:}\sigma.\lambda y\mathbin{:}\tau.x\mathbin{:}\sigma \to \tau \to \sigma</math> (के-कॉम्बिनेटर), और
* टाइप के लिए <math>\tau,\tau',\tau''</math>, एक पद <math>\lambda x\mathbin{:}\tau\to\tau'\to\tau''.\lambda y\mathbin{:}\tau\to\tau'.\lambda z\mathbin{:}\tau.x z (y z) : (\tau\to\tau'\to\tau'')\to(\tau\to\tau')\to\tau\to\tau''</math> (एस-कॉम्बिनेटर) है।
* टाइप के लिए <math>\tau,\tau',\tau''</math>, एक पद <math>\lambda x\mathbin{:}\tau\to\tau'\to\tau''.\lambda y\mathbin{:}\tau\to\tau'.\lambda z\mathbin{:}\tau.x z (y z) : (\tau\to\tau'\to\tau'')\to(\tau\to\tau')\to\tau\to\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>\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 64:
आंतरिक शब्दार्थ केवल अच्छी तरह से टाइप किए गए शब्दों को अर्थ प्रदान करता है, या अधिक श्रेणीबद्ध रूप से, टाइपिंग व्युत्पत्तियों को सीधे अर्थ प्रदान करता है। इसका प्रभाव यह है कि केवल एनोटेशन के टाइप से भिन्न होने वाले शब्दों को फिर भी अलग-अलग अर्थ दिए जा सकते हैं। उदाहरण के लिए, पहचान शब्द <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\mathbin{:}\mathtt{int}.~x</math> और <math>\lambda x\mathbin{:}\mathtt{bool}.~x</math> कारण एक (अर्थात, एक ही चीज़ के रूप में <math>\lambda x.~x</math>). है |
इसके विपरीत, बाहरी शब्दार्थ टाइपिंग की परवाह किए बिना शब्दों को अर्थ प्रदान करता है, क्योंकि उनकी व्याख्या अप्रकाशित भाषा में की जाएगी। इस दृश्य में, <math>\lambda x\mathbin{:}\mathtt{int}.~x</math> और <math>\lambda x\mathbin{:}\mathtt{bool}.~x</math> कारण एक (अर्थात, एक ही चीज़ के रूप में <math>\lambda x.~x</math>). है।


आंतरिक और बाह्य शब्दार्थ के बीच का अंतर कभी-कभी लैम्ब्डा सार पर एनोटेशन की उपस्थिति या अनुपस्थिति से जुड़ा होता है | किन्तु वास्तव में यह प्रयोग श्रेणीबद्ध नहीं है। केवल टाइप को अनदेखा करके (अर्थात, टाइप विलोपन के माध्यम से) एनोटेट नियमो पर बाहरी शब्दार्थ को परिभाषित करना संभव है | क्योंकि यह संभव है कि जब संदर्भ से (अर्थात, टाइप के माध्यम से) अनुमान लगाया जा सकता है, तो असंबद्ध शब्दों पर आंतरिक शब्दार्थ दिया जा सकता है। ). आंतरिक और बाह्य दृष्टिकोण के बीच आवश्यक अंतर यह है कि क्या टाइपिंग नियमों को भाषा को परिभाषित करने के रूप में देखा जाता है, या अधिक आदिम अंतर्निहित भाषा के गुणों को सत्यापित करने के लिए औपचारिकता के रूप में देखा जाता है। नीचे चर्चा की गई अधिकांश विभिन्न शब्दार्थ व्याख्याओं को आंतरिक या बाह्य परिप्रेक्ष्य के माध्यम से देखा जा सकता है।
आंतरिक और बाह्य शब्दार्थ के बीच का अंतर कभी-कभी लैम्ब्डा सार पर एनोटेशन की उपस्थिति या अनुपस्थिति से जुड़ा होता है। किन्तु वास्तव में यह प्रयोग श्रेणीबद्ध नहीं है। केवल टाइप को अनदेखा करके (अर्थात, टाइप विलोपन के माध्यम से) एनोटेट नियमो पर बाहरी शब्दार्थ को परिभाषित करना संभव है। क्योंकि यह संभव है कि जब संदर्भ से (अर्थात, टाइप के माध्यम से) अनुमान लगाया जा सकता है, तो असंबद्ध शब्दों पर आंतरिक शब्दार्थ दिया जा सकता है। ). आंतरिक और बाह्य दृष्टिकोण के बीच आवश्यक अंतर यह है कि क्या टाइपिंग नियमों को भाषा को परिभाषित करने के रूप में देखा जाता है, या अधिक आदिम अंतर्निहित भाषा के गुणों को सत्यापित करने के लिए औपचारिकता के रूप में देखा जाता है। नीचे चर्चा की गई अधिकांश विभिन्न शब्दार्थ व्याख्याओं को आंतरिक या बाह्य परिप्रेक्ष्य के माध्यम से देखा जा सकता है।


=== [[समीकरण सिद्धांत]] ===
=== [[समीकरण सिद्धांत]] ===


सामान्य रूप से टाइप किए गए लैम्ब्डा कैलकुलस में βη-तुल्यता का समान समीकरण सिद्धांत है | जैसा कि अनटाइप्ड लैम्ब्डा कैलकुलस रिडक्शन है | किन्तु टाइप प्रतिबंधों के अधीन है। [[बीटा कमी]] के लिए समीकरण है |
सामान्य रूप से टाइप किए गए लैम्ब्डा कैलकुलस में βη-तुल्यता का समान समीकरण सिद्धांत है। जैसा कि अनटाइप्ड लैम्ब्डा कैलकुलस रिडक्शन है। किन्तु टाइप प्रतिबंधों के अधीन है। [[बीटा कमी]] के लिए समीकरण है।
:<math>(\lambda x\mathbin{:}\sigma.~t)\,u =_{\beta} t[x:=u]</math>
:<math>(\lambda x\mathbin{:}\sigma.~t)\,u =_{\beta} t[x:=u]</math>
संदर्भ में रखता है <math>\Gamma</math> जब कभी भी <math>\Gamma,x\mathbin{:}\sigma \vdash t\mathbin{:}\tau</math> और <math>\Gamma\vdash u\mathbin{:}\sigma</math>, जबकि ईटीए कमी के लिए समीकरण
संदर्भ में रखता है <math>\Gamma</math> जब कभी भी <math>\Gamma,x\mathbin{:}\sigma \vdash t\mathbin{:}\tau</math> और <math>\Gamma\vdash u\mathbin{:}\sigma</math>, जबकि ईटीए कमी के लिए समीकरण
:<math>\lambda x\mathbin{:}\sigma.~t\,x =_\eta t</math>
:<math>\lambda x\mathbin{:}\sigma.~t\,x =_\eta t</math>
जब भी रखता है | <math>\Gamma\vdash t\!:\sigma \to \tau</math> और <math>x</math> <math>t</math> में मुक्त नहीं दिखता है |
जब भी रखता है। <math>\Gamma\vdash t\!:\sigma \to \tau</math> और <math>x</math> <math>t</math> में मुक्त नहीं दिखता है।


=== [[परिचालन शब्दार्थ]] ===
=== [[परिचालन शब्दार्थ]] ===


इसी तरह, केवल टाइप किए गए लैम्ब्डा कैलकुलस के परिचालन शब्दार्थ को अनटाइप्ड लैम्ब्डा कैलकुलस के रूप में तय किया जा सकता है | [[नाम से बुलाओ]], [[मूल्य से कॉल करें]], या अन्य [[मूल्यांकन रणनीति]] का उपयोग किया जाता है। किसी भी टाइप की गई भाषा के लिए, [[प्रकार की सुरक्षा|टाइप की सुरक्षा]] इन सभी मूल्यांकन रणनीतियों की मूलभूत संपत्ति है। इसके अतिरिक्त, [[मजबूत सामान्यीकरण|शक्तिशाली सामान्यीकरण]] गुण केवल टाइप किया हुआ लैम्ब्डा कैलकुलस महत्वपूर्ण परिणाम दर्शाता है कि कोई भी मूल्यांकन रणनीति सरलता से टाइप किए गए सभी शब्दों पर समाप्त हो जाएगी।
इसी तरह, केवल टाइप किए गए लैम्ब्डा कैलकुलस के परिचालन शब्दार्थ को अनटाइप्ड लैम्ब्डा कैलकुलस के रूप में तय किया जा सकता है। [[नाम से बुलाओ]], [[मूल्य से कॉल करें]], या अन्य [[मूल्यांकन रणनीति]] का उपयोग किया जाता है। किसी भी टाइप की गई भाषा के लिए, [[प्रकार की सुरक्षा|टाइप की सुरक्षा]] इन सभी मूल्यांकन रणनीतियों की मूलभूत संपत्ति है। इसके अतिरिक्त, [[मजबूत सामान्यीकरण|शक्तिशाली सामान्यीकरण]] गुण केवल टाइप किया हुआ लैम्ब्डा कैलकुलस महत्वपूर्ण परिणाम दर्शाता है कि कोई भी मूल्यांकन रणनीति सरलता से टाइप किए गए सभी शब्दों पर समाप्त हो जाएगी।


=== श्रेणीबद्ध शब्दार्थ ===
=== श्रेणीबद्ध शब्दार्थ ===
साधारणतः टाइप किया हुआ लैम्ब्डा कैलकुलस (साथ <math>\beta\eta</math>-समानता) कार्तीय बंद श्रेणियों (सीसीसी) की [[आंतरिक भाषा]] है | जैसा कि पहली बार [[जोआचिम लैम्बेक]] द्वारा देखा गया था।<ref name="Lambek 1985" /> किसी भी विशिष्ट सीसीसी को देखते हुए, संबंधित लैम्ब्डा कैलकुस के मूल टाइप केवल [[वस्तु (श्रेणी सिद्धांत)]] हैं, और नियम [[morphism|रूपवाद]] हैं। इसके विपरीत, प्रत्येक सामान्य रूप से टाइप किया गया लैम्ब्डा कैलकुलस सीसीसी देता है | जिसकी वस्तुएँ टाइप होती हैं, और रूपवाद शब्दों के तुल्यता वर्ग होते हैं।
साधारणतः टाइप किया हुआ लैम्ब्डा कैलकुलस (साथ <math>\beta\eta</math>-समानता) कार्तीय बंद श्रेणियों (सीसीसी) की [[आंतरिक भाषा]] है। जैसा कि पहली बार [[जोआचिम लैम्बेक]] द्वारा देखा गया था।<ref name="Lambek 1985" /> किसी भी विशिष्ट सीसीसी को देखते हुए, संबंधित लैम्ब्डा कैलकुस के मूल टाइप केवल [[वस्तु (श्रेणी सिद्धांत)]] हैं, और नियम [[morphism|रूपवाद]] हैं। इसके विपरीत, प्रत्येक सामान्य रूप से टाइप किया गया लैम्ब्डा कैलकुलस सीसीसी देता है। जिसकी वस्तुएँ टाइप होती हैं, और रूपवाद शब्दों के तुल्यता वर्ग होते हैं।


पत्राचार को श्रेणीबद्ध करने के लिए, कार्टेशियन उत्पाद के लिए एक टाइप का निर्माता सामान्यतः ऊपर जोड़ा जाता है। [[उत्पाद (श्रेणी सिद्धांत)]] को संरक्षित करने के लिए, युग्मन, प्रक्षेपण और इकाई शब्द के लिए टाइपिंग नियम जोड़े जाते हैं। दो नियम <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>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 92: Line 89:
इस अंतिम को ऐसे पढ़ा जाता है जैसे कि t में टाइप 1 है, तो यह शून्य हो जाता है।
इस अंतिम को ऐसे पढ़ा जाता है जैसे कि t में टाइप 1 है, तो यह शून्य हो जाता है।


उपरोक्त टाइप को ऑब्जेक्ट (श्रेणी सिद्धांत) के रूप में ले कर एक श्रेणी में बदल दिया जा सकता है। रूपवाद <math>\sigma\to\tau</math> जोड़े के समकक्ष वर्ग <math>(x\mathbin{:}\sigma, t\mathbin{:}\tau)</math> हैं | जहाँ x चर है (टाइप का <math>\sigma</math>) और t शब्द है (टाइप का <math>\tau</math>), इसमें (वैकल्पिक रूप से) x को छोड़कर कोई मुक्त चर नहीं है। सदैव की तरह [[करी]]ने और लगाने से क्लोजर प्राप्त होता है।
उपरोक्त टाइप को ऑब्जेक्ट (श्रेणी सिद्धांत) के रूप में ले कर एक श्रेणी में बदल दिया जा सकता है। रूपवाद <math>\sigma\to\tau</math> जोड़े के समकक्ष वर्ग <math>(x\mathbin{:}\sigma, t\mathbin{:}\tau)</math> हैं | जहाँ x चर है (टाइप का <math>\sigma</math>) और t शब्द है (टाइप का <math>\tau</math>), इसमें (वैकल्पिक रूप से) x को छोड़कर कोई मुक्त चर नहीं है। सदैव की तरह [[करी]]ने और लगाने से क्लोजर प्राप्त होता है।


अधिक श्रेणीबद्ध रूप से, कार्टेशियन बंद श्रेणियों की श्रेणी और सरल रूप से टाइप किए गए लैम्ब्डा सिद्धांतों की श्रेणी के बीच [[ऑपरेटर|संचालक]] उपस्थित हैं।
अधिक श्रेणीबद्ध रूप से, कार्टेशियन बंद श्रेणियों की श्रेणी और सरल रूप से टाइप किए गए लैम्ब्डा सिद्धांतों की श्रेणी के बीच [[ऑपरेटर|संचालक]] उपस्थित हैं।


रेखीय टाइप की सिस्टम का उपयोग करके इस स्थिति को [[बंद मोनोइडल श्रेणी]] में विस्तारित करना सामान्य है। इसका कारण यह है कि सीसीसी बंद सममित मोनोइडल श्रेणी का विशेष स्थिति है, जिसे सामान्यतः [[सेट की श्रेणी]] के रूप में लिया जाता है। [[ समुच्चय सिद्धान्त | सेट सिद्धान्त]] की नींव रखने के लिए यह ठीक है, किन्तु अधिक सामान्य [[ topos |टोपोज़]] उत्तम नींव प्रदान करते हैं।
रेखीय टाइप की सिस्टम का उपयोग करके इस स्थिति को [[बंद मोनोइडल श्रेणी]] में विस्तारित करना सामान्य है। इसका कारण यह है कि सीसीसी बंद सममित मोनोइडल श्रेणी का विशेष स्थिति है, जिसे सामान्यतः [[सेट की श्रेणी]] के रूप में लिया जाता है। [[ समुच्चय सिद्धान्त |सेट सिद्धान्त]] की नींव रखने के लिए यह ठीक है, किन्तु अधिक सामान्य [[ topos |टोपोज़]] उत्तम नींव प्रदान करते हैं।


=== प्रमाण-सैद्धांतिक शब्दार्थ ===
=== प्रमाण-सैद्धांतिक शब्दार्थ ===


सामान्य रूप से टाइप किया गया लैम्ब्डा कैलकुलस प्रपोजल [[ अंतर्ज्ञानवादी तर्क ]] के इम्प्लीकेशनल फ्रैगमेंट से निकटता से संबंधित है, अर्थात करी-हावर्ड आइसोमोर्फिज्म के माध्यम से [[न्यूनतम तर्क]] शब्द [[प्राकृतिक कटौती|प्राकृतिक क्षय]] में प्रमाणों के अनुरूप हैं, और [[आवास टाइप करें]] वास्तव में मिनिमम का [[टॉटोलॉजी (तर्क)]] है।
सामान्य रूप से टाइप किया गया लैम्ब्डा कैलकुलस प्रपोजल [[ अंतर्ज्ञानवादी तर्क |अंतर्ज्ञानवादी तर्क]] के इम्प्लीकेशनल फ्रैगमेंट से निकटता से संबंधित है, अर्थात करी-हावर्ड आइसोमोर्फिज्म के माध्यम से [[न्यूनतम तर्क]] शब्द [[प्राकृतिक कटौती|प्राकृतिक क्षय]] में प्रमाणों के अनुरूप हैं, और [[आवास टाइप करें]] वास्तव में मिनिमम का [[टॉटोलॉजी (तर्क)]] है।


== वैकल्पिक सिंटैक्स ==
== वैकल्पिक सिंटैक्स ==


ऊपर दी गई प्रस्तुति केवल टाइप किए गए लैम्ब्डा कैलकुस के सिंटैक्स को परिभाषित करने का एकमात्र विधि नहीं है। विकल्प यह है कि टाइप एनोटेशन को पूरी तरह से हटा दिया जाए (जिससे सिंटैक्स अनटाइप्ड लैम्ब्डा कैलकुलस के समान हो), यह सुनिश्चित करते हुए कि हिंडले-मिलनर टाइप के अनुमान के माध्यम से शब्द अच्छी तरह से टाइप किए गए हैं। अनुमान एल्गोरिथम समाप्ति, ध्वनि और पूर्ण है | जब भी कोई शब्द टाइप करने योग्य होता है, एल्गोरिथम उसके टाइप की गणना करता है। अधिक श्रेणीबद्ध रूप से, यह शब्द के [[प्रमुख प्रकार|प्रमुख टाइप]] की गणना करता है | क्योंकि अधिकांशतः अघोषित शब्द (जैसे <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>\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> आउटपुट के रूप में ये निर्णय निम्नलिखित नियमों के माध्यम से प्राप्त किए गए हैं |
सामान्य रूप से टाइप किए गए लैम्ब्डा कैलकुलस की अन्य वैकल्पिक प्रस्तुति द्विदिश टाइप की जाँच पर आधारित है, जिसके लिए हिंडले-मिलनर अनुमान की तुलना में अधिक टाइप के एनोटेशन की आवश्यकता होती है। किन्तु वर्णन करना सरल है। [[प्रकार प्रणाली|टाइप सिस्टम]] को दो निर्णयों में विभाजित किया गया है। जो लिखित 'जाँच' और 'संश्लेषण' दोनों का प्रतिनिधित्व करते हैं |<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 117: Line 114:
| align="center" | <math>{\frac{\Gamma\vdash e \Leftarrow \tau}{\Gamma\vdash (e\mathbin{:}\tau)\Rightarrow \tau}}</math> [6]
| align="center" | <math>{\frac{\Gamma\vdash e \Leftarrow \tau}{\Gamma\vdash (e\mathbin{:}\tau)\Rightarrow \tau}}</math> [6]
|}
|}
निरीक्षण करें कि नियम [1]-[4] उपरोक्त नियमों (1)-(4) के लगभग समान हैं, जांच या संश्लेषण निर्णयों के सावधानीपूर्वक चयन को छोड़कर इन विकल्पों को इस टाइप समझाया जा सकता है |
निरीक्षण करें कि नियम [1]-[4] उपरोक्त नियमों (1)-(4) के लगभग समान हैं, जांच या संश्लेषण निर्णयों के सावधानीपूर्वक चयन को छोड़कर इन विकल्पों को इस टाइप समझाया जा सकता है।
# यदि <math>x\mathbin{:}\sigma</math> संदर्भ में <math>\sigma</math> के लिए <math>x</math>. है, हम टाइप को संश्लेषित कर सकते हैं |
# यदि <math>x\mathbin{:}\sigma</math> संदर्भ में <math>\sigma</math> के लिए <math>x</math>. है, हम टाइप को संश्लेषित कर सकते हैं |
# शब्द स्थिरांक के टाइप निश्चित होते हैं और इन्हें संश्लेषित किया जा सकता है।
# शब्द स्थिरांक के टाइप निश्चित होते हैं और इन्हें संश्लेषित किया जा सकता है।
# इसकी जांच के लिए <math>\lambda x.~e</math> टाइप <math>\sigma \to \tau</math> है |  किसी संदर्भ में, हम संदर्भ <math>x\mathbin{:}\sigma</math> का विस्तार करते हैं और इसे जांचें <math>e</math> टाइप <math>\tau</math> है |
# इसकी जांच के लिए <math>\lambda x.~e</math> टाइप <math>\sigma \to \tau</math> है। किसी संदर्भ में, हम संदर्भ <math>x\mathbin{:}\sigma</math> का विस्तार करते हैं और इसे जांचें <math>e</math> टाइप <math>\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> संश्लेषित करता है |
# यदि <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> संश्लेषित करता है।
ध्यान दें कि संश्लेषण के नियम ऊपर से नीचे तक पढ़े जाते हैं, जबकि जाँच के नियम नीचे से ऊपर तक पढ़े जाते हैं। विशेष रूप से ध्यान दें कि हमें नियम [3] में लैम्ब्डा अमूर्तता पर किसी एनोटेशन की आवश्यकता नहीं है | क्योंकि बाउंड वेरिएबल के टाइप को उस टाइप से घटाया जा सकता है | जिस पर हम फ़ंक्शंस की जांच करते हैं। अंत में, हम नियम [5] और [6] की व्याख्या इस टाइप करते हैं |
ध्यान दें कि संश्लेषण के नियम ऊपर से नीचे तक पढ़े जाते हैं, जबकि जाँच के नियम नीचे से ऊपर तक पढ़े जाते हैं। विशेष रूप से ध्यान दें कि हमें नियम [3] में लैम्ब्डा अमूर्तता पर किसी एनोटेशन की आवश्यकता नहीं है। क्योंकि बाउंड वेरिएबल के टाइप को उस टाइप से घटाया जा सकता है। जिस पर हम फ़ंक्शंस की जांच करते हैं। अंत में, हम नियम [5] और [6] की व्याख्या इस टाइप करते हैं |
<li>उसकी जांच करने के लिए <math>e</math> टाइप <math>\tau</math> है | यह टाइप <math>\tau</math> को संश्लेषित करने के लिए पर्याप्त है।
<li>उसकी जांच करने के लिए <math>e</math> टाइप <math>\tau</math> है। यह टाइप <math>\tau</math> को संश्लेषित करने के लिए पर्याप्त है।
<li>यदि <math>e</math> टाइप <math>\tau</math> के विरुद्ध जाँच करता है | फिर श्रेणीबद्ध रूप से एनोटेट किया गया शब्द <math>(e\mathbin{:}\tau)</math> संश्लेषित <math>\tau</math>. इन अंतिम दो नियमों के कारण संश्लेषण और जाँच के बीच यह देखना सरल है कि किसी भी अच्छी तरह से टाइप किए गए किन्तु बिना टिप्पणी वाले शब्द को द्विदिश सिस्टम में जाँचा जा सकता है, जब तक हम पर्याप्त टाइप के एनोटेशन सम्मिलित करते हैं। और वास्तव में, एनोटेशन की आवश्यकता केवल β-रेडेक्सेस पर होती है।
<li>यदि <math>e</math> टाइप <math>\tau</math> के विरुद्ध जाँच करता है। फिर श्रेणीबद्ध रूप से एनोटेट किया गया शब्द <math>(e\mathbin{:}\tau)</math> संश्लेषित <math>\tau</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> या सामान्य [[पुनरावर्ती प्रकार|पुनरावर्ती टाइप]] जोड़ना, चूँकि दोनों शक्तिशाली सामान्यीकरण को समाप्त करते हैं।
मानक शब्दार्थ को देखते हुए, सामान्य रूप से टाइप किया गया लैम्ब्डा कैलकुलस नॉर्मलाइज़ेशन प्रॉपर्टी (लैम्ब्डा-कैलकुलस) है: अर्थात, अच्छी तरह से टाइप किए गए शब्द सदैव एक मान को कम करते हैं अर्थात, ए <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>\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>
* हम टाइप <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>\beta\eta</math>-तुल्यता इसके द्वारा पहचाना नहीं जाता है।
* एक पूर्ण मॉडल <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 में मॉडल के तत्वों की विशेषता के लिए तार्किक संबंधों की प्रारंभ किया जो लैम्ब्डा नियमो द्वारा परिभाषित हैं।<ref name="Plotkin 1973" /> 1993 में जंग और ट्यूरिन ने दिखाया कि तार्किक संबंध का सामान्य रूप (क्रिपके तार्किक संबंध अलग-अलग एरिटी के साथ) वास्तव में लैम्ब्डा निश्चितता की विशेषता है।<ref name="Jung 1993" /> प्लॉटकिन और स्टेटमैन ने अनुमान लगाया कि यह निश्चित है कि परिमित सेट से उत्पन्न मॉडल का दिया गया तत्व लैम्ब्डा शब्द (प्लॉटकिन-स्टेटमैन अनुमान) द्वारा निश्चित है या नहीं है। 2001 में लोडर द्वारा अनुमान को गलत दिखाया गया था।<ref name="Loader 2001" />
* प्लॉटकिन ने 1973 में मॉडल के तत्वों की विशेषता के लिए तार्किक संबंधों की प्रारंभ किया जो लैम्ब्डा नियमो द्वारा परिभाषित हैं।<ref name="Plotkin 1973" /> 1993 में जंग और ट्यूरिन ने दिखाया कि तार्किक संबंध का सामान्य रूप (क्रिपके तार्किक संबंध अलग-अलग एरिटी के साथ) वास्तव में लैम्ब्डा निश्चितता की विशेषता है।<ref name="Jung 1993" /> प्लॉटकिन और स्टेटमैन ने अनुमान लगाया कि यह निश्चित है कि परिमित सेट से उत्पन्न मॉडल का दिया गया तत्व लैम्ब्डा शब्द (प्लॉटकिन-स्टेटमैन अनुमान) द्वारा निश्चित है या नहीं है। 2001 में लोडर द्वारा अनुमान को गलत दिखाया गया था।<ref name="Loader 2001" />
== टिप्पणियाँ ==
== टिप्पणियाँ ==



Revision as of 17:08, 25 May 2023

साधारणतः टाइप किया हुआ लैम्ब्डा कैलकुस (), टाइप सिद्धांत , केवल एक टाइप के कंस्ट्रक्टर के साथ लैम्ब्डा कैलकुलस का टाइप किया हुआ लैम्ब्डा कैलकुलस () है। जो फ़ंक्शंस टाइप बनाता है। यह टाइप किए गए लैम्ब्डा कैलकुस का प्रामाणिक और सरल उदाहरण है। सामान्य रूप से टाइप किए गए लैम्ब्डा कैलकुलस को मूल रूप से अलोंजो चर्च द्वारा 1940 में अनटाइप्ड लैम्ब्डा कैलकुलस के विरोधाभासी उपयोग से बचने के प्रयास के रूप में प्रस्तुत किया गया था।[1]

शब्द सरल टाइप का उपयोग केवल टाइप किए गए लैम्ब्डा गणना जैसे कार्टेशियन उत्पाद, सहउत्पाद या प्राकृतिक संख्या (डायलेक्टिका व्याख्या) या यहां तक ​​​​कि पूर्ण प्रत्यावर्तन (जैसे कंप्यूटेबल फ़ंक्शंस के लिए प्रोग्रामिंग भाषा) के एक्सटेंशन को संदर्भित करने के लिए भी किया जाता है। इसके विपरीत, सिस्टम जो पैरामीट्रिक बहुरूपता (जैसे सिस्टम एफ) या आश्रित टाइप (जैसे एलएफ (तार्किक रुपरेखा)) प्रस्तुत करते हैं | उन्हें केवल टाइप नहीं माना जाता है। सरल टाइप, पूर्ण पुनरावर्तन को छोड़कर, अभी भी सरल माने जाते हैं क्योंकि ऐसी संरचनाओं के चर्च एन्कोडिंग केवल का उपयोग करके किया जा सकता है। और उपयुक्त टाइप चर, जबकि बहुरूपता (जीव विज्ञान) और निर्भरता नहीं हो सकती है।

सिंटेक्स

इस लेख में, प्रतीक और टाइप से अधिक श्रेणी के लिए उपयोग किया जाता है। अनौपचारिक रूप से, फ़ंक्शंस टाइप टाइप के इनपुट को देखते हुए, टाइप के टाइप को संदर्भित करता है। जो टाइप का आउटपुट उत्पन्न करें | सन्दर्भ मे, दाईं ओर सहयोगी: के रूप में पढ़ा जाता है।

टाइप को परिभाषित करने के लिए, आधार टाइप का सेट, , पहले परिभाषित किया जाना चाहिए। इन्हें कभी-कभी परमाणु टाइप या टाइप स्थिरांक कहा जाता है। इस निश्चित के साथ, टाइप का सिंटैक्स है।

.

उदाहरण के लिए, , से प्रारंभ होने वाले टाइप का अनंत सेट उत्पन्न करता है।

आधार टाइप के लिए पद स्थिरांकों का सेट भी निश्चित होता है। उदाहरण के लिए, यह माना जा सकता है कि आधार टाइप nat, और पद स्थिरांक प्राकृत संख्याएँ हो सकती हैं। मूल प्रस्तुति में, चर्च ने केवल दो आधार टाइप का प्रयोग किया था | प्रस्तावों के टाइप के लिए और व्यक्तियों के टाइप के लिए प्ररूप कोई शब्द स्थिरांक नहीं है, जबकि पद स्थिर है। अधिकांशतः केवल एक आधार टाइप के साथ कलन, सामान्यतः , माना जाता है।

साधारणतः टाइप किए गए लैम्ब्डा कैलकुलस का सिंटैक्स अनिवार्य रूप से लैम्ब्डा कैलकुलस का ही है। शब्द दर्शाता है कि चर टाइप का है। . बैकस-नौर रूप में सिंटैक्स शब्द तब है।

जहाँ स्थिरांक है।

यही है, चर संदर्भ, अमूर्तता, अनुप्रयोग और स्थिरांक चर संदर्भ बाध्य है। यदि यह अमूर्त बंधन के अंदर है। यदि कोई अनबाउंड चर नहीं हैं तो शब्द बंद हो जाता है।

इसकी तुलना में, अनटाइप्ड लैम्ब्डा कैलकुलस के सिंटैक्स में ऐसा कोई टाइपिंग या शब्द स्थिरांक नहीं है।

जबकि टाइप किए गए लैम्ब्डा कैलकुस में प्रत्येक अमूर्तता (अर्थात फ़ंक्शंस) को इसके तर्क के टाइप को निर्दिष्ट करता है।

टाइपिंग नियम

किसी दिए गए टाइप के अच्छी तरह से टाइप किए गए लैम्ब्डा शब्दों के सेट को परिभाषित करने के लिए, शब्दों और टाइप के बीच टाइपिंग संबंध को परिभाषित करता है। सबसे पहले, व्यक्ति टाइपिंग संदर्भों या टाइपिंग परिवेशों का परिचय देता है। जो टाइपिंग मान्यताओं के सेट हैं। टाइपिंग धारणा , अर्थ का टाइप रूप है।

टाइपिंग संबंध दर्शाता है कि संदर्भ में टाइप का शब्द है। इस स्थिति में कहा जाता है कि अच्छी तरह से टाइप किया गया है। (type ). टंकण संबंध के उदाहरणों को टंकण निर्णय कहा जाता है। टाइपिंग निर्णय की वैधता एक टाइपिंग व्युत्पत्ति प्रदान करके दिखाई जाती है। जिसे टाइपिंग नियम का उपयोग करके बनाया गया है। (जिसमें लाइन के ऊपर का परिसर हमें लाइन के नीचे निष्कर्ष निकालने की अनुमति देता है)। सीधे शब्दों में टाइप किया गया लैम्ब्डा कैलकुलस इन नियमों का उपयोग करता है:

(1) (2)
(3) (4)

शब्दों में,

  1. यदि संदर्भ में टाइप है। तब टाइप है।
  2. पद स्थिरांक के उपयुक्त आधार टाइप होते हैं।
  3. यदि, निश्चित संदर्भ में टाइप होना , टाइप है। फिर, उसी संदर्भ में बिना , टाइप है।
  4. यदि, निश्चित संदर्भ में, टाइप , और टाइप है , तब टाइप है।

बंद नियमो के उदाहरण, अर्थात खाली संदर्भ में टाइप करने योग्य शब्द हैं |

  • प्रत्येक टाइप के लिए , एक पद (पहचान फ़ंक्शन / -संयोजक) है।
  • टाइप के लिए , एक पद (के-कॉम्बिनेटर), और
  • टाइप के लिए , एक पद (एस-कॉम्बिनेटर) है।

ये संयोजन तर्क के बेसिक कॉम्बिनेटर्स के टाइप किए गए लैम्ब्डा कैलकुलस रिप्रेजेंटेशन हैं।

प्रत्येक टाइप आदेश, संख्या सौंपी जाती है। आधार टाइप के लिए ; फ़ंक्शन टाइप के लिए, . अर्थात्, एक टाइप का क्रम सबसे बाएँ-नेस्टेड तीर की गहराई को मापता है। इस तरह:

शब्दार्थ

आंतरिक बनाम बाहरी व्याख्या

सामान्यतः, सामान्य रूप से टाइप किए गए लैम्ब्डा कैलकुलस को अर्थ देने के दो अलग-अलग विधि हैं | जैसे टाइप की गई भाषाओं के लिए, जिन्हें विभिन्न टाइप से इंट्रिंसिक बनाम एक्सट्रिंसिक, ऑन्कोलॉजिकल बनाम सिमेंटिकल, या चर्च-शैली बनाम करी-शैली कहा जाता है।[1][3][4]

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

इसके विपरीत, बाहरी शब्दार्थ टाइपिंग की परवाह किए बिना शब्दों को अर्थ प्रदान करता है, क्योंकि उनकी व्याख्या अप्रकाशित भाषा में की जाएगी। इस दृश्य में, और कारण एक (अर्थात, एक ही चीज़ के रूप में ). है।

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

समीकरण सिद्धांत

सामान्य रूप से टाइप किए गए लैम्ब्डा कैलकुलस में βη-तुल्यता का समान समीकरण सिद्धांत है। जैसा कि अनटाइप्ड लैम्ब्डा कैलकुलस रिडक्शन है। किन्तु टाइप प्रतिबंधों के अधीन है। बीटा कमी के लिए समीकरण है।

संदर्भ में रखता है जब कभी भी और , जबकि ईटीए कमी के लिए समीकरण

जब भी रखता है। और में मुक्त नहीं दिखता है।

परिचालन शब्दार्थ

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

श्रेणीबद्ध शब्दार्थ

साधारणतः टाइप किया हुआ लैम्ब्डा कैलकुलस (साथ -समानता) कार्तीय बंद श्रेणियों (सीसीसी) की आंतरिक भाषा है। जैसा कि पहली बार जोआचिम लैम्बेक द्वारा देखा गया था।[5] किसी भी विशिष्ट सीसीसी को देखते हुए, संबंधित लैम्ब्डा कैलकुस के मूल टाइप केवल वस्तु (श्रेणी सिद्धांत) हैं, और नियम रूपवाद हैं। इसके विपरीत, प्रत्येक सामान्य रूप से टाइप किया गया लैम्ब्डा कैलकुलस सीसीसी देता है। जिसकी वस्तुएँ टाइप होती हैं, और रूपवाद शब्दों के तुल्यता वर्ग होते हैं।

पत्राचार को श्रेणीबद्ध करने के लिए, कार्टेशियन उत्पाद के लिए एक टाइप का निर्माता सामान्यतः ऊपर जोड़ा जाता है। उत्पाद (श्रेणी सिद्धांत) को संरक्षित करने के लिए, युग्मन, प्रक्षेपण और इकाई शब्द के लिए टाइपिंग नियम जोड़े जाते हैं। दो नियम और , शब्द टाइप दी गई हैं | . इसी तरह, यदि किसी का कार्यकाल है , तो नियम और हैं | जहां कार्टेशियन उत्पाद के अनुमानों के अनुरूप टाइप 1 का इकाई शब्द इस टाइप लिखा जाता है। और 'शून्य' के रूप में मुखरित, अंतिम वस्तु है। समान सिद्धांत को इसी तरह विस्तारित किया जाता है। जिससे

 :

इस अंतिम को ऐसे पढ़ा जाता है जैसे कि t में टाइप 1 है, तो यह शून्य हो जाता है।

उपरोक्त टाइप को ऑब्जेक्ट (श्रेणी सिद्धांत) के रूप में ले कर एक श्रेणी में बदल दिया जा सकता है। रूपवाद जोड़े के समकक्ष वर्ग हैं | जहाँ x चर है (टाइप का ) और t शब्द है (टाइप का ), इसमें (वैकल्पिक रूप से) x को छोड़कर कोई मुक्त चर नहीं है। सदैव की तरह करीने और लगाने से क्लोजर प्राप्त होता है।

अधिक श्रेणीबद्ध रूप से, कार्टेशियन बंद श्रेणियों की श्रेणी और सरल रूप से टाइप किए गए लैम्ब्डा सिद्धांतों की श्रेणी के बीच संचालक उपस्थित हैं।

रेखीय टाइप की सिस्टम का उपयोग करके इस स्थिति को बंद मोनोइडल श्रेणी में विस्तारित करना सामान्य है। इसका कारण यह है कि सीसीसी बंद सममित मोनोइडल श्रेणी का विशेष स्थिति है, जिसे सामान्यतः सेट की श्रेणी के रूप में लिया जाता है। सेट सिद्धान्त की नींव रखने के लिए यह ठीक है, किन्तु अधिक सामान्य टोपोज़ उत्तम नींव प्रदान करते हैं।

प्रमाण-सैद्धांतिक शब्दार्थ

सामान्य रूप से टाइप किया गया लैम्ब्डा कैलकुलस प्रपोजल अंतर्ज्ञानवादी तर्क के इम्प्लीकेशनल फ्रैगमेंट से निकटता से संबंधित है, अर्थात करी-हावर्ड आइसोमोर्फिज्म के माध्यम से न्यूनतम तर्क शब्द प्राकृतिक क्षय में प्रमाणों के अनुरूप हैं, और आवास टाइप करें वास्तव में मिनिमम का टॉटोलॉजी (तर्क) है।

वैकल्पिक सिंटैक्स

ऊपर दी गई प्रस्तुति केवल टाइप किए गए लैम्ब्डा कैलकुस के सिंटैक्स को परिभाषित करने का एकमात्र विधि नहीं है। विकल्प यह है कि टाइप एनोटेशन को पूरी तरह से हटा दिया जाए (जिससे सिंटैक्स अनटाइप्ड लैम्ब्डा कैलकुलस के समान हो), यह सुनिश्चित करते हुए कि हिंडले-मिलनर टाइप के अनुमान के माध्यम से शब्द अच्छी तरह से टाइप किए गए हैं। अनुमान एल्गोरिथम समाप्ति, ध्वनि और पूर्ण है। जब भी कोई शब्द टाइप करने योग्य होता है, एल्गोरिथम उसके टाइप की गणना करता है। अधिक श्रेणीबद्ध रूप से, यह शब्द के प्रमुख टाइप की गणना करता है। क्योंकि अधिकांशतः अघोषित शब्द (जैसे ) के एक से अधिक टाइप हो सकते हैं | (, , आदि, जो मुख्य टाइप के सभी उदाहरण हैं ).

सामान्य रूप से टाइप किए गए लैम्ब्डा कैलकुलस की अन्य वैकल्पिक प्रस्तुति द्विदिश टाइप की जाँच पर आधारित है, जिसके लिए हिंडले-मिलनर अनुमान की तुलना में अधिक टाइप के एनोटेशन की आवश्यकता होती है। किन्तु वर्णन करना सरल है। टाइप सिस्टम को दो निर्णयों में विभाजित किया गया है। जो लिखित 'जाँच' और 'संश्लेषण' दोनों का प्रतिनिधित्व करते हैं | और क्रमश परिचालन रूप से, तीन घटक , , और जाँच निर्णय के सभी इनपुट हैं | जबकि संश्लेषण निर्णय ही लेता है। और इनपुट के रूप में, टाइप का उत्पादन आउटपुट के रूप में ये निर्णय निम्नलिखित नियमों के माध्यम से प्राप्त किए गए हैं |

[1] [2]
[3] [4]
[5] [6]

निरीक्षण करें कि नियम [1]-[4] उपरोक्त नियमों (1)-(4) के लगभग समान हैं, जांच या संश्लेषण निर्णयों के सावधानीपूर्वक चयन को छोड़कर इन विकल्पों को इस टाइप समझाया जा सकता है।

  1. यदि संदर्भ में के लिए . है, हम टाइप को संश्लेषित कर सकते हैं |
  2. शब्द स्थिरांक के टाइप निश्चित होते हैं और इन्हें संश्लेषित किया जा सकता है।
  3. इसकी जांच के लिए टाइप है। किसी संदर्भ में, हम संदर्भ का विस्तार करते हैं और इसे जांचें टाइप है।
  4. यदि टाइप संश्लेषित करता है।(किसी संदर्भ में), और टाइप के विरुद्ध जाँच करता है। (उसी संदर्भ में), तब टाइप संश्लेषित करता है।

ध्यान दें कि संश्लेषण के नियम ऊपर से नीचे तक पढ़े जाते हैं, जबकि जाँच के नियम नीचे से ऊपर तक पढ़े जाते हैं। विशेष रूप से ध्यान दें कि हमें नियम [3] में लैम्ब्डा अमूर्तता पर किसी एनोटेशन की आवश्यकता नहीं है। क्योंकि बाउंड वेरिएबल के टाइप को उस टाइप से घटाया जा सकता है। जिस पर हम फ़ंक्शंस की जांच करते हैं। अंत में, हम नियम [5] और [6] की व्याख्या इस टाइप करते हैं |

  • उसकी जांच करने के लिए टाइप है। यह टाइप को संश्लेषित करने के लिए पर्याप्त है।
  • यदि टाइप के विरुद्ध जाँच करता है। फिर श्रेणीबद्ध रूप से एनोटेट किया गया शब्द संश्लेषित . इन अंतिम दो नियमों के कारण संश्लेषण और जाँच के बीच यह देखना सरल है कि किसी भी अच्छी तरह से टाइप किए गए किन्तु बिना टिप्पणी वाले शब्द को द्विदिश सिस्टम में जाँचा जा सकता है, जब तक हम पर्याप्त टाइप के एनोटेशन सम्मिलित करते हैं। और वास्तव में, एनोटेशन की आवश्यकता केवल β-रेडेक्सेस पर होती है।

    सामान्य अवलोकन

    मानक शब्दार्थ को देखते हुए, सामान्य रूप से टाइप किया गया लैम्ब्डा कैलकुलस नॉर्मलाइज़ेशन प्रॉपर्टी (लैम्ब्डा-कैलकुलस) है: अर्थात, अच्छी तरह से टाइप किए गए शब्द सदैव एक मान को कम करते हैं अर्थात, ए अमूर्त ऐसा इसलिए है क्योंकि टाइपिंग नियमों द्वारा रिकर्सन की अनुमति नहीं है। फिक्स्ड-पॉइंट कॉम्बिनेटर और लूपिंग टर्म के लिए टाइप खोजना असंभव है।. रिकर्सन को या तो विशेष संचालक के द्वारा भाषा में जोड़ा जा सकता है। टाइप का या सामान्य पुनरावर्ती टाइप जोड़ना, चूँकि दोनों शक्तिशाली सामान्यीकरण को समाप्त करते हैं।

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

    महत्वपूर्ण परिणाम

    • टैट ने 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. 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.
    2. Pfenning, Frank. "Church and Curry: Combining Intrinsic and Extrinsic Typing" (PDF): 1. Retrieved 26 February 2022. {{cite journal}}: Cite journal requires |journal= (help)
    3. 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]
    4. Reynolds, John (1998). प्रोग्रामिंग भाषाओं के सिद्धांत. Cambridge, England: Cambridge University Press. pp. 327, 334. ISBN 9780521594141.
    5. 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.
    6. 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.
    7. 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.
    8. 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.
    9. 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.
    10. 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.
    11. 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.
    12. 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.
    13. 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.
    14. 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.
    15. 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.
    16. 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.
    17. 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.
    18. Plotkin, G.D. (1973). Lambda-definability and logical relations (PDF) (Technical report). Edinburgh University. Retrieved 30 September 2022.
    19. 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.
    20. 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.

    संदर्भ

    बाहरी संबंध