Знакомый Арнольда и Лаврентьева
Dec. 28th, 2018 07:18 pmрешил для себя, что я не знаю, что такое производный функтор -- https://posic.livejournal.com/1871330.html
Что сказать мне об этом? Только одно -- туда им, "знакомым Арнольда и Лаврентьева", и дорога.
Что сказать мне об этом? Только одно -- туда им, "знакомым Арнольда и Лаврентьева", и дорога.
no subject
Date: 2018-12-28 06:17 pm (UTC)no subject
Date: 2018-12-28 07:01 pm (UTC)>4 627 комментариев написано
Не сказать, что новый. И не сказать, что странный -- такие "знакомые Арнольда" в большом количестве обитают на всевозможных околоматематических форумах.
no subject
Date: 2018-12-28 07:19 pm (UTC)А вотъ я для себя сразу рѣшилъ, что эти функторы слишкомъ абстрактны для приложенiя въ программированiи. Но можетъ, я и ошибаюсь. Однако была такая фраза у тебя въ другомъ мѣстѣ - "разсмотримъ всѣ естественныя преобразованiя между тождественными функторами". Я прикинулъ, что тождественный функторъ можетъ быть только одинъ, и естественное преобразованiе между ними только одно - тождественное. Это неправильно?
no subject
Date: 2018-12-28 07:29 pm (UTC)no subject
Date: 2018-12-28 07:51 pm (UTC)Чтобы привести простейший пример: для категории (конечномерных или произвольных) векторных пространств над полем k, каждый элемент поля k задает естественное преобразование из тождественного функтора в себя. (И все такие естественные преобразования имеют такое происхождение.)
Что касается нескольких тождественных функторов, то тут возникает желание найти тот постинг, чтобы посмотреть, о чем шла речь и нет ли тут путаницы. Но так вообще у каждой категории есть единственный тождественный функтор. Если там было несколько категорий, то у каждой из них свой тождественный функтор -- но и тогда не имеет смысла говорить о естественных преобразованиях между разными тождественными функторами (т.е., тождественными функторами разных категорий). Только о естественных преобразованиях из тождественного функтора одной какой-то категории в себя.
Скажем, мог ли это быть не тождественный функтор, а какой-то другой эпитет? Например, забывающий функтор?
no subject
Date: 2018-12-28 09:35 pm (UTC)Хорошо, примѣры естественныхъ преобразованiй даны, буду думать, почему въ программированiи этого не видно.
Каждому языку программированiя соотвѣтствуетъ категорiя, объекты которой являются типами данныхъ (Integer, Boolean, Array of Integer, ...), а морфизмами A -> B являются функцiи одного аргумента, гдѣ типъ аргумента A, а типъ возвращаемаго значенiя B. Эндофункторами въ такой категорiи являются такiе штуки, какъ "Array", которые отображаютъ каждый типъ данныхъ, A, въ другой типъ данныхъ, Array[A] (скажемъ, массивъ фиксированной длины изъ элементовъ типа A). Морфизмъ f: A -> B при этомъ отображаются на морфизмъ Array[A] -> Array[B], примѣняющiй функцiю f къ каждому элементу массива и возвращающiй новый массивъ элементовъ типа B.
Естественными преобразованiями изъ тождественнаго функтора въ тождественный функтор въ такой категорiи являются функцiи t: A -> A, которыя опредѣлены сразу для любого типа A однимъ и тѣмъ же программнымъ кодомъ. Такая функцiя беретъ аргументъ типа А и должна возвратить значенiе тоже типа А, но про типъ А ничего неизвѣстно, и кодъ функцiи долженъ работать для всѣхъ типовъ А одинаковымъ образомъ (иначе нарушается условiе естественности). Такая функцiя можетъ только возвратить то же самое значенiе, которое было дано въ качествѣ аргумента - т.е. кодъ этой функцiи долженъ быть такимъ
f(x) = x
Напримѣръ, если мы напишемъ кодъ такой функцiи съ провѣркой, является ли типъ A = Integer, и въ такомъ случаѣ возвращаемъ удвоенное значенiе аргумента, а во всѣхъ другихъ случаяхъ возвращаемъ x,
f(x) = if typeOf(x) = Integer then 2*x else x
то такая функцiя нарушаетъ условiе естественности.
Въ такой категорiи я пока не вижу, какъ можетъ быть нетривiальный центръ. Есть какое-нибудь простое свойство категорiи, которое гарантируетъ тривiальный центръ?
Для категорiи языка программированiя, примѣръ векторныхъ пространствъ не работаетъ, потому что для произвольныхъ типовъ данныхъ въ языкѣ программированiя нѣтъ операцiи умноженiя на число.
no subject
Date: 2018-12-28 10:06 pm (UTC)У категории, которую ты описываешь, центр -- это множество всех функций h в твоем языке программирования, определенных одновременно на всех типах данных и сопоставляющих каждому элементу любого типа A другой элемент того же типа A, таким образом, что функции h образуют коммутативные квадраты со всеми функциями f: A -> B, которые можно запрограммировать на твоем языке программирования. Я согласен с тобой -- я не могу представить себе язык программирования, у которого такой центр был бы нетривиален.
Разве что... если функция h выдает ошибку (или зацикливается) при любых входных данных? Но это бесполезно даже если вдруг верно.
Другое дело, что я не вижу связи между эндоморфизмами тождественного эндофунктора (= центром категории) и производными функторами. Третье дело, что приложения производных функторов к программированию тоже кажутся маловероятными.
no subject
Date: 2018-12-28 10:51 pm (UTC)Я хочу, впрочемъ, придумать и для программированiя примѣры съ нетривiальнымъ центромъ, наподобiе примѣра съ векторными пространствами. Тамъ, какъ я понимаю, главная идея въ томъ, что каждый объектъ имѣетъ нетривiальный морфизмъ въ себя (умноженiе на число). Возьмемъ для программированiя подкатегорiю всѣхъ типовъ данныхъ, являющихся массивами длины не меньше 2, т.е. будемъ разсматривать только программы, обрабатывающiя такiе массивы. Всѣ объекты теперь имѣютъ видъ Array[A], гдѣ А нѣкiй типъ данныхъ (который уже необязательно долженъ быть вида Array[B], но можетъ быть и такимъ). Всѣ морфизмы имѣютъ видъ функцiй Array[A] -> Array[B]. Тогда у каждаго объекта Array[A] есть нетривiальный морфизмъ Array[A] -> Array[A], переставляющiй мѣстами два первыхъ элемента массива (но не мѣняющiй значенiй этихъ элементовъ). Этотъ морфизмъ является естественнымъ преобразованiемъ тождественнаго функтора, и это естественное преобразованiе не тождественно. Всѣ такiя естественныя преобразованiя образуютъ моноидъ, какъ написалъ
no subject
Date: 2018-12-28 11:15 pm (UTC)Скажем, если взять массив длины 3, то у него есть эндоморфизм (функция f), переставляющая второй и третий элементы массива, и она не коммутирует с твоим морфизмом h, переставляющим первый и второй элементы. Для массива из двух целых чисел, можно взять функцию f, обнуляющую первый элемент массива и не меняющую второй элемент, и она опять же не коммутирует с морфизмом, переставляющим первый и второй элементы масссива.
no subject
Date: 2018-12-28 11:55 pm (UTC)То, что я написалъ какъ условiе естественности (функцiя f: A -> A не должна заглядывать въ типъ A) является необходимымъ, но не достаточнымъ.
no subject
Date: 2018-12-29 12:24 am (UTC)https://posic.livejournal.com/995400.html
Пусть F -- точная категория, и пусть σ, τ: IdF → IdF -- два естественных преобразования, бьющих из тождественного эндофунктора на категории F в него самого. Другими словами, для всех объектов X ∈ F заданы эндоморфизмы σX, τX: X → X, образующие коммутативные диаграммы со всеми морфизмами X → Y в категории F.
no subject
Date: 2018-12-29 12:49 am (UTC)Другое дело, что если углубиться в мои постинги этой серии (сентября 2013 года), то там наверняка можно найти ситуацию, когда на категории задан функтор "подкрутки". Или даже пара коммутирующих функторов подкрутки.
Здесь "функтор подкрутки" -- это просто некоторая выбранная и зафиксированная автоэквивалентность категории. Типичный пример -- категория градуированных векторных пространств. Функтор подкрутки сдвигает градуировку на единицу (в какую-то там сторону).
В такой ситуации там обсуждается "градуированный центр (градуированной) категории", состоящий из всех морфизмов между функторами подкрутки, возведенными в разные степени и перемноженными. (Вернее сказать, не всех таких морфизмов, а тех, которые коммутируют с функторами подкрутки, в определенном смысле.)
Но это тогда естественные преобразования не "между тождественными функторами" все же, а между функторами подкрутки. Или из тождественного функтора в функторы подкрутки.
no subject
Date: 2018-12-28 08:13 pm (UTC)