Skip to main content

Functori monoidali

Adesea functorii conservă structurile dintre cele două categorii peste care sunt definiți. În cazul categoriilor monoidale nu orice functor conservă structura monoidală chiar dacă functorul duce dintr-o categorie monoidală în altă categorie monoidală. Aici însă structura poate fi conservată complet sau parțial în două moduri după cum o să vedem.

Functori lax monoidali

Fie (M,M,IM,aM,lM,rM)(\mathcal{M}, \otimes_\mathcal{M}, I_\mathcal{M}, a^\mathcal{M}, l^\mathcal{M}, r^\mathcal{M}) și (N,N,IN,aN,lN,rN)(\mathcal{N}, \otimes_\mathcal{N}, I_\mathcal{N}, a^\mathcal{N}, l^\mathcal{N}, r^\mathcal{N}) două categorii monoidale. Un functor lax monoidal este un functor F:MNF : \mathcal{M} \rightarrow \mathcal{N} echipat cu un morfism ϕI:INFIMHom(N)\phi_I : I_\mathcal{N} \rightarrow FI_\mathcal{M} \in Hom(\mathcal{N}) și o transformare naturală ϕ:F()NF(=)F(M=)\phi : F(-) \otimes_\mathcal{N} F(=) \Rightarrow F(- \otimes_\mathcal{M} =) cu componente ϕA,B:FANFBF(AMB)\phi_{A,B} : FA \otimes_\mathcal{N} FB \rightarrow F(A \otimes_\mathcal{M} B) astfel încât următoarele diagrame comută pentru compatibilitatea cu unitalitatea și asociativitatea:

Practic, ce face un functor lax monoidal este să combine două obiecte după aplicarea functorului intr-un obiect peste care a acționat functorul. Dacă luăm un functor dintr-un limbaj de programare ca un tip de date parametrizat și dacă avem două instanțe ale acestuia, transformarea naturală a functorului lax combină cele două instanțe într-un functor parametrizat după, de exemplu, perechea parametrilor de tip precedenți.

De exemplu, dacă luăm o listă de tip List<int>List<int> de lungime NN și una List<string>List<string> de lungime MM combinat rezultă o listă List<(int,string)>List<(int, string)> de lungime N×MN \times M prin produsul cartezian a elementelor.

Calificatorul lax aici reprezintă direcția în care functorul acționează asupra structurii monoidale, când functorul combină un produs tensorial sau orice alt tip de compunere vom folosi calificatorul lax iar în direcția înversă, când functorul desface un obiect, punem calificatorul colax/oplax.

Functori colax/oplax monoidali

Fie (M,M,IM,aM,lM,rM)(\mathcal{M}, \otimes_\mathcal{M}, I_\mathcal{M}, a^\mathcal{M}, l^\mathcal{M}, r^\mathcal{M}) și (N,N,IN,aN,lN,rN)(\mathcal{N}, \otimes_\mathcal{N}, I_\mathcal{N}, a^\mathcal{N}, l^\mathcal{N}, r^\mathcal{N}) două categorii monoidale. Un functor colax monoidal este un functor F:MNF : \mathcal{M} \rightarrow \mathcal{N} echipat cu un morfism ψI:FIMINHom(N)\psi_I : FI_\mathcal{M} \rightarrow I_\mathcal{N} \in Hom(\mathcal{N}) și o transformare naturală ψ:F(M=)F()NF(=)\psi : F(- \otimes_\mathcal{M} =) F(-) \Rightarrow \otimes_\mathcal{N} F(=) cu componente ψA,B:F(AMB)FANFB\psi_{A,B} : F(A \otimes_\mathcal{M} B) \rightarrow FA \otimes_\mathcal{N} FB astfel încât următoarele diagrame comută pentru compatibilitatea cu unitalitatea și asociativitatea:

La fel cum un functor lax monoidal combină două obiecte, un functor colax monoidal descompune un obiect peste care este aplicat functorul în două obiecte peste care functorul este aplicat individual.

Functori strong monoidali

Un functor strong monoidal este un functor lax în care ϕI\phi_I și ϕ\phi sunt izomorfisme, atunci functorul este lax și colax. Îl putem definii echivalet și ca un functor colax în care ψI\psi_I și ψ\psi sunt izomorfisme.

danger

Atenți! Calificatorul strong poate însemna mai multe lucruri depinzând de context, poate însemna și un functor cu putere tensorială (tensorial strength), din acest motiv trebuie specificat și la ce se referă.

Functori strict monoidali

Un functor strict monoidal este un functor strong monoidal în care ϕI\phi_I și ϕ\phi sunt chiar identități.

Functori Frobenius monoidali

Un functor Frobenius monoidal este un functor care este lax și colax monoidal în relație cu aceleași structuri monoidale (categoriile pot avea mai multe structuri monoidale diferite) pentru care următoarele diagrame comută:

Functorii Frobenius monoidali asigură că cele două operații conservă structura monoidală indiferent cum sunt aplicate transformarile naturale.