क्या यह साबित करना संभव है कि कोई कार्य निष्प्रभावी है?


12

क्या किसी फ़ंक्शन को साबित करने के लिए स्थिर या निर्भर प्रकारों का उपयोग करना संभव है?

मैंने Google और विभिन्न स्थानों को StackOverflow / StackExchange पर बिना किसी भाग्य के उत्तर के लिए खोजा है। निकटतम मैंने पाया है कि यह इदरीस के बारे में बातचीत थी: https://groups.google.com/forum/# .topic/idris-lang/ yp7vrspChRg

दुर्भाग्य से, यह चर्चा मेरे सिर पर है।


3
मैं इसे उत्तर के रूप में पोस्ट नहीं कर रहा हूं क्योंकि मैं 100% निश्चित नहीं हूं, लेकिन मेरा मानना ​​है कि यह चावल के प्रमेय के कारण असंभव है ।
बाग़

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

2
@ गर्डेनहेड राइस के प्रमेय में कहा गया है कि किसी भी संपत्ति को किसी प्रोग्राम का व्यवहार दिया जा सकता है, कभी-कभी यह निर्धारित करना असंभव है कि प्रोग्राम के पास वह संपत्ति है या नहीं। "यह कभी-कभी असंभव है" और "यह असंभव है" के बीच एक बड़ा अंतर है।
टान्नर स्विफ्ट

2
मेरी अंतिम टिप्पणी बहुत अस्पष्ट थी। किसी भी मामले में, यहां राइस के प्रमेय का क्या कहना है: कोई एल्गोरिथ्म नहीं है जो सभी कार्यों को सही तरीके से वर्गीकृत करता है न कि उदासीन होने के कारण। हालांकि, अभी भी उपयोगी एल्गोरिदम हैं जो कुछ कार्यों को बेरोजगार होने या न होने के रूप में वर्गीकृत करते हैं।
टान्नर स्विफ्ट

2
ओपी ने यह साबित करने के बारे में पूछा कि एक फ़ंक्शन idempotent है, एक एल्गोरिथम को idemptotent के रूप में फ़ंक्शन को वर्गीकृत नहीं करना है या नहीं। मुख्य अंतर यह है कि एक प्रमाण एक व्यक्ति द्वारा लिखा जा सकता है। ट्यूरिंग पूर्णता के रूप में, यह वास्तव में कोई समस्या नहीं है
गैलिस

जवाबों:


3

कुछ कार्यों के लिए यह है। विशेष रूप से जब आप फ़ंक्शन जानते हैं ;-)

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

इसलिए यदि वह उत्तर नहीं है जिसकी आप तलाश कर रहे थे, तो एक बेहतर प्रश्न लिखें, वर्तमान में यह बहुत अस्पष्ट है कि वास्तव में आप वास्तव में क्या देख रहे हैं।


जवाब के लिए धन्यवाद। "स्वचालित रूप से निर्णय लेने" की क्षमता वास्तव में वही थी जिसकी मुझे तलाश थी।
12

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