\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*{string diagram} \hypertarget{context}{}\subsubsection*{{Context}}\label{context} \hypertarget{monoidal_categories}{}\paragraph*{{Monoidal categories}}\label{monoidal_categories} [[!include monoidal categories - contents]] \hypertarget{category_theory}{}\paragraph*{{Category theory}}\label{category_theory} [[!include category theory - contents]] \hypertarget{higher_category_theory}{}\paragraph*{{Higher category theory}}\label{higher_category_theory} [[!include higher category theory - contents]] \hypertarget{string_diagrams}{}\section*{{String diagrams}}\label{string_diagrams} \noindent\hyperlink{overview}{Overview}\dotfill \pageref*{overview} \linebreak \noindent\hyperlink{relation_to_commutative_diagrams}{Relation to commutative diagrams}\dotfill \pageref*{relation_to_commutative_diagrams} \linebreak \noindent\hyperlink{variations}{Variations}\dotfill \pageref*{variations} \linebreak \noindent\hyperlink{related_concepts}{Related concepts}\dotfill \pageref*{related_concepts} \linebreak \noindent\hyperlink{references}{References}\dotfill \pageref*{references} \linebreak \noindent\hyperlink{introductory_material}{Introductory material}\dotfill \pageref*{introductory_material} \linebreak \noindent\hyperlink{software}{Software}\dotfill \pageref*{software} \linebreak \noindent\hyperlink{OriginalArticles}{Original articles}\dotfill \pageref*{OriginalArticles} \linebreak \noindent\hyperlink{surveys}{Surveys}\dotfill \pageref*{surveys} \linebreak \noindent\hyperlink{details}{Details}\dotfill \pageref*{details} \linebreak \hypertarget{overview}{}\subsection*{{Overview}}\label{overview} \emph{String diagrams} are a graphical calculus for expressing operations in a [[monoidal category]]. The idea is roughly to think of objects in a monoidal category as ``strings'' and a morphism from one tensor product to another as a node which the source strings enter and the target strings exit. Further structure on the monoidal category is encoded in geometrical properties on these strings. For instance \begin{itemize}% \item putting strings next to each other denotes the monoidal product, and having no string at all denotes the unit; \item braiding strings over each other corresponds to -- yes, the [[braided monoidal category|braiding]] (if any); \item bending strings around corresponds to dualities on [[dualizable object]]s (if any). \end{itemize} Many operations in monoidal categories that look rather unenlightening in symbols become very obvious in string diagram calculus, such as the [[trace]]: an output wire gets bent around and connects to an input. \hypertarget{relation_to_commutative_diagrams}{}\subsection*{{Relation to commutative diagrams}}\label{relation_to_commutative_diagrams} String diagrams can be seen as dual (in the sense of [[Poincaré duality]]) to commutative diagrams. For instance, in a 2-category, the string diagram for a 2-cell can be obtained as follows: $\backslash$begin\{centre\} $\backslash$begin\{tikzpicture\}every node/.style=\{node distance=1.5cm\} $\backslash$usetikzlibrary\{calc,automata\} $\backslash$node (a) \{$A$\}; $\backslash$node\href{b}{above right of=a} \{$B$\}; $\backslash$node\href{c}{right of=b} \{$C$\}; $\backslash$node at ($(b) !.5! (c)$) (bc) \{\}; $\backslash$node\href{d}{below right of=c} \{$D$\}; $\backslash$node\href{e}{below of=bc,node distance=1.875cm} \{$E$\}; $\backslash$draw\href{a}{-{\tt \symbol{62}}} edge nodeabove left \{$f$\} (b); $\backslash$draw\href{b}{-{\tt \symbol{62}}} edge nodeabove \{$g$\} (c); $\backslash$draw\href{c}{-{\tt \symbol{62}}} edge nodeabove right \{$h$\} (d); $\backslash$draw\href{a}{-{\tt \symbol{62}}} edge nodebelow \{$k$\} (e); $\backslash$draw\href{e}{-{\tt \symbol{62}}} edge nodebelow \{$l$\} (d); $\backslash$node\href{double}{below of=bc,node distance=0.9cm} \{$\backslash$large $\Downarrow \alpha$\}; $\backslash$node\href{egal}{right of=d} \{$\backslash$large $\mapsto$\}; $\backslash$tikzstyle\{point\}=circle,draw,fill,inner sep=1pt; $\backslash$node\href{centre}{right of=egal,node distance=3cm,point} \{\}; $\backslash$draw ($(centre)-(1.5,1.5)$) rectangle ($(centre)+(1.5,1.5)$); \% Points $\backslash$tikzstyle\{label\}=node distance=0.3cm $\backslash$nodeinner sep=0pt at ($(centre)+(-1,1.52)$) (h) \{\}; $\backslash$nodeinner sep=0pt at ($(centre)+(0,1.52)$) (g) \{\}; $\backslash$nodeinner sep=0pt at ($(centre)+(1,1.52)$) (f) \{\}; $\backslash$nodeinner sep=0pt at ($(centre)+(-0.5,-1.52)$) (l) \{\}; $\backslash$nodeinner sep=0pt at ($(centre)+(0.5,-1.52)$) (k) \{\}; $\backslash$nodeabove of=h,label \{$h$\}; $\backslash$nodeabove of=g,label \{$g$\}; $\backslash$nodeabove of=f,label \{$f$\}; $\backslash$nodebelow of=l,label \{$l$\}; $\backslash$nodebelow of=k,label \{$k$\}; $\backslash$noderight of=centre,label \{$\alpha$\}; \% Edges $\backslash$draw\href{f}{thick} edge\href{centre}{bend left}; $\backslash$draw\href{h}{thick} edge\href{centre}{bend right}; $\backslash$draw\href{l}{thick} edge\href{centre}{bend left}; $\backslash$draw\href{k}{thick} edge\href{centre}{bend right}; $\backslash$draw\href{g}{thick} -- (centre); \% Regions $\backslash$tikzstyle\{region\}=node distance=0.9cm $\backslash$nodebelow of=centre,region \{$E$\}; $\backslash$nodeleft of=centre,region \{$D$\}; $\backslash$noderight of=centre,region \{$A$\}; $\backslash$nodebelow left of=f,region \{$B$\}; $\backslash$nodebelow right of=h,region \{$C$\}; $\backslash$end\{tikzpicture\} $\backslash$end\{centre\} String diagrams for monoidal categories can be obtained in the same way, by considering a monoidal category as a 2-category with a single object. \hypertarget{variations}{}\subsection*{{Variations}}\label{variations} There are many additional structures on monoidal categories, or similar structures, which can usually be represented by encoding further geometric properties. For instance: \begin{itemize}% \item in monoidal categories which are \emph{[[ribbon category|ribbon categories]]} the strings from above behave as if they have a small transversal extension which makes them behave as ribbons. Accordingly, there is a \emph{twist} operation in the axioms of a ribbon category and graphically it corresponds to twisting the ribbons by 360 degrees. \item in a [[traced monoidal category]], the trace can be represented by bending an output string around to connect to an input, even though if the objects are not dualizable the individual ``bends'' do not represent anything. \item in monoidal categories which are \emph{[[spherical category|spherical]]} all strings behave as if drawn on a sphere. \item in a [[hypergraph category]], the string diagrams are labeled [[hypergraphs]]. \item string diagrams can be extended to represent [[monoidal functors]] in several ways. One nice way is described in \href{http://web.science.mq.edu.au/~mmccurdy/cms2010talk.pdf}{these slides}, and can also be done with ``3D regions'' as drawn \href{http://golem.ph.utexas.edu/category/2010/08/the_geometry_of_monoidal_fibra.html#c034428}{here}. \item there is also a string diagram calculus for [[bicategories]], which extends that for monoidal categories regarded as one-object bicategories. Thus, the strings now represent 1-cells and the nodes 2-cells, leaving the two-dimensional planar regions cut out by the strings to represent the 0-cells. This makes it manifest that in general, string diagram notation is \emph{Poincar\'e{} dual} to the [[globe|globular]] notation: where one uses $d$-dimensional symbols, the other uses $(2-d)$-dimensional symbols. \item string diagrams for bicategories can be generalized to string diagrams for [[double categories]] and [[proarrow equipments]] by distinguishing between ``vertical'' and ``horizontal'' strings. \item Similarly, one can [[categorification|categorify]] this to ``[[surface diagrams]]'' for [[3-categories]] (including [[monoidal bicategories]]) and so on; see for instance [[toddtrimble:Surface diagrams|here]]. \item As explained \href{http://sbseminar.wordpress.com/2007/07/12/the-operadic-periodic-table/}{here}, in the presence of certain levels of duality it may be better to work with diagrams on cylinders or spheres rather than in boxes. This relates to [[planar algebras]] and [[canopolis|canopolises]]. \item A string diagram calculus for [[monoidal fibrations]] can be obtained as a generalization of C.S. Peirce's ``existential graphs.'' The ideas are essentially contained in (\hyperlink{BradyTrimble98}{Brady-Trimble 98}) and developed in (\hyperlink{PontoShulman12}{Ponto-Shulman 12}), and was discussed \href{http://golem.ph.utexas.edu/category/2010/08/the_geometry_of_monoidal_fibra.html}{here}. \item String diagrams for [[closed monoidal categories]] (see also at \emph{[[Kelly-Mac Lane graph]]}) are similar to those for [[autonomous categories]], but a bit subtler, involving ``boxes'' to separate parts of the diagram. They were used informally by Baez and Stay \hyperlink{BaezQG06}{here} and \hyperlink{Rosetta}{here}, but can also be done in essentially the same way as the [[proof nets]] used in [[intuitionistic logic|intuitionistic]] [[linear logic]]; see \hyperlink{Lamarche08}{Lamarche}. \item Proof nets for [[classical mathematics|classical]] [[linear logic]] similarly give string diagrams for [[\emph{-autonomous categories]], or more generally [[linearly distributive categories]]; see \hyperlink{BCST}{Blute-Cockett-Seely-Trimble}.} \end{itemize} See the article by Selinger below for more examples. \hypertarget{related_concepts}{}\subsection*{{Related concepts}}\label{related_concepts} \begin{itemize}% \item [[sharing graph]] \item [[surface diagram]] \item [[Kelly-Mac Lane diagram]] \item [[proof net]] \item [[Feynman diagram]] \item [[tensor network]], \item [[neural network]] \item [[linguistics|natural language syntax]] \end{itemize} \hypertarget{references}{}\subsection*{{References}}\label{references} \hypertarget{introductory_material}{}\subsubsection*{{Introductory material}}\label{introductory_material} \begin{itemize}% \item [[John Baez]], QG Seminar Fall 2000 (\href{http://math.ucr.edu/home/baez/qg-fall2000/}{web}), Winter 2001 (\href{http://math.ucr.edu/home/baez/qg-winter2001/}{web}), Fall 2006 (\href{http://math.ucr.edu/home/baez/qg-fall2006/index.html#computation}{web}). \item John Baez and Mike Stay, \emph{Physics, Topology, Logic and Computation: A Rosetta Stone}, \href{http://arxiv.org/abs/0903.0340}{arXiv} \item The Catsters (Simon Willerton), \emph{String diagrams} (\href{http://www.youtube.com/view_play_list?p=50ABC4792BD0A086}{YouTube}) \end{itemize} The higher dimensional string diagrams (``zoom complexes'' (\hyperlink{KockJoyalBataninMascari07}{Kock-Joyal-Batanin-Mascari 07})) used for presenting [[opetopes]] in the context of [[opetopic type theory]] are introduced in \begin{itemize}% \item [[Eric Finster]], \emph{Opetopic Diagrams 1 - Basics} (\href{http://www.youtube.com/watch?v=OANwLohwJqk}{video}) \item [[Eric Finster]], \emph{Opetopic Diagrams 2 - Geometry} (\href{http://www.youtube.com/watch?v=E7OvuA1jRKM}{video}) \end{itemize} \hypertarget{software}{}\subsubsection*{{Software}}\label{software} \begin{itemize}% \item [[Globular]] is a web-based proof assistant for finitely-presented semistrict globular higher categories. It allows one to formalize higher-categorical proofs in finitely-presented n-categories and visualize them as string diagrams. \end{itemize} \hypertarget{OriginalArticles}{}\subsubsection*{{Original articles}}\label{OriginalArticles} [[Günter Hotz]] introduced ``plane nets'' (=string diagrams) and their categories in his 1965 habilitation thesis. This seems to be the first formal definition of string diagrams in the literature. String diagrams appeared first in [[Max Kelly]] and Laplaza's paper on [[coherence theorem for monoidal categories|coherence for compact closed categories]] \begin{itemize}% \item [[Max Kelly]] and M. L. Laplaza, \emph{Coherence for compact closed categories}. Journal of Pure and Applied Algebra, 19:193--213, 1980. \end{itemize} Where in Kelly-Laplaza do string diagrams appear? I can't find any picture of a string diagram in the paper. Perhaps they are described somewhere in the text, but I can't see it. and again in [[Ross Street]]`s work with [[André Joyal]] in the mid-80's: \begin{itemize}% \item [[Andre Joyal]] and [[Ross Street]], \emph{The geometry of tensor calculus I}, Advances in Math. 88 (1991) 55-112; MR92d:18011. (\href{http://tqft.net/other-papers/Geometry%20of%20Tensor%20Calculus%20-%20Joyal%20&%20Street.pdf}{pdf}) \item [[Andre Joyal]] and [[Ross Street]], \emph{The geometry of tensor calculus II}. (\href{http://www.math.mq.edu.au/~street/GTCII.pdf}{pdf}. \end{itemize} An early amplification of the use of string-diagram notation as an alternative for the traditional index-calculus for [[tensors]] is due to [[Roger Penrose]]. \begin{itemize}% \item [[Roger Penrose]], \emph{Applications of negative dimensional tensors} , in Combinatorial Mathematics and its Applications, Academic Press (1971) (\href{http://www2.math.uic.edu/~kauffman/Penrose.pdf}{pdf}) \end{itemize} Probably [[David Yetter]] was the first (at least in public) to write them with ``coupons'' (a term used by [[Nicolai Reshitikhin]] and [[Turaev]] a few months later) to represent maps which are not inherent in the (braided or symmetric compact closed) monoidal structure. See also these: \begin{itemize}% \item [[Peter Freyd]], [[David Yetter]], \emph{Braided compact closed categories with applications to low dimensional topology} Advances in Mathematics, 77:156--182, 1989. \item [[Peter Freyd]] and [[David Yetter]], \emph{Coherence theorems via knot theory}. Journal of Pure and Applied Algebra, 78:49--76, 1992. \item [[David Yetter]], \emph{Framed tangles and a theorem of Deligne on braided deformations of tannakian categories} In M. Gerstenhaber and [[Jim Stasheff]] (eds.) \emph{Deformation Theory and Quantum Groups with Applications to Mathematical Physics}, Contemporary Mathematics 134, pages 325--349. Americal Mathematical Society, 1992. \end{itemize} For more on the history of the notion see the bibliography in (\hyperlink{Selinger}{Selinger 09}). \hypertarget{surveys}{}\subsubsection*{{Surveys}}\label{surveys} \begin{itemize}% \item [[Peter Selinger]], \emph{A survey of graphical languages for monoidal categories} (\href{http://arxiv.org/abs/0908.3347}{arXiv:0908.334}) \end{itemize} \begin{itemize}% \item [[Ross Street]], \href{http://www.mta.ca/~cat-dist/CT95Docs/LowDim.ps}{Low dimensional topology and higher-order categories} -- talks about surface diagrams and includes some pictures (PS version only). \item Ross Street, ``Categorical structures'' -- discusses string diagrams for bicategories. \item Some philosophical discussion is given in section 10.4 of [[David Corfield]], \emph{Towards a Philosophy of Real Mathematics}, CUP, 2003. \end{itemize} \hypertarget{details}{}\subsubsection*{{Details}}\label{details} String diagrams for [[monoidal categories]] are discussed in \begin{itemize}% \item [[Andre Joyal]] and [[Ross Street]], \emph{The geometry of tensor calculus I}, Advances in Math. 88 (1991) 55-112; MR92d:18011. (\href{http://tqft.net/other-papers/Geometry%20of%20Tensor%20Calculus%20-%20Joyal%20&%20Street.pdf}{pdf}) \item [[Andre Joyal]] and [[Ross Street]], \emph{The geometry of tensor calculus II}. (\href{http://www.math.mq.edu.au/~street/GTCII.pdf}{pdf}. \item [[Andre Joyal]] and [[Ross Street]], \emph{Planar diagrams and tensor algebra}, available \href{http://www.math.mq.edu.au/~street/PlanarDiags.pdf}{here}. \end{itemize} For [[1-categories]] in \begin{itemize}% \item [[Dan Marsden]], \emph{Category Theory Using String Diagrams}, (\href{https://arxiv.org/abs/1401.7220}{arXiv:1401.7220}). \end{itemize} (therein: many explicit calculations, colored illustrations, avoiding the common practice of indicating 0-cells by non-filled circles) For [[traced monoidal categories]] in \begin{itemize}% \item [[Andre Joyal]], [[Ross Street]] and [[Dominic Verity|Verity]], \emph{Traced monoidal categories}. \item David I. Spivak, Patrick Schultz, Dylan Rupel, \emph{String diagrams for traced and compact categories are oriented 1-cobordisms}, \href{https://arxiv.org/abs/1508.01069}{arxiv} \end{itemize} For [[closed monoidal categories]] in \begin{itemize}% \item [[John Baez]], Quantum Gravity Seminar - Fall 2006. $<$http://math.ucr.edu/home/baez/qg-fall2006/index.html\#computation{\tt \symbol{62}} \end{itemize} \begin{itemize}% \item [[John Baez]] and [[Mike Stay]], \emph{Physics, Topology, Logic and Computation: A Rosetta Stone}, \href{https://arxiv.org/abs/0903.0340}{arxiv} \item Francois Lamarche, \emph{Proof Nets for Intuitionistic Linear Logic: Essential nets}, 2008 \href{http://hal.inria.fr/docs/00/34/73/36/PDF/prfnet1.pdf}{pdf} \end{itemize} \begin{itemize}% \item Ralf Hinze, \emph{Kan Extensions for Program Optimisation, Or: Art and Dan Explain an Old Trick}, \href{http://www.cs.ox.ac.uk/ralf.hinze/Kan.pdf}{pdf} \end{itemize} For [[biclosed monoidal categories]] in \begin{itemize}% \item [[Bob Coecke]], Edward Grefenstette, and [[Mehrnoosh Sadrzadeh]], \emph{Lambek vs. Lambek: Functorial vector space semantics and string diagrams for Lambek calculus}, 2013 \href{https://www.sciencedirect.com/science/article/pii/S0168007213000626}{link} \end{itemize} For [[linearly distributive categories]] in \begin{itemize}% \item [[Richard Blute]] and [[Robin Cockett]] and [[R.A.G. Seely]] and [[Todd Trimble]], \emph{Natural deduction and coherence for weakly distributive categories.} \end{itemize} For [[indexed monoidal categories]] in \begin{itemize}% \item Geraldine Brady, [[Todd Trimble]], \emph{[[A string diagram calculus for predicate logic]]} (1998) \item [[Kate Ponto]], [[Michael Shulman]], \emph{Duality and traces for indexed monoidal categories}, Theory and Applications of Categories, Vol. 26, 2012, No. 23, pp 582-659 (\href{http://arxiv.org/abs/1211.1555}{arXiv:1211.1555}) \end{itemize} The generalization of string diagrams to one dimension higher is discussed in \begin{itemize}% \item [[Todd Trimble]], \emph{\href{/toddtrimble/published/Surface+diagrams}{Surface diagrams}} \item [[John Barrett]], [[Catherine Meusburger]], [[Gregor Schaumann]], \emph{Gray categories with duals and their diagrams}, available \href{http://arxiv.org/abs/1211.0529}{here}. \end{itemize} The generalization to arbitrary dimension in terms of [[opetope|opetopic]] ``zoom complexes'' is due to \begin{itemize}% \item [[Joachim Kock]], [[André Joyal]], [[Michael Batanin]], [[Jean-François Mascari]], \emph{Polynomial functors and opetopes} (\href{http://arxiv.org/abs/0706.1033}{arXiv:0706.1033}) \end{itemize} Discussion for [[double categories]] and [[2-category equipped with proarrows|pro-arrow equipments]] is in \begin{itemize}% \item David Jaz Myers, \emph{String Diagrams For Double Categories and (Virtual) Equipments} (\href{https://arxiv.org/abs/1612.02762}{arXiv:1612.02762}) \end{itemize} See also at \emph{[[opetopic type theory]]}. [[!redirects string diagrams]] [[!redirects circuit diagram]] [[!redirects circuit diagrams]] [[!redirects graphical calculus]] \end{document}