कभी कभी वर्तमान लक्ष्य को हल करती है, जब मैं लागू शैली सबूत लिख रहा हूँ, मैंएक विधि को लागू करें यदि और केवल यदि यह
के लिए एक सबूत विधि
foo
संशोधित करने के लिए पहले परfoo
प्रयास करें एक तरह से चाहते थे लक्ष्य। यदि यह लक्ष्य हल करता है, अच्छा; अगर यह इसे हल नहीं करता है, तो मूल स्थिति पर वापस लौटें और असफल हो जाएं। कुछ परिवर्तन के बादqed (subst fibs.simps, (subst fib.simps)?, simp add: nth_zipWith nth_tail)+
आगे,
simp
करने के लिए कॉल पूरी तरह से एक लक्ष्य किसी भी अधिक का समाधान नहीं होगा, और फिर यह पाश होगा:
यह निम्न कोड में आया। (Synatx विकल्प का सुझाव दिया) मैं
qed (solve_goal(subst fibs.simps, (subst fib.simps)?, simp add: nth_zipWith nth_tail))+
या की तरह कुछ निर्दिष्ट किया जा सकता था, तो
qed ((subst fibs.simps, (subst fib.simps)?, simp add: nth_zipWith nth_tail)!)+
या (शायद भी अच्छे वाक्य रचना)
qed ((subst fibs.simps, (subst fib.simps)?, simp add: nth_zipWith nth_tail)[1!])+
यह पहला लक्ष्य पर रोका होगा कि इस लिपि द्वारा हल नहीं किया जा सका।
मैं अपने 'fibs.simps' लगता है या' fib.simps' पाशन व्यवहार (शायद सामान्य बाएं हाथ की ओर और एक करता है, तो पर की वजह से गति प्रदान दाहिने हाथ की ओर)? अक्सर सशर्त नियमों द्वारा इन्हें बदलना संभव है। –
मैंने एक [पैच इसे कार्यान्वित कर दिया] सबमिट किया है (https://mailmanbroy.informatik.tu-muenchen.de/pipermail/isabelle-dev/2013-March/003911.html), देखते हैं कि क्या होता है। –
@ जोआचिम ब्रेटनर: बस रिकॉर्ड के लिए, व्यक्तिगत रूप से मुझे नहीं लगता कि एक संरचित प्रमाण (आपके उदाहरण के रूप में) इस तरह की राक्षसीता 'qed' से संबंधित है;)। मैं हमेशा संबंधित 'सबूत'/'qed' के अंदर एक और सब-सबूत स्पष्ट रूप से सेट अप करना पसंद करूंगा। हालांकि, आप 'लागू' स्क्रिप्ट के बारे में बात कर रहे हैं और उनके लिए मैं पूरी तरह से सहमत हूं। (हो सकता है कि आप अपने उदाहरण में 'qed' को 'लागू करें' में बदल सकें?) – chris