मैं कोक में काफी नया हूं और अपने शोध के आधार पर एक ढांचा विकसित करने की कोशिश कर रहा हूं। मेरा काम काफी परिभाषा-भारी है और मुझे कोक को सेट का इलाज करने के तरीके के कारण एन्कोडिंग में परेशानी हो रही है।कोक में सेट के लगातार फॉर्मूलेशन?
वहाँ Type
और Set
हैं, जो वे 'प्रकार' कहते हैं, और मैं एक नया सेट को परिभाषित करने के लिए उपयोग कर सकते हैं:
Variable X: Type.
और फिर वहाँ एक पुस्तकालय एन्कोडिंग (उप) के रूप में 'Ensembles' सेट है, जो Type
से Prop
पर फ़ंक्शंस हैं।
Variable Y: Ensemble X.
Ensemble
रों उचित गणितीय सेट की तरह अधिक लग रहा है: दूसरे शब्दों में, वे एक Type
पर विधेय हैं। इसके अलावा, वे कई अन्य पुस्तकालयों द्वारा निर्मित किए जाते हैं। मैंने उन पर ध्यान केंद्रित करने की कोशिश की है: एक सार्वभौमिक सेट U: Set
परिभाषित करना, और फिर U
पर स्वयं को (उप) Ensemble
एस तक सीमित करना। लेकिन नहीं। Ensemble
अन्य चर के लिए प्रकार के रूप में इस्तेमाल नहीं किया जा सकता है और न ही नई सबसेट परिभाषित करने के लिए:
Variable y: Y. (* Error *)
Variable Z: Ensemble Y. (* Error *)
अब, मैं जानता हूँ कि वहाँ कई तरीके है कि चारों ओर पाने के लिए कर रहे हैं। प्रश्न "Subset parameter" दो प्रदान करता है। दोनों प्रयोगों का उपयोग करें। पहली छड़ें Set
एस। दूसरा अनिवार्य रूप से Ensemble
एस (हालांकि नाम से नहीं) का उपयोग करता है। लेकिन दोनों को कुछ आसान करने के लिए काफी कुछ मशीनरी की आवश्यकता होती है।
प्रश्न: लगातार (और सुंदर ढंग से) हैंडलिंग सेट का अनुशंसित तरीका क्या है?
उदाहरण: यहाँ मैं क्या करना चाहते हैं उसका एक उदाहरण है: एक सेट डीडी मान लें। एक जोड़ी dm = परिभाषित करें (डी, <) जहां डीडीडी और < की एक निश्चित सबसेट है डी पर एक सख्त आंशिक आदेश है।
मुझे यकीन है कि जबरन या अन्य संरचनाओं के साथ पर्याप्त टिंचरिंग के साथ, मैं इसे पूरा कर सकता हूं; लेकिन विशेष रूप से पठनीय तरीके से नहीं; और ढांचे को आगे बढ़ाने के तरीके के बारे में अच्छी अंतर्ज्ञान के बिना। उदाहरण के लिए, निम्न प्रकार-जांच:
Record OrderedSet {DD: Set} : Type := {
D : (Ensemble DD);
order : (relation {d | In _ D d});
is_finite : (Finite _ D);
is_strict_partial : (is_strict_partial_order order)
}.
लेकिन मैं इतना यकीन है कि यह मैं क्या चाहते हो नहीं हूँ, और यह निश्चित रूप से बहुत सुंदर नहीं दिखता है। ध्यान दें कि मैं Set
और Ensemble
के बीच एक मनमाने ढंग से रास्ते में पीछे और आगे जा रहा हूं।
वहां बहुत सारे पुस्तकालय हैं जो Ensemble
एस का उपयोग करते हैं, इसलिए उनके इलाज के लिए एक अच्छा तरीका होना चाहिए, लेकिन उन पुस्तकालयों को बहुत अच्छी तरह से दस्तावेज नहीं लग रहा है (या ... बिल्कुल)।
अद्यतन: मामलों को और जटिल करने के लिए, MSets जैसे कई अन्य सेट कार्यान्वयन भी दिखाई देते हैं। यह Ensemble
के साथ पूरी तरह से अलग और असंगत प्रतीत होता है। यह कुछ कारणों से Prop
के बजाय bool
का भी उपयोग करता है। FSets भी है, लेकिन यह एमएसएएस का पुराना संस्करण प्रतीत होता है।
हाय एडम! मैं आपके सामान्य दृश्य को 'सेट' बनाम 'एन्सेम्बल' पर साझा करता हूं। लेकिन यह मुझे एक अच्छा तरीका नहीं देता है (उदाहरण के लिए) एक नया चर के लिए एक प्रकार के रूप में एक एन्सेबल का उपयोग करें जो तब सबसेट के रूप में व्यवहार करता है। खैर, एक जबरदस्ती के बिना नहीं। शायद उसके चारों ओर कोई रास्ता नहीं है? – mhelvens
आपका * प्रश्न * में सबसेट भाग के लिए आपका मतलब है? खैर, आपका आदेश वैसे भी आंशिक है, तो क्या आपको कुछ भी पूरे ब्रह्मांड _DD_ पर अपना ऑर्डर परिभाषित करने से रोक रहा है? मुझे लगता है कि ऐसा करने का एक और परंपरागत तरीका होगा, जब तक कि कुछ अतिरिक्त बाधाएं न हों जिनका आपने उल्लेख नहीं किया? – akoprowski
ठीक है, मेरे प्रश्न के सभी हिस्सों, वास्तव में। उदाहरण बस यही था: एक उदाहरण। मैं केस-दर-मामले आधार पर इसे समझने के बिना लगातार (उप) सेट और (उप) प्रकारों के बीच स्विच करने का एक तरीका चाहूंगा। --- लेकिन उस आंशिक क्रम के बारे में: यह मैन्युअल रूप से निर्दिष्ट परिमित आंशिक क्रम है (सीमित सेट के साथ जाने के लिए)। अगर मैं इसे डीडी पर ऑर्डर के रूप में टाइप करता हूं तो यह सेट * डी * के बाहर तत्वों को ऑर्डर कर सकता है। मुझे यकीन नहीं है कि क्या भविष्य में किसी सबूत के साथ गड़बड़ होगी ... लेकिन यह विशेष रूप से सुरुचिपूर्ण नहीं है। – mhelvens