में रीराइट रणनीति के साथ संघर्ष करना मैं टेरी ताओ की वास्तविक विश्लेषण पाठ्यपुस्तक के माध्यम से जा रहा हूं, जो प्राकृतिक संख्याओं से मौलिक गणित का निर्माण करता है। जितना संभव हो उतना सबूत औपचारिक रूप से, मैं खुद को इडिस और आश्रित दोनों प्रकारों से परिचित कराने की उम्मीद करता हूं।इडिस
data GE: Nat -> Nat -> Type where
Ge : (n: Nat) -> (m: Nat) -> GE n (n + m)
प्रस्ताव का प्रतिनिधित्व करने के लिए कि एक प्राकृतिक संख्या से अधिक है या किसी अन्य के बराबर है:
मैं निम्नलिखित डेटाप्रकार को परिभाषित किया है।
मैं वर्तमान में इस संबंध का रिफ्लेक्सिविटी साबित करने के लिए है, यानी हस्ताक्षर
geRefl : GE n n
मेरा पहला प्रयास बस geRefl {n} = Ge n Z
कोशिश करने के लिए था के साथ सबूत के निर्माण के लिए संघर्ष कर रही है, लेकिन इस टाइप Ge n (add n Z)
है।
geRefl : GE n n
geRefl {n} = x
where x : GE n (n + Z)
x = rewrite plusZeroRightNeutral n in Ge n Z
लेकिन इस typecheck नहीं करता है: यह प्राप्त करने के लिए वांछित हस्ताक्षर के साथ एकजुट करने के लिए, हम स्पष्ट रूप से, फिर से लिखने के कुछ प्रकार के प्रदर्शन करने के लिए शायद लेम्मा
plusZeroRightNeutral : (left : Nat) -> left + fromInteger 0 = left
मेरे सबसे अच्छे प्रयास शामिल है निम्नलिखित है ।
क्या आप कृपया इस प्रमेय का सही सबूत दे सकते हैं, और इसके पीछे तर्क बता सकते हैं?
इसे 'जीई: (एम: नेट) -> (एन : नेट) -> जीई एन (एम + एन) 'इसके बजाए। फिर 'geRefl = जीई जेड'। – RhubarbAndC
@ रूबर्ब एंड सी मैंने इसे माना, लेकिन यह अन्य चीजों को कठिन बना दिया। – user1502040