क्या आश्रित प्रकार आपको सब कुछ देता है जो सबटाइपिंग करता है?


24

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

जवाबों:


22

उप-प्रकार और निर्भर प्रकार ऑर्थोगोनल अवधारणाएं हैं।

सबटाइपिंग आमतौर पर एक धारणा के साथ सुसज्जित है, जिससे एक प्रकार की अभिव्यक्ति उस स्थान पर दिखाई दे सकती है जहां एक सुपरपाइप की उम्मीद की जाती है।

घटाव अधिक होने की संभावना है और कार्यान्वयन में प्रबंधन के लिए अधिक सरल है।

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

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


3
धन्यवाद, यह वही है जो मैं देख रहा था। मैंने अभी कुछ नॉब सवाल पूछे हैं जो लगता है कि cstheory.SE से कुछ हद तक अच्छी तरह से प्राप्त किया गया है। ऐसे सवालों के लिए सही जगह नहीं है। -5 से +5 के पैमाने पर आप भविष्य में इसी तरह के सवालों को प्रोत्साहित या हतोत्साहित करेंगे? एक साइड नोट के रूप में, जैसा कि मैं इसे समझता हूं (रॉबर्ट हार्पर को पढ़ने से), टाइप कक्षाएं मॉड्यूल का एक उपश्रेणी हैं, क्या यह सही है?
जॉन साल्वेटियर

3
यह प्रश्न cstheory.SE के लिए उपयुक्त सीमा के दाईं ओर है। प्रकार कक्षाएं वास्तव में मॉड्यूल का एक उपश्रेणी नहीं हैं। यह अधिक पसंद है कि प्रकार के मॉड्यूल मॉड्यूल + प्रकार के निष्कर्ष + free_pl पाइपलाइन हैं।
डेव क्लार्क

2
मुझे लगता है कि आप हमेशा निर्भर प्रकार के साथ मॉडल को आसानी से मॉडल / अनुकरण कर सकते हैं। हास्केल में, एचएलस्ट (जो कि केवल निर्णायक प्रकार की समानता पर बनाया गया है) आपको उदाहरण के लिए उप-प्रस्तुत करता है (cf "हास्केल की अनदेखी वस्तु प्रणाली")। सबटाइटिंग के बारे में केवल कठिन हिस्सा प्रकार का अनुमान है, और एक बार जब आप आश्रित प्रकारों के साथ काम कर रहे होते हैं, तो वैसे भी आप 90% निकाल चुके हैं।
sclv

(एक टिप्पणी से एक जवाब में बदल गया)
नील कृष्णास्वामी

मार्टिन-लोफ के प्रकार के सिद्धांत का उपसमुच्चय सिद्धांत मूल रूप से आपको भूल जाने वाले मॉडल संरचना की आवश्यकता है, और यह 1980 के दशक की है। मुझे लगता है कि यह उनके उत्तर में @ नील को मिल रहा है।
चार्ल्स स्टीवर्ट

22

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

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

{एक्सएस|;पी(एक्स)} बनाम Σएक्स:एसपी(एक्स)

एसपी(एक्स)एक्स:

एक्स<:Yएक्स:एक्सएक्स:Yपी(एक्स)पी(एक्स)

आपके पास एक बार, आप व्यवस्थित रूप से सबसिडी को निर्भर प्रकार के सिद्धांत में विस्तृत कर सकते हैं। एक निर्भर प्रकार के सिद्धांत (इस मामले में, ट्वेल्व) में उपप्रकार को जोड़ने के उदाहरण के लिए विलियम लोवास की थीसिस देखें ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.