क्या Coq में निम्नलिखित प्रमेय साबित करने का कोई तरीका है?
Theorem bool_pirrel : forall (b : bool) (p1 p2 : b = true), p1 = p2.
EDIT : "क्या सबूत अप्रासंगिक है" के लिए एक संक्षिप्त विवरण देने का प्रयास (मुझे गलत या गलत होने पर किसी को सही करें)
मूल विचार यह है कि प्रस्ताव की दुनिया में (या कूक में Prop
सॉर्ट), जो आपको (और आपको चाहिए) वास्तव में परवाह करता है एक प्रस्ताव की उकसावे की क्षमता है, न कि इसके प्रमाण, कई (या कोई नहीं) हो सकते हैं। यदि आपके पास कई सबूत हैं, तो साबित करने के दृष्टिकोण से, वे इस अर्थ में समान हैं कि वे एक ही प्रस्ताव को साबित करते हैं । इसलिए उनका भेद सिर्फ अप्रासंगिक है। यह देखने के कम्प्यूटेशनल बिंदु से अलग है जहां आप वास्तव में दो शब्दों के भेद के बारे में परवाह करते हैं, उदाहरण के लिए, मूल रूप से, आप नहीं चाहते हैं कि दोनों bool
प्रकार के निवासी (या Set
कॉक के शब्दों में), अर्थात् true
और false
समान हों। लेकिन अगर आप उन्हें अंदर डालते हैं Prop
, तो उनके साथ समान व्यवहार किया जाता है।