कप्पा कैलकुलस: Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
[[गणितीय तर्क]] | [[गणितीय तर्क]] और [[श्रेणी सिद्धांत]] मुख्य रूप से [[कंप्यूटर विज्ञान]] में '''कप्पा कैलकुलस''' है, इसका प्रथम क्रम इसके कार्यों को परिभाषित करने के लिए [[औपचारिक प्रणाली]] या प्रथम-क्रम [[फ़ंक्शन (गणित)]] को व्यक्त करता हैं। | ||
[[कंप्यूटर विज्ञान]] | |||
प्रथम क्रम कार्यों को परिभाषित करने के लिए [[औपचारिक प्रणाली]] | |||
[[फ़ंक्शन (गणित)]] | |||
[[लैम्ब्डा कैलकुलस]] के विपरीत, कप्पा कैलकुलस में कोई नहीं है, उच्च-क्रम के कार्य | [[लैम्ब्डा कैलकुलस]] के विपरीत, कप्पा कैलकुलस में कोई नहीं है, जिसके लिए उच्च-क्रम के कार्य द्वारा इसे प्रदर्शित करते हैं। इसके निम्नलिखित कार्य हैं, [[प्रथम श्रेणी की वस्तु]] नहीं रहती है, जिसके आधार पर यह कप्पा-कैलकुलस हो सकता है, टाइप किए गए प्रथम-क्रम के टुकड़े के पुनर्रचना के रूप में माना जाता है, जो लैम्ब्डा कैलकुलस को व्यक्त करता हैं।<ref name="Hasegawa"/> | ||
[[प्रथम श्रेणी की वस्तु]] नहीं | |||
टाइप किए गए प्रथम-क्रम के टुकड़े के पुनर्रचना के रूप में माना जाता है | |||
लैम्ब्डा | |||
क्योंकि इसके कार्य प्रथम श्रेणी की वस्तुएं नहीं हैं, कप्पा का मूल्यांकन | क्योंकि इसके कार्य प्रथम श्रेणी की वस्तुएं नहीं हैं, कप्पा का मूल्यांकन कैलकुलस मुख्य रूप से अभिव्यक्ति की आवश्यकता नहीं है, जो [[समापन (कंप्यूटर विज्ञान)]] को व्यक्त करता हैं। | ||
कैलकुलस अभिव्यक्ति की आवश्यकता नहीं है | |||
[[समापन (कंप्यूटर विज्ञान)]] | |||
== परिभाषा == | == परिभाषा == | ||
नीचे दी गई परिभाषा हसेगावा के पृष्ठ 205 और 207 पर दिए गए चित्र से ली गई है।<ref name="Hasegawa"/> | नीचे दी गई परिभाषा हसेगावा के पृष्ठ 205 और 207 पर दिए गए चित्र से ली गई है।<ref name="Hasegawa"/> | ||
=== व्याकरण === | === व्याकरण === | ||
कप्पा कैलकुलस में दिए गए प्रकार और अभिव्यक्तियाँ | कप्पा कैलकुलस में दिए गए प्रकार और अभिव्यक्तियाँ उपस्थित हैं, नीचे व्याकरण: | ||
नीचे व्याकरण: | |||
:<math> | :<math> | ||
Line 42: | Line 30: | ||
*1 प्रकार है | *1 प्रकार है | ||
* | * यदि <math>\tau_1</math> और <math>\tau_2</math> तो प्रकार हैं, तो <math>\tau_1\times\tau_2</math> इसका प्रकार है। | ||
* प्रत्येक | * प्रत्येक वैरियेबल एक अभिव्यक्ति है। | ||
* | * यदि {{mvar|τ}} तो प्रकार है, तथा <math>id_\tau</math> अभिव्यक्ति ।है | ||
* | * यदि {{mvar|τ}} तो प्रकार है, तथा <math>!_\tau</math> अभिव्यक्ति है। | ||
* | * यदि {{mvar|τ}} प्रकार है और e अभिव्यक्ति है, तथा <math>\operatorname{lift}_\tau(e)</math> अभिव्यक्ति है। | ||
* | * यदि <math>e_1</math> और <math>e_2</math> तो फिर अभिव्यक्ति हैं, तथा <math>e_1\circ e_2</math> अभिव्यक्ति है। | ||
* यदि x चर है, {{mvar|τ}} प्रकार है, और e अभिव्यक्ति है <math>\kappa x{:}1{\to}\tau\;.\;e</math> अभिव्यक्ति है <math>:1{\to}\tau</math> h> और की सबस्क्रिप्ट {{math|id}}, {{math|!}}, और <math>\operatorname{lift}</math> | * यदि x चर है, {{mvar|τ}} प्रकार है, और e अभिव्यक्ति है, तथा <math>\kappa x{:}1{\to}\tau\;.\;e</math> अभिव्यक्ति है <math>:1{\to}\tau</math> h> और की सबस्क्रिप्ट {{math|id}}, {{math|!}}, और <math>\operatorname{lift}</math> हैं। | ||
कभी-कभी छोड़ दिया जाता है जब उन्हें स्पष्ट रूप से निर्धारित किया जा सकता | कभी-कभी छोड़ दिया जाता है जब उन्हें स्पष्ट रूप से इसके प्रसंग द्वारा निर्धारित किया जा सकता है। | ||
जक्स्टापोजीशन का प्रयोग अधिकांशतः <math>\operatorname{lift}</math> और रचना के संयोजन के संक्षिप्त रूप के रूप में किया जाता है,: | |||
<math>\operatorname{lift}</math> और रचना: | |||
:<math> | :<math> | ||
e_1 e_2\ \overset\operatorname{def}{=}\ e_1 \circ \operatorname{lift}(e_2) | e_1 e_2\ \overset\operatorname{def}{=}\ e_1 \circ \operatorname{lift}(e_2) | ||
</math> | </math> | ||
=== टाइपिंग नियम === | === टाइपिंग नियम === | ||
यहां प्रस्तुतीकरण अनुक्रमों | यहां प्रस्तुतीकरण अनुक्रमों (<math>\Gamma\vdash e:\tau</math>) का उपयोग करता है, जो केवल टाइप किए गए लैम्ब्डा कैलकुलस के साथ तुलना को साधारण बनाने के लिए काल्पनिक निर्णयों के अतिरिक्त उपयोगी हैं। इसके लिए अतिरिक्त वार नियम की आवश्यकता है, जो हसेगावा में प्रकट नहीं होता है<ref name="Hasegawa"/> | ||
कप्पा कैलकुलस में अभिव्यक्ति के दो प्रकार होते हैं: उसके स्रोत का प्रकार और | कप्पा कैलकुलस में अभिव्यक्ति के दो प्रकार होते हैं: उसके स्रोत का प्रकार और यह इसके लक्ष्य का प्रकार हैं। इसका संकेतन <math>e:\tau_1{\to}\tau_2</math> द्वारा किया जाता हैं, जिसका यह इंगित करने के लिए प्रयोग किया जाता है कि अभिव्यक्ति ई में <math>{\tau_1}</math> और लक्ष्य प्रकार <math>{\tau_2}</math> स्रोत प्रकार है। | ||
कप्पा कैलकुलस में अभिव्यक्तियों को निम्नलिखित नियमों के अनुसार प्रकार निर्दिष्ट किया गया है: | कप्पा कैलकुलस में अभिव्यक्तियों को निम्नलिखित नियमों के अनुसार प्रकार निर्दिष्ट किया गया है: | ||
Line 94: | Line 78: | ||
दूसरे शब्दों में, | दूसरे शब्दों में, | ||
* | * वीएआर: मान लेना <math>x:1{\to}\tau</math> आपको <math>x:1{\to}\tau</math> निष्कर्ष निकालने देता है। | ||
* आईडी: किसी भी प्रकार के लिए {{mvar|τ}}, <math>id_\tau:\tau{\to}\tau</math> | * आईडी: किसी भी प्रकार के लिए {{mvar|τ}}, <math>id_\tau:\tau{\to}\tau</math> का उपयोग करता हैं। | ||
* बैंग: किसी भी प्रकार के लिए {{mvar|τ}}, <math>!_\tau:\tau{\to}1</math> | * बैंग: किसी भी प्रकार के लिए {{mvar|τ}}, <math>!_\tau:\tau{\to}1</math> का उपयोग करता हैं। | ||
* | * कंप: यदि लक्ष्य प्रकार का <math>e_1</math> के स्रोत प्रकार से मेल खाता है <math>e_2</math> उन्हें अभिव्यक्ति बनाने के लिए रचा जा सकता है, <math>e_2\circ e_1</math> स्रोत प्रकार के साथ <math>e_1</math> और लक्ष्य प्रकार <math>e_2</math> प्रकार का हैं। | ||
* लिफ्ट: यदि <math>e:1{\to}\tau_1</math>, तब <math>\operatorname{lift}_{\tau_2}(e):\tau_2{\to}(\tau_1\times\tau_2)</math> | * लिफ्ट: यदि <math>e:1{\to}\tau_1</math>, तब <math>\operatorname{lift}_{\tau_2}(e):\tau_2{\to}(\tau_1\times\tau_2)</math> प्राप्त होता हैं। | ||
* कप्पा: यदि हम | * कप्पा: यदि हम <math>e:\tau_2\to\tau_3</math> निष्कर्ष निकाल सकें, इस धारणा के अनुसार <math>x:1{\to}\tau_1</math> को हम इस धारणा के बिना निष्कर्ष निकाल सकते हैं कि <math>\kappa x{:}1{\to}\tau_1\,.\,e\;:\;\tau_1\times\tau_2\to\tau_3</math> प्राप्त हो। | ||
=== समानताएँ === | === समानताएँ === | ||
कप्पा कैलकुलस निम्नलिखित समानताओं का पालन करता है: | कप्पा कैलकुलस निम्नलिखित समानताओं का पालन करता है: | ||
*तटस्थता: यदि <math>f:\tau_1{\to}\tau_2</math> तब <math>f{\circ}id_{\tau_1}=f</math> और <math>f=id_{\tau_2}{\circ}f</math> | *तटस्थता: यदि <math>f:\tau_1{\to}\tau_2</math> तब <math>f{\circ}id_{\tau_1}=f</math> और <math>f=id_{\tau_2}{\circ}f</math> हैं। | ||
*सहयोगिता: यदि <math>f:\tau_1{\to}\tau_2</math>, <math>g:\tau_2{\to}\tau_3</math>, और <math>h:\tau_3{\to}\tau_4</math>, तब <math>(h{\circ}g){\circ}f = h{\circ}(g{\circ}f)</math> | *सहयोगिता: यदि <math>f:\tau_1{\to}\tau_2</math>, <math>g:\tau_2{\to}\tau_3</math>, और <math>h:\tau_3{\to}\tau_4</math>, तब <math>(h{\circ}g){\circ}f = h{\circ}(g{\circ}f)</math> हैं। | ||
* टर्मिनललिटी: यदि <math>f{:}\tau{\to}1</math> और <math>g{:}\tau{\to}1</math> तब <math>f=g</math> | * टर्मिनललिटी: यदि <math>f{:}\tau{\to}1</math> और <math>g{:}\tau{\to}1</math> तब <math>f=g</math> हैं। | ||
* लिफ्ट-कमी: <math>(\kappa x.f)\circ \operatorname{lift}_\tau(c) = f[c/x]</math> | * लिफ्ट-कमी: <math>(\kappa x.f)\circ \operatorname{lift}_\tau(c) = f[c/x]</math> हैं। | ||
* कप्पा-कमी: <math>\kappa x. (h\circ \operatorname{lift}_\tau(x)) = h</math> यदि x, h में मुफ़्त नहीं | * कप्पा-कमी: <math>\kappa x. (h\circ \operatorname{lift}_\tau(x)) = h</math> यदि x, h में मुफ़्त नहीं है। | ||
अंतिम दो समानताएं कलन के लिए कटौती नियम हैं, | अंतिम दो समानताएं कलन के लिए कटौती नियम हैं, जिसे बाएँ से दाएँ पुनः लिखा जाता हैं।। | ||
बाएँ से दाएँ पुनः | |||
== गुण == | == गुण == | ||
प्रारूप {{val|1}} को [[इकाई प्रकार]] माना जा सकता है। इसके कारण, कोई भी दो फ़ंक्शन जिनका तर्क प्रकार समान है और जिनका परिणाम प्रकार समान है, वे {{val|1}} के बराबर होने चाहिए- क्योंकि प्रकार का केवल ही मान है, इस प्रकार {{val|1}} दोनों फ़ंक्शन को प्रत्येक तर्क (टर्मिनैलिटी) के लिए वह मान लौटाना होगा। | |||
प्रकार सहित | इस प्रकार इसके सहित <math>1{\to}\tau</math> भाव को इसके आधार के स्थिरांक या मान के रूप में माना जा सकता है, जो यह है क्योंकि {{val|1}} इकाई प्रकार का है, और इसलिए इस प्रकार का फ़ंक्शन आवश्यक रूप से स्थिर फ़ंक्शन है। ध्यान दें कि कप्पा नियम केवल अमूर्तता की अनुमति देता है, जब अमूर्त किए जा रहे वैरियेबल का प्रकार <math>1{\to}\tau</math> होता है, तब कुछ {{mvar|τ}} के लिए यह मौलिक तंत्र है, जो यह सुनिश्चित करता है कि सभी कार्य प्रथम-क्रम के हों। | ||
== श्रेणीबद्ध शब्दार्थ == | == श्रेणीबद्ध शब्दार्थ == | ||
कप्पा कैलकुलस की आंतरिक भाषा होने का | कप्पा कैलकुलस की आंतरिक भाषा होने का चिह्न है, इसके प्रासंगिक रूप से पूर्ण श्रेणियाँ प्राप्त होती हैं। | ||
प्रासंगिक रूप से पूर्ण | |||
== उदाहरण == | == उदाहरण == | ||
अनेक तर्कों वाले भावों के स्रोत प्रकार होते हैं जो हैं | अनेक तर्कों वाले भावों के स्रोत प्रकार होते हैं जो हैं, जिसके लिए दाएँ-असंतुलित बाइनरी ट्री को उदाहरण के लिए तीन f फ़ंक्शन प्रकार के ए, बी, और सी के तर्क और परिणाम प्रकार डी में प्रकार होगा जो इस प्रकार हैं। | ||
प्रकार ए, बी, और सी के तर्क और परिणाम प्रकार डी में प्रकार होगा | |||
: <math> | : <math> | ||
f : A\times (B\times (C\times 1)) \to D | f : A\times (B\times (C\times 1)) \to D | ||
</math> | </math> | ||
यदि हम वाम-सहयोगी जुड़ाव को | यदि हम वाम-सहयोगी जुड़ाव को <math>f\;c</math> संक्षिप्त रूप में परिभाषित करते हैं, जिसके लिए <math>(f\circ \operatorname{lift}(c))</math>, फिर <math>a:1{\to}A</math>, <math>b:1{\to}B</math> को मानकर और <math>c:1{\to}C</math> को हम इस फ़ंक्शन को लागू कर सकते हैं: | ||
<math>a:1{\to}A</math>, <math>b:1{\to}B</math> | |||
<math>c:1{\to}C</math> | |||
: <math> | : <math> | ||
f\;a\;b\;c\;:\;1 \to D | f\;a\;b\;c\;:\;1 \to D | ||
</math> | </math> | ||
अभिव्यक्ति के बाद से <math>f\;a\;b\;c</math> स्रोत प्रकार है {{val|1}}, यह ग्राउंड वैल्यू है और इसे किसी अन्य फ़ंक्शन के तर्क के रूप में पारित किया जा सकता है। | अभिव्यक्ति के बाद से <math>f\;a\;b\;c</math> स्रोत प्रकार है {{val|1}}, यह ग्राउंड वैल्यू है और इसे किसी अन्य फ़ंक्शन के तर्क के रूप में पारित किया जा सकता है। यदि <math>g:(D\times E){\to}F</math>, तब | ||
: <math> | : <math> | ||
g\;(f\;a\;b\;c)\;:\;E \to F | g\;(f\;a\;b\;c)\;:\;E \to F | ||
</math> | </math> | ||
इस सीमा तक प्राप्त होने वाले इन प्रकारों के फ़ंक्शन <math>A{\to}(B{\to}(C{\to}D))</math> के समान लैम्ब्डा कैलकुलस में, आंशिक आवेदन संभव है: | |||
<math>A{\to}(B{\to}(C{\to}D))</math> लैम्ब्डा कैलकुलस में, आंशिक | |||
आवेदन संभव है: | |||
: <math> | : <math> | ||
f\;a\;:\;B\times (C\times 1) \to D | f\;a\;:\;B\times (C\times 1) \to D | ||
</math> | </math> | ||
चूंकि इसका कोई उच्चतर प्रकार नहीं हैं, अर्थात <math>(\tau{\to}\tau){\to}\tau</math>) इसमें उपस्थित हैं। ध्यान दें क्योंकि स्रोत प्रकार का {{mvar|f a}} क्या {{val|1}} नहीं है, अब तक उल्लिखित मान्यताओं के तहत निम्नलिखित अभिव्यक्ति को अच्छी तरह से टाइप नहीं किया जा सकता है: | |||
: <math> | : <math> | ||
Line 161: | Line 133: | ||
</math> | </math> | ||
क्योंकि क्रमिक अनुप्रयोग का उपयोग एकाधिक के लिए किया जाता है | क्योंकि क्रमिक अनुप्रयोग का उपयोग एकाधिक के लिए किया जाता है | ||
तर्कों में किसी फ़ंक्शन की योग्यता जानना आवश्यक नहीं है | तर्कों में किसी फ़ंक्शन की योग्यता जानना आवश्यक नहीं है, इसकी टाइपिंग निर्धारित करने का आदेश उदाहरण के लिए, यदि हम यह जानते हैं<math>c:1{\to}C</math> फिर यह अभिव्यक्ति इस प्रकार हैं- | ||
इसकी टाइपिंग निर्धारित करने का आदेश | |||
<math>c:1{\to}C</math> फिर अभिव्यक्ति | |||
: {{mvar| j c }} | : {{mvar| j c }} | ||
जब तक यह अच्छी तरह से टाइप किया गया है {{mvar|j}} प्रकार | जब तक यह अच्छी तरह से टाइप किया गया है, जिसे {{mvar|j}} प्रकार से इंगित करते हैं। | ||
: <math>(C\times\alpha){\to}\beta</math> कुछ के लिए {{mvar|α}} | : <math>(C\times\alpha){\to}\beta</math> कुछ के लिए {{mvar|α}} | ||
और {{mvar|β}} | और {{mvar|β}} की गणना करते समय यह संपत्ति महत्वपूर्ण है, इसकी अभिव्यक्ति का मुख्य प्रकार जो उच्च-क्रम को बाहर करने का प्रयास करते समय कठिन हो सकता है, इनके प्रकारों के व्याकरण को सीमित करके टाइप किए गए लैम्ब्डा कैलकुली से कार्य करता है। | ||
अभिव्यक्ति का मुख्य प्रकार | |||
जो उच्च-क्रम को बाहर करने का प्रयास करते समय कठिन हो सकता है | |||
प्रकारों के व्याकरण को सीमित करके टाइप किए गए लैम्ब्डा कैलकुली से कार्य करता है। | |||
== इतिहास == | == इतिहास == | ||
बेरेन्ड्रेट ने मूल रूप से परिचय दिया<ref name="Barendregt"/> | बेरेन्ड्रेट ने मूल रूप से परिचय दिया गया हैं।<ref name="Barendregt"/> | ||
संयोजन बीजगणित के संदर्भ में कार्यात्मक | संयोजन बीजगणित के संदर्भ में कार्यात्मक पूर्णता | ||
कप्पा कैलकुलस लैम्बेक<ref के प्रयासों से उत्पन्न हुआ | कप्पा कैलकुलस लैम्बेक<ref के प्रयासों से उत्पन्न हुआ | ||
नाम = लाम्बेक /> कार्यात्मक का उपयुक्त एनालॉग तैयार करने के लिए | नाम = लाम्बेक /> कार्यात्मक का उपयुक्त एनालॉग तैयार करने के लिए इस श्रेणियों के लिए पूर्णता द्वारा प्रतिपादित किया जाता हैं।<ref>हर्मिडा और जैकब्स देखें</ref> हसेगावा ने बाद में कप्पा विकसित किया गया हैं। इस कैलकुलस को प्रयोग करने योग्य यद्यपि सरल प्रोग्रामिंग भाषा में उपस्थित करते हैं, इसकी प्राकृतिक संख्याओं और पुनरावृत्ति पर अंकगणित को व्यक्त करते हैं। <ref>हसेगावा</ref> एरो से कनेक्शन के लिए कंप्यूटर विज्ञान में जांच की गई<ref name="closed"/> पावर, थिएलेके और अन्य लोगो द्वारा की गई थी। | ||
कैलकुलस को प्रयोग करने योग्य | |||
प्राकृतिक संख्याओं और | |||
== वेरिएंट == | == वेरिएंट == | ||
कप्पा कैलकुलस के संस्करणों का पता लगाना संभव है | कप्पा कैलकुलस के संस्करणों का पता लगाना संभव है, इस प्रकार [[अवसंरचनात्मक तर्क]] जैसे [[रैखिक प्रकार प्रणाली]], [[एफ़िन तर्क]] और गैरअनुवांशिक तर्क प्रकार के हैं। इन एक्सटेंशन को हटाने की आवश्यकता है, जिसे प्रतिबंधित करना <math>!_\tau</math> की अभिव्यक्ति हैं। ऐसी परिस्थितियों में {{math|×}} प्रकार के ऑपरेटर के लिए यह सत्य कार्टेशियन उत्पाद नहीं है, और इसे सामान्यत रूप से {{math|⊗}} द्वारा लिखा जाता है। | ||
[[अवसंरचनात्मक तर्क]] जैसे [[रैखिक प्रकार प्रणाली]], [[एफ़िन तर्क]] | |||
और गैरअनुवांशिक तर्क | |||
और | |||
== संदर्भ == | == संदर्भ == | ||
Revision as of 17:11, 16 July 2023
गणितीय तर्क और श्रेणी सिद्धांत मुख्य रूप से कंप्यूटर विज्ञान में कप्पा कैलकुलस है, इसका प्रथम क्रम इसके कार्यों को परिभाषित करने के लिए औपचारिक प्रणाली या प्रथम-क्रम फ़ंक्शन (गणित) को व्यक्त करता हैं।
लैम्ब्डा कैलकुलस के विपरीत, कप्पा कैलकुलस में कोई नहीं है, जिसके लिए उच्च-क्रम के कार्य द्वारा इसे प्रदर्शित करते हैं। इसके निम्नलिखित कार्य हैं, प्रथम श्रेणी की वस्तु नहीं रहती है, जिसके आधार पर यह कप्पा-कैलकुलस हो सकता है, टाइप किए गए प्रथम-क्रम के टुकड़े के पुनर्रचना के रूप में माना जाता है, जो लैम्ब्डा कैलकुलस को व्यक्त करता हैं।[1]
क्योंकि इसके कार्य प्रथम श्रेणी की वस्तुएं नहीं हैं, कप्पा का मूल्यांकन कैलकुलस मुख्य रूप से अभिव्यक्ति की आवश्यकता नहीं है, जो समापन (कंप्यूटर विज्ञान) को व्यक्त करता हैं।
परिभाषा
नीचे दी गई परिभाषा हसेगावा के पृष्ठ 205 और 207 पर दिए गए चित्र से ली गई है।[1]
व्याकरण
कप्पा कैलकुलस में दिए गए प्रकार और अभिव्यक्तियाँ उपस्थित हैं, नीचे व्याकरण:
दूसरे शब्दों में,
- 1 प्रकार है
- यदि और तो प्रकार हैं, तो इसका प्रकार है।
- प्रत्येक वैरियेबल एक अभिव्यक्ति है।
- यदि τ तो प्रकार है, तथा अभिव्यक्ति ।है
- यदि τ तो प्रकार है, तथा अभिव्यक्ति है।
- यदि τ प्रकार है और e अभिव्यक्ति है, तथा अभिव्यक्ति है।
- यदि और तो फिर अभिव्यक्ति हैं, तथा अभिव्यक्ति है।
- यदि x चर है, τ प्रकार है, और e अभिव्यक्ति है, तथा अभिव्यक्ति है h> और की सबस्क्रिप्ट id, !, और हैं।
कभी-कभी छोड़ दिया जाता है जब उन्हें स्पष्ट रूप से इसके प्रसंग द्वारा निर्धारित किया जा सकता है।
जक्स्टापोजीशन का प्रयोग अधिकांशतः और रचना के संयोजन के संक्षिप्त रूप के रूप में किया जाता है,:
टाइपिंग नियम
यहां प्रस्तुतीकरण अनुक्रमों () का उपयोग करता है, जो केवल टाइप किए गए लैम्ब्डा कैलकुलस के साथ तुलना को साधारण बनाने के लिए काल्पनिक निर्णयों के अतिरिक्त उपयोगी हैं। इसके लिए अतिरिक्त वार नियम की आवश्यकता है, जो हसेगावा में प्रकट नहीं होता है[1]
कप्पा कैलकुलस में अभिव्यक्ति के दो प्रकार होते हैं: उसके स्रोत का प्रकार और यह इसके लक्ष्य का प्रकार हैं। इसका संकेतन द्वारा किया जाता हैं, जिसका यह इंगित करने के लिए प्रयोग किया जाता है कि अभिव्यक्ति ई में और लक्ष्य प्रकार स्रोत प्रकार है।
कप्पा कैलकुलस में अभिव्यक्तियों को निम्नलिखित नियमों के अनुसार प्रकार निर्दिष्ट किया गया है:
(Var) (Id) (Bang) (Comp) (Lift) (Kappa)
दूसरे शब्दों में,
- वीएआर: मान लेना आपको निष्कर्ष निकालने देता है।
- आईडी: किसी भी प्रकार के लिए τ, का उपयोग करता हैं।
- बैंग: किसी भी प्रकार के लिए τ, का उपयोग करता हैं।
- कंप: यदि लक्ष्य प्रकार का के स्रोत प्रकार से मेल खाता है उन्हें अभिव्यक्ति बनाने के लिए रचा जा सकता है, स्रोत प्रकार के साथ और लक्ष्य प्रकार प्रकार का हैं।
- लिफ्ट: यदि , तब प्राप्त होता हैं।
- कप्पा: यदि हम निष्कर्ष निकाल सकें, इस धारणा के अनुसार को हम इस धारणा के बिना निष्कर्ष निकाल सकते हैं कि प्राप्त हो।
समानताएँ
कप्पा कैलकुलस निम्नलिखित समानताओं का पालन करता है:
- तटस्थता: यदि तब और हैं।
- सहयोगिता: यदि , , और , तब हैं।
- टर्मिनललिटी: यदि और तब हैं।
- लिफ्ट-कमी: हैं।
- कप्पा-कमी: यदि x, h में मुफ़्त नहीं है।
अंतिम दो समानताएं कलन के लिए कटौती नियम हैं, जिसे बाएँ से दाएँ पुनः लिखा जाता हैं।।
गुण
प्रारूप 1 को इकाई प्रकार माना जा सकता है। इसके कारण, कोई भी दो फ़ंक्शन जिनका तर्क प्रकार समान है और जिनका परिणाम प्रकार समान है, वे 1 के बराबर होने चाहिए- क्योंकि प्रकार का केवल ही मान है, इस प्रकार 1 दोनों फ़ंक्शन को प्रत्येक तर्क (टर्मिनैलिटी) के लिए वह मान लौटाना होगा।
इस प्रकार इसके सहित भाव को इसके आधार के स्थिरांक या मान के रूप में माना जा सकता है, जो यह है क्योंकि 1 इकाई प्रकार का है, और इसलिए इस प्रकार का फ़ंक्शन आवश्यक रूप से स्थिर फ़ंक्शन है। ध्यान दें कि कप्पा नियम केवल अमूर्तता की अनुमति देता है, जब अमूर्त किए जा रहे वैरियेबल का प्रकार होता है, तब कुछ τ के लिए यह मौलिक तंत्र है, जो यह सुनिश्चित करता है कि सभी कार्य प्रथम-क्रम के हों।
श्रेणीबद्ध शब्दार्थ
कप्पा कैलकुलस की आंतरिक भाषा होने का चिह्न है, इसके प्रासंगिक रूप से पूर्ण श्रेणियाँ प्राप्त होती हैं।
उदाहरण
अनेक तर्कों वाले भावों के स्रोत प्रकार होते हैं जो हैं, जिसके लिए दाएँ-असंतुलित बाइनरी ट्री को उदाहरण के लिए तीन f फ़ंक्शन प्रकार के ए, बी, और सी के तर्क और परिणाम प्रकार डी में प्रकार होगा जो इस प्रकार हैं।
यदि हम वाम-सहयोगी जुड़ाव को संक्षिप्त रूप में परिभाषित करते हैं, जिसके लिए , फिर , को मानकर और को हम इस फ़ंक्शन को लागू कर सकते हैं:
अभिव्यक्ति के बाद से स्रोत प्रकार है 1, यह ग्राउंड वैल्यू है और इसे किसी अन्य फ़ंक्शन के तर्क के रूप में पारित किया जा सकता है। यदि , तब
इस सीमा तक प्राप्त होने वाले इन प्रकारों के फ़ंक्शन के समान लैम्ब्डा कैलकुलस में, आंशिक आवेदन संभव है:
चूंकि इसका कोई उच्चतर प्रकार नहीं हैं, अर्थात ) इसमें उपस्थित हैं। ध्यान दें क्योंकि स्रोत प्रकार का f a क्या 1 नहीं है, अब तक उल्लिखित मान्यताओं के तहत निम्नलिखित अभिव्यक्ति को अच्छी तरह से टाइप नहीं किया जा सकता है:
क्योंकि क्रमिक अनुप्रयोग का उपयोग एकाधिक के लिए किया जाता है तर्कों में किसी फ़ंक्शन की योग्यता जानना आवश्यक नहीं है, इसकी टाइपिंग निर्धारित करने का आदेश उदाहरण के लिए, यदि हम यह जानते हैं फिर यह अभिव्यक्ति इस प्रकार हैं-
- j c
जब तक यह अच्छी तरह से टाइप किया गया है, जिसे j प्रकार से इंगित करते हैं।
- कुछ के लिए α
और β की गणना करते समय यह संपत्ति महत्वपूर्ण है, इसकी अभिव्यक्ति का मुख्य प्रकार जो उच्च-क्रम को बाहर करने का प्रयास करते समय कठिन हो सकता है, इनके प्रकारों के व्याकरण को सीमित करके टाइप किए गए लैम्ब्डा कैलकुली से कार्य करता है।
इतिहास
बेरेन्ड्रेट ने मूल रूप से परिचय दिया गया हैं।[2]
संयोजन बीजगणित के संदर्भ में कार्यात्मक पूर्णता
कप्पा कैलकुलस लैम्बेकCite error: The opening <ref>
tag is malformed or has a bad name कार्यात्मक का उपयुक्त एनालॉग तैयार करने के लिए इस श्रेणियों के लिए पूर्णता द्वारा प्रतिपादित किया जाता हैं।[3] हसेगावा ने बाद में कप्पा विकसित किया गया हैं। इस कैलकुलस को प्रयोग करने योग्य यद्यपि सरल प्रोग्रामिंग भाषा में उपस्थित करते हैं, इसकी प्राकृतिक संख्याओं और पुनरावृत्ति पर अंकगणित को व्यक्त करते हैं। [4] एरो से कनेक्शन के लिए कंप्यूटर विज्ञान में जांच की गई[5] पावर, थिएलेके और अन्य लोगो द्वारा की गई थी।
वेरिएंट
कप्पा कैलकुलस के संस्करणों का पता लगाना संभव है, इस प्रकार अवसंरचनात्मक तर्क जैसे रैखिक प्रकार प्रणाली, एफ़िन तर्क और गैरअनुवांशिक तर्क प्रकार के हैं। इन एक्सटेंशन को हटाने की आवश्यकता है, जिसे प्रतिबंधित करना की अभिव्यक्ति हैं। ऐसी परिस्थितियों में × प्रकार के ऑपरेटर के लिए यह सत्य कार्टेशियन उत्पाद नहीं है, और इसे सामान्यत रूप से ⊗ द्वारा लिखा जाता है।
संदर्भ
- ↑ 1.0 1.1 1.2
Hasegawa, Masahito (1995). "Decomposing typed lambda calculus into a couple of categorical programming languages". In Pitt, David; Rydeheard, David E.; Johnstone, Peter (eds.). Category Theory and Computer Science. pp. 200–219. CiteSeerX 10.1.1.53.715. doi:10.1007/3-540-60164-3_28. ISBN 978-3-540-60164-7. ISSN 0302-9743.
{{cite book}}
:|journal=
ignored (help)- Adam (August 31, 2010). "What are κappa-categories?". MathOverflow.
- ↑ Barendregt, Hendrik Pieter, ed. (October 1, 1984). The Lambda Calculus: Its Syntax and Semantics. Studies in Logic and the Foundations of Mathematics. Vol. 103 (Revised ed.). Amsterdam, North Holland: Elsevier Science. ISBN 978-0-444-87508-2.
- ↑ हर्मिडा और जैकब्स देखें
- ↑ हसेगावा
- ↑
Power, John; Thielecke, Hayo (1999). Wiedermann, Jiří; van Emde Boas, Peter; Nielsen, Mogens (eds.). Closed Freyd- and κ-Categories. pp. 625–634. CiteSeerX 10.1.1.42.2151. doi:10.1007/3-540-48523-6_59. ISBN 978-3-540-66224-2. ISSN 0302-9743.
{{cite book}}
:|journal=
ignored (help)
Cite error: <ref>
tag with name "Lambek" defined in <references>
is not used in prior text.
Cite error: <ref>
tag with name "HermidaJacobs" defined in <references>
is not used in prior text.