\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*{comma double category} \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{definitions}{Definitions}\dotfill \pageref*{definitions} \linebreak \noindent\hyperlink{for_virtual_double_categories}{For virtual double categories}\dotfill \pageref*{for_virtual_double_categories} \linebreak \noindent\hyperlink{the_oplaxlax_case}{The oplax/lax case}\dotfill \pageref*{the_oplaxlax_case} \linebreak \noindent\hyperlink{structures_on_a_virtual_comma_double_category}{Structures on a virtual comma double category}\dotfill \pageref*{structures_on_a_virtual_comma_double_category} \linebreak \noindent\hyperlink{examples}{Examples}\dotfill \pageref*{examples} \linebreak \noindent\hyperlink{references}{References}\dotfill \pageref*{references} \linebreak \hypertarget{idea}{}\subsection*{{Idea}}\label{idea} A comma double category is a generalization of a [[comma category]] to [[double categories]] and [[virtual double categories]]. There are two apparently-maximal levels of generality of this construction, which intersect nontrivially but do not coincide. The first is an ordinary [[comma object]] in the 2-category of virtual double categories (which includes as a full sub-2-category the 2-category of pseudo double categories and \emph{lax} functors), which produces another virtual double category. The second is a [[colax/lax comma object]] relative to the 2-monad whose algebras are pseudo double categories. The two constructions intersect in the case of the comma object of a pseudo double functor over a lax one, between pseudo double categories. \hypertarget{definitions}{}\subsection*{{Definitions}}\label{definitions} \hypertarget{for_virtual_double_categories}{}\subsubsection*{{For virtual double categories}}\label{for_virtual_double_categories} For virtual double categories, the comma virtual double category has the universal property of a [[comma object]] in the 2-category of virtual double categories, functors and vertical transformations. Explicitly, it is constructed as follows. Let $C, D, E$ be virtual double categories and $F : C \to E, G : D \to E$ be functors of virtual double categories. The comma double category $F / G$ is defined as \begin{enumerate}% \item Its vertical category is the ordinary comma category $F_v/G_v$ of the vertical components of the functors. We write an object as $A : F A_C \to G A_D$. \item A horizontal arrow $R$ from $A$ to $B$ consists of horizontal arrows $R_C : A_C \to B_C$ and $R_D : A_D \to B_D$ and a 2-cell in $E$ from $F R_C$ to $G R_D$ along $A,B$. \item A 2-cell $\alpha$ from $R_1,\ldots,R_n$ to $S$ consists of a pair of 2-cells $\alpha_C : (R_{1C},\ldots,R_{nC}) \to S_C$ and $\alpha_D : (R_{1D},\ldots,R_{nD}) \to S_D$ such that $G(\alpha_D) \circ (R_1,\ldots,R_n) = S \circ F(\alpha_C)$. \end{enumerate} \hypertarget{the_oplaxlax_case}{}\subsubsection*{{The oplax/lax case}}\label{the_oplaxlax_case} Let $K = Cat^{\rightrightarrows}$ be the 2-category of [[directed graphs]] [[internalization|internal]] to [[Cat]]. There is a [[2-monad]] $T$ on $K$ whose algebras are (pseudo) double categories, and whose lax and colax morphisms are lax and colax double functors respectively. The oplax/lax comma double category is then an [[oplax/lax comma object]] for this 2-monad. \hypertarget{structures_on_a_virtual_comma_double_category}{}\subsection*{{Structures on a virtual comma double category}}\label{structures_on_a_virtual_comma_double_category} Next, we consider what properties are required of the input data (in the virtual case) to determine that a comma virtual double category has units and composites. An analogy with the double category case gives some guidance. Since functors of virtual double categories correspond to \emph{lax} functors of double categories, we don't have any requirements for the functor $G$ on top of $D$ having composites or units. On the other hand, for $F$ to be ``oplax'', we require that it be normal for units or furthermore strong for composites. \begin{uprop} If $C$, $D$ and $E$ have units and $F$ is a normal functor, then $F / G$ has units. \end{uprop} \begin{uprop} If $C$, $D$ and $E$ have composites and $F$ is a strong functor, then $F / G$ has composites. \end{uprop} Next, the comma has restrictions whenever the constituent categories do and the functors preserve them. \begin{uprop} If $C$, $D$ and $E$ have restrictions and $F,G$ preserve them, then $F / G$ has restrictions. \end{uprop} In practice this proof burden can be reduced if we are interested in virtual equipments (i.e. having units and restrictions) because in that case restrictions are automatically preserved. We summarize this as follows: \begin{uprop} If $C, D$ and $E$ are [[virtual equipments]] and $F$ is a normal functor, then $F/G$ is a virtual equipment. \end{uprop} \hypertarget{examples}{}\subsection*{{Examples}}\label{examples} \begin{enumerate}% \item A monad $T$ in the horizontal bicategory of a double category $C$ is equivalent to a lax functor $T : 1 \to C$ from the terminal double category. In this case we might call $Id_C / T$ the [[slice double category]]. \item [[generalized multicategories]] can be constructed using a slice category when the monad $T$ is a [[polynomial monad]]. Specifically, let $C$ be the double category of [[polynomial functors]] in some locally cartesian closed category $E$; then a polynomial monad $T$ on $E$ can be identified with a horizontal monad in $C$ on the [[terminal object]] $1$. The slice $Id_C/T$ is then equivalent to the ``horizontal Kleisli category'' presented in Cruttwell-Shulman; $T$-multicategories are then monads in that comma double category. \item The double category of [[decorated cospans]] is naturally constructed as a comma double category. Given a symmetric lax monoidal functor $F : (C,+) \to (D,\otimes)$, there is an associated lax double functor from $F' : Cospan(C) \to BD$ where $BD$ is the [[delooping]] of $D$ into a double category whose horizontal category is $D$ and vertical category is the terminal category. Then there is a colax (pseudo even) double functor $* : 1 \to BD$ that picks out the unique object of $BD$. Then the double category of decorated cospans is $*/F'$. \item [[poset-valued sets]] given by an endofunctor $F$ on $Rel$ and a poset $P$ can be viewed as the comma double category from $F$ to $P$, since a poset is a monad in $Rel$, and $F$ is a colax endofunctor of $Rel$. The ``morphisms'' of poset-valued sets are the \emph{horizontal} morphisms in the resulting comma double category. \item The [[Dialectica construction]] associated to an internal poset $\Omega$ in a monoidal category $C$ with pullbacks can be obtained as a comma double category. Let $Span(C)$ be the double category whose horizontal morphisms are spans in $C$, regard $C\times C^{op}$ as a double category in the horizontal direction, and let $F: C\times C^{op} \to Span(C)$ be the colax functor defined on objects by $(A,B) \mapsto A\otimes B$ and taking the pair $(f,g) : (A_1,B_1) \to (A_2,B_2)$ (so that $f:A_1\to A_1$ and $g:B_2\to B_1$) to the span $A_1\otimes B_1 \xleftarrow{1\otimes g} A_1\otimes B_2 \xrightarrow{f\otimes 1} A_2\otimes B_2$. The internal poset $\Omega$ is a monad in $Span(C)$, so we have a comma double category $F/\Omega$, whose horizontal category is the Dialectica construction $Dial(C,\Omega)$. \item The [[double gluing]] construction relative to a pair of functors $L:C\to E$ and $K:C\to E^{op}$ can be phrased as a comma double category of the cospan $C \xrightarrow{(L,K)} \mathbb{C}hu(E,1) \leftarrow Chu(E,1)$, where $C$ and $Chu(E,1)$ are regarded as vertically discrete double categories and $\mathbb{C}hu(E,1)$ is the [[double Chu construction]]. To obtain the relevant monoidal structures we can consider this instead to be a comma object in [[double polycategories]]. \end{enumerate} \hypertarget{references}{}\subsection*{{References}}\label{references} An explicit description of the comma double category from an oplax to a lax functor is given in \begin{itemize}% \item [[Kenny Courser]], \emph{A bicategory of decorated cospans} (\href{https://arxiv.org/abs/1605.08100}{arxiv}) \end{itemize} [[!redirects comma double categories]] [[!redirects comma virtual double category]] [[!redirects comma virtual double categories]] \end{document}