मुझे सेट को परिभाषित करने की आवश्यकता है (केवल सीमित सेट मेरे उपयोग के लिए पर्याप्त हैं) इस तरह से निम्नलिखित लेम्मा साबित किया जा सकता है।

Lemma set_extensionality: forall X A B,
  (forall x, set_in x A <-> set_in x B) -> A = B.

एक दृष्टिकोण सेट का प्रतिनिधित्व करने के लिए सूचियों का उपयोग होगा, लेकिन अतिरिक्त शर्तों के साथ कि सूचियां किसी भी तत्व को दोहराती नहीं हैं और आरोही हैं। कुछ इस तरह

Inductive set (X : Type) : Type :=
  | set_cons (l : list X) (Hnd : NoDup l) (Hasc : asc l).

लेकिन दुर्भाग्य से मैं asc को परिभाषित नहीं कर सकता क्योंकि मुझे मनमाने प्रकार X पर ऑर्डर की आवश्यकता है।

एक अन्य दृष्टिकोण सेट के रूप में विधेय का उपयोग होगा और एक स्वयंसिद्ध के रूप में कार्य विस्तार को जोड़ना होगा।

Inductive set (X : Type) : Type :=
  | set_cons (P : X -> Prop).

लेकिन मैं किसी स्वयंसिद्ध या अतिरिक्त परिकल्पना का उपयोग नहीं करना पसंद करता हूं। इसे कैसे हासिल किया जाए इस पर कोई विचार?

coq
2
Kamyar Mirzavaziri 9 अप्रैल 2020, 22:14

1 उत्तर

सबसे बढ़िया उत्तर

आप सूची के तत्वों को क्रमबद्ध करने के लिए मजबूर करके विस्तारित समानता प्राप्त कर सकते हैं। इस दृष्टिकोण का पालन करने वाले कई पुस्तकालय हैं, जिनमें मेरे अपने विस्तारीय संरचनाएं शामिल हैं (अधिक विकल्प GitHub पर लिंक किए गए हैं) पृष्ठ)।

3
Arthur Azevedo De Amorim 9 अप्रैल 2020, 19:37