कुल शुद्धता और आंशिक शुद्धता के बीच अंतर क्या है?


जवाब 1:

कुल शुद्धता विनिर्देश भी आंशिक शुद्धता विनिर्देश है। आंशिक शुद्धता कमजोर है क्योंकि इसे निष्कर्ष पर आने के लिए 'एस टर्मेट्स' की अतिरिक्त मदद की आवश्यकता है: आर अंतिम स्थिति में है।

आंशिक शुद्धता विनिर्देशन {Q} S {R} के लिए, आप निम्न जानकारी प्राप्त कर सकते हैं: एक प्रारंभिक अवस्था को देखते हुए, जो Q को संतुष्ट करता है, S समाप्त हो सकता है या नहीं। यदि एस समाप्त होता है, एस के निष्पादन के बाद, आप एक अंतिम स्थिति तक पहुंच जाएंगे जो आर को संतुष्ट करता है। यदि नहीं, तो आर बेकार है क्योंकि कोई अंतिम स्थिति नहीं है।

उदाहरण के लिए:

{X == 10}
जबकि (y! = 0):
    y = y - १
x = 0
{X == 0}

यह एक आंशिक शुद्धता विनिर्देश है। यदि y को किसी संख्या के साथ 0 या उससे अधिक अंक के साथ आरंभीकृत किया गया है, तो S समाप्त हो जाएगा और उसके बाद x 0. है, जबकि यदि y एक ऋणात्मक संख्या से शुरू होता है, तो S हमेशा के लिए लूप करेगा और चूंकि यह समाप्त नहीं होता है, आप एक अवस्था में नहीं पहुंचेंगे ' एस के निष्पादन के बाद '।

वास्तव में, R कुछ भी हो सकता है यदि S एक डेड-लूप है। उदाहरण के लिए, किसी भी Q और R के लिए:

{} क्यू
जबकि (सत्य):
    y = y - १
{R}

हमेशा एक आंशिक शुद्धता विनिर्देश है।

यदि Q पर्याप्त मजबूत नहीं है, तो आप S की समाप्ति की गारंटी नहीं दे सकते हैं, तो S के निष्पादन के बाद राज्य के बारे में अकेले कारण बताएं। इस स्थिति में आप मैन्युअल रूप से एक शर्त जोड़ सकते हैं: एस समाप्त। क्यू और इसके साथ, तर्क जारी रह सकता है।

कुल शुद्धता विनिर्देश के लिए {Q} S {R}, Q, S की समाप्ति की गारंटी देने के लिए पर्याप्त मजबूत है, इसलिए आप यह निष्कर्ष निकाल सकते हैं कि S समाप्त हो जाएगा और अंतिम स्थिति R को संतुष्ट करती है।

उदाहरण के लिए:

{x == १०}
जबकि (x! = 0):
    x = x - 1
{x == 0}

कुल शुद्धता विनिर्देश है।

BTW: मुझे यकीन नहीं है कि अगर उत्तर सही है क्योंकि प्रश्न को राजनीतिक सुधार के साथ टैग किया गया है। जबकि प्रश्न में परिभाषा बिल्कुल कम्प्यूटर साइंस की तरह ही दिखती है।