Есть ли в теории категорий название для стрелок типа a -> a (в нотации Haskell)?

Как называются стрелки в теории категорий, имеющие такой тип:

a -> a

"От типа(?) к другому объекту того же типа"

Или, может быть, у них нет определенного названия?

Другими словами: существует ли имя для множества всех стрелок, ведущих от любого типа а к тому же типу а? Примеры стрелок (функций?) этого набора:

\x->x+x   :: Int->Int
\x-> "hello, " ++ x :: String -> String
...

Изменить

@leftaroundabout говорит, что я использую объектно-ориентированное определение объекта для теории категорий, что неверно. Поэтому на самом деле я спрашиваю: «В теории категорий в категории ???? как называется морфизм от некоторого объекта O из ???? к самому O?»


person Lay González    schedule 06.03.2014    source источник
comment
Мое предположение - личность.   -  person mvw    schedule 07.03.2014
comment
эндоморфизм?   -  person gspr    schedule 07.03.2014
comment
@mvw: Думаю, вопрос не совсем точен, но я интерпретирую его как включение, например, карты x ↦ 2x от вещественных чисел к действительным (скажем, в категории множеств и карт множеств)… Можете ли вы уточнить , Лэй Гонсалес?   -  person gspr    schedule 07.03.2014
comment
@gspr: Да, пример от реалов к реалам.   -  person Lay González    schedule 07.03.2014
comment
@LayGonzález: Я хотел спросить: является ли карта x ↦ 2x (например, от реалов к реалам, но это не суть моего вопроса) примером того, что вы имеете в виду? Если нет, то эндоморфизм не является правильным ответом.   -  person gspr    schedule 07.03.2014
comment
@gspr Вы хотите сказать, что я спрашиваю (другими словами): как называется набор стрелок, которые идут от типа к тому же типу? Если да, то вы правы. map x-›2x будет подмножеством этого набора, верно? И все стрелки, которые отображают реалы в реалы, будут большим подмножеством, верно?   -  person Lay González    schedule 07.03.2014
comment
Я полагаю, что наиболее важным будет то, имеете ли вы в виду ∀ a . a -> a (именно это означает эта подпись в Haskell) или просто T -> T для некоторого конкретного типа T.   -  person leftaroundabout    schedule 07.03.2014
comment
@leftaroundabout: Разве это не отличало бы эндоморфизмы некоторого объекта X в категории C от всех эндоморфизмов в категории C? Комментарий mvw об идентичностях заставил меня подумать, что я неправильно истолковываю вопрос Лэя более глубоко, чем это различие. Я читаю вопрос: что мы называем морфизмами объекта в себя в теории категорий?   -  person gspr    schedule 07.03.2014
comment
@gspr Стрелка объекта к самому себе является идентификатором для каждого типа. \x-›(x+x) - это тип функций, которые я ищу, дайте мне целое число, и я верну (возможно, другое) целое число   -  person Lay González    schedule 07.03.2014
comment
@gspr: ну, я полагаю, полиморфная подпись, такая как ∀ a . a -> a, даже не имеет смысла в общей категории. В малой категории ???? эта сигнатура означает функции от объектов ???? к эндоморфизмам этих объектов. В Hask это, конечно, не то же самое, что набор всех эндоморфизмов, поскольку id действительно единственная такая полиморфная функция, которую вы можете определить (без ⟂).   -  person leftaroundabout    schedule 07.03.2014
comment
@leftaroundabout: Согласен… но я до сих пор точно не знаю, чего хочет ОП :-)   -  person gspr    schedule 07.03.2014
comment
@leftaroundabout: я перефразировал вопрос и добавил несколько примеров.   -  person Lay González    schedule 07.03.2014
comment
Обратите внимание, что вы, похоже, путаете объектно-ориентированные объекты с объектами теории категорий. К другому объекту того же типа не имеет смысла, так как объекты Hask являются типами. Правильная формулировка вашего вопроса будет просто: В теории категорий в категории ???? как называется морфизм от некоторого объекта O из ???? к самому O? Как сказал gspr, это эндоморфизмы.   -  person leftaroundabout    schedule 07.03.2014
comment
@leftaronudabout снова перефразировал. Спасибо.   -  person Lay González    schedule 07.03.2014


Ответы (2)


Если я правильно интерпретирую ваш вопрос как "что мы называем морфизмами от объекта к самому себе в теории категорий?", то слово, которое вы ищете, это эндоморфизм.

person gspr    schedule 06.03.2014
comment
разве это не были бы только стрелки идентичности? - person Lay González; 07.03.2014
comment
Нет. Отображение x ↦ 2x (например, как отображение целых чисел в целые числа) является эндоморфизмом (целых чисел) в (например) категории множеств. - person gspr; 07.03.2014
comment
@LayGonzález Помимо id могут существовать и другие нетривиальные автоморфизмы. Кроме того, эндо — довольно общий префикс, вы часто читали об эндофункторах, и я даже слышал об эндо-естественных преобразованиях. - person phipsgabler; 07.03.2014

Слово, которое вы ищете, как уже говорили многие, это «эндоморфизм». Но в более конкретном примечании стоит упомянуть здесь Endo введите Data.Monoid:

data Endo a = Endo { appEndo :: a -> a }

instance Monoid (Endo a) where
    mempty = Endo id
    Endo f `mappend` Endo g = Endo (f . g)

Этот тип иногда полезен. Например, , как объясняет Брент Йорги, складки состоят из моноиды:

import Data.Monoid

foldr :: (a -> b -> b) -> b -> [a] -> b
foldr f z xs = appEndo (mconcat (map (Endo . f) xs)) z

foldl :: (b -> a -> b) -> b -> [a] -> b
foldl f z xs = appEndo (mconcat (map (Endo . flip f) (reverse xs))) z

Таким образом, поскольку моноиды ассоциативны, часто складки можно распараллелить (со стратегией «разделяй и властвуй»), сначала переписав их в терминах Endo, а затем заменив конкретный Endo b для этой складки на какой-то более конкретный тип, допускающий некоторые из работа, которую необходимо выполнить на каждом mappend шаге.

person Luis Casillas    schedule 07.03.2014