Введение
Отображение между категориями – математическое понятие.
the mathematical concept
В математике, в частности в теории категорий, функтор – это отображение между категориями. Функторы впервые были рассмотрены в алгебраической топологии, где алгебраическим объектам (таким как фундаментальная группа) сопоставляются топологические пространства, а отображениям между этими алгебраическими объектами – непрерывным отображениям между пространствами. В настоящее время функторы используются во всей современной математике для установления связей между различными категориями. Таким образом, функторы важны во всех областях математики, к которым применяется теория категорий. Слова «категория» и «функтор» были заимствованы математиками у философов Аристотеля и Рудольфа Карнапа соответственно. Последний использовал термин «функтор» в лингвистическом контексте; см. служебное слово.
see function word.
Противоположный функтор
Каждый функтор индуцирует противоположный функтор , где и являются противоположными категориями к и . По определению, отображает объекты и морфизмы точно так же, как и . Поскольку не совпадает с как категория, и аналогично для , отличается от . Например, при композиции с , следует использовать либо или . Обратите внимание, что, в соответствии со свойством противоположной категории, .
Бифункторы и мультифункторы
Бифунктор (также известный как бинарный функтор) — это функтор, область определения которого является категорией произведений. Например, функтор Hom имеет тип Cop × C → Set. Его можно рассматривать как функтор от двух аргументов. Функтор Hom является наглядным примером: он контравариантен по одному аргументу и ковариантен по другому. Мультифунктор — это обобщение понятия функтора на n переменных. Таким образом, бифунктор является мультифунктором, где n = 2.
Примеры
Диаграмма Для категорий C и J диаграмма типа J в C является ковариантным функтором (категорно-теоретическим) предпучком. Для категорий C и J, J-предпучок на C является контравариантным функтором. В специальном случае, когда J — это Set, категория множеств и функций, D называется предпучком на C. Предпучки (над топологическим пространством) Если X — топологическое пространство, то открытые множества в X образуют частично упорядоченное множество Open(X) относительно включения. Как и любое частично упорядоченное множество, Open(X) образует малую категорию, добавляя единственную стрелку U → V, если и только если. Контравариантные функторы на Open(X) называются предпучками на X. Например, присваивая каждому открытому множеству U ассоциативную алгебру непрерывных вещественнозначных функций на U, мы получаем предпучок алгебр на X. Постоянный функтор — это функтор C → D, который отображает каждый объект C в фиксированный объект X в D и каждый морфизм в C в тождественный морфизм на X. Такой функтор называется постоянным или селекционным функтором. term=Эндофунктор — это функтор, который отображает категорию в саму себя, например, полиномиальный функтор. term=Тождественный функтор в категории C, записываемый как 1C или idC, отображает объект в себя и морфизм в себя. Тождественный функтор является эндофунктором. Диагональный функтор определяется как функтор из D в категорию функторов DC, который посылает каждый объект в D в постоянный функтор на этом объекте. Для фиксированной индексной категории J, если каждый функтор J → C имеет предел (например, если C полна), то предельный функтор CJ → C присваивает каждому функтору его предел. Существование этого функтора можно доказать, показав, что он является правым сопряженным к диагональному функтору, и применив теорему Фрейда о сопряженных функторах. Для этого требуется подходящая версия аксиомы выбора. Аналогичные замечания применимы к колимитному функтору (который присваивает каждому функтору его колимит и является ковариантным). Функтор множеств степеней Функтор множеств степеней P : Set → Set отображает каждое множество в его множество степеней и каждую функцию — в отображение, которое посылает элемент в его образ. Также можно рассмотреть контравариантный функтор множеств степеней, который посылает множество в отображение, которое посылает элемент в его прообраз. Например, если, то предположим и тогда это функция, которая отображает любое подмножество в его образ, что в данном случае означает, где обозначает отображение под , поэтому это также можно записать как Для других значений, обратите внимание, что, следовательно, генерирует тривиальную топологию на Также обратите внимание, что, хотя функция в этом примере отображалась в множество степеней, это не обязательно должно быть так в общем случае. Двойственное векторное пространство Отображение, которое присваивает каждому векторному пространству его двойственное пространство и каждой линейной карте — ее двойственную или транспонированную карту, является контравариантным функтором из категории всех векторных пространств над фиксированным полем в себя. Фундаментальная группа Рассмотрим категорию топологических пространств с выделенной точкой, то есть топологических пространств с отмеченными точками. Объекты — это пары (X, x0), где X — топологическое пространство, а x0 — точка в X. Морфизм из (X, x0) в (Y, y0) задается непрерывным отображением f : X → Y, таким что f(x0) = y0. Для каждого топологического пространства X с выделенной точкой x0 можно определить фундаментальную группу, основанную в x0, обозначаемую π1(X, x0). Это группа классов гомотопии петель, основанных в x0, с групповой операцией конкатенации. Если f : X → Y — морфизм заостренных пространств, то каждая петля в X с базовой точкой x0 может быть составлена с f, чтобы получить петлю в Y с базовой точкой y0. Эта операция совместима с отношением эквивалентности гомотопии и композицией петель, и мы получаем групповой гомоморфизм из π1(X, x0) в π1(Y, y0). Таким образом, мы получаем функтор из категории топологических пространств с выделенной точкой в категорию групп. В категории топологических пространств (без выделенной точки) рассматриваются классы гомотопии общих кривых, но их нельзя составлять, если они не имеют общей конечной точки. Таким образом, вместо фундаментальной группы имеется фундаментальный группоид, и эта конструкция является функциональной. Алгебра непрерывных функций Контравариантный функтор из категории топологических пространств (с непрерывными отображениями в качестве морфизмов) в категорию вещественных ассоциативных алгебр задается присвоением каждому топологическому пространству X алгебры C(X) всех непрерывных вещественнозначных функций на этом пространстве. Каждое непрерывное отображение f : X → Y индуцирует алгебраический гомоморфизм C(f) : C(Y) → C(X) по правилу C(f)(φ) = φ ∘ f для каждого φ в C(Y). Касательные и кокасательные расслоения Отображение, которое посылает каждое дифференцируемое многообразие в его касательное расслоение и каждое гладкое отображение — в его производную, является ковариантным функтором из категории дифференцируемых многообразий в категорию векторных расслоений. Выполнение этих построений поточечно дает касательное пространство, ковариантный функтор из категории дифференцируемых многообразий с выделенной точкой в категорию вещественных векторных пространств. Аналогично, кокасательное пространство является контравариантным функтором, по сути, композицией касательного пространства с двойственным пространством, описанным выше. Групповые действия/представления Каждую группу G можно рассматривать как категорию с единственным объектом, морфизмами которого являются элементы G. Функтор из G в Set — это, следовательно, групповое действие G на конкретное множество, то есть G-множество. Аналогично, функтор из G в категорию векторных пространств, VectK, является линейным представлением G. В общем случае, функтор G → C можно рассматривать как «действие» G на объект в категории C. Если C — группа, то это действие является групповым гомоморфизмом. Алгебры Лий Присвоение каждой вещественной (комплексной) группе Ли ее вещественной (комплексной) алгебре Ли определяет функтор. Тензорные произведения Если C обозначает категорию векторных пространств над фиксированным полем с линейными отображениями в качестве морфизмов, то тензорное произведение определяет функтор C × C → C, который является ковариантным по обоим аргументам. Забывающие функторы Функтор U : Grp → Set, который отображает группу в ее базовое множество и групповой гомоморфизм — в базовую функцию множеств, является функтором. Функторы, подобные этим, которые «забывают» некоторую структуру, называются забывающими функторами. Другой пример — функтор Rng → Ab, который отображает кольцо в его базовую аддитивную абелеву группу. Морфизмы в Rng (кольцевые гомоморфизмы) становятся морфизмами в Ab (абелевыми групповыми гомоморфизмами). Свободные функторы Двигаясь в противоположном направлении от забывающих функторов, находятся свободные функторы. Свободный функтор F : Set → Grp посылает каждое множество X в свободную группу, порожденную X. Функции отображаются в групповые гомоморфизмы между свободными группами. Свободные построения существуют для многих категорий, основанных на структурированных множествах. См. свободный объект. Гомоморфизмы групп Для каждой пары абелевых групп A и B можно присвоить абелеву группу Hom(A, B), состоящую из всех групповых гомоморфизмов из A в B. Это функтор, который является контравариантным по первому аргументу и ковариантным по второму аргументу, то есть это функтор Abop × Ab → Ab (где Ab обозначает категорию абелевых групп с групповыми гомоморфизмами). Если f : A1 → A2 и g : B1 → B2 — морфизмы в Ab, то групповой гомоморфизм Hom(f, g) : Hom(A2, B1) → Hom(A1, B2) задается формулой φ ↦ g ∘ φ ∘ f. См. функтор Hom. Представимые функторы Мы можем обобщить предыдущий пример на любую категорию C. Для каждой пары объектов X и Y в C можно присвоить множество Hom(X, Y) морфизмов из X в Y. Это определяет функтор в Set, который является контравариантным по первому аргументу и ковариантным по второму аргументу, то есть это функтор Cop × C → Set. Если f : X1 → X2 и g : Y1 → Y2 — морфизмы в C, то отображение Hom(f, g) : Hom(X2, Y1) → Hom(X1, Y2) задается формулой φ ↦ g ∘ φ ∘ f. Функторы, подобные этим, называются представимыми функторами. Важной целью во многих областях является определение того, является ли данный функтор представимым.
Presheaves (over a topological space) If X is a topological space, then the open sets in X form a partially ordered set Open(X) under inclusion. Like every partially ordered set, Open(X) forms a small category by adding a single arrow U → V if and only if Contravariant functors on Open(X) are called presheaves on X. For instance, by assigning to every open set U the associative algebra of real valued continuous functions on U, one obtains a presheaf of algebras on X. Constant functor The functor C → D which maps every object of C to a fixed object X in D and every morphism in C to the identity morphism on X. Such a functor is called a constant or selection functor. term=Endofunctor A functor that maps a category to that same category; e. g., polynomial functor. term=Identity functor In category C, written 1C or idC, maps an object to itself and a morphism to itself. The identity functor is an endofunctor. Diagonal functor The diagonal functor is defined as the functor from D to the functor category DC which sends each object in D to the constant functor at that object. Limit functor For a fixed index category J, if every functor J → C has a limit (for instance if C is complete), then the limit functor CJ → C assigns to each functor its limit. The existence of this functor can be proved by realizing that it is the right adjoint to the diagonal functor and invoking the Freyd adjoint functor theorem. This requires a suitable version of the axiom of choice. Similar remarks apply to the colimit functor (which assigns to every functor its colimit, and is covariant). Power sets functor The power set functor P : Set → Set maps each set to its power set and each function to the map which sends to its image One can also consider the contravariant power set functor which sends to the map which sends to its inverse image For example, if then Suppose and Then is the function which sends any subset of to its image , which in this case means , where denotes the mapping under , so this could also be written as For the other values, Note that consequently generates the trivial topology on Also note that although the function in this example mapped to the power set of , that need not be the case in general. Dual vector space The map which assigns to every vector space its dual space and to every linear map its dual or transpose is a contravariant functor from the category of all vector spaces over a fixed field to itself. Fundamental group Consider the category of pointed topological spaces, i. e. topological spaces with distinguished points. The objects are pairs (X, x0), where X is a topological space and x0 is a point in X. A morphism from (X, x0) to (Y, y0) is given by a continuous map f : X → Y with 1=f(x0) = y0. To every topological space X with distinguished point x0, one can define the fundamental group based at x0, denoted π1(X, x0). This is the group of homotopy classes of loops based at x0, with the group operation of concatenation. If f : X → Y is a morphism of pointed spaces, then every loop in X with base point x0 can be composed with f to yield a loop in Y with base point y0. This operation is compatible with the homotopy equivalence relation and the composition of loops, and we get a group homomorphism from π(X, x0) to π(Y, y0). We thus obtain a functor from the category of pointed topological spaces to the category of groups. In the category of topological spaces (without distinguished point), one considers homotopy classes of generic curves, but they cannot be composed unless they share an endpoint. Thus one has the fundamental groupoid instead of the fundamental group, and this construction is functorial. Algebra of continuous functions A contravariant functor from the category of topological spaces (with continuous maps as morphisms) to the category of real associative algebras is given by assigning to every topological space X the algebra C(X) of all real valued continuous functions on that space. Every continuous map f : X → Y induces an algebra homomorphism C(f) : C(Y) → C(X) by the rule 1=C(f)(φ) = φ ∘ f for every φ in C(Y). Tangent and cotangent bundles The map which sends every differentiable manifold to its tangent bundle and every smooth map to its derivative is a covariant functor from the category of differentiable manifolds to the category of vector bundles. Doing this constructions pointwise gives the tangent space, a covariant functor from the category of pointed differentiable manifolds to the category of real vector spaces. Likewise, cotangent space is a contravariant functor, essentially the composition of the tangent space with the dual space above. Group actions/representations Every group G can be considered as a category with a single object whose morphisms are the elements of G. A functor from G to Set is then nothing but a group action of G on a particular set, i. e. a G set. Likewise, a functor from G to the category of vector spaces, VectK, is a linear representation of G. In general, a functor G → C can be considered as an "action" of G on an object in the category C. If C is a group, then this action is a group homomorphism. Lie algebras Assigning to every real (complex) Lie group its real (complex) Lie algebra defines a functor. Tensor products If C denotes the category of vector spaces over a fixed field, with linear maps as morphisms, then the tensor product defines a functor C × C → C which is covariant in both arguments. Forgetful functors The functor U : Grp → Set which maps a group to its underlying set and a group homomorphism to its underlying function of sets is a functor. Functors like these, which "forget" some structure, are termed forgetful functors. Another example is the functor Rng → Ab which maps a ring to its underlying additive abelian group. Morphisms in Rng (ring homomorphisms) become morphisms in Ab (abelian group homomorphisms). Free functors Going in the opposite direction of forgetful functors are free functors. The free functor F : Set → Grp sends every set X to the free group generated by X. Functions get mapped to group homomorphisms between free groups. Free constructions exist for many categories based on structured sets. See free object. Homomorphism groups To every pair A, B of abelian groups one can assign the abelian group Hom(A, B) consisting of all group homomorphisms from A to B. This is a functor which is contravariant in the first and covariant in the second argument, i. e. it is a functor Abop × Ab → Ab (where Ab denotes the category of abelian groups with group homomorphisms). If f : A1 → A2 and g : B1 → B2 are morphisms in Ab, then the group homomorphism Hom(f, g): Hom(A2, B1) → Hom(A1, B2) is given by φ ↦ g ∘ φ ∘ f. See Hom functor. Representable functors We can generalize the previous example to any category C. To every pair X, Y of objects in C one can assign the set Hom(X, Y) of morphisms from X to Y. This defines a functor to Set which is contravariant in the first argument and covariant in the second, i. e. it is a functor Cop × C → Set. If f : X1 → X2 and g : Y1 → Y2 are morphisms in C, then the map Hom(f, g) : Hom(X2, Y1) → Hom(X1, Y2) is given by φ ↦ g ∘ φ ∘ f. Functors like these are called representable functors. An important goal in many settings is to determine whether a given functor is representable.
Связь с другими категорическими понятиями
Пусть C и D — категории. Коллекция всех функторов из C в D образует объекты категории, называемой категорией функторов. Морфизмами в этой категории являются естественные преобразования между функторами. Функторы часто определяются универсальными свойствами; примерами служат тензорное произведение, прямая сумма и прямое произведение групп или векторных пространств, построение свободных групп и модулей, прямые и обратные пределы. Понятия предела и копредела обобщают многие из вышеперечисленных. Универсальные построения часто приводят к парам сопряжённых функторов.
Компьютерные реализации
Функторы иногда встречаются в функциональном программировании. Например, в языке программирования Haskell существует класс Functor, где fmap — полиморфная функция, используемая для применения функций (морфизмов в Hask, категории типов Haskell) к существующим типам, чтобы получить функции между новыми типами.