सबसे पहले, कोडी के बिंदुओं में से एक को दोहराने के लिए, पथरी का प्रेरक निर्माण (जो कि कोल के कर्नेल पर आधारित है), पथरी के निर्माण से बहुत अलग है। यह सबसे अच्छा माना जाता है कि मार्टिन-लोफ प्रकार के सिद्धांत को ब्रह्मांडों के साथ शुरू करना और फिर प्रकार पदानुक्रम के तल पर एक प्रकार का प्रोप जोड़ना। यह मूल सीओसी की तुलना में बहुत अलग जानवर है, जिसे एफ-ओमेगा के एक आश्रित संस्करण के रूप में सबसे अच्छा माना जाता है। (उदाहरण के लिए, CiC में सेट-थियेट्रिक मॉडल और CoC नहीं है।)
उस ने कहा, लंबो-घन (जिसमें सीओसी एक सदस्य है) को आमतौर पर टाइपिंग नियमों की संख्या में अर्थव्यवस्था के कारणों के लिए एक शुद्ध प्रकार की प्रणाली के रूप में प्रस्तुत किया जाता है। एक ही वाक्यविन्यास श्रेणी के तत्वों के रूप, प्रकार, और शब्दों को मानकर, आप कई कम नियमों को लिख सकते हैं और आपके प्रमाणों के साथ-साथ काफी कम अनावश्यक हो जाते हैं।
हालांकि, समझने के लिए, स्पष्ट रूप से विभिन्न श्रेणियों को अलग करने में मदद मिल सकती है। हम तीन संश्लिष्ट श्रेणियों को प्रस्तुत कर सकते हैं, प्रकार (metavariable द्वारा पर आधारित k
), प्रकार (metavariable द्वारा परिकलित A
), और शर्तें ( metavariable द्वारा रचित )e
)। फिर सभी आठ प्रणालियों को तीन स्तरों में से प्रत्येक में अनुमति दी गई विभिन्नताओं के रूप में समझा जा सकता है।
λ → (सिंपली-टाइप्ड लैम्ब्डा कैलकुलस)
k ::= ∗
A ::= p | A → B
e ::= x | λx:A.e | e e
यह बुनियादी टाइप किया हुआ लैम्ब्डा कैलकुलस है। एक ही प्रकार है ∗
, जो प्रकार का है। प्रकार स्वयं परमाणु प्रकार p
और फ़ंक्शन प्रकार हैंA → B
। शब्द चर, सार या अनुप्रयोग हैं।
λ _ (STLC + उच्च-प्रकार के प्रकार के ऑपरेटर)
k ::= ∗ | k → k
A ::= a | p | A → B | λa:k.A | A B
e ::= x | λx:A.e | e e
एसटीएलसी केवल शर्तों के स्तर पर अमूर्तता की अनुमति देता है। यदि हम इसे प्रकारों के स्तर पर जोड़ते हैं, तो हम एक नए प्रकार को जोड़ते हैं k → k
जो कि टाइप-स्तरीय फ़ंक्शन और अमूर्त λa:k.A
और अनुप्रयोग का प्रकार हैA B
को टाइप स्तर पर भी। इसलिए अब हमारे पास बहुरूपता नहीं है, लेकिन हमारे पास टाइप ऑपरेटर हैं।
यदि मेमोरी कार्य करती है, तो इस प्रणाली में STLC से अधिक कम्प्यूटेशनल पावर नहीं है; यह आपको केवल संक्षिप्त रूप देने की क्षमता देता है।
λ2 (सिस्टम एफ)
k ::= ∗
A ::= a | p | A → B | ∀a:k. A
e ::= x | λx:A.e | e e | Λa:k. e | e [A]
टाइप ऑपरेटर जोड़ने के बजाय, हम बहुरूपता जोड़ सकते थे। प्रकार के स्तर पर, हम जोड़ते हैं ∀a:k. A
कि पूर्व में एक बहुरूपी प्रकार है, और शब्द स्तर पर, हम प्रकार Λa:k. e
और प्रकार के आवेदन पर अमूर्त जोड़ते हैंe [A]
।
यह प्रणाली STLC की तुलना में बहुत अधिक शक्तिशाली है - यह दूसरे क्रम के अंकगणित जितना मजबूत है।
λ (सिस्टम एफ-ओमेगा)
k ::= ∗ | k → k
A ::= a | p | A → B | ∀a:k. A | λa:k.A | A B
e ::= x | λx:A.e | e e | Λa:k. e | e [A]
यदि हमारे पास दोनों प्रकार के ऑपरेटर और बहुरूपता हैं, तो हमें एफ-ओमेगा मिलता है। यह प्रणाली कमोबेश अधिकांश आधुनिक कार्यात्मक भाषाओं (जैसे एमएल और हास्केल) के कर्नेल प्रकार के सिद्धांत है। यह सिस्टम एफ की तुलना में बहुत अधिक शक्तिशाली है - यह उच्च क्रम अंकगणित की ताकत के बराबर है।
λP (LF)
k ::= ∗ | Πx:A. k
A ::= a | p | Πx:A. B | Λx:A.B | A [e]
e ::= x | λx:A.e | e e
बहुरूपता के बजाय, हम बस टाइप किए गए लंबो कैलकुलस से निर्भरता की दिशा में जा सकते थे। यदि आपने फ़ंक्शन प्रकार को अपने तर्क को रिटर्न प्रकार (यानी, Πx:A. B(x)
इसके बजाय लिखें A → B
) का उपयोग करने की अनुमति दी है , तो आपको λP मिलता है। इसे वास्तव में उपयोगी बनाने के लिए, हमें एक प्रकार के प्रकार के ऑपरेटरों के साथ प्रकार का विस्तार करना होगा जो शर्तों को तर्क के रूप में लेते हैं Πx:A. k
, और इसलिए हमें इसी प्रकार के स्तर पर एक समान अमूर्त Λx:A.B
और अनुप्रयोग जोड़ना होगा A [e]
।
इस प्रणाली को कभी-कभी एलएफ, या एडिनबर्ग लॉजिकल फ्रेमवर्क कहा जाता है।
यह एक ही कम्प्यूटेशनल ताकत है जो बस टाइप किए गए लैम्ब्डा कैलकुलस के समान है।
λP2 (कोई विशेष नाम नहीं)
k ::= ∗ | Πx:A. k
A ::= a | p | Πx:A. B | ∀a:k.A | Λx:A.B | A [e]
e ::= x | λx:A.e | e e | Λa:k. e | e [A]
हम λP2 को पाने के लिए λP में बहुरूपता भी जोड़ सकते हैं। इस प्रणाली का अक्सर उपयोग नहीं किया जाता है, इसलिए इसका कोई विशेष नाम नहीं है। (मैंने जो एक पेपर पढ़ा है, वह इसका इस्तेमाल किया है, हर्मन गेवर्स इंडक्शन दूसरे ऑर्डर डिपेंडेंट टाइप थ्योरी में व्युत्पन्न नहीं है ।)
इस प्रणाली में सिस्टम एफ जैसी ही ताकत है।
λPω_ (कोई विशेष नाम नहीं)
k ::= ∗ | Πx:A. k | Πa:k. k'
A ::= a | p | Πx:A. B | Λx:A.B | A [e] | λa:k.A | A B
e ::= x | λx:A.e | e e
हम λP ._ पाने के लिए λP में टाइप ऑपरेटर भी जोड़ सकते हैं। इसमें Πa:k. k'
प्रकार ऑपरेटरों के लिए एक प्रकार जोड़ना , और इसी प्रकार-स्तरीय अमूर्तन Λx:A.B
और अनुप्रयोग शामिल हैंA [e]
।
चूंकि एसटीएलसी पर कम्प्यूटेशनल ताकत में फिर से कोई छलांग नहीं है, इसलिए इस प्रणाली को तार्किक ढांचे के लिए एक अच्छा आधार बनाना चाहिए, लेकिन किसी ने भी ऐसा नहीं किया है।
λP) (कंस्ट्रक्शंस की गणना)
k ::= ∗ | Πx:A. k | Πa:k. k'
A ::= a | p | Πx:A. B | ∀a:k.A | Λx:A.B | A [e] | λa:k.A | A B
e ::= x | λx:A.e | e e | Λa:k. e | e [A]
अंत में, हम λPω, कंस्ट्रक्शंस ऑफ कंस्ट्रक्शंस, λPω_ लेकर और इसके लिए एक पॉलीमॉर्फिक टाइप पूर्व ∀a:k.A
और टर्म-लेवल एब्सट्रैक्ट Λa:k. e
और एप्लिकेशन जोड़ते हैं e [A]
।
इस प्रणाली के प्रकार एफ-ओमेगा की तुलना में बहुत अधिक अभिव्यंजक हैं, लेकिन इसमें समान कम्प्यूटेशनल ताकत है।
soft-question
। मुझे यहां एक वास्तविक तकनीकी प्रश्न दिखाई नहीं देता है। शायद आप कुछ अधिक विशिष्ट हो सकते हैं जैसे आप पूछ रहे हैं?