बता दें कि एक CCC है । Let C पर एक उत्पाद बाइफंकेटर हो । जैसा कि कैट सीसीसी है, हम ( × ) करी कर सकते हैं :
फ़नकार श्रेणी में सामान्य मोनोइडल संरचना होती है। में एक monoid में एक इकाई है । हम परिमित उत्पादों को पर मोनोइडल संरचना मानते हैं ।
इसलिए मोनोएडल संरचना को संरक्षित करता है, इसलिए यह एक मोनोड को एक मोनोड और एक कोमोनॉइड को कॉमनोड में स्थानांतरित करता है। अर्थात्, यह एक मनमाना monoid transports करने के लिए इकाई (- परिभाषा पर नज़र एक monoid होना चाहिए)। इसी प्रकार यह विकर्ण कोमोनोइड को कोरियर कोमोनैड में स्थानांतरित करता है।
अब, संक्षिप्तता के लिए, मैं लेखक के निर्माण को प्रकट करता हूं।
शुरू। दरअसल , वे बस हास्केल में अलग-अलग नामों से हैं। हम एक है हास्केल monoid :
लेखक, एक functor है, इसलिए यह भी इस तरह के रूप में morphisms, नक्शा चाहिए और मीटर ई मीटर पी टी y । मैं इसे नीचे लिखता हूं, हालांकि यह हास्केल में अमान्य है:
एक प्राकृतिक परिवर्तन है, C ⇒ C में एक आकृतिवाद। तक के गुणों सी यू आर आर वाई ( × ) यह एक समारोह है, जो लेता है एक ∈ हे ख ( सी ) और में एक आकारिता देता है सी :
अनौपचारिक रूप से, प्रकार की रकम घटकों डब्ल्यू और पंप एक अक्षुण्ण। हास्केल में यह बिल्कुल लेखक की परिभाषा है। एक बाधा यह है कि इकाई के लिए है ⟨ डब्ल्यू आर मैं टी ई आर डब्ल्यू , μ , η ⟩ हम जरूरत
अर्थात प्रकार की असंगति। लेकिन ये फंक्शनलर्स आइसोमॉर्फिक हैं: परिमित उत्पादों के लिए हमेशा की तरह Associator जो एक प्राकृतिक समाकृतिकता है द्वारा ≅ λ एक । डब्ल्यू × ( डब्ल्यू × एक ) = डब्ल्यू आर मैं टी ई आर डब्ल्यू ∘ डब्ल्यू आर मैं टी ई आर डब्ल्यू। फिर हम परिभाषित के माध्यम से डब्ल्यू आर मैं टी ई आर एम एक पी पी ई एन डी । मैं का निर्माण छोड़ η के माध्यम से मीटर ई मीटर पी टी y ।
लेखक, एक functor जा रहा है, विनिमेय आरेख, यानी बरकरार रखता है monoid समानताओं को बरकरार रखता है हम दी साबित कर दिया के लिए समानताओं के लिए है, इसलिए में = एक monoid ( सी ⇒ सी ) में = एक इकाई सी । समाप्त।
रीडर और काउटर के बारे में क्या ? रीडर कोरीडर के निकट है, जैसा कि कॉरडर की परिभाषा में बताया गया है, ऊपर लिंक देखें। इसी तरह, काउटर राइटर के निकट है। मुझे कॉयराईटर की परिभाषा नहीं मिली, इसलिए मैंने इसे तालिका में दिखाए गए सादृश्य द्वारा बनाया है:
{- base, Hackage.category-extras -}
import Control.Comonad
import Data.Monoid
data Cowriter w a = Cowriter (w -> a)
instance Functor (Cowriter w) where
fmap f (Cowriter g) = Cowriter (f . g)
instance Monoid w => Copointed (Cowriter w) where
extract (Cowriter g) = g mempty
instance Monoid w => Comonad (Cowriter w) where
duplicate (Cowriter g) = Cowriter
(\w' -> Cowriter (\w -> g (w `mappend` w')))
नीचे उन (सह) भिक्षुओं की सरलीकृत परिभाषाएँ दी गई हैं। fr_ob F वस्तुओं पर एक फ़ंक्टर F की मैपिंग को दर्शाता है, fr_mor F, फ़ॉर्म्फ़र्स पर फ़ंफ़र्ट F की फ़ंडिंग की मैपिंग को दर्शाता है। वहाँ एक monoid वस्तु है में सी ।
- लेखक
- पाठक
- Coreader
- Cowriter
The question is that the adjunction in relates functors, not monads. I do not see how the adjunction implies "Coreader is a comonad" "Reader is a monad" and "Writer is a monad" "Cowriter is a comonad".
Remark. I am struggling to provide more context. It requires some work. Especially, if you require categorical purity and those (co)monads were introduced for programmers. Keep nagging! ;)