Кіріспе
Алгебра және математикадағы амалдар
Компьютерлік бағдарламалық жасақтамада монадтардың қолданылуы. Категориялар теориясында, математиканың бір саласы, монад (сондай-ақ үштік, триада, стандартты құрылым және негізгі құрылым) – белгілі бір категорияның эндофункторлар категориясындағы моноид. Эндофунктор – категорияны өзіне бейнелейтін функтор, ал монад – нақты үйлесімділік шарттарын орындау үшін қажетті екі табиғи трансформациямен бірге эндофунктор. Монадтар қосалқы функторлар жұптарының теориясында қолданылады және олар ішінара реттелген жиынтықтардағы жабылу операторларын кез келген категорияларға жалпылайды. Монадтар деректер типтерінің теориясында, императивті бағдарламалау тілдерінің денотациялық семантикасында және функционалдық бағдарламалау тілдерінде де пайдалы, өзгертілмейтін күйі бар тілдерге циклдарды модельдеу сияқты мүмкіндіктерді ұсынады; қараңыз Монад (функционалдық бағдарламалау).
In category theory, a branch of mathematics, a monad (also triple, triad, standard construction and fundamental construction) is a monoid in the category of endofunctors of some fixed category. An endofunctor is a functor mapping a category to itself, and a monad is an endofunctor together with two natural transformations required to fulfill certain coherence conditions. Monads are used in the theory of pairs of adjoint functors, and they generalize closure operators on partially ordered sets to arbitrary categories. Monads are also useful in the theory of datatypes, the denotational semantics of imperative programming languages, and in functional programming languages, allowing languages without mutable state to do things such as simulate for loops; see Monad (functional programming).
Кіріспе және анықтама
Монада – эндофунктордың белгілі бір түрі. Мысалы, егер және – байланысты функторлар жұбы болса, және сол жақ байланысты функтор болса, онда олардың композициясы – монад. Егер және кері функторлар болса, сәйкес монад сәйкестік функтор болып табылады. Жалпы, байланыстар эквиваленттік емес – олар әртүрлі табиғаттағы категорияларды байланыстырады. Монада теориясы байланыстардың нені "сақтайтынын" анықтауға қатысты маңызды. Теорияның екінші жартысы, яғни қарастыру арқылы нені ұқсатып білуге болады, коммонадтардың қос теориясы аясында талқыланады.
Қуат жиынтығы
Күштік жиын монодасы – : категориясындағы монода. Жиын үшін , - жиынның күштік жиынтығы болсын, ал функция үшін , - функцияның күштік жиынтықтары арасындағы, - астындағы тікелей бейнелерді алу арқылы туындаған функциясы болсын. Кез келген жиын үшін, әрбір элементке бір элементті жиынды сәйкес келтіретін карта бар. Функция жиынтар жиынтығын олардың біріктірілісіне жібереді. Бұл деректер моноданы сипаттайды.
takes a set of sets to its union. These data describe a monad.
Ескертпелер
Монаданың аксиомалары формальды түрде моноид аксиомаларына ұқсас. Шындығында, монодалар – моноидтардың ерекше жағдайлары, атап айтқанда, олар эндофункторлар арасындағы моноидтар болып табылады, олар эндофункторлардың композициясы арқылы берілген көбейтумен жабдықталған. Монодалардың композициясы, әдетте, монада болып табылмайды. Мысалы, екі рет қуат жиыны функторында ешқандай монадалық құрылым жоқ.
Комонадтар
Категориялық қос анықтама – комонадтың (немесе котриплдің) формалды анықтамасы болып табылады; мұны бір категория үшін комонад – қарама-қарсы категория үшін монад екендігі тұрғысынан жылдам айтуға болады. Сондықтан ол өзіне-өзі функтор болып табылады, оның құрамында кері бұрылған жебелерге сәйкес келетін бірлікке және комультипликацияға қатысты аксиомалар жиынтығы бар. Моноидтар моноидтарға қатысты болғандай, комонадтар комоноидтарға қатысты. Кез келген жиын бірегей тәсілмен комоноид болып табылады, сондықтан комоноидтар абстрактілі алгебрада моноидтарға қарағанда аз танымал; алайда, векторлық кеңістіктер категориясындағы комоноидтар, олардың әдеттегі тензорлық көбейтіндісімен бірге, маңызды және көміргебралар деген атпен кеңінен зерттеледі.
Терминологиялық тарихы
Монада туралы түсінік 1958 жылы Роджер Годмент тарапынан "стандартты құрылыс" деген атпен ойлап табылды. Монада "қос стандартты құрылыс", "үштік", "моноид" және "триада" деп аталды. "Монад" терминін Жан Бенабу ең соңғы 1967 жылы қолданды.
Жеке тұлға
Категориядағы сәйкестік функторы — монад. Оның көбейтуі және бірлігі — объектілердің сәйкестік функциясы.
Жарым-жартылай тапсырылған жиынтықтарды жабу операторлары
Ішінара реттелген жиынтықтардан туындайтын санаттар үшін (егер және тек қана егерге дейін бір морфизм болса), формализм әлдеқайда жеңілдеді: серіктес жұптар – Галуа байланыстары, ал монадтар – жабу операторлары.
Коденситтік монадтар
Жұмсақ жағдайларда, сол жақ қосымшасы жоқ функторлар да моноданы тудырады, оны коденситтік монода деп атайды. Мысалы, кіріктіру
сол жақ қосымшаға ие емес. Оның коденситтік монодасы – кез келген жиын X-ті X-тегі ультрафильтрлер жиынтығына жіберетін жиындардағы монода. Осы және ұқсас мысалдар келесі еңбекте талқыланады.
Денотациялық семантикада қолданылатын монадтар
Жинақтар санатындағы келесі монодтар императивті бағдарламалау тілдерінің денотациялық семантикасында қолданылады, ал функционалдық бағдарламалауда осыған ұқсас құрылымдар пайдаланылады.
Қоршаған орта монады
Берілген жиынтық болғанда, оқырман немесе орта монадының эндофункторы әрбір жиынтықты функциялар жиынтығына бейнелейді. Осылайша, осы монаданың эндофункторы – дәл гомофунктор. Бірлік компоненті әрбір элементті тұрақты функцияға бейнелейді. Функционалдық бағдарламалау және денотациялық семантикада орта монады тек оқуға болатын деректерге қол жеткізілімі бар есептеулерді модельдейді.
In functional programming and denotational semantics, the environment monad models computations with access to some read only data.
Тізім және жиынтық монадалар
Тізім немесе нондетерминизм монодасы Х жиынын Х элементтерінен құралған шекті тізбелер (яғни тізімдер) жиынына бейімдейді. Бөлшек Х жиынындағы x элементін [x] жеке тізіміне түрлендіреді. Көбейту бірнеше тізімді бір тізімге біріктіреді. Функционалдық бағдарламалауда тізім монодасы нондетерминистік есептеулерді модельдеу үшін пайдаланылады. Ковариантты қуат жиыны монодасы жиын монодасы деп те аталады, және ол да нондетерминистік есептеулерді модельдеу үшін қолданылады.
Еркін топ монодасының алгебрасы
Мысалы, жоғарыда талқыланған еркін топ монады үшін алгебра – ассоциативтілік және бірлік шарттарына қанағаттандыратын, жиынтық пен одан еркін топ құрылған картадан тұрады. Мұндай құрылымның болуы, осы жиынтықтың өзі топ екенін білдіреді.
Тарату монодасының алгебрасы
Тағы бір мысал – жиындар санатындағы таралу монодасы. Ол жиынды шекті қолдауға ие функциялар жиынына жіберу арқылы анықталады, және олардың қосындысы бірге тең болады. Жинақ құраушы нотацияда бұл жиын – ... Анықтамаларды қарастыру арқылы, таралу монодасы бойынша алгебралар дөңес жиындарға тең екендігі көрсетіледі, яғни Эвклид кеңістігіндегі дөңес сызықтық комбинациялардың мінез-құлқына ұқсас аксиомаларға бағынышты операциялармен жабдықталған жиындарға.
Симметриялық монадтағы алгебралар
Монаданың тағы бір пайдалы мысалы – коммутативті сақина үшін модульдер санатындағы симметриялық алгебра функторы, ол модульді симметриялық тензорлық дәрежелердің тікелей қосындысына жібереді, мысалы, оң жақтағы алгебра модуль ретінде қарастырылады. Онда, осы монодадағы алгебралар коммутативті алгебралар болады. Сондай-ақ, ауыспалы тензорлар және толық тензорлық функторлар үшін де монодалардағы алгебралар бар, олар антисимметриялық алгебралар мен еркін алгебралар береді, сондықтан бірінші сақина – генераторлар бойынша еркін антисимметриялық алгебра, ал екінші сақина – генераторлар бойынша еркін алгебра.
E-түкілік сақиналық спектрлердегі коммутативтік алгебралар
Коммутативтік алгебралар үшін де аналогты құрылым бар, 113-бетте көрсетілгендей, ол коммутативтік алгебрадан коммутативтік алгебраны шығарады. Егер модульдер санаты болса, онда функторы -бұл монад, ол еселік көбейту арқылы беріледі. Осы монадтың алгебралары санатынан коммутативтік алгебралардың байланысты санаты туындайды.
Монадалар мен қосымшалар
Жоғарыда айтылғандай, кез келген қосымша моноданы тудырады. Керісінше, әрбір монад қандай да бір қосымшадан туындайды, атап айтқанда, еркін-ұмыту қосымшасынан,
онда сол жақ қосымшасы X объектісін T(X) еркін T-алгебрасына жібереді. Дегенмен, монадты тудыратын әдетте бірнеше түрлі қосымшалар болады: объектілері қосымшалар болатын және жебелері қосымшаларының морфизмдері, олар бойынша сәйкестік болатын категория. Онда жоғарыдағы Айленберг-Мур категориясын қамтитын еркін-ұмыту қосымшасы категориясындағы соңғы объекті болып табылады. Ал бастапқы объекті – Клейсли категориясы, ол анықтамасы бойынша тек T еркін алгебраларынан тұратын толық ішкі категория, яғни С категориясының кез келген x объектісі үшін түріндегі T-алгебралары.
Бектің монодикалық теоремасы
Бектің монодикалық теоремасы қосымшаның монодикалық болуы үшін қажетті және жеткілікті шартты береді. Бұл теореманың оңайлатылған нұсқасында, егер G консервативті болса (немесе G изоморфизмдерді көрсетеді, яғни D-дегі морфизм, G бойынша оның бейнесі C-дегі изоморфизм болса және тек сонда ғана) және C-де, сондай-ақ G-де коэквализаторлар сақталса, онда G монодикалық болады. Мысалы, компактты Хаусдорф кеңістіктерінің жиындықтарға дейінгі санатындағы ұмыту функторы монодикалық болып табылады. Дегенмен, барлық топологиялық кеңістіктерден жиындықтарға дейінгі ұмыту функторы консервативті емес, себебі үнемі біржақты сәйкестіктер (компакт емес немесе Хаусдорф емес кеңістіктер арасында) гомеоморфизмдер бола алмайды. Осылайша, бұл ұмыту функторы монодикалық емес. Бек теоремасының комонадтық қосымшаларды сипаттайтын қос нұсқасы, топос теориясы және алгебралық геометриядағы түсіруге қатысты тақырыптар сияқты әртүрлі салаларда маңызды. Комонадтық қосымшаның бірінші мысалы – коммутативті сақиналар арасындағы сақиналық гомоморфизмге қатысты қосымша. Бұл қосымша, Бек теоремасы бойынша, егер және тек қана B, A модулі ретінде адал жазық болса, комонадтық болады. Осылайша, ол B модульдерін, түсіру деректерімен жабдықталған (яғни, қосымшамен берілген комонадтың әрекеті) A модульдеріне түсіруге мүмкіндік береді. Нәтижесінде пайда болған адал жазық түсіру теориясы алгебралық геометрияда кеңінен қолданылады.
for a ring homomorphism between commutative rings. This adjunction is comonadic, by Beck's theorem, if and only if B is faithfully flat as an A module. It thus allows to descend B modules, equipped with a descent datum (i. e., an action of the comonad given by the adjunction) to A modules. The resulting theory of faithfully flat descent is widely applied in algebraic geometry.
Қолданылуы
Монадалар функционалдық бағдарламалауда тізбекті есептеу түрлерін (кейде жанама әсерлермен) бейнелеу үшін қолданылады. Функционалдық бағдарламалаудағы монадтар және математикалық тұрғыдан қарастырылған Wikibook модулі b: Хаскелл/Категория теориясын қараңыз. Монадалар таза емес функционалдық және императивті бағдарламалау тілдерінің денотациялық семантикасында пайдаланылады. Категориялық логикада монад-комонад теориясы мен модальдық логика арасында жабылу операторлары, ішкі алгебралар және олардың S4 модельдерімен, сондай-ақ интуиционистік логикамен байланысы арқылы аналогия жасалған.
Жалпылау
Монадаларды 2-санатта анықтауға болады. Жоғарыда сипатталған монадалар – бұл монадалар үшін.