लैम्ब्डा क्यूब: Difference between revisions
(Created page with "{{Cleanup rewrite|article uses pervasively inconsistent, confusing and misleading terminology for basic concepts fundamental to the understanding of the article's subject||dat...") |
No edit summary |
||
Line 1: | Line 1: | ||
[[File:Lambda_Cube_img.svg|alt=|frame|लैम्ब्डा क्यूब. प्रत्येक तीर की दिशा समावेशन की दिशा है।]][[गणितीय तर्क]] और [[प्रकार सिद्धांत]] में, λ-क्यूब (जिसे लैम्ब्डा क्यूब भी लिखा जाता है) [[हेन्क बेरेन्ड्रेट]] द्वारा प्रस्तुत रूपरेखा है।<ref name=":0">{{Cite journal|last=Barendregt|first=Henk|date=1991|title=सामान्यीकृत प्रकार की प्रणालियों का परिचय|journal=Journal of Functional Programming|volume=1|issue=2|pages=125–154|doi=10.1017/s0956796800020025|issn=0956-7968|hdl=2066/17240|s2cid=44757552 |hdl-access=free}}</ref> विभिन्न आयामों की जांच करने के लिए जिसमें [[निर्माणों की गणना]] सरल रूप से टाइप किए गए λ-कैलकुलस का सामान्यीकरण है। घन का प्रत्येक आयाम शब्दों और प्रकारों के बीच नई प्रकार की निर्भरता से मेल खाता है। यहां, निर्भरता से तात्पर्य किसी शब्द या प्रकार की मुक्त चर और किसी शब्द या प्रकार से बंधे चर की क्षमता से है। λ-घन के संबंधित आयाम इसके अनुरूप हैं: | |||
[[File:Lambda_Cube_img.svg|alt=|frame|लैम्ब्डा क्यूब. प्रत्येक तीर की दिशा समावेशन की दिशा है।]][[गणितीय तर्क]] और [[प्रकार सिद्धांत]] में, λ-क्यूब (जिसे लैम्ब्डा क्यूब भी लिखा जाता है) [[हेन्क बेरेन्ड्रेट]] द्वारा प्रस्तुत | |||
* एक्स-अक्ष (<math>\rightarrow</math>): ऐसे प्रकार जो [[आश्रित प्रकार]]ों के अनुरूप शब्दों को बांध सकते हैं। | * एक्स-अक्ष (<math>\rightarrow</math>): ऐसे प्रकार जो [[आश्रित प्रकार]]ों के अनुरूप शब्दों को बांध सकते हैं। | ||
Line 7: | Line 5: | ||
* z-अक्ष (<math>\nearrow</math>): ऐसे प्रकार जो (बाध्यकारी) प्रकार ऑपरेटरों के अनुरूप प्रकारों को बांध सकते हैं। | * z-अक्ष (<math>\nearrow</math>): ऐसे प्रकार जो (बाध्यकारी) प्रकार ऑपरेटरों के अनुरूप प्रकारों को बांध सकते हैं। | ||
इन तीन आयामों को संयोजित करने के विभिन्न तरीकों से घन के 8 शीर्ष प्राप्त होते हैं, जिनमें से प्रत्येक | इन तीन आयामों को संयोजित करने के विभिन्न तरीकों से घन के 8 शीर्ष प्राप्त होते हैं, जिनमें से प्रत्येक अलग प्रकार की टाइप की गई प्रणाली के अनुरूप होता है। λ-क्यूब को [[शुद्ध प्रकार की प्रणाली]] की अवधारणा में सामान्यीकृत किया जा सकता है। | ||
== सिस्टम के उदाहरण == | == सिस्टम के उदाहरण == | ||
Line 13: | Line 11: | ||
=== (λ→) [[बस लैम्ब्डा कैलकुलस टाइप किया गया]] === | === (λ→) [[बस लैम्ब्डा कैलकुलस टाइप किया गया]] === | ||
λ-क्यूब में पाई जाने वाली सबसे सरल प्रणाली सरल रूप से टाइप किया गया लैम्ब्डा कैलकुलस है, जिसे λ→ भी कहा जाता है। इस प्रणाली में, | λ-क्यूब में पाई जाने वाली सबसे सरल प्रणाली सरल रूप से टाइप किया गया लैम्ब्डा कैलकुलस है, जिसे λ→ भी कहा जाता है। इस प्रणाली में, अमूर्तता का निर्माण करने का एकमात्र तरीका [[टाइपिंग नियम]] के साथ, शब्द को शब्द पर निर्भर बनाना है | ||
<math>\frac{\Gamma, x : \sigma \;\vdash\; t : \tau}{\Gamma \;\vdash\; \lambda x . t : \sigma \to \tau}</math> | <math>\frac{\Gamma, x : \sigma \;\vdash\; t : \tau}{\Gamma \;\vdash\; \lambda x . t : \sigma \to \tau}</math> | ||
Line 19: | Line 17: | ||
=== (λ2) [[सिस्टम एफ]] === | === (λ2) [[सिस्टम एफ]] === | ||
सिस्टम एफ में (दूसरे क्रम में टाइप किए गए लैम्ब्डा कैलकुलस के लिए इसे λ2 भी कहा जाता है)<ref>{{cite book |last1=Nederpelt |first1=Rob |last2=Geuvers |first2=Herman |title=प्रकार सिद्धांत और औपचारिक प्रमाण|date=2014 |publisher=Cambridge University Press |isbn=9781107036505 |page=69 |url=https://www.cambridge.org/vi/academic/subjects/computer-science/programming-languages-and-applied-logic/type-theory-and-formal-proof-introduction?format=HB }}</ref> | सिस्टम एफ में (दूसरे क्रम में टाइप किए गए लैम्ब्डा कैलकुलस के लिए इसे λ2 भी कहा जाता है)<ref>{{cite book |last1=Nederpelt |first1=Rob |last2=Geuvers |first2=Herman |title=प्रकार सिद्धांत और औपचारिक प्रमाण|date=2014 |publisher=Cambridge University Press |isbn=9781107036505 |page=69 |url=https://www.cambridge.org/vi/academic/subjects/computer-science/programming-languages-and-applied-logic/type-theory-and-formal-proof-introduction?format=HB }}</ref> अन्य प्रकार का अमूर्तन है, जिसे ए के साथ लिखा जाता है <math>\Lambda</math>, जो निम्नलिखित नियम के साथ शब्दों को प्रकारों पर निर्भर करने की अनुमति देता है: | ||
<math>\frac{\Gamma \;\vdash\; t : \sigma}{\Gamma \;\vdash\; \Lambda \alpha . t : \Pi \alpha . \sigma} \;\text{ if } \alpha\text{ does not occur free in }\Gamma</math> | <math>\frac{\Gamma \;\vdash\; t : \sigma}{\Gamma \;\vdash\; \Lambda \alpha . t : \Pi \alpha . \sigma} \;\text{ if } \alpha\text{ does not occur free in }\Gamma</math> | ||
Line 26: | Line 24: | ||
</syntaxhighlight>[[OCaml]] का प्रकार है <syntaxhighlight lang="ocaml"> | </syntaxhighlight>[[OCaml]] का प्रकार है <syntaxhighlight lang="ocaml"> | ||
'a -> 'a | 'a -> 'a | ||
</syntaxhighlight>मतलब यह किसी भी प्रकार का तर्क ले सकता है <code>'a</code> और उस प्रकार का | </syntaxhighlight>मतलब यह किसी भी प्रकार का तर्क ले सकता है <code>'a</code> और उस प्रकार का तत्व लौटाएँ। यह प्रकार λ2 में प्रकार से मेल खाता है <math>\Pi \alpha . \alpha \to \alpha</math>. | ||
=== (λ<u>ω</u>) सिस्टम F<u>ω</u> === | === (λ<u>ω</u>) सिस्टम F<u>ω</u> === | ||
सिस्टम एफ में<math>\underline{\omega}</math> | सिस्टम एफ में<math>\underline{\omega}</math> निर्माण को आपूर्ति प्रकारों के लिए पेश किया जाता है जो अन्य प्रकारों पर निर्भर होते हैं। इसे [[कंस्ट्रक्टर टाइप करें]] कहा जाता है और ''वैल्यू'' प्रकार के साथ फ़ंक्शन बनाने का तरीका प्रदान करता है।<ref>{{harvnb|Nederpelt|Geuvers|2014|p=85}}</ref> इस प्रकार के कंस्ट्रक्टर का उदाहरण बाइनरी पेड़ों का प्रकार है जिसमें किसी दिए गए प्रकार के डेटा द्वारा लेबल किए गए पत्ते होते हैं <math>A</math>: <math>\mathsf{TREE} := \lambda A : * . \Pi B . (A \to B) \to (B \to B \to B) \to B</math>, कहाँ<math>A:*</math>अनौपचारिक रूप से मतलब है<math>A</math> प्रकार है. यह फ़ंक्शन है जो प्रकार का पैरामीटर लेता है <math>A</math> तर्क के रूप में और का प्रकार लौटाता है <math>\mathsf{TREE}</math>प्रकार के मानों का s <math>A</math>. In concrete programming, this feature corresponds to the ability to define type constructors inside the language, rather than considering them as primitives. The previous type constructor roughly corresponds to the following definition of a tree with labeled leaves in OCaml:<syntaxhighlight lang="ocaml"> | ||
type 'a tree = | Leaf of 'a | Node of 'a tree * 'a tree | type 'a tree = | Leaf of 'a | Node of 'a tree * 'a tree | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 38: | Line 36: | ||
=== (λP) लैम्ब्डा-पी === | === (λP) लैम्ब्डा-पी === | ||
ΛΠ-कैलकुलस|λP प्रणाली में, जिसे ΛΠ भी कहा जाता है, और लॉजिकल फ्रेमवर्क#LF से निकटता से संबंधित है, | ΛΠ-कैलकुलस|λP प्रणाली में, जिसे ΛΠ भी कहा जाता है, और लॉजिकल फ्रेमवर्क#LF से निकटता से संबंधित है, तथाकथित [[आश्रित प्रकार]] है। ये ऐसे प्रकार हैं जिन्हें शर्तों पर निर्भर रहने की अनुमति है। सिस्टम का महत्वपूर्ण परिचय नियम है | ||
<math>\frac{\Gamma, x : A \;\vdash\; B : *}{\Gamma \;\vdash\; (\Pi x : A . B) : *}</math> | <math>\frac{\Gamma, x : A \;\vdash\; B : *}{\Gamma \;\vdash\; (\Pi x : A . B) : *}</math> | ||
कहाँ <math>*</math> वैध प्रकार का प्रतिनिधित्व करता है। नए प्रकार का कंस्ट्रक्टर <math>\Pi</math> [[करी हावर्ड समरूपता]] के माध्यम से | कहाँ <math>*</math> वैध प्रकार का प्रतिनिधित्व करता है। नए प्रकार का कंस्ट्रक्टर <math>\Pi</math> [[करी हावर्ड समरूपता]] के माध्यम से सार्वभौमिक क्वांटिफायर से मेल खाता है, और सिस्टम λP समग्र रूप से केवल संयोजी के रूप में निहितार्थ के साथ [[प्रथम-क्रम तर्क]] से मेल खाता है। ठोस प्रोग्रामिंग में इन आश्रित प्रकारों का उदाहरण निश्चित लंबाई पर वैक्टर का प्रकार है: लंबाई शब्द है, जिस पर प्रकार निर्भर करता है। | ||
=== (Fω) सिस्टम Fω === | === (Fω) सिस्टम Fω === | ||
Line 47: | Line 45: | ||
=== (λC) निर्माणों की गणना === | === (λC) निर्माणों की गणना === | ||
निर्माणों की गणना में, घन में λC के रूप में या λPω के रूप में दर्शाया गया है,<ref name=:0/>{{rp|130}} ये चार विशेषताएं सहवास करती हैं, जिससे प्रकार और पद दोनों प्रकार और पद पर निर्भर हो सकते हैं। शब्दों और प्रकारों के बीच λ→ में मौजूद स्पष्ट सीमा को कुछ हद तक समाप्त कर दिया गया है, क्योंकि सार्वभौमिक को छोड़कर सभी प्रकार <math>\square</math> स्वयं | निर्माणों की गणना में, घन में λC के रूप में या λPω के रूप में दर्शाया गया है,<ref name=:0/>{{rp|130}} ये चार विशेषताएं सहवास करती हैं, जिससे प्रकार और पद दोनों प्रकार और पद पर निर्भर हो सकते हैं। शब्दों और प्रकारों के बीच λ→ में मौजूद स्पष्ट सीमा को कुछ हद तक समाप्त कर दिया गया है, क्योंकि सार्वभौमिक को छोड़कर सभी प्रकार <math>\square</math> स्वयं प्रकार के पद हैं। | ||
== औपचारिक परिभाषा == | == औपचारिक परिभाषा == | ||
Line 53: | Line 51: | ||
सरल रूप से टाइप किए गए लैम्ब्डा कैलकुलस पर आधारित सभी प्रणालियों के लिए, क्यूब में सभी सिस्टम दो चरणों में दिए गए हैं: पहले, कच्चे शब्द, β-कमी की धारणा के साथ, और फिर टाइपिंग नियम जो उन शब्दों को टाइप करने की अनुमति देते हैं। | सरल रूप से टाइप किए गए लैम्ब्डा कैलकुलस पर आधारित सभी प्रणालियों के लिए, क्यूब में सभी सिस्टम दो चरणों में दिए गए हैं: पहले, कच्चे शब्द, β-कमी की धारणा के साथ, और फिर टाइपिंग नियम जो उन शब्दों को टाइप करने की अनुमति देते हैं। | ||
प्रकार के सेट को इस प्रकार परिभाषित किया गया है <math>S := \{*, \square \}</math>, प्रकार को अक्षर से दर्शाया जाता है <math>s</math>. | प्रकार के सेट को इस प्रकार परिभाषित किया गया है <math>S := \{*, \square \}</math>, प्रकार को अक्षर से दर्शाया जाता है <math>s</math>. सेट भी है <math>V</math> चरों का, अक्षरों द्वारा दर्शाया गया <math>x,y,\dots</math>. घन की आठ प्रणालियों के मूल शब्द निम्नलिखित वाक्यविन्यास द्वारा दिए गए हैं: | ||
<math>A := x \mid s \mid A~A \mid \lambda x : A . A \mid \Pi x : A . A</math> | <math>A := x \mid s \mid A~A \mid \lambda x : A . A \mid \Pi x : A . A</math> | ||
Line 119: | Line 117: | ||
|{{ya}} | |{{ya}} | ||
|} | |} | ||
घन की प्रत्येक दिशा | घन की प्रत्येक दिशा जोड़ी (जोड़ी को छोड़कर) से मेल खाती है <math display="inline">(*,*)</math> सभी प्रणालियों द्वारा साझा किया जाता है), और बदले में प्रत्येक जोड़ी शब्दों और प्रकारों के बीच निर्भरता की संभावना से मेल खाती है: | ||
* <math display="inline">(*,*)</math> शर्तों को शर्तों पर निर्भर रहने की अनुमति देता है। | * <math display="inline">(*,*)</math> शर्तों को शर्तों पर निर्भर रहने की अनुमति देता है। | ||
Line 137: | Line 135: | ||
===λ2=== | ===λ2=== | ||
λ2 में, ऐसे पद प्राप्त किए जा सकते हैं<math display="block">\vdash (\lambda \beta : * . \lambda x : \bot . x \beta) : \Pi \beta : * . \bot \to \beta</math>साथ <math display="inline">\bot = \Pi \alpha : * . \alpha</math>. अगर कोई पढ़ता है <math display="inline">\Pi</math> | λ2 में, ऐसे पद प्राप्त किए जा सकते हैं<math display="block">\vdash (\lambda \beta : * . \lambda x : \bot . x \beta) : \Pi \beta : * . \bot \to \beta</math>साथ <math display="inline">\bot = \Pi \alpha : * . \alpha</math>. अगर कोई पढ़ता है <math display="inline">\Pi</math> सार्वभौमिक परिमाणीकरण के रूप में, करी-हावर्ड समरूपता के माध्यम से, इसे विस्फोट के सिद्धांत के प्रमाण के रूप में देखा जा सकता है। सामान्य तौर पर, λ2 में [[ असंभाव्यता |असंभाव्यता]] प्रकार जैसे होने की संभावना जुड़ती है <math display="inline">\bot</math>, यह स्वयं सहित सभी प्रकारों पर मात्रा निर्धारित करने वाला शब्द है।<br />बहुरूपता उन कार्यों के निर्माण की भी अनुमति देती है जो λ→ में निर्माण योग्य नहीं थे। अधिक सटीक रूप से, λ2 में परिभाषित कार्य दूसरे क्रम के [[पीनो अंकगणित]] में सिद्ध रूप से कुल हैं।<ref>{{cite book |first1=Jean-Yves |last1=Girard |first2=Yves |last2=Lafont |first3=Paul |last3=Taylor |title=प्रमाण एवं प्रकार|publisher=Cambridge University Press |year=1989 |isbn=9780521371810 |volume=7 |series=Cambridge Tracts in Theoretical Computer Science }}</ref> विशेष रूप से, सभी आदिम पुनरावर्ती कार्य निश्चित हैं। | ||
===λP=== | ===λP=== | ||
Line 156: | Line 154: | ||
== अन्य प्रणालियों से संबंध == | == अन्य प्रणालियों से संबंध == | ||
सिस्टम [[ स्वचालित ]] तार्किक दृष्टिकोण से λ2 के समान है। एमएल (प्रोग्रामिंग भाषा)|एमएल जैसी भाषाएं, टाइपिंग के दृष्टिकोण से, λ→ और λ2 के बीच कहीं स्थित होती हैं, क्योंकि वे | सिस्टम [[ स्वचालित |स्वचालित]] तार्किक दृष्टिकोण से λ2 के समान है। एमएल (प्रोग्रामिंग भाषा)|एमएल जैसी भाषाएं, टाइपिंग के दृष्टिकोण से, λ→ और λ2 के बीच कहीं स्थित होती हैं, क्योंकि वे प्रतिबंधित प्रकार के बहुरूपी प्रकारों को स्वीकार करते हैं, जो कि प्रीनेक्स सामान्य रूप में प्रकार हैं। हालाँकि, क्योंकि उनमें कुछ रिकर्सन ऑपरेटर होते हैं, उनकी कंप्यूटिंग शक्ति λ2 से अधिक होती है।<ref name=":1" />Coq प्रणाली केवल अप्राप्य के बजाय ब्रह्मांडों के रैखिक पदानुक्रम के साथ λC के विस्तार पर आधारित है <math display="inline">\square</math>, और आगमनात्मक प्रकार के निर्माण की क्षमता। | ||
शुद्ध प्रकार की प्रणालियों को घन के सामान्यीकरण के रूप में देखा जा सकता है, जिसमें प्रकार, स्वयंसिद्ध, उत्पाद और अमूर्त नियमों का | शुद्ध प्रकार की प्रणालियों को घन के सामान्यीकरण के रूप में देखा जा सकता है, जिसमें प्रकार, स्वयंसिद्ध, उत्पाद और अमूर्त नियमों का मनमाना सेट होता है। इसके विपरीत, लैम्ब्डा क्यूब के सिस्टम को दो प्रकार के शुद्ध प्रकार के सिस्टम के रूप में व्यक्त किया जा सकता है <math>\{*, \square\}</math>, एकमात्र स्वयंसिद्ध <math display="inline">\{*,\square\}</math>, और नियमों का सेट <math display="inline">R</math> ऐसा है कि <math>\{(*,*,*)\} \subseteq R \subseteq \{(*,*,*), (*,\square, \square), (\square, *, *), (\square, \square, \square) \}</math>.<ref name=":0" /> | ||
करी-हावर्ड समरूपता के माध्यम से, लैम्ब्डा क्यूब और तार्किक प्रणालियों में सिस्टम के बीच एक-से-एक पत्राचार होता है,<ref name=":0" />अर्थात्: | करी-हावर्ड समरूपता के माध्यम से, लैम्ब्डा क्यूब और तार्किक प्रणालियों में सिस्टम के बीच एक-से-एक पत्राचार होता है,<ref name=":0" />अर्थात्: | ||
Line 189: | Line 187: | ||
|[[Calculus of constructions|Calculus of Constructions]] | |[[Calculus of constructions|Calculus of Constructions]] | ||
|} | |} | ||
सभी तर्क | सभी तर्क निहितार्थ हैं (अर्थात केवल संयोजक हैं <math display="inline">\to</math> और <math display="inline">\forall</math>), हालाँकि कोई अन्य संयोजकों को परिभाषित कर सकता है जैसे कि <math>\wedge</math> या <math>\neg</math> दूसरे और उच्च क्रम के तर्कों में अव्यवहारिक तरीके से। कमजोर उच्च क्रम तर्कशास्त्र में, उच्च क्रम विधेय के लिए चर होते हैं, लेकिन उन पर कोई परिमाणीकरण नहीं किया जा सकता है। | ||
==सामान्य गुण== | ==सामान्य गुण== | ||
Line 200: | Line 198: | ||
ये सभी सामान्य शुद्ध प्रकार की प्रणालियों पर सिद्ध किए जा सकते हैं।<ref>{{Cite book |last1=Sørensen|first1=Morten Heine|chapter=Pure type systems and the λ-cube|date=2006|title=करी-हावर्ड समरूपता पर व्याख्यान|pages=343–359|publisher=Elsevier|isbn=9780444520777|last2=Urzyczyin|first2=Pawel|doi=10.1016/s0049-237x(06)80015-7}}</ref> | ये सभी सामान्य शुद्ध प्रकार की प्रणालियों पर सिद्ध किए जा सकते हैं।<ref>{{Cite book |last1=Sørensen|first1=Morten Heine|chapter=Pure type systems and the λ-cube|date=2006|title=करी-हावर्ड समरूपता पर व्याख्यान|pages=343–359|publisher=Elsevier|isbn=9780444520777|last2=Urzyczyin|first2=Pawel|doi=10.1016/s0049-237x(06)80015-7}}</ref> | ||
क्यूब की प्रणाली में अच्छी तरह से टाइप किया गया कोई भी शब्द दृढ़ता से सामान्यीकरण कर रहा है,<ref name=":0" />हालाँकि यह गुण सभी शुद्ध प्रकार की प्रणालियों के लिए सामान्य नहीं है। क्यूब में कोई भी सिस्टम ट्यूरिंग पूर्ण नहीं है।<ref name=":1" /> | क्यूब की प्रणाली में अच्छी तरह से टाइप किया गया कोई भी शब्द दृढ़ता से सामान्यीकरण कर रहा है,<ref name=":0" />हालाँकि यह गुण सभी शुद्ध प्रकार की प्रणालियों के लिए सामान्य नहीं है। क्यूब में कोई भी सिस्टम ट्यूरिंग पूर्ण नहीं है।<ref name=":1" /> | ||
== [[उपप्रकार]] == | == [[उपप्रकार]] == | ||
हालाँकि, सबटाइपिंग को क्यूब में प्रदर्शित नहीं किया जाता है, भले ही सिस्टम पसंद करता हो <math>F^\omega_{<:}</math>, जिसे उच्च-क्रम सीमाबद्ध परिमाणीकरण के रूप में जाना जाता है, जो उपप्रकार और बहुरूपता को जोड़ता है, व्यावहारिक रुचि का है, और इसे आगे बंधे हुए प्रकार के ऑपरेटरों के लिए सामान्यीकृत किया जा सकता है। आगे विस्तार <math>F^\omega_{<:}</math> विशुद्ध रूप से कार्यात्मक वस्तुओं की परिभाषा की अनुमति दें; ये सिस्टम आम तौर पर लैम्ब्डा क्यूब पेपर प्रकाशित होने के बाद विकसित किए गए थे।<ref>{{Cite book|title=प्रकार और प्रोग्रामिंग भाषाएँ|last=Pierce|first=Benjamin|date=2002|publisher=MIT Press|isbn=978-0262162098|pages=467–490|oclc=300712077 }}</ref> | हालाँकि, सबटाइपिंग को क्यूब में प्रदर्शित नहीं किया जाता है, भले ही सिस्टम पसंद करता हो <math>F^\omega_{<:}</math>, जिसे उच्च-क्रम सीमाबद्ध परिमाणीकरण के रूप में जाना जाता है, जो उपप्रकार और बहुरूपता को जोड़ता है, व्यावहारिक रुचि का है, और इसे आगे बंधे हुए प्रकार के ऑपरेटरों के लिए सामान्यीकृत किया जा सकता है। आगे विस्तार <math>F^\omega_{<:}</math> विशुद्ध रूप से कार्यात्मक वस्तुओं की परिभाषा की अनुमति दें; ये सिस्टम आम तौर पर लैम्ब्डा क्यूब पेपर प्रकाशित होने के बाद विकसित किए गए थे।<ref>{{Cite book|title=प्रकार और प्रोग्रामिंग भाषाएँ|last=Pierce|first=Benjamin|date=2002|publisher=MIT Press|isbn=978-0262162098|pages=467–490|oclc=300712077 }}</ref> | ||
Line 208: | Line 204: | ||
== यह भी देखें == | == यह भी देखें == | ||
* अनुसंधान को निर्देशित करने की उनकी क्षमता में,<ref>{{harvnb|Ridoux|1998|p=70}}</ref> ओलिवियर रिडौक्स लैम्ब्डा क्यूब का | * अनुसंधान को निर्देशित करने की उनकी क्षमता में,<ref>{{harvnb|Ridoux|1998|p=70}}</ref> ओलिवियर रिडौक्स लैम्ब्डा क्यूब का कट-आउट टेम्प्लेट देता है और क्यूब का ऑक्टाहेड्रोन के रूप में दोहरा प्रतिनिधित्व भी देता है, जहां 8 शीर्षों को चेहरों द्वारा प्रतिस्थापित किया जाता है, साथ ही डोडेकाहेड्रोन के रूप में दोहरा प्रतिनिधित्व दिया जाता है, जहां 12 किनारों को बदल दिया जाता है। चेहरे के। | ||
* [[होमोटोपी प्रकार सिद्धांत]] | * [[होमोटोपी प्रकार सिद्धांत]] | ||
== टिप्पणियाँ == | == टिप्पणियाँ == | ||
{{reflist}} | {{reflist}} | ||
== अग्रिम पठन == | == अग्रिम पठन == | ||
* {{cite web |first1=Simon |last1=Peyton Jones |first2=Erik |last2=Meijer |year=1997 |url=https://www.microsoft.com/en-us/research/wp-content/uploads/1997/01/henk.pdf |title=Henk: A Typed Intermediate Language |website=[[Microsoft]] |quote='''Henk''' ''is based directly on the lambda cube'', an expressive family of typed lambda calculi. }} | * {{cite web |first1=Simon |last1=Peyton Jones |first2=Erik |last2=Meijer |year=1997 |url=https://www.microsoft.com/en-us/research/wp-content/uploads/1997/01/henk.pdf |title=Henk: A Typed Intermediate Language |website=[[Microsoft]] |quote='''Henk''' ''is based directly on the lambda cube'', an expressive family of typed lambda calculi. }} | ||
== बाहरी संबंध == | == बाहरी संबंध == | ||
Revision as of 16:35, 16 July 2023
गणितीय तर्क और प्रकार सिद्धांत में, λ-क्यूब (जिसे लैम्ब्डा क्यूब भी लिखा जाता है) हेन्क बेरेन्ड्रेट द्वारा प्रस्तुत रूपरेखा है।[1] विभिन्न आयामों की जांच करने के लिए जिसमें निर्माणों की गणना सरल रूप से टाइप किए गए λ-कैलकुलस का सामान्यीकरण है। घन का प्रत्येक आयाम शब्दों और प्रकारों के बीच नई प्रकार की निर्भरता से मेल खाता है। यहां, निर्भरता से तात्पर्य किसी शब्द या प्रकार की मुक्त चर और किसी शब्द या प्रकार से बंधे चर की क्षमता से है। λ-घन के संबंधित आयाम इसके अनुरूप हैं:
- एक्स-अक्ष (): ऐसे प्रकार जो आश्रित प्रकारों के अनुरूप शब्दों को बांध सकते हैं।
- y-अक्ष (): वे शब्द जो पैरामीट्रिक बहुरूपता के अनुरूप प्रकारों को बांध सकते हैं।
- z-अक्ष (): ऐसे प्रकार जो (बाध्यकारी) प्रकार ऑपरेटरों के अनुरूप प्रकारों को बांध सकते हैं।
इन तीन आयामों को संयोजित करने के विभिन्न तरीकों से घन के 8 शीर्ष प्राप्त होते हैं, जिनमें से प्रत्येक अलग प्रकार की टाइप की गई प्रणाली के अनुरूप होता है। λ-क्यूब को शुद्ध प्रकार की प्रणाली की अवधारणा में सामान्यीकृत किया जा सकता है।
सिस्टम के उदाहरण
(λ→) बस लैम्ब्डा कैलकुलस टाइप किया गया
λ-क्यूब में पाई जाने वाली सबसे सरल प्रणाली सरल रूप से टाइप किया गया लैम्ब्डा कैलकुलस है, जिसे λ→ भी कहा जाता है। इस प्रणाली में, अमूर्तता का निर्माण करने का एकमात्र तरीका टाइपिंग नियम के साथ, शब्द को शब्द पर निर्भर बनाना है
(λ2) सिस्टम एफ
सिस्टम एफ में (दूसरे क्रम में टाइप किए गए लैम्ब्डा कैलकुलस के लिए इसे λ2 भी कहा जाता है)[2] अन्य प्रकार का अमूर्तन है, जिसे ए के साथ लिखा जाता है , जो निम्नलिखित नियम के साथ शब्दों को प्रकारों पर निर्भर करने की अनुमति देता है:
ए से शुरू होने वाले शब्द इन्हें पैरामीट्रिक बहुरूपता कहा जाता है, क्योंकि इन्हें विभिन्न कार्यों को प्राप्त करने के लिए विभिन्न प्रकारों पर लागू किया जा सकता है, एमएल (प्रोग्रामिंग भाषा) | एमएल जैसी भाषाओं में बहुरूपी कार्यों के समान। उदाहरण के लिए, बहुरूपी पहचान
fun x -> x
OCaml का प्रकार है
'a -> 'a
मतलब यह किसी भी प्रकार का तर्क ले सकता है 'a
और उस प्रकार का तत्व लौटाएँ। यह प्रकार λ2 में प्रकार से मेल खाता है .
(λω) सिस्टम Fω
सिस्टम एफ में निर्माण को आपूर्ति प्रकारों के लिए पेश किया जाता है जो अन्य प्रकारों पर निर्भर होते हैं। इसे कंस्ट्रक्टर टाइप करें कहा जाता है और वैल्यू प्रकार के साथ फ़ंक्शन बनाने का तरीका प्रदान करता है।[3] इस प्रकार के कंस्ट्रक्टर का उदाहरण बाइनरी पेड़ों का प्रकार है जिसमें किसी दिए गए प्रकार के डेटा द्वारा लेबल किए गए पत्ते होते हैं : , कहाँअनौपचारिक रूप से मतलब है प्रकार है. यह फ़ंक्शन है जो प्रकार का पैरामीटर लेता है तर्क के रूप में और का प्रकार लौटाता है प्रकार के मानों का s . In concrete programming, this feature corresponds to the ability to define type constructors inside the language, rather than considering them as primitives. The previous type constructor roughly corresponds to the following definition of a tree with labeled leaves in OCaml:
type 'a tree = | Leaf of 'a | Node of 'a tree * 'a tree
नए प्रकार प्राप्त करने के लिए इस प्रकार के कंस्ट्रक्टर को अन्य प्रकारों पर लागू किया जा सकता है। उदाहरण के लिए, पूर्णांकों के वृक्षों के प्रकार प्राप्त करने के लिए:
type int_tree = int tree
सिस्टम एफ आम तौर पर इसका उपयोग अपने आप नहीं किया जाता है, लेकिन यह टाइप कंस्ट्रक्टर की स्वतंत्र सुविधा को अलग करने के लिए उपयोगी है।[4]
(λP) लैम्ब्डा-पी
ΛΠ-कैलकुलस|λP प्रणाली में, जिसे ΛΠ भी कहा जाता है, और लॉजिकल फ्रेमवर्क#LF से निकटता से संबंधित है, तथाकथित आश्रित प्रकार है। ये ऐसे प्रकार हैं जिन्हें शर्तों पर निर्भर रहने की अनुमति है। सिस्टम का महत्वपूर्ण परिचय नियम है
कहाँ वैध प्रकार का प्रतिनिधित्व करता है। नए प्रकार का कंस्ट्रक्टर करी हावर्ड समरूपता के माध्यम से सार्वभौमिक क्वांटिफायर से मेल खाता है, और सिस्टम λP समग्र रूप से केवल संयोजी के रूप में निहितार्थ के साथ प्रथम-क्रम तर्क से मेल खाता है। ठोस प्रोग्रामिंग में इन आश्रित प्रकारों का उदाहरण निश्चित लंबाई पर वैक्टर का प्रकार है: लंबाई शब्द है, जिस पर प्रकार निर्भर करता है।
(Fω) सिस्टम Fω
सिस्टम एफ-ओमेगा|सिस्टम एफω दोनों को जोड़ता है सिस्टम F का कंस्ट्रक्टर और सिस्टम F से टाइप कंस्ट्रक्टर. इस प्रकार सिस्टम Fω दोनों शब्द प्रदान करता है जो प्रकारों पर निर्भर करते हैं और प्रकार जो प्रकारों पर निर्भर करते हैं।
(λC) निर्माणों की गणना
निर्माणों की गणना में, घन में λC के रूप में या λPω के रूप में दर्शाया गया है,[1]: 130 ये चार विशेषताएं सहवास करती हैं, जिससे प्रकार और पद दोनों प्रकार और पद पर निर्भर हो सकते हैं। शब्दों और प्रकारों के बीच λ→ में मौजूद स्पष्ट सीमा को कुछ हद तक समाप्त कर दिया गया है, क्योंकि सार्वभौमिक को छोड़कर सभी प्रकार स्वयं प्रकार के पद हैं।
औपचारिक परिभाषा
सरल रूप से टाइप किए गए लैम्ब्डा कैलकुलस पर आधारित सभी प्रणालियों के लिए, क्यूब में सभी सिस्टम दो चरणों में दिए गए हैं: पहले, कच्चे शब्द, β-कमी की धारणा के साथ, और फिर टाइपिंग नियम जो उन शब्दों को टाइप करने की अनुमति देते हैं।
प्रकार के सेट को इस प्रकार परिभाषित किया गया है , प्रकार को अक्षर से दर्शाया जाता है . सेट भी है चरों का, अक्षरों द्वारा दर्शाया गया . घन की आठ प्रणालियों के मूल शब्द निम्नलिखित वाक्यविन्यास द्वारा दिए गए हैं:
और दर्शाने कब में मुक्त नहीं होता है .
पर्यावरण, जैसा कि आमतौर पर टाइप की गई प्रणालियों में होता है, द्वारा दिया जाता है क्यूब में सभी प्रणालियों के लिए β-कमी की धारणा आम है। यह लिखा है और नियमानुसार दिया गया है
निम्नलिखित टाइपिंग नियम भी क्यूब की सभी प्रणालियों के लिए सामान्य हैं:
λ→ | ||||
λP | ||||
λ2 | ||||
λω | ||||
λP2 | ||||
λPω | ||||
λω | ||||
λC |
घन की प्रत्येक दिशा जोड़ी (जोड़ी को छोड़कर) से मेल खाती है सभी प्रणालियों द्वारा साझा किया जाता है), और बदले में प्रत्येक जोड़ी शब्दों और प्रकारों के बीच निर्भरता की संभावना से मेल खाती है:
- शर्तों को शर्तों पर निर्भर रहने की अनुमति देता है।
- प्रकारों को शर्तों पर निर्भर करने की अनुमति देता है।
- शर्तों को प्रकारों पर निर्भर करने की अनुमति देता है।
- प्रकारों को प्रकारों पर निर्भर रहने की अनुमति देता है।
प्रणालियों के बीच तुलना
λ→
एक विशिष्ट व्युत्पत्ति जो प्राप्त की जा सकती है वह है
कंप्यूटिंग शक्ति काफी कमजोर है, यह विस्तारित बहुपद (एक सशर्त ऑपरेटर के साथ बहुपद) से मेल खाती है।[5]
λ2
λ2 में, ऐसे पद प्राप्त किए जा सकते हैं
बहुरूपता उन कार्यों के निर्माण की भी अनुमति देती है जो λ→ में निर्माण योग्य नहीं थे। अधिक सटीक रूप से, λ2 में परिभाषित कार्य दूसरे क्रम के पीनो अंकगणित में सिद्ध रूप से कुल हैं।[6] विशेष रूप से, सभी आदिम पुनरावर्ती कार्य निश्चित हैं।
λP
λP में, शब्दों के आधार पर प्रकार रखने की क्षमता का मतलब है कि कोई तार्किक विधेय व्यक्त कर सकता है। उदाहरण के लिए, निम्नलिखित व्युत्पन्न है:
कम्प्यूटेशनल दृष्टिकोण से, हालांकि, आश्रित प्रकार होने से कम्प्यूटेशनल शक्ति में वृद्धि नहीं होती है, केवल अधिक सटीक प्रकार के गुणों को व्यक्त करने की संभावना होती है।[7] आश्रित प्रकारों से निपटने के दौरान रूपांतरण नियम की अत्यधिक आवश्यकता होती है, क्योंकि यह प्रकार की शर्तों पर गणना करने की अनुमति देता है। उदाहरण के लिए, यदि आपके पास है और , प्राप्त करने के लिए आपको रूपांतरण नियम लागू करना होगा टाइप करने में सक्षम होने के लिए .
एल
एलō में, निम्नलिखित ऑपरेटर
कंप्यूटिंग के दृष्टिकोण से, λω बेहद मजबूत है, और इसे प्रोग्रामिंग भाषाओं के लिए आधार माना गया है।[8]
λC
निर्माणों की गणना में λP की विधेय अभिव्यंजना और λω की कम्प्यूटेशनल शक्ति दोनों हैं, इसलिए λC को λPω भी कहा जाता है,[1]: 130 इसलिए यह तार्किक पक्ष और कम्प्यूटेशनल पक्ष दोनों पर बहुत शक्तिशाली है।
अन्य प्रणालियों से संबंध
सिस्टम स्वचालित तार्किक दृष्टिकोण से λ2 के समान है। एमएल (प्रोग्रामिंग भाषा)|एमएल जैसी भाषाएं, टाइपिंग के दृष्टिकोण से, λ→ और λ2 के बीच कहीं स्थित होती हैं, क्योंकि वे प्रतिबंधित प्रकार के बहुरूपी प्रकारों को स्वीकार करते हैं, जो कि प्रीनेक्स सामान्य रूप में प्रकार हैं। हालाँकि, क्योंकि उनमें कुछ रिकर्सन ऑपरेटर होते हैं, उनकी कंप्यूटिंग शक्ति λ2 से अधिक होती है।[7]Coq प्रणाली केवल अप्राप्य के बजाय ब्रह्मांडों के रैखिक पदानुक्रम के साथ λC के विस्तार पर आधारित है , और आगमनात्मक प्रकार के निर्माण की क्षमता।
शुद्ध प्रकार की प्रणालियों को घन के सामान्यीकरण के रूप में देखा जा सकता है, जिसमें प्रकार, स्वयंसिद्ध, उत्पाद और अमूर्त नियमों का मनमाना सेट होता है। इसके विपरीत, लैम्ब्डा क्यूब के सिस्टम को दो प्रकार के शुद्ध प्रकार के सिस्टम के रूप में व्यक्त किया जा सकता है , एकमात्र स्वयंसिद्ध , और नियमों का सेट ऐसा है कि .[1]
करी-हावर्ड समरूपता के माध्यम से, लैम्ब्डा क्यूब और तार्किक प्रणालियों में सिस्टम के बीच एक-से-एक पत्राचार होता है,[1]अर्थात्:
System of the cube | Logical System |
---|---|
λ→ | (First-order) Propositional Calculus |
λ2 | Second-order Propositional Calculus |
λω | Weakly Higher Order Propositional Calculus |
λω | Higher Order Propositional Calculus |
λP | (First order) Predicate Logic |
λP2 | Second-order Predicate Calculus |
λPω | Weak Higher Order Predicate Calculus |
λC | Calculus of Constructions |
सभी तर्क निहितार्थ हैं (अर्थात केवल संयोजक हैं और ), हालाँकि कोई अन्य संयोजकों को परिभाषित कर सकता है जैसे कि या दूसरे और उच्च क्रम के तर्कों में अव्यवहारिक तरीके से। कमजोर उच्च क्रम तर्कशास्त्र में, उच्च क्रम विधेय के लिए चर होते हैं, लेकिन उन पर कोई परिमाणीकरण नहीं किया जा सकता है।
सामान्य गुण
क्यूब के सभी सिस्टम आनंद लेते हैं
- चर्च-रोसेर संपत्ति: यदि और तो वहाँ अस्तित्व है ऐसा है कि और ;
- विषय में कमी: यदि और तब ;
- प्रकारों की विशिष्टता: यदि और तब .
ये सभी सामान्य शुद्ध प्रकार की प्रणालियों पर सिद्ध किए जा सकते हैं।[9] क्यूब की प्रणाली में अच्छी तरह से टाइप किया गया कोई भी शब्द दृढ़ता से सामान्यीकरण कर रहा है,[1]हालाँकि यह गुण सभी शुद्ध प्रकार की प्रणालियों के लिए सामान्य नहीं है। क्यूब में कोई भी सिस्टम ट्यूरिंग पूर्ण नहीं है।[7]
उपप्रकार
हालाँकि, सबटाइपिंग को क्यूब में प्रदर्शित नहीं किया जाता है, भले ही सिस्टम पसंद करता हो , जिसे उच्च-क्रम सीमाबद्ध परिमाणीकरण के रूप में जाना जाता है, जो उपप्रकार और बहुरूपता को जोड़ता है, व्यावहारिक रुचि का है, और इसे आगे बंधे हुए प्रकार के ऑपरेटरों के लिए सामान्यीकृत किया जा सकता है। आगे विस्तार विशुद्ध रूप से कार्यात्मक वस्तुओं की परिभाषा की अनुमति दें; ये सिस्टम आम तौर पर लैम्ब्डा क्यूब पेपर प्रकाशित होने के बाद विकसित किए गए थे।[10] क्यूब का विचार गणितज्ञ हेन्क बेरेन्ड्रेट (1991) की देन है। शुद्ध प्रकार की प्रणालियों का ढांचा लैम्ब्डा क्यूब को इस अर्थ में सामान्यीकृत करता है कि क्यूब के सभी कोनों, साथ ही कई अन्य प्रणालियों को इस सामान्य ढांचे के उदाहरण के रूप में दर्शाया जा सकता है।[11] यह ढांचा लैम्ब्डा क्यूब से कुछ साल पहले का है। अपने 1991 के पेपर में, बेरेन्ड्रेट ने इस ढांचे में घन के कोनों को भी परिभाषित किया है।
यह भी देखें
- अनुसंधान को निर्देशित करने की उनकी क्षमता में,[12] ओलिवियर रिडौक्स लैम्ब्डा क्यूब का कट-आउट टेम्प्लेट देता है और क्यूब का ऑक्टाहेड्रोन के रूप में दोहरा प्रतिनिधित्व भी देता है, जहां 8 शीर्षों को चेहरों द्वारा प्रतिस्थापित किया जाता है, साथ ही डोडेकाहेड्रोन के रूप में दोहरा प्रतिनिधित्व दिया जाता है, जहां 12 किनारों को बदल दिया जाता है। चेहरे के।
- होमोटोपी प्रकार सिद्धांत
टिप्पणियाँ
- ↑ 1.0 1.1 1.2 1.3 1.4 1.5 Barendregt, Henk (1991). "सामान्यीकृत प्रकार की प्रणालियों का परिचय". Journal of Functional Programming. 1 (2): 125–154. doi:10.1017/s0956796800020025. hdl:2066/17240. ISSN 0956-7968. S2CID 44757552.
- ↑ Nederpelt, Rob; Geuvers, Herman (2014). प्रकार सिद्धांत और औपचारिक प्रमाण. Cambridge University Press. p. 69. ISBN 9781107036505.
- ↑ Nederpelt & Geuvers 2014, p. 85
- ↑ Nederpelt & Geuvers 2014, p. 100
- ↑ Schwichtenberg, Helmut (1975). "Definierbare Funktionen imλ-Kalkül mit Typen". Archiv für Mathematische Logik und Grundlagenforschung (in Deutsch). 17 (3–4): 113–114. doi:10.1007/bf02276799. ISSN 0933-5846. S2CID 11598130.
- ↑ Girard, Jean-Yves; Lafont, Yves; Taylor, Paul (1989). प्रमाण एवं प्रकार. Cambridge Tracts in Theoretical Computer Science. Vol. 7. Cambridge University Press. ISBN 9780521371810.
- ↑ 7.0 7.1 7.2 Ridoux, Olivier (1998). Lambda-Prolog de A à Z ... ou presque (PDF). [s.n.] OCLC 494473554.
- ↑ Pierce, Benjamin; Dietzen, Scott; Michaylov, Spiro (1989). उच्च-क्रम टाइप किए गए लैम्ब्डा-कैलकुली में प्रोग्रामिंग. Computer Science Department, Carnegie Mellon University. OCLC 20442222. CMU-CS-89-111 ERGO-89-075.
- ↑ Sørensen, Morten Heine; Urzyczyin, Pawel (2006). "Pure type systems and the λ-cube". करी-हावर्ड समरूपता पर व्याख्यान. Elsevier. pp. 343–359. doi:10.1016/s0049-237x(06)80015-7. ISBN 9780444520777.
- ↑ Pierce, Benjamin (2002). प्रकार और प्रोग्रामिंग भाषाएँ. MIT Press. pp. 467–490. ISBN 978-0262162098. OCLC 300712077.
- ↑ Pierce 2002, p. 466
- ↑ Ridoux 1998, p. 70
अग्रिम पठन
- Peyton Jones, Simon; Meijer, Erik (1997). "Henk: A Typed Intermediate Language" (PDF). Microsoft.
Henk is based directly on the lambda cube, an expressive family of typed lambda calculi.
बाहरी संबंध
- Barendregt's Lambda Cube in the context of pure type systems by Roger Bishop Jones