औपचारिक नियमों के लिए इस अंश-समान "असतत गणित" -स्टाइल अंकन का उपयोग क्या है?


18

"ए कंफ्लिक्ट-फ्री रेप्लिकेटेड जेन्स डेटाटाइप" पेपर में , मुझे औपचारिक रूप से "नियमों" को परिभाषित करने के लिए इस नोटेशन का सामना करना पड़ा:

कागज में दिखाए गए कुछ "नियम"] [१

इस संकेतन को क्या कहा जाता है? मैं इसे कैसे पढ़ूं?

उदाहरण के लिए:

  • DOCशासन अपने "अंश" में लेना देना नहीं है - क्यों नहीं?
  • EXECऔर GETनियम, रेखा से ऊपर दो अलग-अलग मामले की और होता है क्या मतलब है?
  • VARनियम के रूप में अच्छी तरह से थोड़ा बाहर खड़ा है, के बाद से, जबकि कई अन्य नियमों तीर के कुछ प्रकार का उपयोग करें (जो मेरा मतलब करने के लिए ले जाएगा "का अर्थ है") शीर्ष इस एक ही कह जा सकता है कि एक्स कुछ का एक तत्व है लगता है ऊपर।
  • लगभग सब कुछ एक प्रारंभिक के साथ मिला हुआ है, Ap,जो कि पाठ को "प्रतिकृति की स्थिति एपी के रूप में वर्णित है, एक परिमित आंशिक कार्य" के रूप में वर्णित है - इस अंकन के एक प्रेमी पाठक को हर नियम के उस भाग को "देखना" कैसे होगा?

इस साइट ने एक संबंधित प्रश्न का सुझाव दिया, जिसमें कुछ बहुत ही समान दिखने वाली संकेतन है, इस सवाल पर कि ⟩B, s⟨ -> ⟨B 'का क्या महत्व है, s'⟩ छोटे कदम के बारे में इस प्रश्न में प्रारंभिक नियम के रूप में अर्थ विज्ञान? - इसे ऑपरेशनल शब्दार्थ के रूप में टैग किया गया है , और यह एक मजबूत लीड प्रतीत होता है। क्या वास्तव में यह ढांचा है जिसके तहत मुझे इन आंकड़ों की व्याख्या करनी चाहिए? क्या आप इसे आसानी से "क्रैश कोर्स" रूप में सारांशित कर सकते हैं, ताकि अगर मैं उनके प्रमाणों की शुद्धता का सत्यापन नहीं कर पाऊं, तो भी मैं कम से कम इस खंड में जो कुछ भी कह रहा हूं, उसकी थोड़ी और समझ हासिल कर सकूं?

जवाबों:


25

यह एक अनुमान नियम के लिए एक मानक संकेतन है । परिसर को एक क्षैतिज रेखा से ऊपर रखा जाता है, और निष्कर्ष रेखा के नीचे रखा जाता है। इस प्रकार, यह "अंश" की तरह लग रहा है, लेकिन रेखा के ऊपर एक या अधिक तार्किक प्रस्ताव और रेखा के नीचे एक प्रस्ताव है। यदि आपको इसके बगल में एक लेबल (उदाहरण के लिए, "LET" या "VAR") दिखाई देता है, तो यह विशेष नियम की पहचान करने के लिए केवल एक मानव-पठनीय नाम है।

आप इसे प्राकृतिक कटौती या Gentzen-style प्राकृतिक कटौती के रूप में भी देख सकते हैं ।

यह प्रोग्रामिंग भाषाओं के साहित्य में एक सामान्य अंकन है। आप इसे सभी जगह देखेंगे। यह उस क्षेत्र में आने वाले निष्कर्षों और पुनरावर्ती-संरचित प्रमाणों के प्रकारों के लिए बहुत सुविधाजनक है।

आप इस अंकन का उपयोग स्वयंसिद्ध / नियम व्यक्त करने के लिए देखेंगे। आप प्रत्येक स्वयंसिद्ध को "मेटा-चर" (जैसे, expr ) के साथ एक टेम्पलेट के रूप में सोच सकते हैं ; आप प्रत्येक मेटा-चर को प्रोग्रामिंग भाषा से कुछ सिंटैक्स से बदल सकते हैं (उदाहरण के लिए, प्रोग्रामिंग भाषा में मान्य कोई भी अभिव्यक्ति), और आपको नियम का एक उदाहरण मिलेगा। इनफेक्शन रूल यह वादा करता है कि यदि सभी प्रस्ताव लाइन के ऊपर हैं, तो यह सच है (टेम्पलेट के कुछ उदाहरण के लिए, जहाँ आप लगातार प्रत्येक मेटाबेलेबल को पूरे नियम में एक ही मान के साथ बदलते हैं), फिर लाइन के नीचे का प्रस्ताव सही होगा, ।


2
एक उल्लेखनीय उपयोग हिंडले-मिलनर प्रकार के अनुमान को निर्दिष्ट कर रहा है: यह उत्तर "मिलनर-हिंडले के किस हिस्से को आप नहीं समझते?" के माध्यम से चलता है कि कैसे पढ़ें और नियमों के उस सेट का उपयोग करें।
डायलनस्प्स

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

7

यहाँ एक बहुत ही अनौपचारिक व्याख्या है जो दरवाजे में पैर पाने के लिए औपचारिक सूचनाओं से अपरिचित लोगों की मदद कर सकती है। यह एक औपचारिक परिभाषा को प्रतिस्थापित नहीं करता है!

Ap आपके सिस्टम या अपने चल रहे कार्यक्रम की स्थिति है। "राज्य" का अर्थ बहुत सारी चीजें हो सकता है लेकिन इस मामले में यह सभी परिभाषित स्थानीय चर और उनके मूल्यों की एक सूची को शामिल करता प्रतीत होता है। एपी एक फ़ंक्शन क्यों है ? क्योंकि यह चर कार्य को व्यक्त करने का एक सुविधाजनक तरीका है: Ap (x) चर x का मान देता है ।

अब, एक उदाहरण के रूप में नियम EXEC को लेते हैं। यह एक कमांड को क्रियान्वित करने के शब्दों को परिभाषित करता है cmd1 एक आदेश के बाद CMD2 , यानी, क्या राज्य के साथ होता है Ap जब क्रियान्वित प्रणाली के cmd1 के बाद CMD2

  • रेखा के ऊपर: ये परिसर हैं। वे क्या कहते हैं: " cmd1 को एक कमांड होने दो । यदि आप कमांड cmd1 को निष्पादित करते हैं, जब आपका सिस्टम राज्य एपी में है , तो आपका सिस्टम एप ' एक नए राज्य में समाप्त हो जाएगा ।"
  • पंक्ति के नीचे: यहाँ नियम बताता है कि दो कमांड cmd1 और cmd2 क्रमिक रूप से निष्पादित करने का क्या अर्थ है । यह क्या कहता है: "अपने सिस्टम को राज्य एपी में मानते हैं , cmd1 निष्पादित करना और फिर cmd2 का अर्थ है cmd2 निष्पादित करना जब आपका सिस्टम एपी एपी में है " (याद रखें कि एप ' वह स्थिति है जिसे आप cmd1 को निष्पादित करने के बाद प्राप्त करते हैं , जैसा कि परिभाषित किया गया है। परिसर)।

अन्य नियम व्यक्तिगत आज्ञाओं और अभिव्यक्तियों के शब्दार्थों का वर्णन करते हैं। उदाहरण के लिए, VAR नियम बताता है कि एक चर को "निष्पादित" करने का क्या मतलब है: यदि x एक स्थानीय चर है (रेखा के ऊपर), तो चर x का मूल्यांकन / निष्पादित करने का क्या मतलब है ? यह रेखा से नीचे लिखा है: जब अपने कार्यक्रम में राज्य है Ap , मूल्यांकन एक्स आप के मूल्य देता है एक्स , यानी Ap (एक्स)

मुझे आशा है कि वह मदद करेंगे।


धन्यवाद, यह समझने में बहुत मदद करता है और वास्तव में मैं क्या देख रहा था! हालाँकि यह मेरे पहले प्रश्न को अनुत्तरित छोड़ देता है: क्या इस संकेतन का एक नाम है, आम तौर पर और / या इस विशेष संदर्भ में? मेरा अनुमान था "ऑपरेशनल शब्दार्थ", लेकिन यहाँ अभी तक का दूसरा उत्तर कहता है कि वे "सादे नियम" हैं। मुझे लगता है कि अगर मैं एक दो भाग का प्रश्न पूछूं तो मैं जवाबों को विभाजित करने के लायक हूं, लेकिन अब मैं बीच में आ गया हूं जिसे स्वीकार करना है :-)
natevw

1
@natevw वे प्रवेश नियम हैं। परिचालन शब्दार्थ कई चीजों में से एक है जो आमतौर पर अनुमान नियमों के साथ व्यक्त किए जाते हैं।
गिल्स एसओ- बुराई को रोकना '
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.