\documentclass[12pt,titlepage]{article} \usepackage{amsmath} \usepackage{mathrsfs} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsthm} \usepackage{mathtools} \usepackage{graphicx} \usepackage{color} \usepackage{ucs} \usepackage[utf8x]{inputenc} \usepackage{xparse} \usepackage{hyperref} %----Macros---------- % % Unresolved issues: % % \righttoleftarrow % \lefttorightarrow % % \color{} with HTML colorspec % \bgcolor % \array with options (without options, it's equivalent to the matrix environment) % Of the standard HTML named colors, white, black, red, green, blue and yellow % are predefined in the color package. Here are the rest. \definecolor{aqua}{rgb}{0, 1.0, 1.0} \definecolor{fuschia}{rgb}{1.0, 0, 1.0} \definecolor{gray}{rgb}{0.502, 0.502, 0.502} \definecolor{lime}{rgb}{0, 1.0, 0} \definecolor{maroon}{rgb}{0.502, 0, 0} \definecolor{navy}{rgb}{0, 0, 0.502} \definecolor{olive}{rgb}{0.502, 0.502, 0} \definecolor{purple}{rgb}{0.502, 0, 0.502} \definecolor{silver}{rgb}{0.753, 0.753, 0.753} \definecolor{teal}{rgb}{0, 0.502, 0.502} % Because of conflicts, \space and \mathop are converted to % \itexspace and \operatorname during preprocessing. % itex: \space{ht}{dp}{wd} % % Height and baseline depth measurements are in units of tenths of an ex while % the width is measured in tenths of an em. \makeatletter \newdimen\itex@wd% \newdimen\itex@dp% \newdimen\itex@thd% \def\itexspace#1#2#3{\itex@wd=#3em% \itex@wd=0.1\itex@wd% \itex@dp=#2ex% \itex@dp=0.1\itex@dp% \itex@thd=#1ex% \itex@thd=0.1\itex@thd% \advance\itex@thd\the\itex@dp% \makebox[\the\itex@wd]{\rule[-\the\itex@dp]{0cm}{\the\itex@thd}}} \makeatother % \tensor and \multiscript \makeatletter \newif\if@sup \newtoks\@sups \def\append@sup#1{\edef\act{\noexpand\@sups={\the\@sups #1}}\act}% \def\reset@sup{\@supfalse\@sups={}}% \def\mk@scripts#1#2{\if #2/ \if@sup ^{\the\@sups}\fi \else% \ifx #1_ \if@sup ^{\the\@sups}\reset@sup \fi {}_{#2}% \else \append@sup#2 \@suptrue \fi% \expandafter\mk@scripts\fi} \def\tensor#1#2{\reset@sup#1\mk@scripts#2_/} \def\multiscripts#1#2#3{\reset@sup{}\mk@scripts#1_/#2% \reset@sup\mk@scripts#3_/} \makeatother % \slash \makeatletter \newbox\slashbox \setbox\slashbox=\hbox{$/$} \def\itex@pslash#1{\setbox\@tempboxa=\hbox{$#1$} \@tempdima=0.5\wd\slashbox \advance\@tempdima 0.5\wd\@tempboxa \copy\slashbox \kern-\@tempdima \box\@tempboxa} \def\slash{\protect\itex@pslash} \makeatother % math-mode versions of \rlap, etc % from Alexander Perlis, "A complement to \smash, \llap, and lap" % http://math.arizona.edu/~aprl/publications/mathclap/ \def\clap#1{\hbox to 0pt{\hss#1\hss}} \def\mathllap{\mathpalette\mathllapinternal} \def\mathrlap{\mathpalette\mathrlapinternal} \def\mathclap{\mathpalette\mathclapinternal} \def\mathllapinternal#1#2{\llap{$\mathsurround=0pt#1{#2}$}} \def\mathrlapinternal#1#2{\rlap{$\mathsurround=0pt#1{#2}$}} \def\mathclapinternal#1#2{\clap{$\mathsurround=0pt#1{#2}$}} % Renames \sqrt as \oldsqrt and redefine root to result in \sqrt[#1]{#2} \let\oldroot\root \def\root#1#2{\oldroot #1 \of{#2}} \renewcommand{\sqrt}[2][]{\oldroot #1 \of{#2}} % Manually declare the txfonts symbolsC font \DeclareSymbolFont{symbolsC}{U}{txsyc}{m}{n} \SetSymbolFont{symbolsC}{bold}{U}{txsyc}{bx}{n} \DeclareFontSubstitution{U}{txsyc}{m}{n} % Manually declare the stmaryrd font \DeclareSymbolFont{stmry}{U}{stmry}{m}{n} \SetSymbolFont{stmry}{bold}{U}{stmry}{b}{n} % Manually declare the MnSymbolE font \DeclareFontFamily{OMX}{MnSymbolE}{} \DeclareSymbolFont{mnomx}{OMX}{MnSymbolE}{m}{n} \SetSymbolFont{mnomx}{bold}{OMX}{MnSymbolE}{b}{n} \DeclareFontShape{OMX}{MnSymbolE}{m}{n}{ <-6> MnSymbolE5 <6-7> MnSymbolE6 <7-8> MnSymbolE7 <8-9> MnSymbolE8 <9-10> MnSymbolE9 <10-12> MnSymbolE10 <12-> MnSymbolE12}{} % Declare specific arrows from txfonts without loading the full package \makeatletter \def\re@DeclareMathSymbol#1#2#3#4{% \let#1=\undefined \DeclareMathSymbol{#1}{#2}{#3}{#4}} \re@DeclareMathSymbol{\neArrow}{\mathrel}{symbolsC}{116} \re@DeclareMathSymbol{\neArr}{\mathrel}{symbolsC}{116} \re@DeclareMathSymbol{\seArrow}{\mathrel}{symbolsC}{117} \re@DeclareMathSymbol{\seArr}{\mathrel}{symbolsC}{117} \re@DeclareMathSymbol{\nwArrow}{\mathrel}{symbolsC}{118} \re@DeclareMathSymbol{\nwArr}{\mathrel}{symbolsC}{118} \re@DeclareMathSymbol{\swArrow}{\mathrel}{symbolsC}{119} \re@DeclareMathSymbol{\swArr}{\mathrel}{symbolsC}{119} \re@DeclareMathSymbol{\nequiv}{\mathrel}{symbolsC}{46} \re@DeclareMathSymbol{\Perp}{\mathrel}{symbolsC}{121} \re@DeclareMathSymbol{\Vbar}{\mathrel}{symbolsC}{121} \re@DeclareMathSymbol{\sslash}{\mathrel}{stmry}{12} \re@DeclareMathSymbol{\bigsqcap}{\mathop}{stmry}{"64} \re@DeclareMathSymbol{\biginterleave}{\mathop}{stmry}{"6} \re@DeclareMathSymbol{\invamp}{\mathrel}{symbolsC}{77} \re@DeclareMathSymbol{\parr}{\mathrel}{symbolsC}{77} \makeatother % \llangle, \rrangle, \lmoustache and \rmoustache from MnSymbolE \makeatletter \def\Decl@Mn@Delim#1#2#3#4{% \if\relax\noexpand#1% \let#1\undefined \fi \DeclareMathDelimiter{#1}{#2}{#3}{#4}{#3}{#4}} \def\Decl@Mn@Open#1#2#3{\Decl@Mn@Delim{#1}{\mathopen}{#2}{#3}} \def\Decl@Mn@Close#1#2#3{\Decl@Mn@Delim{#1}{\mathclose}{#2}{#3}} \Decl@Mn@Open{\llangle}{mnomx}{'164} \Decl@Mn@Close{\rrangle}{mnomx}{'171} \Decl@Mn@Open{\lmoustache}{mnomx}{'245} \Decl@Mn@Close{\rmoustache}{mnomx}{'244} \makeatother % Widecheck \makeatletter \DeclareRobustCommand\widecheck[1]{{\mathpalette\@widecheck{#1}}} \def\@widecheck#1#2{% \setbox\z@\hbox{\m@th$#1#2$}% \setbox\tw@\hbox{\m@th$#1% \widehat{% \vrule\@width\z@\@height\ht\z@ \vrule\@height\z@\@width\wd\z@}$}% \dp\tw@-\ht\z@ \@tempdima\ht\z@ \advance\@tempdima2\ht\tw@ \divide\@tempdima\thr@@ \setbox\tw@\hbox{% \raise\@tempdima\hbox{\scalebox{1}[-1]{\lower\@tempdima\box \tw@}}}% {\ooalign{\box\tw@ \cr \box\z@}}} \makeatother % \mathraisebox{voffset}[height][depth]{something} \makeatletter \NewDocumentCommand\mathraisebox{moom}{% \IfNoValueTF{#2}{\def\@temp##1##2{\raisebox{#1}{$\m@th##1##2$}}}{% \IfNoValueTF{#3}{\def\@temp##1##2{\raisebox{#1}[#2]{$\m@th##1##2$}}% }{\def\@temp##1##2{\raisebox{#1}[#2][#3]{$\m@th##1##2$}}}}% \mathpalette\@temp{#4}} \makeatletter % udots (taken from yhmath) \makeatletter \def\udots{\mathinner{\mkern2mu\raise\p@\hbox{.} \mkern2mu\raise4\p@\hbox{.}\mkern1mu \raise7\p@\vbox{\kern7\p@\hbox{.}}\mkern1mu}} \makeatother %% Fix array \newcommand{\itexarray}[1]{\begin{matrix}#1\end{matrix}} %% \itexnum is a noop \newcommand{\itexnum}[1]{#1} %% Renaming existing commands \newcommand{\underoverset}[3]{\underset{#1}{\overset{#2}{#3}}} \newcommand{\widevec}{\overrightarrow} \newcommand{\darr}{\downarrow} \newcommand{\nearr}{\nearrow} \newcommand{\nwarr}{\nwarrow} \newcommand{\searr}{\searrow} \newcommand{\swarr}{\swarrow} \newcommand{\curvearrowbotright}{\curvearrowright} \newcommand{\uparr}{\uparrow} \newcommand{\downuparrow}{\updownarrow} \newcommand{\duparr}{\updownarrow} \newcommand{\updarr}{\updownarrow} \newcommand{\gt}{>} \newcommand{\lt}{<} \newcommand{\map}{\mapsto} \newcommand{\embedsin}{\hookrightarrow} \newcommand{\Alpha}{A} \newcommand{\Beta}{B} \newcommand{\Zeta}{Z} \newcommand{\Eta}{H} \newcommand{\Iota}{I} \newcommand{\Kappa}{K} \newcommand{\Mu}{M} \newcommand{\Nu}{N} \newcommand{\Rho}{P} \newcommand{\Tau}{T} \newcommand{\Upsi}{\Upsilon} \newcommand{\omicron}{o} \newcommand{\lang}{\langle} \newcommand{\rang}{\rangle} \newcommand{\Union}{\bigcup} \newcommand{\Intersection}{\bigcap} \newcommand{\Oplus}{\bigoplus} \newcommand{\Otimes}{\bigotimes} \newcommand{\Wedge}{\bigwedge} \newcommand{\Vee}{\bigvee} \newcommand{\coproduct}{\coprod} \newcommand{\product}{\prod} \newcommand{\closure}{\overline} \newcommand{\integral}{\int} \newcommand{\doubleintegral}{\iint} \newcommand{\tripleintegral}{\iiint} \newcommand{\quadrupleintegral}{\iiiint} \newcommand{\conint}{\oint} \newcommand{\contourintegral}{\oint} \newcommand{\infinity}{\infty} \newcommand{\bottom}{\bot} \newcommand{\minusb}{\boxminus} \newcommand{\plusb}{\boxplus} \newcommand{\timesb}{\boxtimes} \newcommand{\intersection}{\cap} \newcommand{\union}{\cup} \newcommand{\Del}{\nabla} \newcommand{\odash}{\circleddash} \newcommand{\negspace}{\!} \newcommand{\widebar}{\overline} \newcommand{\textsize}{\normalsize} \renewcommand{\scriptsize}{\scriptstyle} \newcommand{\scriptscriptsize}{\scriptscriptstyle} \newcommand{\mathfr}{\mathfrak} \newcommand{\statusline}[2]{#2} \newcommand{\tooltip}[2]{#2} \newcommand{\toggle}[2]{#2} % Theorem Environments \theoremstyle{plain} \newtheorem{theorem}{Theorem} \newtheorem{lemma}{Lemma} \newtheorem{prop}{Proposition} \newtheorem{cor}{Corollary} \newtheorem*{utheorem}{Theorem} \newtheorem*{ulemma}{Lemma} \newtheorem*{uprop}{Proposition} \newtheorem*{ucor}{Corollary} \theoremstyle{definition} \newtheorem{defn}{Definition} \newtheorem{example}{Example} \newtheorem*{udefn}{Definition} \newtheorem*{uexample}{Example} \theoremstyle{remark} \newtheorem{remark}{Remark} \newtheorem{note}{Note} \newtheorem*{uremark}{Remark} \newtheorem*{unote}{Note} %------------------------------------------------------------------- \begin{document} %------------------------------------------------------------------- \section*{extranatural transformation} \hypertarget{context}{}\subsubsection*{{Context}}\label{context} \hypertarget{category_theory}{}\paragraph*{{Category theory}}\label{category_theory} [[!include category theory - contents]] \hypertarget{contents}{}\section*{{Contents}}\label{contents} \noindent\hyperlink{idea}{Idea}\dotfill \pageref*{idea} \linebreak \noindent\hyperlink{examples}{Examples}\dotfill \pageref*{examples} \linebreak \noindent\hyperlink{Defn}{Formalization}\dotfill \pageref*{Defn} \linebreak \noindent\hyperlink{extranatural_calculus}{Extranatural calculus}\dotfill \pageref*{extranatural_calculus} \linebreak \noindent\hyperlink{profunctors}{Profunctors}\dotfill \pageref*{profunctors} \linebreak \noindent\hyperlink{related_concepts}{Related concepts}\dotfill \pageref*{related_concepts} \linebreak \noindent\hyperlink{references}{References}\dotfill \pageref*{references} \linebreak \hypertarget{idea}{}\subsection*{{Idea}}\label{idea} \textbf{Extraordinary natural transformations}, or \textbf{extranatural transformations}, are what you get when you ``bend the rules'' for [[natural transformation]]s. One intuitive approach to them is through [[string diagrams]]: every time you bend a string (that represents a component of a natural transformation) into a U-shape or upside-down U-shape, the U-shape represents a component of an extranatural transformation. Thus, the rules for extranatural transformations mirror rules for ordinary [[natural transformations]], except they are bent into shapes with a covariant part and a contravariant part. (Cf. interactions between particles and their corresponding [[antiparticle]]s.) A transformation can also be ordinary-natural in some variables and extraordinary-natural in other variables. Sometimes this sort of transformation is called a \emph{generalized natural transformation}. The late [[Max Kelly]] was fond of saying that really it's all the same basic concept, however, so why proliferate terminology needlessly? So he would simply say a transformation was ``natural'' in all its arguments, both the ``ordinary'' and the ``extraordinary'' ones. The calculus of natural and extranatural transformations is a very simple string diagram calculus; perhaps the most basic one. It was first introduced by Eilenberg, Kelly, and Mac Lane in the mid 60's. There is also a yet more general notion of [[dinatural transformation]]. However, there are few examples of dinatural transformations which are not extranatural. Also, unlike extranatural transformations, dinatural transformations cannot be generalized to all [[enriched categories]] and do not admit a natural string diagram calculus. \hypertarget{examples}{}\subsection*{{Examples}}\label{examples} Consider the [[function set]] functor $\hom: Set^{op} \times Set \to Set$ (or more generally, the [[internal hom]] functor $\hom: V^{op} \times V \to V$ where $V$ is [[symmetric monoidal category|symmetric monoidal]] [[closed category|closed]]). The [[identity transformation]] $1: \hom \to \hom$ has components of the form \begin{displaymath} 1_{x, y}: x^y \to x^y \end{displaymath} and this of course is natural in each of the separate arguments $x, y$. String diagrammatically, this naturality would be represented by placing the domain over the codomain and linking the two instances of $x$ with a straight line and the two instances of $y$ with a straight line. Although it's trivial, let's at least record what naturality in say $y$ would mean: it means that for any morphism $g: y \to y'$ we have an equation of the form \begin{equation} 1_{x, y} x^g = x^g 1_{x, y'}: x^{y'} \to x^y \label{naturality}\end{equation} Now, the [[adjunction]] between [[tensor product]] and internal hom allow us to ``bend'' the transformation into another: \begin{displaymath} eval_{x, y}: x^y \otimes y \to x \end{displaymath} in which the two instances of $y$ are linked by a U-shape. This gives a transformation which is natural in $x$ but not of course in $y$; rather, in $y$ we have an equation which is companion to \eqref{naturality}: \begin{equation} eval_{x, y} (x^g \otimes y) = eval_{x, y'} (x^{y'} \otimes g): x^{y'} \otimes y \to x \label{extranaturality}\end{equation} and we say in this case that $eval_{x, y}$ is \textbf{extranatural} in $y$. Notice how the extranatural variable $y$ in $eval_{x, y}$ appears once covariantly in the tensor factor and once contravariantly in the exponent, but together on the same side of the arrow here the domain. (There is a nice string diagram picture for \eqref{extranaturality} which the reader might like to draw at this point.) Thus we already see that $eval_{x, y}$ is a ``generalized natural'' transformation, involving a mixture of naturality (in $x$) and extranaturality (in $y$). The basic idea should now be clear, but let's give a few more examples. Starting with the identity transformation \begin{displaymath} 1_{x, y}: x \otimes y \to x \otimes y \end{displaymath} we can again bend it using the tensor-hom adjunction to form an arrow \begin{displaymath} coeval_{x, y}: x \to (x \otimes y)^y \end{displaymath} where again $y$ appears once covariantly and once contravariantly, this time on the codomain side. The extranaturality in $y$ is the condition \begin{displaymath} (x \otimes g)^{y} coeval_{x, y} = (x \otimes y')^g coeval_{x, y'} \end{displaymath} for every arrow $g: y \to y'$. As these examples indicate, instances of ordinary naturality are typically transferred into instances of extranaturality by means of adjunctions. Indeed, basic instances of U-shapes or upside-down U-shapes in string diagrams come about through counits and units of adjunctions, \begin{displaymath} \varepsilon: F U \to 1 \qquad \eta: 1 \to U F \end{displaymath} \hypertarget{Defn}{}\subsection*{{Formalization}}\label{Defn} Let $F\colon A\times B\times B^{op} \to D$ and $G\colon A\times C\times C^{op}\to D$ be functors. A family of morphisms \begin{displaymath} \alpha_{a,b,c}\colon F(a,b,b) \to G(a,c,c) \end{displaymath} for $a\in A$, $b\in B$, and $c\in C$ is said to be \textbf{natural}, or more precisely \emph{ordinary-natural in $a$ and extranatural in $b$ and $c$}, if the following hold. \begin{itemize}% \item For all $f\colon a\to a'$ in $A$ and all $b\in B$ and $c\in C$, the following square commutes (ordinary naturality in $a$):\begin{displaymath} \itexarray{&F(a,b,b) & \overset{F(f,1,1)}{\to} & F(a',b,b) &\\ ^{\alpha_{a,b,c}} &\downarrow && \downarrow & ^{\alpha_{a',b,c}}\\ &G(a,c,c)& \underset{G(f,1,1)}{\to} & G(a',c,c) &} \end{displaymath} \item For all $g\colon b\to b'$ in $B$ and all $a\in A$ and $c\in C$, the following square commutes (extranaturality in $b$):\begin{displaymath} \itexarray{&F(a,b,b') & \overset{F(1,1,g)}{\to} & F(a,b,b) &\\ ^{F(1,g,1)} &\downarrow && \downarrow & ^{\alpha_{a,b,c}}\\ &F(a,b',b')& \underset{\alpha_{a,b',c}}{\to} & G(a,c,c) &} \end{displaymath} \item For all $h\colon c\to c'$ in $C$ and all $a\in A$ and $b\in B$, the following square commutes (extranaturality in $c$):\begin{displaymath} \itexarray{&F(a,b,b) & \overset{\alpha_{a,b,c}}{\to} & G(a,c,c) &\\ ^{\alpha_{a,b,c'}} &\downarrow && \downarrow & ^{G(1,h,1)}\\ & G(a,c',c') & \underset{G(1,1,h)}{\to} & G(a,c',c) &} \end{displaymath} \end{itemize} It is convenient to draw ``string diagrams'' specifying in what variables a transformation is natural and extranatural. For instance, the above transformation can be notated in this way: Similarly, a transformation from $f\colon (A,B,A^{op},C^{op}) \to X$ to $g\colon (C^{op},B,D^{op},D) \to X$ which is natural in $B$ and $C^{op}$ and extranatural in $A$ and $D$ would be notated in this way: \hypertarget{extranatural_calculus}{}\subsection*{{Extranatural calculus}}\label{extranatural_calculus} We set down a few basic lemmas which describe how extranatural transformations compose. These lemmas become very intuitive once one draws string diagrams to accompany them. (Cf. ``yanking moves'' in the string diagram calculus of adjunctions.) \begin{ulemma} Let $F \colon C^{op} \times C \to D$ and $G \colon \underbrace{C^{op} \times C \times \cdots \times C^{op} \times C}_{2n} \to D$ be functors. If $\alpha_{x, y_1, \ldots, y_{n-1}, z} \colon F(x, z) \to G(x, y_1, y_1, \ldots, y_{n-1}, y_{n-1}, z)$ is natural in $x,z$ and extranatural in $y_1, \ldots, y_{n-1}$, and $\beta_{y_1, \ldots, y_n} \colon G(y_1, y_1, \ldots, y_n, y_n) \to H$ (for some object $H$ of $D$) is extranatural in $y_1, \ldots, y_n$, then \begin{displaymath} \beta_{\underbrace{x, \ldots, x}_{n}} \alpha_{\underbrace{x, \ldots, x}_{n+1}}: F(x, x) \to H \end{displaymath} is extranatural in $x$. \end{ulemma} \begin{ulemma} Let $G \colon \underbrace{C^{op} \times C \times \cdots \times C^{op} \times C}_{2n} \to D$ and $H \colon C^{op} \times C \to D$ be functors. If $\alpha_{y_1, \ldots, y_n} \colon F \to G(y_1, y_1, \ldots, y_n, y_n)$ (for some object $F$ of $D$) is extranatural in $y_1, \ldots, y_n$, and $\beta_{x, y_1, \ldots, y_{n-1}, z} \colon G(x, y_1, y_1, \ldots, y_{n-1}, y_{n-1} ,z) \to H(x,z)$ is natural in $x, z$ and extranatural in $y_1, \ldots, y_{n-1}$, then \begin{displaymath} \beta_{\underbrace{x, \ldots, x}_{n+1}} \alpha_{\underbrace{x, \ldots, x}_{n}} \colon F \to H(x, x) \end{displaymath} is extranatural in $x$. \end{ulemma} \begin{ulemma} Let $F, H$ be functors of the form $C \to D$, and let $G: \underbrace{C \times C^{op} \times C \times \ldots \times C^{op} \times C}_{2n+1} \to D$ be a functor. If $\alpha_{x, y_1, \ldots, y_n} \colon F(x) \to G(x, y_1, y_1, \ldots, y_n, y_n)$ is natural in $x$ and extranatural in $y_1, \ldots, y_n$, and if $\beta_{y_1, \ldots, y_n, z} \colon G(y_1, y_1, \ldots, y_n, y_n ,z) \to H(z)$, is natural in $z$ and extranatural in $y_1, \ldots, y_n$, then \begin{displaymath} \beta_{\underbrace{x, \ldots, x}_{n+1}} \alpha_{\underbrace{x, \ldots x}_{n+1}}: F(x) \to H(x) \end{displaymath} is natural in $x$. \end{ulemma} In fact, these lemmas essentially capture ``all possible'' ways in which extranatural transformations can be composed. The general statement, which is obtained by combining these, is that if the graphs representing the two transformations can be composed without creating any cycles, then the transformations can be composed. In some detail, if there are no cycles in the composed graph, then it can be shown that each connected components has one of the forms of the compositions in Lemma 1-3. It then follows from the lemmas (and from the fact that extranaturality can be determined by separation of variables) that each connected component can be replaced by a single edge, and the resulting graph defines the type of the composed transformation. This can be found in the original paper about extranatural transformations: \begin{itemize}% \item Eilenberg and Kelly, \emph{A generalization of the functorial calculus}, J. Algebra 3 366--375 (1966) \end{itemize} With the operation of ``loop-free composition,'' extranatural transformations with a given target form a [[paracategory]]. And as we vary the source and target categories, they assemble into an [[extraordinary 2-multicategory]]. \hypertarget{profunctors}{}\subsection*{{Profunctors}}\label{profunctors} One abstract way to describe the structure of extranatural transformations is as an [[extraordinary 2-multicategory]]. Another abstract structure, which arguably arises more naturally in practice (but also includes more data than necessary), is a [[compact closed category|compact closed]] monoidal [[bicategory]], [[double category]], or [[proarrow equipment]]. More should go here, but for now see [[compact closed double category]]. \hypertarget{related_concepts}{}\subsection*{{Related concepts}}\label{related_concepts} \begin{itemize}% \item [[Kelly-Mac Lane graph]] \item [[proof net]] \item [[homotopy]] \item [[transfor]] \begin{itemize}% \item [[natural transformation]] \begin{itemize}% \item \textbf{extranatural transformation}, [[dinatural transformation]] \end{itemize} \item [[pseudonatural transformation]] \begin{itemize}% \item [[pseudo-extranatural transformation]] \end{itemize} \item [[lax natural transformation]] \end{itemize} \item [[end]] \end{itemize} \hypertarget{references}{}\subsection*{{References}}\label{references} \begin{itemize}% \item [[Samuel Eilenberg]] and [[G. M. Kelly]], \emph{A generalization of the functorial calculus}, J. Algebra 3:3, 366--375 (1966). (\href{http://dx.doi.org/10.1016/0021-8693%2866%2990006-8}{doi}) \item [[Max Kelly]], [[Saunders MacLane]], \emph{Coherence in closed categories}, JPAA 1 (1971), 97-140. (\href{http://dx.doi.org/10.1016/0022-4049%2871%2990013-2}{doi}) \end{itemize} [[!redirects extranatural transformations]] [[!redirects extraordinary natural transformation]] [[!redirects extraordinary natural transformations]] [[!redirects extranaturality]] [[!redirects extraordinary naturality]] [[!redirects extranatural]] \end{document}