Functor

De la Wikipedia, enciclopedia liberă

În matematică, un functor este o aplicație între categorii. Functorii au fost analizați pentru prima oară în topologia algebrică⁠(d), unde obiectele algebrice (cum ar fi grupul fundamental⁠(d)) sunt asociate spațiilor topologice, iar aplicațiile dintre aceste obiecte algebrice sunt asociate aplicațiilor continue între spații. În prezent, functorii sunt utilizați în întreaga matematică modernă cu referire la diferite categorii. Astfel, functorii sunt importanți în toate domeniile matematicii cărora li se aplică teoria categoriilor.

Cuvântul functor a fost împrumutat de matematicieni de la filozoful Rudolf Carnap,[1] care îl folosea în contextul lingvisticii;[2] vezi cuvânt gramatical.

Definiție[modificare | modificare sursă]

Fie C și D categorii. Un functor F de la C la D este o aplicație care[3]

  • asociază fiecărui obiect X din C un obiect F(X) din D,
  • asociază fiecărui morfism din C un morfism din D, astfel încât următoarele două condiții să fie valabile:
    • pentru orice obiect X din C,
    • pentru orice morfisme și din C.

Adică functorii trebuie să conserve morfismul identitate și compoziția⁠(d) de morfisme.

Covarianță și contravarianță[modificare | modificare sursă]

Există multe construcții în matematică care ar fi functori, cu excepția faptului că „inversează morfismele” și „se compun invers”. Atunci se definește un functor contravariant F de la C la D ca o aplicație care

  • asociază fiecărui obiect X din C un obiect F(X) din D,
  • asociază fiecărui morfism din C un morfism din D, astfel încât următoarele două condiții să fie valabile:
    • pentru orice obiect X din C,
    • pentru orice morfisme și din C.

Functorii contravarianți inversează direcția compoziției.

Functorii obișnuiți se numesc și functori covarianți pentru a-i distinge de cei contravarianți. Functorii contravarianți se pot defini și ca functori covarianți pe categoria opusă⁠(d) Cop.[4] Unii autori preferă să scrie toate expresiile covariant. Adică, în loc să spună că este un functor contravariant, ei scriu pur și simplu (sau uneori ) și îl numesc functor.

Functorii contravarianți sunt numiți, uneori, și cofunctori.[5]

Există o convenție referitoare la „vectori” — adică câmpuri vectoriale, elemente ale spațiului secțiunilor Γ(TM) al unui fibrat tangent⁠(d) TM — drept „contravariant” și la „covectori” — adică 1-forme⁠(d), elemente ale spațiului secțiunilor Γ(T*M) al unui fibrat cotangent T*M — drept „covariant”. Această terminologie își are originea în fizică, iar raționamentul său are legătură cu poziția indicilor („sus” și „jos”) în expresii⁠(d) precum pentru sau pentru În acest formalism se observă că simbolul transformării de coordonate (reprezentând matricea ΛT) acționează asupra vectorilor din bază „în același mod” ca și pe „coordonatele covectorului”: în vreme ce acționează „în sens invers” pe „coordonatele vectorului” (dar „în același mod” ca și pe covectorii din bază: ). Această terminologie este contrară celei utilizate în teoria categoriilor, deoarece covectorii sunt cei care au în general pullback, și sunt astfel contravarianți, în timp ce, în general, vectorii sunt covarianți, deoarece asupra acestora se poate face push forward.

Functorul opus[modificare | modificare sursă]

Orice functor induce functorul opus unde Cop și Dop sunt categoriile opuse⁠(d) ale lui C, respectiv D.[6] Prin definitie, Fop mapează obiectele și morfismele identic cu F. Întrucât Cop nu coincide drept categorie cu C, și analog pentru D, Fop este distinct de F. De exemplu, când se face compunerea lui cu , trebuie folosit fie , fie . Conform proprietății categoriilor opuse, .

Bifunctori și multifunctori[modificare | modificare sursă]

Un bifunctor (cunoscut și ca un functor binar) este un functor al cărui domeniu este o categorie produs⁠(d). De exemplu, functorul Hom⁠(d) este de tipul Cop × CSet . Acesta poate fi văzut ca un functor cu două argumente. Functorul Hom⁠(d) este un exemplu natural; este contravariant într-un argument, covariant în celălalt.

Un multifunctor este o generalizare a conceptului de functor la n variabile. De exemplu, un bifunctor este un multifunctor cu n = 2.

Exemple[modificare | modificare sursă]

Diagrama⁠(d): pentru categoriile C și J, o diagramă de tip J în C este un functor covariant .

Prefasciculul de teoria categoriilor⁠(d): Pentru categoriile C și J, un J-prefascicul pe C este un functor contravariant .

Prefascicul: Dacă X este un spațiu topologic, atunci mulțimile deschise din X formează o mulțime parțial ordonată⁠(d) Open(X) în raport cu incluziunea. Ca orice mulțime parțial ordonată, Open(X) formează o categorie mică prin adăugarea unei singure săgeți UV dacă și numai dacă . Functorii contravarianți pe Open(X) se numesc prefascicule⁠(d) pe X. De exemplu, atribuind fiecărei mulțimi deschise U algebra asociativă⁠(d) a funcțiilor continue cu valori reale pe U, se obține un prefascicul de algebre pe X.

Functor constantă: functorul CD care asociază fiecărui obiect din C un obiect fix X din D și oricărui morfism din C morfismul identitate pe X. Un astfel de functor se numește un functor constant sau de selecție.

Endofunctor: un functor care mapează o categorie la aceeași categorie; de exemplu, functorul polinomial⁠(d).

Functorul identitate: în categoria C, scrisă 1C sau idC, mapează un obiect la sine însuși și un morfism la sine însuși. Functorul identitate este un endofunctor.

Functor diagonal: functorul diagonal⁠(d) este definit ca functorul de la D la categoria functorilor DC care asociază fiecărui obiect din D functorul constant la acel obiect.

Functor limită: Pentru o categorie index⁠(d) fixă J, dacă fiecare functor JC are o limită⁠(d) (de exemplu dacă C este completă), atunci functorul limită CJC atribuie fiecărui functor limita sa. Existența acestui functor poate fi demonstrată arătând că este adjunctul la dreapta⁠(d) al functorului diagonal⁠(d) și invocând teorema functorului adjunct Freyd⁠(d). Aceasta necesită o versiune adecvată a axiomei alegerii. Observații similare se aplică functorului colimită (care este covariant).

Mulțimi ale părților: Functorul mulțimii părților P : SetSet asociază fiecărei mulțimi mulțimea părților⁠(d) ei, și fiecărei funcții aplicația care asociază lui imaginea sa . Se poate considera și functorul contravariant al mulțimii părților care asociază pe aplicației care asociază imaginii sale inverse

Spațiu vectorial dual: aplicația care atribuie fiecărui spațiu vectorial dualul⁠(d) său, și fiecărei aplicații liniare — duala sau transpusa ei este un functor contravariant aplicat pe categoria tuturor spațiilor vectoriale pe un corp fix, către el însuși.

Grupul fundamental: Considerând categoria spațiilor topologice orientate⁠(d), adică spațiile topologice cu puncte distincte, obiectele sunt perechile (X, x0), unde X este un spațiu topologic și x0 este un punct din X. Un morfism de la (X, x0) la (Y, y0) este dat de o aplicație continuă f : XY cu f(x0) = y0 .

Pe orice spațiu topologic X cu punct distinctiv x0, se poate defini grupul fundamental⁠(d) bazat în x0, notat π1(X, x0). Acesta este grupul claselor de omotopie⁠(d) a buclelor bazate în x0. Dacă f : XY este un morfism al spațiilor orientate⁠(d), atunci fiecare buclă din X cu punctul de bază x0 poate fi compusă cu f pentru a obține o buclă în Y cu punctul de bază y0. Această operație este compatibilă cu relația de echivalență a omotopiei și cu compoziția buclelor și se obține un omomorfism de grup de la π(X, x0) la π(Y, y0) . Se obține astfel un functor de la categoria spațiilor topologice orientate la categoria grupurilor⁠(d).

În categoria spațiilor topologice (fără punct distinctiv), se iau în considerare clasele de omotopie ale curbelor generice, dar ele nu pot fi compuse decât dacă drept capăt un punct comun. Astfel, una este groupoidul fundamental în locul grupului fundamental, iar această construcție este functorială.

Algebra funcțiilor continue: un functor contravariant de la categoria spațiilor topologice (cu aplicațiile continue ca morfisme) la categoria algebrelor asociative⁠(d) reale este dat atribuind fiecărui spațiu topologic X algebra C(X) a tuturor funcțiilor continue definite pe acel spațiu. Orice aplicație continuă f : XY induce un omomorfism algebric⁠(d) C(f) : C(Y) → C(X) prin regula C(f)(φ) = φf pentru orice φ din C(Y).

Fibrate tangente și cotangente: Aplicațiile care asociază fiecărei varietăți diferențiabile⁠(d) la tangenta⁠(d) sa și la fiecărei aplicații derivabile⁠(d) derivata sa este un functor covariant de la categoria varietăților diferențiabile la categoria fibratelor vectoriale⁠(d).

Făcând aceste construcții punctual rezultă spațiul tangent⁠(d), un functor covariant de la categoria varietăților diferențiabile orientate la categoria spațiilor vectoriale reale. Analog, spațiul cotangent⁠(d) este un functor contravariant, în esență, compoziția spațiului tangent cu spațiul dual de mai sus.

Produse tensoriale: Dacă cu C se notează categoria spațiilor vectoriale peste un corp fix, cu aplicațiile liniare ca morfisme, atunci produsul tensorial⁠(d) definește un functor C × CC care este covariant în ambele argumente.[7]

Două consecințe importante ale axiomelor functorilor sunt:

  • F transformă orice diagramă comutativă⁠(d) din C într-o diagramă comutativă din D;
  • dacă f este un izomorfism în C, atunci F(f) este un izomorfism în D.

Se pot compune functori, adică dacă F este un functor de la A la B și G este un functor de la B la C, atunci se poate forma functorul compus GF de la A la C. Compoziția functorilor este asociativă acolo unde este definită. Identitatea compoziției functorilor este functorul identitate. Aceasta arată că functorii pot fi considerați morfisme în categoriile de categorii, de exemplu în categoria categoriilor mici⁠(d).

O categorie mică cu un singur obiect este același lucru ca un monoid: morfismele unei categorii cu un singur obiect pot fi considerate ca elemente ale monoidului, iar compoziția din categorie este considerată operația monoidului. Functorii între categoriile cu un singur obiect corespund omomorfismelor monoidului. Deci, într-un sens, functorii dintre categoriile arbitrare sunt un fel de generalizare a omomorfismelor de monoid la categorii cu mai mult de un obiect.

Relația cu alte concepte de categorii[modificare | modificare sursă]

Fie și categorii. Colecția tuturor functorilor formează obiectele unei categorii: categoria functorilor⁠(d). Morfismele din această categorie sunt transformări naturale⁠(d) între functori.

Functorii sunt adesea definiți prin proprietăți universale⁠(d); exemple sunt produsul tensorial⁠(d), suma scalară⁠(d) și produsul scalar⁠(d) al grupurilor sau spațiilor vectoriale, construcția grupurilor și modulelor libere, limitele directe⁠(d) și inverse⁠(d). Conceptele de limită și colimită⁠(d) generalizează mai multe dintre cele de mai sus.

Construcțiile universale dau adesea naștere unor perechi de functori adjuncți⁠(d).

Implementări pe calculator[modificare | modificare sursă]

Functorii apar uneori în programarea funcțională. De exemplu, limbajul de programare Haskell are o clasă⁠(d) Functor unde fmap este o funcție politipică folosită pentru a mapa funcțiile⁠(d) (morfisme pe Hask, categoria tipurilor Haskell)[8] între tipuri existente la funcții între unele tipuri noi.[9]

Note[modificare | modificare sursă]

  1. ^ en Mac Lane, Saunders (), Categories for the Working Mathematician, New York: Springer-Verlag, p. 30, ISBN 978-3-540-90035-1 
  2. ^ Carnap, Rudolf (1937). The Logical Syntax of Language, Routledge & Kegan, pp. 13–14.
  3. ^ Jacobson (2009), p. 19, def. 1.2.
  4. ^ Jacobson (2009), pp. 19–20.
  5. ^ Popescu, Nicolae; Popescu, Liliana (). Theory of categories. Dordrecht: Springer. p. 12. ISBN 9789400995505. Accesat în . 
  6. ^ Mac Lane, Saunders; Moerdijk, Ieke (), Sheaves in geometry and logic: a first introduction to topos theory, Springer, ISBN 978-0-387-97710-2 
  7. ^ Hazewinkel, Michiel; Gubareni, Nadezhda Mikhaĭlovna; Gubareni, Nadiya; Kirichenko, Vladimir V. (), Algebras, rings and modules, Springer, ISBN 978-1-4020-2690-4 
  8. ^ Nu este clar întru totul că tipurile de date Haskell formează o categorie. Vezi https://wiki.haskell.org/Hask pentru mai multe detalii.
  9. ^ Vezi https://wiki.haskell.org/Category_theory/Functor#Functors_in_Haskell pentru mai multe informații.

Bibliografie[modificare | modificare sursă]

Legături externe[modificare | modificare sursă]