Sunday 15 January 2012

Equality in alloy -


मुझे एक मिश्र धातु मॉडल मिला है जिसमें निम्न है:

  सार sig person { } एक सिग जॉन, स्टीव व्यक्ति का विस्तार (लिंग: आदमी) sig आदमी {} तथ्य {सभी नाम: व्यक्ति, लिंग: आदमी | Name.Gender = name.Gender = & gt; व्यक्ति = व्यक्ति}   

मैं दो हस्ताक्षरों के बीच समानता कैसे बना सकता हूं?

यह आपके प्रश्न से स्पष्ट नहीं है कि आप क्या करना चाहते हैं, और अपने नमूना मिश्र धातु कोड से ऐसा लगता है जैसे आप कुछ भ्रम से पीड़ित हो सकते हैं।

सबसे पहले, जो मॉडल आप दिखाते हैं वह दो अलग-अलग तरीकों से नाम लिंग का उपयोग करता है, जो अपने आप में गैरकानूनी नहीं है लेकिन लगता है कि यह कुछ भ्रम है। (यह निश्चित रूप से इस रीडर से विलियियों को भ्रमित करता है।)

जॉन और स्टीव के दो सिंगलटन हस्ताक्षर के लिए घोषणा में, लिंग दो द्विआधारी संबंधों को दर्शाता है, एक हस्ताक्षर जॉन और हस्ताक्षर आदमी के बीच एक धारण, अन्य स्टीव और आदमी के बीच होल्डिंग प्रतीकात्मक रूप में एक ही बात कहने के लिए, लिंग का अर्थ है (ए) जॉन के कुछ उपसम्भ - & gt; आदमी, और (बी) स्टीव के कुछ उपसै - & gt; आदमी।

गुमनाम तथ्य में, हालांकि, लिंग प्रकार के आदमी के एक चर को दर्शाता है।

आपका मॉडल समझना आसान होगा यदि आपको एक या दूसरे के नाम बदलने का तरीका मिल जाए। चूंकि परिमाणित अभिव्यक्ति में चर नामों का मनमाना है, आपके तथ्य का मतलब उसी बात का होगा यदि आप इसे

  तथ्य {सभी पी: व्यक्ति, एम: आदमी के रूप में बदलते हैं)। पी.एम. = पी.एम = & gt; व्यक्ति = व्यक्ति}   

यदि वह नहीं है जो आप कहने का मतलब है, तो हो सकता है कि आप

  तथ्य {सभी पी: व्यक्ति, एम: आदमी | पी। जेण्डर = पी। जेण्डर = & gt; व्यक्ति = व्यक्ति}   

आप एक अर्थ या दूसरे को चुनने के लिए चर शक्तियों का नाम बदलाना यह एक अच्छी चीज है। (यह एक दुर्भाग्यपूर्ण तथ्य है कि एलोॉय में कोई भी निर्माण वास्तव में संतोषजनक नहीं है। परन्तु एक समय में एक समस्या से निपटना, लिंग के दोहरे उपयोग से छुटकारा पाने का पहला कदम है।)

दूसरा मुद्दा यह है कि जो भी तथ्य आप का मतलब है, वह लगभग निश्चित रूप से इसका मतलब यह नहीं है कि आप इसका मतलब क्या करना चाहते हैं। एक पल के लिए मॉडल की विशेषताओं को अनदेखा करते हुए, आपका तथ्य प्रपत्र लेता है

  तथ्य {सभी V1: sig1, v2: sig2 | अभिव्यक्ति = अभिव्यक्ति = & gt; Sig1 = sig1}   

जहां अभिव्यक्ति या तो V1.V2 या V1 है। मॉडल में परिभाषित कुछ संबंध के लिए, रीलेशन। यहां कई चीजें गलत हैं:

  • V1.V2 अर्थहीन है, जहां V1 और V2 दोनों हस्ताक्षरों के नाम हैं या दिए गए हस्ताक्षर से लेकर वेरिएबल्स हैं: डॉट ऑपरेटर केवल तभी उपयोगी होता है, इसका तर्क एक संबंध का नाम है।

  • यदि कोई अभिव्यक्ति ई बिल्कुल भी सार्थक है, तो ई = ई के फार्म का बूलियन अभिव्यक्ति (उदाहरण के लिए, व्यक्ति। लिंग = व्यक्ति। लिंग) क्या ई का मतलब है, भले ही ई का मतलब है। ई द्वारा निर्दिष्ट कुछ भी स्वाभाविक रूप से खुद के बराबर होने जा रहा है। इसलिए सशर्त रूप में भी लिखा जा सकता है

      1 = 1 = & gt; इसी कारण से, व्यक्ति = व्यक्ति हमेशा सही होगा, मॉडल की परवाह किए बिना: किसी भी उदाहरण के लिए उदाहरणों में व्यक्तियों का समूह। उदाहरण में व्यक्तियों के समूह के समान होगा इसलिए सशर्त हमेशा सच होगा, और वास्तव में मॉडल के उदाहरणों पर कोई बाधा नहीं लगाएगी।    

    यह स्पष्ट नहीं है कि आगे बढ़ने में आपकी मदद कैसे सबसे अच्छा है। शायद एक तरह से शुरू करने के लिए खुद से पूछना होगा कि आप अपने मॉडल में कैप्चर करने वाले निम्नलिखित कथनों में से हैं।

    • वहां व्यक्तियों का एक समूह है
    • कुछ व्यक्ति पुरुष हैं (लिंग = 'पुरुष')। अन्य पुरुष नहीं हैं
    • जॉन एक पुरुष है
    • स्टीव एक पुरुष है।
    • जॉन और स्टीव अलग व्यक्ति हैं।
    • यदि एक्स और वाई समान लिंग वाले व्यक्ति हैं, तो एक्स और वाई हैं वही व्यक्ति अर्थात। दो व्यक्तियों के समान लिंग नहीं हैं।

      ध्यान रखें कि ये बयान एक ही समय में सभी सत्य नहीं हो सकते हैं।

      शुभकामनाएं।

No comments:

Post a Comment