मैं chapter 7 of "theorem proving in lean" से अपरिवर्तनीय प्रकारों को समझने की कोशिश कर रहा हूं।समानता पर उत्तराधिकारी की प्रतिस्थापन संपत्ति प्रदान करना
inductive natural : Type
| zero : natural
| succ : natural -> natural
lemma succ_over_equality (a b : natural) (H : a = b) :
(natural.succ a) = (natural.succ b) := sorry
कुछ अटकलबाजी और काफी संपूर्ण खोज रहा संभावनाओं के एक जोड़े के साथ संकलक को संतुष्ट करने में सक्षम था के बाद:
मैं अपने आप को प्राकृतिक संख्याओं का है कि उत्तराधिकारी साबित करने का एक कार्य सेट समानता पर एक प्रतिस्थापन संपत्ति है:
lemma succ_over_equality (a b : natural) (H : a = b) :
(natural.succ a) = (natural.succ b) :=
eq.rec_on H (eq.refl (natural.succ a))
--eq.rec_on H rfl
--eq.subst H rfl
--eq.subst H (eq.refl (natural.succ a))
--congr_arg (λ (n : natural), (natural.succ n)) H
मुझे समझ में नहीं आता कि मैंने वास्तव में क्या सबूत दिए हैं।
eq
(अनिवार्य) प्रकार की पूर्ण परिभाषा क्या है? वीएससीओडी में मैंeq
के प्रकार हस्ताक्षरeq Π {α : Type} α → α → Prop
के रूप में देख सकता हूं, लेकिन मैंnatural
से व्यक्तिगत (अपरिवर्तनीय) रचनाकार (zero
औरsucc
के अनुरूप नहीं देख सकता)। स्रोत कोड doesn't look quite right में सबसे अच्छा मुझे मिल सकता है।eq.subst
का सबूत(natural.succ a) = (natural.succ b)
का प्रमाण प्रदान करने के लिए खुश क्यों है?- higher order unification क्या है और यह इस विशेष उदाहरण पर कैसे लागू होता है?
- त्रुटि जब मैं
#check (eq.rec_on H (eq.refl (natural.succ a)))
टाइप मैं मिलता है, जो है[Lean] invalid 'eq.rec_on' application, elaborator has special support for this kind of application (it is handled as an "eliminator"), but the expected type must be known eq.rec_on : Π {α : Sort u} {a : α} {C : α → Sort l} {a_1 : α}, a = a_1 → C a → C a_1
https://github.com/leanprover/lean/blob/master/library/init/core.lean – Adam
में eq जीवन की परिभाषा कारण है कि यह सबूत को स्वीकार करता है के रूप में, afaik जब आप संहार समानता यह ए और बी को समान मानी जाती है (आखिरकार वे कन्स्ट्रक्टर का एक ही तर्क हैं) इसलिए वापसी प्रकार में इसे प्रतिस्थापित किया जाता है, प्रकार के साथ एक लक्षित वस्तु उत्पन्न करना (natural.suc सी ए) = (natural.succ ए) जो आपके पास – Adam
है, मैं इस प्रश्न की एक भी वाक्य को भी समझ नहीं पा रहा हूं :-) शुभकामनाएं हालांकि! – Stimul8d