औपचारिक सत्यापन: Difference between revisions

From Vigyanwiki
(Created page with "{{short description|Proving or disproving the correctness of certain intended algorithms}} {{hatnote group| {{Distinguish|Verificationism}} {{for|the Wikipedia policy|Wikipedi...")
 
No edit summary
Line 5: Line 5:
}}
}}
{{Use mdy dates|date=June 2019}}
{{Use mdy dates|date=June 2019}}
{{More citations needed|date=June 2009}}
{{More citations needed|date=जून 2009}}
हार्डवेयर और [[ सॉफ्टवेयर सिस्टम ]] के संदर्भ में, औपचारिक सत्यापन गणित के औपचारिक तरीकों का उपयोग करते हुए, एक निश्चित [[ औपचारिक विनिर्देश ]] या संपत्ति के संबंध में एक प्रणाली के अंतर्निहित [[ कलन विधि ]] की [[ गणितीय प्रमाण ]] या [[ शुद्धता (कंप्यूटर विज्ञान) ]] को अस्वीकार करने का कार्य है।<ref>{{cite journal|last=Sanghavi|first=Alok|title=औपचारिक सत्यापन क्या है?|journal=EE Times Asia|date=May 21, 2010}}</ref>
हार्डवेयर और [[सॉफ्टवेयर प्रणाली]] के संदर्भ में, '''औपचारिक सत्यापन''' गणित के औपचारिक विधियों  का उपयोग करके एक निश्चित औपचारिक विनिर्देश या सामग्री के संबंध में एक प्रणाली के अंतर्निहित [[कलन विधि]] के [[गणितये प्रमाण]] की विशुद्धता को स्वीकार करने या अस्वीकार करने का कार्य है।<ref>{{cite journal|last=Sanghavi|first=Alok|title=औपचारिक सत्यापन क्या है?|journal=EE Times Asia|date=May 21, 2010}}</ref>
औपचारिक सत्यापन सिस्टम की शुद्धता को साबित करने में सहायक हो सकता है जैसे: [[ क्रिप्टोग्राफिक प्रोटोकॉल ]], [[ संयोजन तर्क ]], आंतरिक मेमोरी के साथ [[ डिजिटल सर्किट ]] और स्रोत कोड के रूप में व्यक्त सॉफ़्टवेयर।
 
यह औपचारिक सत्यापन प्रणाली  की विशुद्धता को प्रमाणित करने में सहायक हो सकता है जैसे: [[ क्रिप्टोग्राफिक प्रोटोकॉल | क्रिप्टोग्राफिक प्रोटोकॉल]] , [[ संयोजन तर्क | संयोजन तर्क]] , आंतरिक मेमोरी के साथ [[ डिजिटल सर्किट | डिजिटल सर्किट]] और स्रोत कोड के रूप में व्यक्त सॉफ़्टवेयर।
 
इन प्रणालियों का सत्यापन प्रणाली के एक संक्षिप्त गणितीय प्रतिरूप पर एक [[औपचारिक प्रमाण]] प्रदान करके किया जाता है, गणितीय प्रतिरूप और प्रणाली की प्रकृति के मध्य पत्राचार को इसके अतिरिक्त निर्माण द्वारा जाना जाता है। गणितीय वस्तुओं के उदाहरण अधिकांशतः प्रतिरूप प्रणाली  के लिए उपयोग किए जाते हैं: परिमित-स्थिति मशीनें, [[ लेबल संक्रमण प्रणाली | लेबल संक्रमण प्रणाली]] , [[ पेट्री नेट | पेट्री नेट]] , [[ वेक्टर जोड़ प्रणाली |सदिश जोड़ प्रणाली]] , समयबद्ध ऑटोमेटन, [[ हाइब्रिड ऑटोमेटा | हाइब्रिड ऑटोमेटा]] , [[ प्रक्रिया बीजगणित | प्रक्रिया बीजगणित]] , प्रोग्रामिंग भाषाओं के औपचारिक शब्दार्थ जैसे [[ परिचालन शब्दार्थ | परिचालन शब्दार्थ]] , अर्थ शब्दार्थ, [[ स्वयंसिद्ध शब्दार्थ | स्वयंसिद्ध शब्दार्थ]] और [[ होरे तर्क | होरे तर्क]] ।<ref>[http://embedded.eecs.berkeley.edu/research/vis/doc/VisUser/vis_user/node4.html Introduction to Formal Verification], Berkeley University of California, Retrieved November 6, 2013</ref>


इन प्रणालियों का सत्यापन प्रणाली के एक सार गणितीय मॉडल पर एक [[ औपचारिक प्रमाण ]] प्रदान करके किया जाता है, गणितीय मॉडल और प्रणाली की प्रकृति के बीच पत्राचार को अन्यथा निर्माण द्वारा जाना जाता है। गणितीय वस्तुओं के उदाहरण अक्सर मॉडल सिस्टम के लिए उपयोग किए जाते हैं: परिमित-राज्य मशीनें, [[ लेबल संक्रमण प्रणाली ]], [[ पेट्री नेट ]], [[ वेक्टर जोड़ प्रणाली ]], समयबद्ध ऑटोमेटन, [[ हाइब्रिड ऑटोमेटा ]], [[ प्रक्रिया बीजगणित ]], प्रोग्रामिंग भाषाओं के औपचारिक शब्दार्थ जैसे [[ परिचालन शब्दार्थ ]], अर्थ शब्दार्थ, [[ स्वयंसिद्ध शब्दार्थ ]] और [[ होरे तर्क ]]।<ref>[http://embedded.eecs.berkeley.edu/research/vis/doc/VisUser/vis_user/node4.html Introduction to Formal Verification], Berkeley University of California, Retrieved November 6, 2013</ref>




== दृष्टिकोण ==
== दृष्टिकोण ==


एक दृष्टिकोण और गठन [[ मॉडल की जाँच ]] है, जिसमें गणितीय मॉडल का एक व्यवस्थित रूप से संपूर्ण अन्वेषण शामिल है (यह [[ परिमित मॉडल सिद्धांत ]] के लिए संभव है, लेकिन कुछ अनंत मॉडल के लिए भी है जहाँ राज्यों के अनंत सेटों को अमूर्तता का उपयोग करके या लाभ उठाकर प्रभावी ढंग से प्रदर्शित किया जा सकता है। समरूपता का)। आमतौर पर, इसमें एक ही ऑपरेशन में राज्यों के पूरे समूह पर विचार करने और कंप्यूटिंग समय को कम करने के लिए स्मार्ट और डोमेन-विशिष्ट अमूर्त तकनीकों का उपयोग करके मॉडल में सभी राज्यों और संक्रमणों की खोज करना शामिल है। कार्यान्वयन तकनीकों में [[ राज्य अंतरिक्ष गणना ]], प्रतीकात्मक राज्य अंतरिक्ष गणना, [[ सार व्याख्या ]], [[ प्रतीकात्मक अनुकरण ]], अमूर्त शोधन शामिल हैं।{{citation needed|date=December 2014}} सत्यापित किए जाने वाले गुणों को अक्सर [[ लौकिक तर्क ]]्स में वर्णित किया जाता है, जैसे [[ रैखिक लौकिक तर्क ]] (एलटीएल), [[ संपत्ति विशिष्टता भाषा ]] (पीएसएल), [[ सिस्टम वेरिलॉग ]] एसेर्शन (एसवीए),<ref>{{Cite book|title = SystemVerilog अभिकथन हैंडबुक|edition = 4th |last1 = Cohen|first1 = Ben| first2=Srinivasan |last2 =Venkataramanan |first3=Ajeetha |last3 =Kumari |first4=Lisa |last4 =Piper | publisher = CreateSpace Independent Publishing Platform|year = 2015|isbn = 978-1518681448}}</ref> या [[ कम्प्यूटेशनल वृक्ष तर्क ]] (CTL)। मॉडल जाँच का बड़ा फायदा यह है कि यह अक्सर पूरी तरह से स्वचालित होती है; इसका प्राथमिक नुकसान यह है कि यह सामान्य रूप से बड़ी प्रणालियों के पैमाने पर नहीं होता है; प्रतीकात्मक मॉडल आमतौर पर राज्य के कुछ सौ बिट्स तक सीमित होते हैं, जबकि स्पष्ट राज्य गणना के लिए अपेक्षाकृत छोटे होने के लिए राज्य स्थान की खोज की आवश्यकता होती है।
एक दृष्टिकोण और गठन [[ मॉडल की जाँच | प्रतिरूप की जाँच]] है, जिसमें गणितीय प्रतिरूप का एक व्यवस्थित रूप से संपूर्ण अन्वेषण शामिल है (यह [[ परिमित मॉडल सिद्धांत | परिमित प्रतिरूप सिद्धांत]] के लिए संभव है, लेकिन कुछ अनंत प्रतिरूप के लिए भी है जहाँ राज्यों के अनंत सेटों को अमूर्तता का उपयोग करके या लाभ उठाकर प्रभावी ढंग से प्रदर्शित किया जा सकता है। समरूपता का)। आमतौर पर, इसमें एक ही ऑपरेशन में राज्यों के पूरे समूह पर विचार करने और कंप्यूटिंग समय को कम करने के लिए स्मार्ट और डोमेन-विशिष्ट अमूर्त तकनीकों का उपयोग करके प्रतिरूप में सभी राज्यों और संक्रमणों की खोज करना शामिल है। कार्यान्वयन तकनीकों में [[ राज्य अंतरिक्ष गणना ]], प्रतीकात्मक राज्य अंतरिक्ष गणना, [[ सार व्याख्या ]], [[ प्रतीकात्मक अनुकरण ]], अमूर्त शोधन शामिल हैं।{{citation needed|date=December 2014}} सत्यापित किए जाने वाले गुणों को अधिकांशतः [[ लौकिक तर्क ]]्स में वर्णित किया जाता है, जैसे [[ रैखिक लौकिक तर्क ]] (एलटीएल), [[ संपत्ति विशिष्टता भाषा ]] (पीएसएल), [[ सिस्टम वेरिलॉग | प्रणाली  वेरिलॉग]] एसेर्शन (एसवीए),<ref>{{Cite book|title = SystemVerilog अभिकथन हैंडबुक|edition = 4th |last1 = Cohen|first1 = Ben| first2=Srinivasan |last2 =Venkataramanan |first3=Ajeetha |last3 =Kumari |first4=Lisa |last4 =Piper | publisher = CreateSpace Independent Publishing Platform|year = 2015|isbn = 978-1518681448}}</ref> या [[ कम्प्यूटेशनल वृक्ष तर्क ]] (CTL)। प्रतिरूप जाँच का बड़ा फायदा यह है कि यह अधिकांशतः पूरी तरह से स्वचालित होती है; इसका प्राथमिक नुकसान यह है कि यह सामान्य रूप से बड़ी प्रणालियों के पैमाने पर नहीं होता है; प्रतीकात्मक प्रतिरूप आमतौर पर राज्य के कुछ सौ बिट्स तक सीमित होते हैं, जबकि स्पष्ट राज्य गणना के लिए अपेक्षाकृत छोटे होने के लिए राज्य स्थान की खोज की आवश्यकता होती है।


एक अन्य दृष्टिकोण कटौतीत्मक सत्यापन है। इसमें सिस्टम और इसकी विशिष्टताओं (और संभवतः अन्य एनोटेशन) से गणितीय प्रमाण दायित्वों का एक संग्रह उत्पन्न होता है, जिसकी सच्चाई सिस्टम के विनिर्देशों के अनुरूप होती है, और इन दायित्वों का निर्वहन या तो प्रूफ सहायकों (इंटरैक्टिव प्रमेय प्रोवर्स) का उपयोग करते हुए होता है ( जैसे कि HOL प्रमेय सिद्ध, [[ ACL2 ]], इसाबेल (प्रमेय सिद्ध), [[ Coq ]] या [[ प्रोटोटाइप सत्यापन प्रणाली ]]), या स्वचालित प्रमेय सिद्ध, विशेष रूप से संतुष्टि मोडुलो सिद्धांत (SMT) सॉल्वर सहित। इस दृष्टिकोण का नुकसान यह है कि इसके लिए उपयोगकर्ता को विस्तार से समझने की आवश्यकता हो सकती है कि सिस्टम सही तरीके से क्यों काम करता है, और इस जानकारी को सत्यापन प्रणाली तक पहुंचाने के लिए, या तो प्रमेयों के अनुक्रम के रूप में या विनिर्देशों के रूप में ( सिस्टम घटकों (जैसे कार्य या प्रक्रियाएं) और शायद उप-घटक (जैसे लूप या डेटा संरचनाएं) के अपरिवर्तनीय, पूर्व शर्त, पोस्टकंडिशन)।
एक अन्य दृष्टिकोण कटौतीत्मक सत्यापन है। इसमें प्रणाली  और इसकी विशिष्टताओं (और संभवतः अन्य एनोटेशन) से गणितीय प्रमाण दायित्वों का एक संग्रह उत्पन्न होता है, जिसकी सच्चाई प्रणाली  के विनिर्देशों के अनुरूप होती है, और इन दायित्वों का निर्वहन या तो प्रूफ सहायकों (इंटरैक्टिव प्रमेय प्रोवर्स) का उपयोग करते हुए होता है ( जैसे कि HOL प्रमेय सिद्ध, [[ ACL2 ]], इसाबेल (प्रमेय सिद्ध), [[ Coq ]] या [[ प्रोटोटाइप सत्यापन प्रणाली ]]), या स्वचालित प्रमेय सिद्ध, विशेष रूप से संतुष्टि मोडुलो सिद्धांत (SMT) सॉल्वर सहित। इस दृष्टिकोण का नुकसान यह है कि इसके लिए उपयोगकर्ता को विस्तार से समझने की आवश्यकता हो सकती है कि प्रणाली  सही तरीके से क्यों काम करता है, और इस जानकारी को सत्यापन प्रणाली तक पहुंचाने के लिए, या तो प्रमेयों के अनुक्रम के रूप में या विनिर्देशों के रूप में ( प्रणाली  घटकों (जैसे कार्य या प्रक्रियाएं) और शायद उप-घटक (जैसे लूप या डेटा संरचनाएं) के अपरिवर्तनीय, पूर्व शर्त, पोस्टकंडिशन)।


=== सॉफ्टवेयर ===
=== सॉफ्टवेयर ===


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


एक अन्य पूरक दृष्टिकोण प्रोग्राम व्युत्पत्ति है, जिसमें शुद्धता-संरक्षण चरणों की एक श्रृंखला द्वारा [[ कार्यात्मक प्रोग्रामिंग ]] विनिर्देशों से कुशल कोड का उत्पादन किया जाता है। इस दृष्टिकोण का एक उदाहरण बर्ड-मीर्टेंस औपचारिकता है, और इस दृष्टिकोण को [[ निर्माण द्वारा सही ]] के रूप में देखा जा सकता है।
एक अन्य पूरक दृष्टिकोण प्रोग्राम व्युत्पत्ति है, जिसमें विशुद्धता-संरक्षण चरणों की एक श्रृंखला द्वारा [[ कार्यात्मक प्रोग्रामिंग ]] विनिर्देशों से कुशल कोड का उत्पादन किया जाता है। इस दृष्टिकोण का एक उदाहरण बर्ड-मीर्टेंस औपचारिकता है, और इस दृष्टिकोण को [[ निर्माण द्वारा सही ]] के रूप में देखा जा सकता है।


ये तकनीकें सु[[ दृढ़ता ]] हो सकती हैं, जिसका अर्थ है कि सत्यापित गुणों को शब्दार्थ से तार्किक रूप से निकाला जा सकता है, या असंदिग्ध, जिसका अर्थ है कि ऐसी कोई गारंटी नहीं है। एक ध्वनि तकनीक तभी परिणाम देती है जब वह संभावनाओं के पूरे स्थान को कवर कर लेती है। एक गलत तकनीक का एक उदाहरण वह है जो संभावनाओं के केवल एक सबसेट को शामिल करता है, उदाहरण के लिए केवल एक निश्चित संख्या तक पूर्णांक, और एक अच्छा-पर्याप्त परिणाम देता है। तकनीकें [[ निर्णायकता (तर्क) ]] भी हो सकती हैं, जिसका अर्थ है कि उनके एल्गोरिथम कार्यान्वयन एक उत्तर के साथ [[ समाप्ति विश्लेषण ]] हैं, या अनिर्णीत हैं, जिसका अर्थ है कि वे कभी भी समाप्त नहीं हो सकते हैं। संभावनाओं के दायरे को सीमित करके, कोई भी निर्णायक ध्वनि तकनीक उपलब्ध नहीं होने पर अस्वास्थ्यकर तकनीकों का निर्माण किया जा सकता है।
ये तकनीकें सु[[ दृढ़ता ]] हो सकती हैं, जिसका अर्थ है कि सत्यापित गुणों को शब्दार्थ से तार्किक रूप से निकाला जा सकता है, या असंदिग्ध, जिसका अर्थ है कि ऐसी कोई गारंटी नहीं है। एक ध्वनि तकनीक तभी परिणाम देती है जब वह संभावनाओं के पूरे स्थान को कवर कर लेती है। एक गलत तकनीक का एक उदाहरण वह है जो संभावनाओं के केवल एक सबसेट को शामिल करता है, उदाहरण के लिए केवल एक निश्चित संख्या तक पूर्णांक, और एक अच्छा-पर्याप्त परिणाम देता है। तकनीकें [[ निर्णायकता (तर्क) ]] भी हो सकती हैं, जिसका अर्थ है कि उनके एल्गोरिथम कार्यान्वयन एक उत्तर के साथ [[ समाप्ति विश्लेषण ]] हैं, या अनिर्णीत हैं, जिसका अर्थ है कि वे कभी भी समाप्त नहीं हो सकते हैं। संभावनाओं के दायरे को सीमित करके, कोई भी निर्णायक ध्वनि तकनीक उपलब्ध नहीं होने पर अस्वास्थ्यकर तकनीकों का निर्माण किया जा सकता है।
Line 28: Line 30:
== सत्यापन और सत्यापन ==
== सत्यापन और सत्यापन ==
{{main|Verification and validation}}
{{main|Verification and validation}}
सत्यापन और सत्यापन उद्देश्य के लिए किसी उत्पाद की फिटनेस के परीक्षण का एक पहलू है। मान्यता पूरक पहलू है। अक्सर एक समग्र जाँच प्रक्रिया को सत्यापन और सत्यापन | वी एंड वी के रूप में संदर्भित करता है।
सत्यापन और सत्यापन उद्देश्य के लिए किसी उत्पाद की फिटनेस के परीक्षण का एक पहलू है। मान्यता पूरक पहलू है। अधिकांशतः एक समग्र जाँच प्रक्रिया को सत्यापन और सत्यापन | वी एंड वी के रूप में संदर्भित करता है।


* मान्यता: क्या हम सही चीज़ बनाने की कोशिश कर रहे हैं? , यानी, उत्पाद उपयोगकर्ता की वास्तविक जरूरतों के लिए निर्दिष्ट है?
* मान्यता: क्या हम सही चीज़ बनाने की कोशिश कर रहे हैं? , यानी, उत्पाद उपयोगकर्ता की वास्तविक जरूरतों के लिए निर्दिष्ट है?
Line 39: Line 41:
प्रोग्राम की मरम्मत [[ ओरेकल (कम्प्यूटेबिलिटी) ]] के संबंध में की जाती है, जिसमें प्रोग्राम की वांछित कार्यक्षमता शामिल होती है जिसका उपयोग जेनरेट किए गए फिक्स के सत्यापन के लिए किया जाता है। एक सरल उदाहरण एक टेस्ट-सूट है- इनपुट/आउटपुट जोड़े प्रोग्राम की कार्यक्षमता निर्दिष्ट करते हैं। विभिन्न प्रकार की तकनीकों को नियोजित किया जाता है, विशेष रूप से संतुष्टि मॉडुलो सिद्धांतों (एसएमटी) सॉल्वरों का उपयोग करते हुए,<ref>{{Cite book|title = बग्गी की स्वचालित मरम्मत यदि स्थितियाँ और एसएमटी के साथ पूर्व शर्त नहीं हैं|author1=Favio DeMarco |author2=Jifeng Xuan |author3=Daniel Le Berre |author4=Martin Monperrus |date = 2014|journal = Proceedings of the 6th International Workshop on Constraints in Software Testing, Verification, and Analysis (CSTVA 2014)|pages = 30–39|doi = 10.1145/2593735.2593740|arxiv = 1404.3186|isbn = 9781450328470|s2cid=506586 }}</ref> और [[ आनुवंशिक प्रोग्रामिंग ]],<ref>{{cite journal |last1=Le Goues |first1=Claire |last2=Nguyen |first2=ThanhVu |last3=Forrest |first3=Stephanie |last4=Weimer |first4=Westley |title=GenProg: स्वचालित सॉफ़्टवेयर मरम्मत के लिए एक सामान्य विधि|journal=IEEE Transactions on Software Engineering |date=January 2012 |volume=38 |issue=1 |pages=54–72 |doi=10.1109/TSE.2011.104 |s2cid=4111307 |url = http://search.proquest.com/openview/f837f11066e9c9552df9e497064d6d80/1?pq-origsite=gscholar&cbl=21418&casa_token=X2fQSRNgLNwAAAAA:CBjvmrcBLZRqV7kjC-MY74s0wF68lhBvLF6rV4DWZkalzo2KdlUUzuMU38YgSmXGbwEL2NAr4w}}</ref> फिक्स के लिए संभावित उम्मीदवारों को उत्पन्न करने और उनका मूल्यांकन करने के लिए विकासवादी कंप्यूटिंग का उपयोग करना। पूर्व पद्धति नियतात्मक है, जबकि बाद वाली यादृच्छिक है।
प्रोग्राम की मरम्मत [[ ओरेकल (कम्प्यूटेबिलिटी) ]] के संबंध में की जाती है, जिसमें प्रोग्राम की वांछित कार्यक्षमता शामिल होती है जिसका उपयोग जेनरेट किए गए फिक्स के सत्यापन के लिए किया जाता है। एक सरल उदाहरण एक टेस्ट-सूट है- इनपुट/आउटपुट जोड़े प्रोग्राम की कार्यक्षमता निर्दिष्ट करते हैं। विभिन्न प्रकार की तकनीकों को नियोजित किया जाता है, विशेष रूप से संतुष्टि मॉडुलो सिद्धांतों (एसएमटी) सॉल्वरों का उपयोग करते हुए,<ref>{{Cite book|title = बग्गी की स्वचालित मरम्मत यदि स्थितियाँ और एसएमटी के साथ पूर्व शर्त नहीं हैं|author1=Favio DeMarco |author2=Jifeng Xuan |author3=Daniel Le Berre |author4=Martin Monperrus |date = 2014|journal = Proceedings of the 6th International Workshop on Constraints in Software Testing, Verification, and Analysis (CSTVA 2014)|pages = 30–39|doi = 10.1145/2593735.2593740|arxiv = 1404.3186|isbn = 9781450328470|s2cid=506586 }}</ref> और [[ आनुवंशिक प्रोग्रामिंग ]],<ref>{{cite journal |last1=Le Goues |first1=Claire |last2=Nguyen |first2=ThanhVu |last3=Forrest |first3=Stephanie |last4=Weimer |first4=Westley |title=GenProg: स्वचालित सॉफ़्टवेयर मरम्मत के लिए एक सामान्य विधि|journal=IEEE Transactions on Software Engineering |date=January 2012 |volume=38 |issue=1 |pages=54–72 |doi=10.1109/TSE.2011.104 |s2cid=4111307 |url = http://search.proquest.com/openview/f837f11066e9c9552df9e497064d6d80/1?pq-origsite=gscholar&cbl=21418&casa_token=X2fQSRNgLNwAAAAA:CBjvmrcBLZRqV7kjC-MY74s0wF68lhBvLF6rV4DWZkalzo2KdlUUzuMU38YgSmXGbwEL2NAr4w}}</ref> फिक्स के लिए संभावित उम्मीदवारों को उत्पन्न करने और उनका मूल्यांकन करने के लिए विकासवादी कंप्यूटिंग का उपयोग करना। पूर्व पद्धति नियतात्मक है, जबकि बाद वाली यादृच्छिक है।


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


== उद्योग उपयोग ==
== उद्योग उपयोग ==
Line 46: Line 48:
डिजाइनों की जटिलता में वृद्धि [[ हार्डवेयर उद्योग ]] में औपचारिक सत्यापन तकनीकों के महत्व को बढ़ाती है।<ref>{{Cite book|doi=10.1109/LICS.2003.1210044|year=2003|last1=Harrison|first1=J.|title=कम्प्यूटर साइंस में लॉजिक का 18वां वार्षिक IEEE संगोष्ठी, 2003। कार्यवाही|pages=45–54|isbn=978-0-7695-1884-8|chapter=Formal verification at Intel|s2cid=44585546}}</ref><ref>[http://portal.acm.org/citation.cfm?id=800667 Formal verification of a real-time hardware design]. Portal.acm.org (June 27, 1983). Retrieved on April 30, 2011.</ref> वर्तमान में, अधिकांश या सभी प्रमुख हार्डवेयर कंपनियों द्वारा औपचारिक सत्यापन का उपयोग किया जाता है,<ref>{{cite web|url=http://formalverificationbook.com|title=औपचारिक सत्यापन: एरिक सेलिगमैन, टॉम शुबर्ट, और एमवी अच्युता किरणकुमार द्वारा आधुनिक वीएलएसआई डिजाइन के लिए एक आवश्यक उपकरण|year=2015}}</ref> लेकिन [[ सॉफ्टवेयर उद्योग ]] में इसका उपयोग अभी भी कम हो रहा है।{{citation needed|date=December 2011}} इसे हार्डवेयर उद्योग में अधिक आवश्यकता के लिए जिम्मेदार ठहराया जा सकता है, जहां त्रुटियों का व्यावसायिक महत्व अधिक होता है।{{citation needed|date=December 2011}} घटकों के बीच संभावित सूक्ष्म अंतःक्रियाओं के कारण, सिमुलेशन द्वारा संभावनाओं के यथार्थवादी सेट का प्रयोग करना कठिन होता जा रहा है। हार्डवेयर डिजाइन के महत्वपूर्ण पहलू स्वचालित प्रूफ विधियों के लिए उत्तरदायी हैं, औपचारिक सत्यापन को शुरू करना आसान और अधिक उत्पादक बनाते हैं।<ref>{{cite web|url=http://www.cl.cam.ac.uk/~jrh13/slides/types-04sep99/slides1.pdf |title=उद्योग में औपचारिक सत्यापन|access-date=September 20, 2012}}</ref>
डिजाइनों की जटिलता में वृद्धि [[ हार्डवेयर उद्योग ]] में औपचारिक सत्यापन तकनीकों के महत्व को बढ़ाती है।<ref>{{Cite book|doi=10.1109/LICS.2003.1210044|year=2003|last1=Harrison|first1=J.|title=कम्प्यूटर साइंस में लॉजिक का 18वां वार्षिक IEEE संगोष्ठी, 2003। कार्यवाही|pages=45–54|isbn=978-0-7695-1884-8|chapter=Formal verification at Intel|s2cid=44585546}}</ref><ref>[http://portal.acm.org/citation.cfm?id=800667 Formal verification of a real-time hardware design]. Portal.acm.org (June 27, 1983). Retrieved on April 30, 2011.</ref> वर्तमान में, अधिकांश या सभी प्रमुख हार्डवेयर कंपनियों द्वारा औपचारिक सत्यापन का उपयोग किया जाता है,<ref>{{cite web|url=http://formalverificationbook.com|title=औपचारिक सत्यापन: एरिक सेलिगमैन, टॉम शुबर्ट, और एमवी अच्युता किरणकुमार द्वारा आधुनिक वीएलएसआई डिजाइन के लिए एक आवश्यक उपकरण|year=2015}}</ref> लेकिन [[ सॉफ्टवेयर उद्योग ]] में इसका उपयोग अभी भी कम हो रहा है।{{citation needed|date=December 2011}} इसे हार्डवेयर उद्योग में अधिक आवश्यकता के लिए जिम्मेदार ठहराया जा सकता है, जहां त्रुटियों का व्यावसायिक महत्व अधिक होता है।{{citation needed|date=December 2011}} घटकों के बीच संभावित सूक्ष्म अंतःक्रियाओं के कारण, सिमुलेशन द्वारा संभावनाओं के यथार्थवादी सेट का प्रयोग करना कठिन होता जा रहा है। हार्डवेयर डिजाइन के महत्वपूर्ण पहलू स्वचालित प्रूफ विधियों के लिए उत्तरदायी हैं, औपचारिक सत्यापन को शुरू करना आसान और अधिक उत्पादक बनाते हैं।<ref>{{cite web|url=http://www.cl.cam.ac.uk/~jrh13/slides/types-04sep99/slides1.pdf |title=उद्योग में औपचारिक सत्यापन|access-date=September 20, 2012}}</ref>


{{As of|2011}}, कई ऑपरेटिंग सिस्टम औपचारिक रूप से सत्यापित किए गए हैं:
{{As of|2011}}, कई ऑपरेटिंग प्रणाली  औपचारिक रूप से सत्यापित किए गए हैं:
NICTA का सुरक्षित L4 माइक्रोकर्नेल परिवार # न्यू साउथ वेल्स विश्वविद्यालय और NICTA, OK लैब्स द्वारा [[ seL4 ]] के रूप में व्यावसायिक रूप से बेचा गया;<ref>{{cite web |url=https://sel4.systems/Docs/seL4-spec.pdf |title=SEL4/ARMv6 API का सार औपचारिक विशिष्टता|access-date=May 19, 2015 |url-status=dead |archive-url=https://web.archive.org/web/20150521171234/https://sel4.systems/Docs/seL4-spec.pdf |archive-date=May 21, 2015  }}</ref> [[ पूर्वी चीन सामान्य विश्वविद्यालय ]] द्वारा OSEK/VDX आधारित रीयल-टाइम ऑपरेटिंग सिस्टम ORIENTAIS;{{Citation needed|date=March 2012}} ग्रीन हिल्स सॉफ्टवेयर की वफ़ादारी (ऑपरेटिंग सिस्टम);{{Citation needed|date=March 2012}} और [[ SYSGO ]] का [[ PikeOS ]]।<ref>Christoph Baumann, Bernhard Beckert, Holger Blasum, and Thorsten Bormer [http://www-wjp.cs.uni-saarland.de/publikationen/Ba10EW.pdf Ingredients of Operating System Correctness? Lessons Learned in the Formal Verification of PikeOS]</ref><ref>
NICTA का सुरक्षित L4 माइक्रोकर्नेल परिवार # न्यू साउथ वेल्स विश्वविद्यालय और NICTA, OK लैब्स द्वारा [[ seL4 ]] के रूप में व्यावसायिक रूप से बेचा गया;<ref>{{cite web |url=https://sel4.systems/Docs/seL4-spec.pdf |title=SEL4/ARMv6 API का सार औपचारिक विशिष्टता|access-date=May 19, 2015 |url-status=dead |archive-url=https://web.archive.org/web/20150521171234/https://sel4.systems/Docs/seL4-spec.pdf |archive-date=May 21, 2015  }}</ref> [[ पूर्वी चीन सामान्य विश्वविद्यालय ]] द्वारा OSEK/VDX आधारित रीयल-टाइम ऑपरेटिंग प्रणाली  ORIENTAIS;{{Citation needed|date=March 2012}} ग्रीन हिल्स सॉफ्टवेयर की वफ़ादारी (ऑपरेटिंग प्रणाली );{{Citation needed|date=March 2012}} और [[ SYSGO ]] का [[ PikeOS ]]।<ref>Christoph Baumann, Bernhard Beckert, Holger Blasum, and Thorsten Bormer [http://www-wjp.cs.uni-saarland.de/publikationen/Ba10EW.pdf Ingredients of Operating System Correctness? Lessons Learned in the Formal Verification of PikeOS]</ref><ref>
[http://www.ganssle.com/rants/gettingitright.htm "Getting it Right"] by Jack Ganssle</ref>
[http://www.ganssle.com/rants/gettingitright.htm "Getting it Right"] by Jack Ganssle</ref>
2016 में, येल में झोंग शाओ के नेतृत्व में एक टीम ने CertiKOS नामक एक औपचारिक रूप से सत्यापित ऑपरेटिंग सिस्टम कर्नेल विकसित किया।<ref>{{cite web|url=https://www.zdnet.com/article/certikos-a-hacker-proof-os/|title=हैक नहीं किया जा सकने वाला OS? CertiKOS सुरक्षित सिस्टम कर्नेल के निर्माण को सक्षम करता है|first=Robin|last=Harris|website=ZDNet|access-date=June 10, 2019}}</ref><ref>{{cite web|url=https://www.ibtimes.co.uk/certikos-yale-develops-worlds-first-hacker-resistant-operating-system-1591712|title=CertiKOS: येल ने दुनिया का पहला हैकर प्रतिरोधी ऑपरेटिंग सिस्टम विकसित किया है|date=November 15, 2016|website=International Business Times UK|access-date=June 10, 2019}}</ref>
2016 में, येल में झोंग शाओ के नेतृत्व में एक टीम ने CertiKOS नामक एक औपचारिक रूप से सत्यापित ऑपरेटिंग प्रणाली  कर्नेल विकसित किया।<ref>{{cite web|url=https://www.zdnet.com/article/certikos-a-hacker-proof-os/|title=हैक नहीं किया जा सकने वाला OS? CertiKOS सुरक्षित सिस्टम कर्नेल के निर्माण को सक्षम करता है|first=Robin|last=Harris|website=ZDNet|access-date=June 10, 2019}}</ref><ref>{{cite web|url=https://www.ibtimes.co.uk/certikos-yale-develops-worlds-first-hacker-resistant-operating-system-1591712|title=CertiKOS: येल ने दुनिया का पहला हैकर प्रतिरोधी ऑपरेटिंग सिस्टम विकसित किया है|date=November 15, 2016|website=International Business Times UK|access-date=June 10, 2019}}</ref>
2017 तक, नेटवर्क के गणितीय मॉडल के माध्यम से बड़े कंप्यूटर नेटवर्क के डिजाइन के लिए औपचारिक सत्यापन लागू किया गया है,<ref>{{cite web|last=Scroxton|first=Alex|title=सिस्को के लिए, आशय-आधारित नेटवर्किंग भविष्य की तकनीकी मांगों की शुरुआत करती है|url=http://www.computerweekly.com/news/252434028/For-Cisco-intent-based-networking-heralds-future-tech-demands|publisher=Computer Weekly|access-date=February 12, 2018}}</ref> और एक नई नेटवर्क प्रौद्योगिकी श्रेणी, आशय-आधारित नेटवर्किंग के हिस्से के रूप में।<ref>{{cite web|last=Lerner|first=Andrew|title=आशय आधारित नेटवर्किंग|url=https://blogs.gartner.com/andrew-lerner/2017/02/07/intent-based-networking/|publisher=Gartner|access-date=February 12, 2018}}</ref> औपचारिक सत्यापन समाधान प्रदान करने वाले नेटवर्क सॉफ़्टवेयर विक्रेताओं में [[ सिस्को ]] शामिल है<ref>{{cite web|last=Kerravala|first=Zeus|title=सिस्को इंटेंट आधारित नेटवर्क को डेटा सेंटर में लाता है|url=https://www.networkworld.com/article/3252804/data-center/cisco-brings-intent-based-networks-to-the-data-center.html|publisher=NetworkWorld|access-date=February 12, 2018}}</ref> फॉरवर्ड नेटवर्क<ref>{{cite web|title=फॉरवर्ड नेटवर्क: त्वरित और डी-जोखिम नेटवर्क संचालन|url=http://www.insightssuccess.com/forward-networks-accelerating-de-risking-network-operations/|publisher=Insights Success|access-date=February 12, 2018}}</ref><ref>{{cite web|title=इंटेंट = आधारित नेटवर्किंग में ग्राउंडेड होना|url=https://images.idgesg.net/assets/2018/01/idg_2018_intent-based_networking.pdf|publisher=NetworkWorld|access-date=February 12, 2018}}</ref> और वेरिफ्लो सिस्टम्स।<ref>{{cite web|title=वेरिफ्लो सिस्टम्स|url=https://www.bloomberg.com/research/stocks/private/snapshot.asp?privcapid=274750862|publisher=Bloomberg|access-date=February 12, 2018}}</ref>
2017 तक, नेटवर्क के गणितीय प्रतिरूप के माध्यम से बड़े कंप्यूटर नेटवर्क के डिजाइन के लिए औपचारिक सत्यापन लागू किया गया है,<ref>{{cite web|last=Scroxton|first=Alex|title=सिस्को के लिए, आशय-आधारित नेटवर्किंग भविष्य की तकनीकी मांगों की शुरुआत करती है|url=http://www.computerweekly.com/news/252434028/For-Cisco-intent-based-networking-heralds-future-tech-demands|publisher=Computer Weekly|access-date=February 12, 2018}}</ref> और एक नई नेटवर्क प्रौद्योगिकी श्रेणी, आशय-आधारित नेटवर्किंग के हिस्से के रूप में।<ref>{{cite web|last=Lerner|first=Andrew|title=आशय आधारित नेटवर्किंग|url=https://blogs.gartner.com/andrew-lerner/2017/02/07/intent-based-networking/|publisher=Gartner|access-date=February 12, 2018}}</ref> औपचारिक सत्यापन समाधान प्रदान करने वाले नेटवर्क सॉफ़्टवेयर विक्रेताओं में [[ सिस्को ]] शामिल है<ref>{{cite web|last=Kerravala|first=Zeus|title=सिस्को इंटेंट आधारित नेटवर्क को डेटा सेंटर में लाता है|url=https://www.networkworld.com/article/3252804/data-center/cisco-brings-intent-based-networks-to-the-data-center.html|publisher=NetworkWorld|access-date=February 12, 2018}}</ref> फॉरवर्ड नेटवर्क<ref>{{cite web|title=फॉरवर्ड नेटवर्क: त्वरित और डी-जोखिम नेटवर्क संचालन|url=http://www.insightssuccess.com/forward-networks-accelerating-de-risking-network-operations/|publisher=Insights Success|access-date=February 12, 2018}}</ref><ref>{{cite web|title=इंटेंट = आधारित नेटवर्किंग में ग्राउंडेड होना|url=https://images.idgesg.net/assets/2018/01/idg_2018_intent-based_networking.pdf|publisher=NetworkWorld|access-date=February 12, 2018}}</ref> और वेरिफ्लो प्रणाली ्स।<ref>{{cite web|title=वेरिफ्लो सिस्टम्स|url=https://www.bloomberg.com/research/stocks/private/snapshot.asp?privcapid=274750862|publisher=Bloomberg|access-date=February 12, 2018}}</ref>
[[ स्पार्क (प्रोग्रामिंग भाषा) ]] एक टूलसेट प्रदान करता है जो औपचारिक सत्यापन के साथ सॉफ्टवेयर विकास को सक्षम बनाता है और स्पार्क (प्रोग्रामिंग भाषा)#औद्योगिक अनुप्रयोग|कई उच्च-अखंडता प्रणालियों में उपयोग किया जाता है।{{cn|date=October 2022}}
[[ स्पार्क (प्रोग्रामिंग भाषा) ]] एक टूलसेट प्रदान करता है जो औपचारिक सत्यापन के साथ सॉफ्टवेयर विकास को सक्षम बनाता है और स्पार्क (प्रोग्रामिंग भाषा)#औद्योगिक अनुप्रयोग|कई उच्च-अखंडता प्रणालियों में उपयोग किया जाता है।{{cn|date=October 2022}}
[[ CompCert ]] एक औपचारिक रूप से सत्यापित C संकलक है जो अधिकांश ISO C को लागू करता है।{{cn|date=October 2022}}
[[ CompCert ]] एक औपचारिक रूप से सत्यापित C संकलक है जो अधिकांश ISO C को लागू करता है।{{cn|date=October 2022}}
Line 58: Line 60:


{{Wiktionary|verifiability}}
{{Wiktionary|verifiability}}
* स्वचालित प्रमेय साबित करना
* स्वचालित प्रमेय प्रमाणित करना
* मॉडल जाँच
* प्रतिरूप जाँच
* [[ मॉडल जाँच उपकरणों की सूची ]]
* [[ मॉडल जाँच उपकरणों की सूची | प्रतिरूप जाँच उपकरणों की सूची]]
* [[ औपचारिक तुल्यता जाँच ]]
* [[ औपचारिक तुल्यता जाँच ]]
* [[ सबूत चेकर ]]
* [[ सबूत चेकर ]]
Line 76: Line 78:
*अंक शास्त्र
*अंक शास्त्र
*औपचारिक तरीके
*औपचारिक तरीके
*गणित का मॉडल
*गणित का प्रतिरूप
*सोर्स कोड
*सोर्स कोड
*परिमित अवस्था मशीन
*परिमित अवस्था मशीन
Line 82: Line 84:
*समयबद्ध automaton
*समयबद्ध automaton
*संतुष्टि मॉड्यूल सिद्धांत
*संतुष्टि मॉड्यूल सिद्धांत
*स्वचालित प्रमेय साबित करना
*स्वचालित प्रमेय प्रमाणित करना
*एचओएल प्रमेय समर्थक
*एचओएल प्रमेय समर्थक
*इसाबेल (सिद्धांत साबित करें)
*इसाबेल (सिद्धांत प्रमाणित करें)
*सबूत सहायक
*सबूत सहायक
*कार्यक्रम व्युत्पत्ति
*कार्यक्रम व्युत्पत्ति
Line 90: Line 92:
*आश्रित प्रकार
*आश्रित प्रकार
*जाँच और वैधता
*जाँच और वैधता
*अखंडता (ऑपरेटिंग सिस्टम)
*अखंडता (ऑपरेटिंग प्रणाली )
*स्थैतिक कोड विश्लेषण
*स्थैतिक कोड विश्लेषण
== संदर्भ ==
== संदर्भ ==

Revision as of 13:13, 9 December 2022

हार्डवेयर और सॉफ्टवेयर प्रणाली के संदर्भ में, औपचारिक सत्यापन गणित के औपचारिक विधियों का उपयोग करके एक निश्चित औपचारिक विनिर्देश या सामग्री के संबंध में एक प्रणाली के अंतर्निहित कलन विधि के गणितये प्रमाण की विशुद्धता को स्वीकार करने या अस्वीकार करने का कार्य है।[1]

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

इन प्रणालियों का सत्यापन प्रणाली के एक संक्षिप्त गणितीय प्रतिरूप पर एक औपचारिक प्रमाण प्रदान करके किया जाता है, गणितीय प्रतिरूप और प्रणाली की प्रकृति के मध्य पत्राचार को इसके अतिरिक्त निर्माण द्वारा जाना जाता है। गणितीय वस्तुओं के उदाहरण अधिकांशतः प्रतिरूप प्रणाली के लिए उपयोग किए जाते हैं: परिमित-स्थिति मशीनें, लेबल संक्रमण प्रणाली , पेट्री नेट , सदिश जोड़ प्रणाली , समयबद्ध ऑटोमेटन, हाइब्रिड ऑटोमेटा , प्रक्रिया बीजगणित , प्रोग्रामिंग भाषाओं के औपचारिक शब्दार्थ जैसे परिचालन शब्दार्थ , अर्थ शब्दार्थ, स्वयंसिद्ध शब्दार्थ और होरे तर्क[2]


दृष्टिकोण

एक दृष्टिकोण और गठन प्रतिरूप की जाँच है, जिसमें गणितीय प्रतिरूप का एक व्यवस्थित रूप से संपूर्ण अन्वेषण शामिल है (यह परिमित प्रतिरूप सिद्धांत के लिए संभव है, लेकिन कुछ अनंत प्रतिरूप के लिए भी है जहाँ राज्यों के अनंत सेटों को अमूर्तता का उपयोग करके या लाभ उठाकर प्रभावी ढंग से प्रदर्शित किया जा सकता है। समरूपता का)। आमतौर पर, इसमें एक ही ऑपरेशन में राज्यों के पूरे समूह पर विचार करने और कंप्यूटिंग समय को कम करने के लिए स्मार्ट और डोमेन-विशिष्ट अमूर्त तकनीकों का उपयोग करके प्रतिरूप में सभी राज्यों और संक्रमणों की खोज करना शामिल है। कार्यान्वयन तकनीकों में राज्य अंतरिक्ष गणना , प्रतीकात्मक राज्य अंतरिक्ष गणना, सार व्याख्या , प्रतीकात्मक अनुकरण , अमूर्त शोधन शामिल हैं।[citation needed] सत्यापित किए जाने वाले गुणों को अधिकांशतः लौकिक तर्क ्स में वर्णित किया जाता है, जैसे रैखिक लौकिक तर्क (एलटीएल), संपत्ति विशिष्टता भाषा (पीएसएल), प्रणाली वेरिलॉग एसेर्शन (एसवीए),[3] या कम्प्यूटेशनल वृक्ष तर्क (CTL)। प्रतिरूप जाँच का बड़ा फायदा यह है कि यह अधिकांशतः पूरी तरह से स्वचालित होती है; इसका प्राथमिक नुकसान यह है कि यह सामान्य रूप से बड़ी प्रणालियों के पैमाने पर नहीं होता है; प्रतीकात्मक प्रतिरूप आमतौर पर राज्य के कुछ सौ बिट्स तक सीमित होते हैं, जबकि स्पष्ट राज्य गणना के लिए अपेक्षाकृत छोटे होने के लिए राज्य स्थान की खोज की आवश्यकता होती है।

एक अन्य दृष्टिकोण कटौतीत्मक सत्यापन है। इसमें प्रणाली और इसकी विशिष्टताओं (और संभवतः अन्य एनोटेशन) से गणितीय प्रमाण दायित्वों का एक संग्रह उत्पन्न होता है, जिसकी सच्चाई प्रणाली के विनिर्देशों के अनुरूप होती है, और इन दायित्वों का निर्वहन या तो प्रूफ सहायकों (इंटरैक्टिव प्रमेय प्रोवर्स) का उपयोग करते हुए होता है ( जैसे कि HOL प्रमेय सिद्ध, ACL2 , इसाबेल (प्रमेय सिद्ध), Coq या प्रोटोटाइप सत्यापन प्रणाली ), या स्वचालित प्रमेय सिद्ध, विशेष रूप से संतुष्टि मोडुलो सिद्धांत (SMT) सॉल्वर सहित। इस दृष्टिकोण का नुकसान यह है कि इसके लिए उपयोगकर्ता को विस्तार से समझने की आवश्यकता हो सकती है कि प्रणाली सही तरीके से क्यों काम करता है, और इस जानकारी को सत्यापन प्रणाली तक पहुंचाने के लिए, या तो प्रमेयों के अनुक्रम के रूप में या विनिर्देशों के रूप में ( प्रणाली घटकों (जैसे कार्य या प्रक्रियाएं) और शायद उप-घटक (जैसे लूप या डेटा संरचनाएं) के अपरिवर्तनीय, पूर्व शर्त, पोस्टकंडिशन)।

सॉफ्टवेयर

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

एक अन्य पूरक दृष्टिकोण प्रोग्राम व्युत्पत्ति है, जिसमें विशुद्धता-संरक्षण चरणों की एक श्रृंखला द्वारा कार्यात्मक प्रोग्रामिंग विनिर्देशों से कुशल कोड का उत्पादन किया जाता है। इस दृष्टिकोण का एक उदाहरण बर्ड-मीर्टेंस औपचारिकता है, और इस दृष्टिकोण को निर्माण द्वारा सही के रूप में देखा जा सकता है।

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

सत्यापन और सत्यापन

सत्यापन और सत्यापन उद्देश्य के लिए किसी उत्पाद की फिटनेस के परीक्षण का एक पहलू है। मान्यता पूरक पहलू है। अधिकांशतः एक समग्र जाँच प्रक्रिया को सत्यापन और सत्यापन | वी एंड वी के रूप में संदर्भित करता है।

  • मान्यता: क्या हम सही चीज़ बनाने की कोशिश कर रहे हैं? , यानी, उत्पाद उपयोगकर्ता की वास्तविक जरूरतों के लिए निर्दिष्ट है?
  • सत्यापन: क्या हमने वह बनाया है जो हम बनाने की कोशिश कर रहे थे? , यानी, उत्पाद विनिर्देशों के अनुरूप है?

सत्यापन प्रक्रिया में स्थिर/संरचनात्मक और गतिशील/व्यवहारिक पहलू शामिल हैं। उदाहरण के लिए, एक सॉफ्टवेयर उत्पाद के लिए कोई स्रोत कोड (स्थैतिक) का निरीक्षण कर सकता है और विशिष्ट परीक्षण मामलों (गतिशील) के खिलाफ चल सकता है। सत्यापन आमतौर पर केवल गतिशील रूप से किया जा सकता है, अर्थात, उत्पाद को विशिष्ट और असामान्य उपयोगों के माध्यम से रखकर परीक्षण किया जाता है (क्या यह संतोषजनक रूप से सभी उपयोग मामलों को पूरा करता है?)।

स्वचालित कार्यक्रम की मरम्मत

प्रोग्राम की मरम्मत ओरेकल (कम्प्यूटेबिलिटी) के संबंध में की जाती है, जिसमें प्रोग्राम की वांछित कार्यक्षमता शामिल होती है जिसका उपयोग जेनरेट किए गए फिक्स के सत्यापन के लिए किया जाता है। एक सरल उदाहरण एक टेस्ट-सूट है- इनपुट/आउटपुट जोड़े प्रोग्राम की कार्यक्षमता निर्दिष्ट करते हैं। विभिन्न प्रकार की तकनीकों को नियोजित किया जाता है, विशेष रूप से संतुष्टि मॉडुलो सिद्धांतों (एसएमटी) सॉल्वरों का उपयोग करते हुए,[4] और आनुवंशिक प्रोग्रामिंग ,[5] फिक्स के लिए संभावित उम्मीदवारों को उत्पन्न करने और उनका मूल्यांकन करने के लिए विकासवादी कंप्यूटिंग का उपयोग करना। पूर्व पद्धति नियतात्मक है, जबकि बाद वाली यादृच्छिक है।

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

उद्योग उपयोग

डिजाइनों की जटिलता में वृद्धि हार्डवेयर उद्योग में औपचारिक सत्यापन तकनीकों के महत्व को बढ़ाती है।[6][7] वर्तमान में, अधिकांश या सभी प्रमुख हार्डवेयर कंपनियों द्वारा औपचारिक सत्यापन का उपयोग किया जाता है,[8] लेकिन सॉफ्टवेयर उद्योग में इसका उपयोग अभी भी कम हो रहा है।[citation needed] इसे हार्डवेयर उद्योग में अधिक आवश्यकता के लिए जिम्मेदार ठहराया जा सकता है, जहां त्रुटियों का व्यावसायिक महत्व अधिक होता है।[citation needed] घटकों के बीच संभावित सूक्ष्म अंतःक्रियाओं के कारण, सिमुलेशन द्वारा संभावनाओं के यथार्थवादी सेट का प्रयोग करना कठिन होता जा रहा है। हार्डवेयर डिजाइन के महत्वपूर्ण पहलू स्वचालित प्रूफ विधियों के लिए उत्तरदायी हैं, औपचारिक सत्यापन को शुरू करना आसान और अधिक उत्पादक बनाते हैं।[9]

As of 2011, कई ऑपरेटिंग प्रणाली औपचारिक रूप से सत्यापित किए गए हैं: NICTA का सुरक्षित L4 माइक्रोकर्नेल परिवार # न्यू साउथ वेल्स विश्वविद्यालय और NICTA, OK लैब्स द्वारा seL4 के रूप में व्यावसायिक रूप से बेचा गया;[10] पूर्वी चीन सामान्य विश्वविद्यालय द्वारा OSEK/VDX आधारित रीयल-टाइम ऑपरेटिंग प्रणाली ORIENTAIS;[citation needed] ग्रीन हिल्स सॉफ्टवेयर की वफ़ादारी (ऑपरेटिंग प्रणाली );[citation needed] और SYSGO का PikeOS [11][12] 2016 में, येल में झोंग शाओ के नेतृत्व में एक टीम ने CertiKOS नामक एक औपचारिक रूप से सत्यापित ऑपरेटिंग प्रणाली कर्नेल विकसित किया।[13][14] 2017 तक, नेटवर्क के गणितीय प्रतिरूप के माध्यम से बड़े कंप्यूटर नेटवर्क के डिजाइन के लिए औपचारिक सत्यापन लागू किया गया है,[15] और एक नई नेटवर्क प्रौद्योगिकी श्रेणी, आशय-आधारित नेटवर्किंग के हिस्से के रूप में।[16] औपचारिक सत्यापन समाधान प्रदान करने वाले नेटवर्क सॉफ़्टवेयर विक्रेताओं में सिस्को शामिल है[17] फॉरवर्ड नेटवर्क[18][19] और वेरिफ्लो प्रणाली ्स।[20] स्पार्क (प्रोग्रामिंग भाषा) एक टूलसेट प्रदान करता है जो औपचारिक सत्यापन के साथ सॉफ्टवेयर विकास को सक्षम बनाता है और स्पार्क (प्रोग्रामिंग भाषा)#औद्योगिक अनुप्रयोग|कई उच्च-अखंडता प्रणालियों में उपयोग किया जाता है।[citation needed] CompCert एक औपचारिक रूप से सत्यापित C संकलक है जो अधिकांश ISO C को लागू करता है।[citation needed]


यह भी देखें


इस पेज में लापता आंतरिक लिंक की सूची

  • अंक शास्त्र
  • औपचारिक तरीके
  • गणित का प्रतिरूप
  • सोर्स कोड
  • परिमित अवस्था मशीन
  • सांकेतिक शब्दार्थ
  • समयबद्ध automaton
  • संतुष्टि मॉड्यूल सिद्धांत
  • स्वचालित प्रमेय प्रमाणित करना
  • एचओएल प्रमेय समर्थक
  • इसाबेल (सिद्धांत प्रमाणित करें)
  • सबूत सहायक
  • कार्यक्रम व्युत्पत्ति
  • प्रकार प्रणाली
  • आश्रित प्रकार
  • जाँच और वैधता
  • अखंडता (ऑपरेटिंग प्रणाली )
  • स्थैतिक कोड विश्लेषण

संदर्भ

  1. Sanghavi, Alok (May 21, 2010). "औपचारिक सत्यापन क्या है?". EE Times Asia.
  2. Introduction to Formal Verification, Berkeley University of California, Retrieved November 6, 2013
  3. Cohen, Ben; Venkataramanan, Srinivasan; Kumari, Ajeetha; Piper, Lisa (2015). SystemVerilog अभिकथन हैंडबुक (4th ed.). CreateSpace Independent Publishing Platform. ISBN 978-1518681448.
  4. Favio DeMarco; Jifeng Xuan; Daniel Le Berre; Martin Monperrus (2014). बग्गी की स्वचालित मरम्मत यदि स्थितियाँ और एसएमटी के साथ पूर्व शर्त नहीं हैं. pp. 30–39. arXiv:1404.3186. doi:10.1145/2593735.2593740. ISBN 9781450328470. S2CID 506586. {{cite book}}: |journal= ignored (help)
  5. Le Goues, Claire; Nguyen, ThanhVu; Forrest, Stephanie; Weimer, Westley (January 2012). "GenProg: स्वचालित सॉफ़्टवेयर मरम्मत के लिए एक सामान्य विधि". IEEE Transactions on Software Engineering. 38 (1): 54–72. doi:10.1109/TSE.2011.104. S2CID 4111307.
  6. Harrison, J. (2003). "Formal verification at Intel". कम्प्यूटर साइंस में लॉजिक का 18वां वार्षिक IEEE संगोष्ठी, 2003। कार्यवाही. pp. 45–54. doi:10.1109/LICS.2003.1210044. ISBN 978-0-7695-1884-8. S2CID 44585546.
  7. Formal verification of a real-time hardware design. Portal.acm.org (June 27, 1983). Retrieved on April 30, 2011.
  8. "औपचारिक सत्यापन: एरिक सेलिगमैन, टॉम शुबर्ट, और एमवी अच्युता किरणकुमार द्वारा आधुनिक वीएलएसआई डिजाइन के लिए एक आवश्यक उपकरण". 2015.
  9. "उद्योग में औपचारिक सत्यापन" (PDF). Retrieved September 20, 2012.
  10. "SEL4/ARMv6 API का सार औपचारिक विशिष्टता" (PDF). Archived from the original (PDF) on May 21, 2015. Retrieved May 19, 2015.
  11. Christoph Baumann, Bernhard Beckert, Holger Blasum, and Thorsten Bormer Ingredients of Operating System Correctness? Lessons Learned in the Formal Verification of PikeOS
  12. "Getting it Right" by Jack Ganssle
  13. Harris, Robin. "हैक नहीं किया जा सकने वाला OS? CertiKOS सुरक्षित सिस्टम कर्नेल के निर्माण को सक्षम करता है". ZDNet. Retrieved June 10, 2019.
  14. "CertiKOS: येल ने दुनिया का पहला हैकर प्रतिरोधी ऑपरेटिंग सिस्टम विकसित किया है". International Business Times UK. November 15, 2016. Retrieved June 10, 2019.
  15. Scroxton, Alex. "सिस्को के लिए, आशय-आधारित नेटवर्किंग भविष्य की तकनीकी मांगों की शुरुआत करती है". Computer Weekly. Retrieved February 12, 2018.
  16. Lerner, Andrew. "आशय आधारित नेटवर्किंग". Gartner. Retrieved February 12, 2018.
  17. Kerravala, Zeus. "सिस्को इंटेंट आधारित नेटवर्क को डेटा सेंटर में लाता है". NetworkWorld. Retrieved February 12, 2018.
  18. "फॉरवर्ड नेटवर्क: त्वरित और डी-जोखिम नेटवर्क संचालन". Insights Success. Retrieved February 12, 2018.
  19. "इंटेंट = आधारित नेटवर्किंग में ग्राउंडेड होना" (PDF). NetworkWorld. Retrieved February 12, 2018.
  20. "वेरिफ्लो सिस्टम्स". Bloomberg. Retrieved February 12, 2018.