मार्टिन-लोफ प्रकार के सिद्धांत का परिचय


36

प्रकार के सिद्धांत के बारे में प्रति मार्टिन-लोफस विचारों का सबसे अच्छा परिचय क्या होगा? मैंने ओरेगन पीएल समर स्कूल के कुछ व्याख्यानों को देखा है, लेकिन मैं अभी भी निम्नलिखित प्रश्न से हैरान हूं।

एक प्रकार क्या है?

मुझे पता है कि एक सेट क्या है, क्योंकि आप उन्हें सामान्य जेडएफ एक्सियल द्वारा परिभाषित कर सकते हैं और उनके पास बहुत सहज कंक्रीट मॉडल है; सामान से भरी टोकरी के बारे में सोचो। हालाँकि, मैंने अभी तक एक प्रकार की एक उचित परिभाषा नहीं देखी है और मैं सोच रहा था कि क्या कोई स्रोत है जो डमी के लिए इस विचार को बिगाड़ देगा।


4
HoTT पुस्तक में एक परिचय है जो कि प्रकारों और सेटों की तुलना करता है, शायद यही मदद करेगा, homotopytypetheory.org - पुस्तक की धारा 1.1 देखें । लेकिन इससे भी महत्वपूर्ण बात यह है कि आप चाहते हैं कि हम आपके सिर पर सीधे प्रकारों का सही अंदाजा लगा सकें, जबकि सेट के लिए आप उन्हें एक्सिओम्स द्वारा वर्णित किए जाने से खुश हैं, बिना यह जानने के लिए कि वे वास्तव में क्या हैं। खैर, प्रकारों के लिए अनुमान नियमों द्वारा वर्णित हैं। और उनके पास एक बहुत ही सहज ठोस मॉडल है, आप जानते हैं, लेगो ब्लॉकों से भरा एक बास्केट। आप उनसे जो कुछ भी बनवा सकते हैं वह टाइप में है।
लेडी बाउर

मुझे लगता है कि मेरे दिमाग को सेट थ्योरी से दूर करना सबसे बड़ा मुद्दा है। हालाँकि, मुझे यकीन नहीं है कि लेगो सादृश्य कितना अच्छा है। ब्लॉक क्या हैं? यदि x: A और y: आम तौर पर मैं उनसे कुछ भी नहीं बनवा सकता जब तक कि कुछ पुनरावर्ती तीर प्रकार नहीं है। बेशक मैं अक्सर तीसरे प्रकार के कुछ का निर्माण करने के लिए विभिन्न प्रकार के सामान को मिला सकता हूं ...
dst

4
लेगो ब्लॉक प्रकार के निर्माता हैं। उदाहरण के लिए और आप और और , और और \ lambda z: A बना सकते हैं। x । आप नए प्रकारों का निर्माण भी कर सकते हैं, उदाहरण के लिए \ mathsf {Id} (x, y) और \ sum_ {z: A} \ mathsf {Id} (x, z) , और इसी तरह। लोगों के पास विभिन्न प्रकार के बारे में अंतर्ज्ञान हैं। सेट उनमें से एक है, लेकिन क्रूड। प्रकार भी टोपोलॉजिकल स्पेस की तरह हैं। वे प्रोग्रामिंग में संरचित डेटा की तरह भी हैं। वे भी \ omega -groupoids की तरह हैं । यही इसकी सुंदरता है, संभावनाओं की समृद्धि है। एक अधिभोग चुनें और इसके साथ चलाएं।y : एक ( एक्स , वाई ) ( एक्स , एक्स ) मैं एन एल ( एक्स ) आर एल एफ एक्स λ जेड : एक एक्स मैं ( एक्स , वाई ) Σ z : एक मैं ( एक्स , जेड ) ωx:Ay:A(x,y)(x,x)inl(x)relfxλz:A.xId(x,y)z:AId(x,z)ω
लेडी बाउर

जवाबों:


31

एक प्रकार अभिकलन की एक संपत्ति है। यह वही है जो आप एक बृहदान्त्र के दाईं ओर लिखते हैं।

मुझे उस पर विस्तार से बताना चाहिए। ध्यान दें कि शब्दावली पूरी तरह से मानक नहीं है: कुछ लेख या किताबें कुछ अवधारणाओं के लिए विभिन्न शब्दों का उपयोग कर सकती हैं।

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

  • वेरिएबल्स, ऑफ एरिटी 0 (एक संग्रहणीय संग्रह), लिखित , , आदि;xy
  • एक चर का अनुप्रयोग, 1 (एक संग्रह के साथ एक संग्रहणीय वस्तु, चर के लिए एक आपत्ति के साथ), लिखित , आदि;λx.M
  • अर्जी 2 का आवेदन, , लिखा ।MN

एक शब्द एक वाक्य रचना है। एक शब्दार्थ संगणना से संबंधित है। कई प्रकार के शब्दार्थ हैं, सबसे आम संचालन (यह वर्णन करते हुए कि कैसे शब्दों को अन्य शब्दों में परिवर्तित किया जा सकता है) या डीनोटेशनल (किसी अन्य स्थान में परिवर्तन द्वारा शब्दों का वर्णन, आमतौर पर सेट सिद्धांत से बनाया गया है)।

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

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

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

  • आधार प्रकार, की संख्या 0 (एक परिमित या अयोग्य संग्रह), लिखित , , आदि;AB
  • कार्य, 2 की संख्या, लिखित ।τ0τ1

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

बस टाइप किए गए लैम्ब्डा कैलकुलस के लिए, टाइपिंग निर्णय अर्थ है कि का संदर्भ में टाइप है । मैंने संदर्भों की औपचारिक परिभाषा को छोड़ दिया है। एम τ गामा एक्स : τ गामाΓM:τMτΓ

x:τΓΓx:τ(Γ)Γ,x:τ0M:τ1Γλx.M:τ0τ1(I)ΓM:τ0τ1ΓN:τ0ΓMN:τ1(E)

उदाहरण के लिए, यदि और आधारित प्रकार हैं, तो , में किसी भी संदर्भ में टाइप है (नीचे से ऊपर तक, लागू करें दो बार, फिर , और अंत में प्रत्येक शाखा पर )।ABλx.λy.xy(AB)AB(I)(E)(Γ)

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

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

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

गणित की सामान्य नींव के साथ टाई करने के लिए अधिकांश प्रकार की प्रणालियों को सेट-थ्योरिटिकल शब्दार्थ दिया गया है। प्रोग्रामिंग भाषा और गणित की नींव कैसे संबंधित हैं? और कार्य प्रकारों के शब्दार्थ और वाक्य-विन्यास में क्या अंतर है? यहां रुचि हो सकती है। गणित की नींव के रूप में प्रकार सिद्धांत का उपयोग करने पर भी काम किया गया है - सेट सिद्धांत ऐतिहासिक आधार है, लेकिन यह एकमात्र संभव विकल्प नहीं है। इस दिशा में होमोटोपी प्रकार का सिद्धांत एक महत्वपूर्ण मील का पत्थर है: यह होमोटॉपी सिद्धांत के संदर्भ में जानबूझकर अंतर्ज्ञानवादी प्रकार सिद्धांत के शब्दार्थ का वर्णन करता है और इस ढांचे में सिद्धांत सेट करता है।

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


TAPL के लिए +1। मैं खुद को उस पुस्तक को पढ़ने के प्रकारों के बारे में बहुत कुछ सिखाने में सक्षम था।
गाइ कोडर

मुझे यकीन नहीं है कि ATTAPL निर्भर प्रकारों के बारे में जानने के लिए एक अच्छा प्रारंभिक बिंदु है।
मार्टिन बर्गर

15

हो सकता है कि सेट थ्योरी और ग्रिपलिंग से आने वाले किसी व्यक्ति के लिए एक बेहतर प्रश्न कि कैसे सेट थ्योरी और मार्टिन-लोफ प्रकार के सिद्धांत में अंतर है, यह निर्धारित करने के लिए कि क्या सेट हैं। सेट सिद्धांत और गणित की नींव के बारे में आपके अंतर्ज्ञान निर्विवाद सेट-सिद्धांत संबंधी मान्यताओं से संक्रमित होंगे जो आप प्रदान करते हैं। अलस मार्टिन-लोफ प्रकार के सिद्धांत इन मान्यताओं को साझा नहीं करते हैं।

पारंपरिक समझ के विपरीत, सेट सिद्धांत दो संबंधों का एक सिद्धांत है : समानता और सेट सदस्यता , न कि केवल सदस्यता निर्धारित करना। और इन दोनों संबंधों को काफी अलग-अलग चरणों में बनाया गया है।

  1. हम मनमानी चीजों की समानता के सिद्धांत के रूप में प्रथम-क्रम तर्क का निर्माण करते हैं (केवल सेट नहीं)। प्रथम-क्रम तर्क प्रूफ की एक अनौपचारिक धारणा का उपयोग करता है। अवधारणा प्रमाण केवल प्रथम-क्रम तर्क में ही औपचारिक रूप से अभिव्यक्त नहीं है।

  2. फिर हम सेट-सेट लॉजिक के ऊपर सेट-ऑर्डर लॉजिक के ऊपर सेट-थ्योरी बनाते हैं और सदस्यता सेट करते हैं।

  3. सेट सदस्यता और समानता तब एक्सट्रीमिटी ऑफ एक्सलेंस से संबंधित हैं जो कहता है कि दो सेट समान हैं जब उनके समान सदस्य होते हैं।

  4. अंत में, (1) से प्रमाण की अनौपचारिक अवधारणा को कुछ सेट (प्रूफ ट्री) के रूप में एक पूर्व-पोस्ट युक्तिकरण प्राप्त होता है।

यह महसूस करना महत्वपूर्ण है कि सबूत की धारणा इस प्रकार सेट सिद्धांत में एक द्वितीय श्रेणी का नागरिक है।

यह सेट-अप पारंपरिक छोटे / मध्यम आकार के गणित के लिए ठीक काम करता है, लेकिन जैसा कि अब हम बड़े पैमाने पर सबूतों से निपट रहे हैं, जैसे कि सभी परिमित सरल समूहों का वर्गीकरण, या गैर-तुच्छ कंप्यूटर प्रोग्रामों का सत्यापन, यह अलग हो जाता है, क्योंकि यह खुद को आसान मशीनीकरण की ओर नहीं ले जाता है।

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

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


यह बेहद उपयोगी था। मुझे लगता है कि रचनात्मक गणित में आने वाले किसी भी व्यक्ति का एक प्रमुख मुद्दा बहुत सारी चीजों को अनलॉर्न करना है।
dst

मैं सहमत हूँ। किसी की अनजानी सेट-थ्योरिटिक मान्यताओं को अनसुना करने में कुछ समय लगता है। बहुत सारी एजडा प्रोग्रामिंग करने से मुझे मदद मिली, और आपके लिए भी काम आ सकता है अगर आप कंप्यूटर साइंस बैकग्राउंड से आते हैं।
मार्टिन बर्जर

10

मैं मार्टिन-लोफ प्रकार के सिद्धांत में आसान रास्ते से अवगत नहीं हूं। मुझे लगता है कि निम्नलिखित परिचय के रूप में सेवा कर सकता है।

हालांकि, यदि आप "क्या प्रकार है" सवाल से हैरान हैं, तो मैं पहले बहुत सरल प्रकार-सिद्धांतों में जाने का सुझाव देता हूं। कोई भी टाइप की गई प्रोग्रामिंग भाषा करेगा, लेकिन जैसे Ocaml, F # और Haskell विशेष रूप से उपयोगी होगा। थोड़ा सरल करते हुए, कोई यह कह सकता है कि मार्टिन-लोफ प्रकार का सिद्धांत दो भाषाओं में उपरोक्त भाषाओं के पीछे के प्रकारों का विस्तार करता है:

  1. निर्भर प्रकारों के साथ । आप उन्हें विभिन्न प्रोग्रामिंग भाषाओं में टैमर रूप में पाते हैं।
  2. पहचान के प्रकार के साथ। यह पिछले निर्भर प्रकार के सिद्धांतों पर मार्टिन-लोफ का मुख्य नवाचार है।

आश्रित प्रकारों के पीछे मुख्य विचार सरल है: प्रकारों को कार्यक्रमों द्वारा पैरामीटरित किया जा सकता है। यह अधिक पारंपरिक टाइपिंग सिस्टम में संभव नहीं है (थोड़ा सरल करना) जैसा कि ऊपर उल्लेख किया गया है। जबकि सरल, परिणाम गहरा हैं: निर्भर प्रकार करी-हावर्ड पत्राचार को पहले-आदेशात्मक तर्क के लिए उठाते हैं। पहचान के प्रकार थोड़े असामान्य हैं। यदि / जब आप हास्केल की तरह एक भाषा के साथ सहज हैं, तो आप सीख सकते हैं AGDA , जो मूल रूप से मार्टिन-LOF प्रकार के सिद्धांत के साथ हास्केल है। मुझे लगता है कि उपर्युक्त पुस्तकों को पढ़ने की तुलना में एजडा एक प्रोग्रामर के लिए सीखना बहुत आसान है।


मैं वास्तव में हास्केल को जानता हूं। मेरी समस्या यह है कि कोई भी ट्यूटोरियल आपको बताएगा कि प्रकारों को कैसे परिभाषित किया जाए, लेकिन कभी भी वे वास्तव में क्या हैं। यह सिर्फ आपके सभी डेटा से जुड़ा हुआ कुछ मैजिक टैग लगता है, जिससे टाइप चेकर एक पॉलीमॉर्फिक फ़ंक्शन के सही संस्करण को चुन सकता है और जांच सकता है कि चीजें उन तरीकों से मिश्रित नहीं हैं जो समझ में नहीं आती हैं। वे अभी भी इस सवाल को खुला छोड़ देते हैं कि एक प्रकार क्या है। मैं विशेष रूप से इससे हैरान हूँ, क्योंकि Voevodsky & co इस पर सभी गणित को आधार बनाने की कोशिश कर रहा है, फिर भी, मैंने कभी भी एक सटीक परिभाषा नहीं देखी है।
dst

2
ΓM:αMαMMΓ

प्रकार बहुत सटीक रूप से हास्केल में, मार्टिन-लोफ प्रकार के सिद्धांत में और वेवोडस्की के होमोटोपी प्रकार के सिद्धांत में परिभाषित किए गए हैं। जो कोई अस्पष्टता है। उदाहरण के लिए परिशिष्ट A.2 सभी शब्दों और प्रकार के होमोटॉपी प्रकार के सिद्धांत के लिए एक प्रूफ-सिस्टम देता है। यदि आप और भी अधिक कठोर चाहते हैं, तो आप Coq या Agda औपचारिकताओं को देख सकते हैं ।
मार्टिन बर्गर

2
हो सकता है कि आपको यह निगलने की जरूरत है कि उनके पास कोई सार नहीं है कि उन्हें कैसे परिभाषित किया जाए। यह उदाहरण सेट के साथ अलग नहीं है, वे सेट सिद्धांत के स्वयंसिद्धों द्वारा दिए गए हैं। (यह काफी हद तक सही नहीं है, लेकिन इसे समझना महत्वपूर्ण है।)
मार्टिन बर्गर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.