प्रकारों के द्वंद्व को कैसे परिभाषित किया जाता है?


12

निःशुल्क के लिए Wadler के पुनरावर्ती प्रकार में! [1], वह दो प्रकार का प्रदर्शन किया, ∀X.(F(X)→X)→X और ∃X.(X→F(X))×X , और दावा किया कि वे दोहरी हैं । विशेष रूप से, वह उस प्रकार बताया ∃X.X→(X→F(X)) है नहींपूर्व का दोहरापन। ऐसा लगता है कि यहाँ प्रश्न में द्वंद्व तर्क में डी मॉर्गन के द्वंद्व से अलग है। मुझे आश्चर्य है कि प्रकारों के द्वंद्व को कैसे परिभाषित किया गया है, विशेष रूप से तीन प्रकारों के लिए उल्लेख किया गया है, दूसरा पहले का दोहरी क्यों है जबकि तीसरा नहीं है। धन्यवाद।

[१] http://homepages.inf.ed.ac.uk/wadler/papers/free-rectypes/free-rectypes.txt


मैं यहाँ बहुत मदद करने वाला नहीं हूँ, लेकिन यह श्रेणी सिद्धांतिक लगता है।
— एंथनी

जवाबों:


8

इस संदर्भ में द्वंद्व एक मामले में कम से कम निश्चित बिंदु और दूसरे में सबसे बड़ा तय बिंदु लेने को संदर्भित करता है । हम क्या अर्थ में समझने की कोशिश करनी चाहिए और जी = ∃ एक्स । ( एक्स → एफ ( एक्स ) ) × एक्स "कम से कम" और "सबसे बड़ी" पुनरावर्ती समीकरण का समाधान कर रहे हैं एफ ( एक्स ) ≅ एक्स ।L=∀X.(F(X)→X)→XG=∃X.(X→F(X))×XF(X)≅X

सबसे पहले, और जी वास्तव में तय अंक हैं (कुछ तकनीकी मान्यताओं जो की प्रकृति को प्रतिबंधित तहत एफ क्योंकि तुलना नक्शे) वी : एफ ( एल ) → एल और डब्ल्यू : जी → एफ ( जी ) द्वारा दिए गए vLGFv:F(L)→Lw:G→F(G) और w ( X , ( f , x ) ) = F ( λ y : X)

vxXg=g(F(λh:L.hXg)x)
समरूपताएँ हैं। ध्यान दें कि हमने इस तथ्य का उपयोग किया है कि एफ एक फ़ंक्टर है, अर्थात, यह मोनोटोन है, जब हमने इसे फ़ंक्शन पर लागू किया था।
w(X,(f,x))=F(λy:X.(X,(f,y)))(fx)
F

मान लीजिए के लिए किसी भी समाधान है एफ ( वाई ) ≅ Y एक मध्यस्थता समाकृतिकता साथ यू : एफ ( वाई ) → वाई । फिर हम विहित नक्शे अल्फा : एल → Y  और  β : Y → जी द्वारा परिभाषित αYF(Y)≅Yयू:एफ(Y)→Y

α:एल→Y तथा β:Y→जी
और β
αच=चYयू
इसलिए, एल हैकम से कमक्योंकि हम इसमें कोई भी अन्य समाधान के लिए मैप कर सकते हैं, और जी हैसबसे बड़ीहै क्योंकि हम यह करने के लिए किसी अन्य समाधान से मैप कर सकते हैं। हम प्रारंभिक बीजगणित और अंतिम कोलजेब्रस के बारे में बात करके इस सब को अधिक सटीक बना सकते हैं, लेकिन मैं चाहता हूं कि मेरा उत्तर छोटा और मीठा हो, और कोड़ी ने किसी भी तरह से बीजगणित को समझाया।
βy=(Y,(u−1,y))।
एलजी

व्यवहार में कम से कम समाधान उत्सुक डेटाटिप्स हैं और सबसे बड़ा समाधान आलसी डेटाटिप्स हैं। उदाहरण के लिए, यदि तो पहले मामले में हम पाते हैं परिमित की सूची एक की और दूसरी परिमित में और के अनंत सूचियों एक के।एफ(एक्स)=1+ए×एक्सएए


मेरा जवाब गायब सबूत है कि और जी निश्चित बिंदु हैं ( एफ के बारे में कुछ मान्यताओं के तहत , जो अस्थिर रह सकते हैं)। मैं तुलना मानचित्र F ( L ) → L और G → F ( G ) कैसे लिखूं ? LGFF(L)→LG→F(G)
— बाउर

ठीक है, Co के साथ नक्शे को और w पाया । vw
— बाउर

ऐसा लगता है एक और उम्मीदवार मौजूद है के लिए , अर्थात् डब्ल्यू ' ( एक्स , ( च , एक्स ) ) = एफ ( λ y : एक्सw । क्या कोई समझा सकता है कि क्या चल रहा है? w′(X,(f,x))=F(λy:X.(X,(f,x)))(fx)
— बाउर

1
मुझे लगता है कि आपने साबित कर दिया है कि w'यह एक समरूपता है, लेकिन क्या यह आपको एक मान्य कोयलाभोज देता है? (मैं अनुमान लगा रहा हूं कि यह होना चाहिए, लेकिन मैं गलत हो सकता है ...) ऐसा नहीं लगेगा कि वर्ग कम्यूट करेगा।
— सीए मैककैन

उनके नोट में: homepages.inf.ed.ac.uk/wadler/papers/free-rectypes/… , वाडलर पहला संस्करण देता है। हालांकि वह इसे थोड़ा अलग तरीके से लिखते हैं: w (X, (f, x)) = F (एक्स एक्स को अनफोल्ड) (fx)। इससे कोलजेब्रा की संरचना अधिक स्पष्ट रूप से दिखाई देती है, और लगभग तुरंत ही उचित corecursion मोर्फिज़्म का कम्यूटेशन देता है। जैसा कि कैमकैन कहते हैं, मुझे लगता है कि आपका दूसरा संस्करण इन वर्गों को कम्यूट नहीं करता है।
— कोड़ी

7

उत्तर को एफ-अल्जेब्रा के लेंस के माध्यम से स्पष्ट रूप से समझा जा सकता है । श्रेणी C में एक पुनरावर्ती प्रकार का श्रेणीबद्ध प्रतिनिधित्व मोटे तौर पर एक फ़ंक्टर F : C → C का उपयोग करके निर्दिष्ट किया जा सकता है । एक तब F -gegebras की श्रेणी में काम करता हैICF:C→CF

  • ऑब्जेक्ट्स के रूप में: C के ऑब्जेक्ट के साथ -साथ एक आकारिकी α : F ( A ) → AAC
    α:F(A)→A
  • तीर के रूप में: वर्गों

    एफ-बीजगणित आकारिकी

अब के लिए के प्रतिनिधित्व वाले पुनरावर्ती प्रकार किया जाना एफ , मैं होने की जरूरत है प्रारंभिक इस श्रेणी में: हम जरूरतIFI

  1. एक आकारवाद in:F(I)→I
  2. प्रत्येक -algebra ( A , α ) के लिए एक रूपवाद f o l d : I → A जो कि उचित वर्ग आवागमन बनाता है।F(A,α)fold:I→A

अब परिभाषित । यह बहुत स्पष्ट है कि f o l d का निर्माण कैसे करें : सिर्फ f लेंI=∀X.(F(X)→X)→Xfold बिल्डिंग i n थोड़ा अधिक मुश्किल है, वाडलर इसे समझाता है, इसलिए मैं इसकी कोशिश नहीं करूंगा। ध्यान दें कि यह इस तथ्य की आवश्यकता है कि एफ एकफ़नकार है

fold=λi:I.i A α:I→A
inF, जिसे सकारात्मकता की आवश्यकता के रूप में देखा जा सकता है।

अब श्रेणी सिद्धांत में, हम अक्सर उस स्थिति पर विचार करना चाहते हैं जिसमें सभी तीर उलट हो जाते हैं। इस मामले में, देखते हुए , हम F -coalgebras की श्रेणी के साथ विचार कर सकते हैंFF

  • वस्तुओं के रूप में: वस्तुओं की सी एक आकारिता के साथ ω : जेड → एफ ( जेड )ZC
    ω:Z→F(Z)
  • तीर के रूप में, के रूप में वर्गों -algebra मामले (लेकिन साथ α और β उलट)।Fαβ

अब हम इस श्रेणी के टर्मिनल ऑब्जेक्ट की जांच करना चाहते हैं । अब आवश्यकताएं उलट गई हैं:T

  1. एक आकारवाद out:T→F(T)
  2. प्रत्येक के लिए -coalgebra जेड , एक आकारिता सी ओ च ओ एल डी : जेड → टी ।FZcofold:Z→T

हम इसे कैसे करते हैं? खैर जैसा कि वाडलर निर्धारित करते हैं, हम लेते हैं । ( एक्स → एफ ( एक्स ) ) × एक्स । पहले के समान तरीके से, हमारे पास c o f o l d = λ z : Z है । (T=∃X.(X→F(X))×X इस निर्माण काम नहीं होता हम बजाय लिया था अगर टी = ∃ एक्स । एक्स → ( एक्स)

cofold=λz:Z.(Z,ω,z):Z→T
।T=∃X.X→(X→F(X))

6

मेरे अनुभव में, एक अच्छा और परिचालन रास्ते के लिए प्रकार का द्वंद्व को समझने के लिए -calculi माध्यम से जा रहा द्वारा है π -calculus।λπ

जब आप प्रक्रिया कैलकुलस में अनुवाद (विघटित) करते हैं, तो द्वैत सरल हो जाता है: इनपुट आउटपुट से दोगुना होता है और इसके विपरीत । द्वैत से अधिक (बहुत) नहीं है।

में -calculus आप एक सीधा (और लगभग सममित) इनपुट और आउटपुट के बीच द्वंद्व है। यदि आप एक प्रकार है कहो α = ( बी ओ ओ एल , मैं एन टी ) ↑ । तब α कहता है कि α टाइप करने वाला चैनल बूलियन मान और पूर्णांक को ले जाने के लिए बिल्कुल एक आउटपुट बनाता है। एक प्रक्रिया में चैनल इस प्रकार के रहने वाले एक्स होगा ¯ एक्स ⟨ च एक एल एस ई , 7 ⟩ । दोहरी प्रकार है, जो हम लिख सकते हैं ¯ απα=(Bool,Int)↑ααxx¯⟨false,7⟩α¯, व्यक्त करेंगे कि एक इनपुट एक जोड़ी होगा ग ( वी , डब्ल्यू ) .0 । (v,w)जहां एक बूलियन है और w एक पूर्णांक है। हम लिखने ¯ α के रूप में ( ख ओ ओ एल , मैं एन टी ) ↓ । एक प्रक्रिया में रहने वाले ¯ α पर एक्सvwα¯(bool,int)↓α¯xc(v,w).0

स्वाभाविक रूप से, प्रक्रियाएं केवल सरल पूर्णांक या बूलियन मानों को नहीं बल्कि चैनलों को भी संप्रेषित करती हैं। उदाहरण के लिए प्रकार एक चैनल है कि दो में से एक मान इनपुट बनाता है का वर्णन करता है ( वी , डब्ल्यू ) जहां वी एक पूर्णांक है और डब्ल्यू एक चैनल है कि वास्तव में बनाने के लिए इस्तेमाल किया जाता है एक आउटपुट (पूर्णांक का)। जाहिर है अपनी दोहरी होना चाहिए ¯ β = ( मैं एन टी , ( मैं एन टी )β=(int,(int)↑)↓(v,w)vw , जो एक ऐसे चैनल का वर्णन करता है जो डेटा के दो टुकड़े, एक पूर्णांक और एक इनपुट का उपयोग करने के लिए उपयोग किए जाने वाले चैनल का वर्णन करता है। का द्वंद्वαऔर ¯ α अर्थ है कि हम कर सकते हैं जुड़कर समानांतर लिखें एक प्रक्रियापीप्रकार है किα पर चैनल नामएक्सएक प्रक्रिया के साथक्यूहै कि प्रकार ¯ α में एक हीएक्स(यह मानते हुए कि अन्य साझा चैनलोंपीऔरक्यूदोहरी भी हैं)। और इसी तरह के लिएβऔर अपनी दोहरी ¯ β ।β¯=(int,(int)↓)↑αα¯PαxQα¯xPQββ¯

यह आसानी से, उच्च क्रम प्रकार के लिए सामान्यीकृत किया जा सकता उदाहरण के लिए एक प्रकार है जो दो वस्तुओं ( v , w ) को इनपुट करता है , जहां v टाइप X का है और w एक चैनल है जिसका उपयोग टाइप X के कुछ आउटपुट के लिए किया जाता है । एक प्रक्रिया में एक चैनल इस प्रकार के होने का एक उदाहरण एक्स है सामान्य फारवर्डर एक्स ( वी डब्ल्यू ) । ¯ w वी∀X.(X,(X)↑)↓(v,w)vXwXx

x(vw).w¯v
थोड़ा सरल करते हुए, यह मूल रूप से प्रकार का एकमात्र निवासी है । ( एक्स , ( एक्स ) ↑ ) ↓ ।∀X.(X,(X)↑)↓

प्रक्रिया स्तर पर सार्वभौमिक परिमाणीकरण का क्या अर्थ है? एक सीधी व्याख्या है: यदि डेटा एक प्रकार-चर द्वारा टाइप किया जाता है, तो इसे केवल एक ऑब्जेक्ट के आउटपुट के रूप में उपयोग नहीं किया जा सकता है। इसलिए हम इस डेटा का निरीक्षण नहीं कर सकते, हम इसे केवल पास कर सकते हैं, या इसे भूल सकते हैं।

∀X.(X,(X)↑)↓∃X.(X,(X)↓)↑

इस के सिद्धांत पर कुछ विस्तार से काम किया गया है [1, 2, 3] और कुछ अन्य, काम तक पहुंचने के लिए कठिन, और ध्रुवीकृत रैखिक तर्क से बहुत ही सटीक रूप से संबंधित हैं और इसकी 4 में द्वैत की धारणा है ।

λλπλπλ

1π

π

π

4 के । होंडा एट अल।, एक टाइप किए गए पी-कैलकुलस और ध्रुवीकृत प्रूफ-नेट के बीच एक सटीक पत्राचार ।

5 आर। मिलनर, प्रक्रियाओं के रूप में कार्य ।


1
पुन: प्रकार (X के निवासियों की संख्या के बारे में आपकी बात। (X, (X) ↑) the। क्या पी-कैलकुलस के लिए "मुक्त प्रमेयों" का एक एनालॉग है? यदि हां, तो इसकी चर्चा कहां की गई है?
— डोमिनिक मुलिगन

1
नमस्कार @DominicMulligan, हाँ "नि: शुल्क प्रमेय" हैं और हमने [1, 2] में इसकी थोड़ी जांच की। मुझे लगता है कि इस दिशा में और भी बहुत कुछ कहा जा सकता है।
— मार्टिन बर्गर

1
@ मर्टिनबर्गर: क्या आप यह पता लगाने के लिए कि क्या सही टाइप किए गए पी-कैलकुलस के लिए प्रक्रिया समतुल्यता की धारणा का उपयोग कर सकते हैं? उदाहरण के लिए, सिस्टम एफ में पैरामीट्रिक तार्किक संबंध प्रासंगिक तुल्यता से मेल खाता है। सादृश्य से, मैं उम्मीद करूंगा कि प्रक्रिया की समानता की जो भी धारणा पाई-कलन के लिए पैरामीट्रिक तार्किक संबंध से मेल खाती है वह विशेष रूप से दिलचस्प है।
— नील कृष्णास्वामी

π

Bisimulation based characterisations व्यावहारिक तर्क के लिए उपयोगी होते हैं, क्योंकि उन्हें सभी संदर्भों के तहत बंद करने की आवश्यकता नहीं होती है।
— मार्टिन बर्गर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.