\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*{strict 2-limit} \hypertarget{context}{}\subsubsection*{{Context}}\label{context} \hypertarget{2category_theory}{}\paragraph*{{2-Category theory}}\label{2category_theory} [[!include 2-category theory - contents]] \hypertarget{limits_and_colimits}{}\paragraph*{{Limits and colimits}}\label{limits_and_colimits} [[!include infinity-limits - contents]] \hypertarget{contents}{}\section*{{Contents}}\label{contents} \noindent\hyperlink{idea}{Idea}\dotfill \pageref*{idea} \linebreak \noindent\hyperlink{classification}{Classification}\dotfill \pageref*{classification} \linebreak \noindent\hyperlink{pseudo_limits_and_homotopy_limits}{Pseudo limits and homotopy limits}\dotfill \pageref*{pseudo_limits_and_homotopy_limits} \linebreak \noindent\hyperlink{examples}{Examples}\dotfill \pageref*{examples} \linebreak \noindent\hyperlink{references}{References}\dotfill \pageref*{references} \linebreak \hypertarget{idea}{}\subsection*{{Idea}}\label{idea} In general, a \emph{2-limit} is the sort of limit appropriate in a (weak) [[2-category]]. See [[2-limit]] for details. However, when we happen to be in a [[strict 2-category]] we also have another notion at our disposal. Since strict 2-categories are just categories [[enriched category|enriched]] over [[Cat]], we can apply the usual notions of [[weighted limit]]s in enriched categories verbatim. (Historically, these were called \emph{2-limits} while the up-to-isomorphism limits were called \emph{bilimits}.) Because enriched category theory doesn't know anything about the 2-categorical nature of Cat, the resulting limits can have cones that commute strictly and have universal properties expressed by isomorphisms of categories; thus they can violate the [[principle of equivalence]]. However, such strict limits often turn out to be technically useful even if we are fundamentally only interested in the non-strict notions, since in many strict 2-categories we can use tools of enriched category theory to construct strict limits, and then by considering suitably strict limits in accord with the [[principle of equivalence]] we can construct (non-strict) limits. This is reminiscent of the use of strict structures in [[homotopy theory]] as a tool to get at weak ones, and in fact a precise comparison can be made (see below). \hypertarget{classification}{}\subsection*{{Classification}}\label{classification} By a \textbf{limit} we will mean the fully 2-categorical notion described at [[2-limit]], in which cones commute up to isomorphism and the universal property is expressed by an equivalence of categories. It just occured to me that `strict initial object' conflicts with this. But unlike `weak limit', that doesn't generalise very far. Heh, you're right. I suppose we could try calling strict initial objects \emph{stable initial objects}, which would make more sense anyway since they are really the 0-ary version of a stable coproduct. But there's probably not likely to be any real confusion created by the two uses of strict. \begin{itemize}% \item A \textbf{strict 2-limit} (or just \emph{strict limit}) in a strict 2-category is just a [[Cat]]-enriched (weighted) limit. This means that its cones must commute strictly (although weakness can be built in via the weighting, see below), and its universal property is expressed by an isomorphism of categories. Note that a strict limit is not necessarily a limit, because it may violate the [[principle of equivalence]]. (cf. [[red herring principle]].) \item A \textbf{pseudo limit} (or \emph{strict pseudo limit} if it is necessary to emphasize the strictness) is a limit whose cones commute up to coherent 2-cell isomorphism, but whose universal property can still be expressed by an \emph{isomorphism} of categories. For any weight $W$, there is another weight $W'$ (a [[cofibrant replacement]] of $W$) such that pseudo $W$-weighted limits are equivalent to strict $W'$-weighted ones. The idea is that $W'$ includes explicitly all the extra isomorphisms in a pseudo $W$-cone. Since any isomorphism of categories is \emph{a fortiori} an equivalence of categories, any pseudo limit is also a limit. \item A \textbf{strict lax limit} is a limit whose cones commute only up to a coherent transformation in one direction, but again whose universal property is expressed by an isomorphism. Likewise we have \textbf{strict oplax limits} where the transformation goes in the other direction. Strict lax and oplax limits can also be rephrased as strict (non-lax) limits for a different weight. As in the pseudo case, any strict (op)lax limit is also an (op)lax limit. \end{itemize} More generally, any strict limit respects the [[principle of equivalence]] (one which doesn't demand equality of objects) will also be a limit. Two formal versions of this statement involve [[flexible limit]]s and the more restrictive [[PIE-limit]]s. In particular, any strict flexible limit is also a limit. Since pseudo limits are PIE-limits, it follows that any strict 2-category which admits (strict) PIE-limits also admits all limits, even if it fails to admit some equivalence-violatiing strict limits. The category of algebras and pseudo morphisms for any [[2-monad]], such as [[MonCat]], is a good example of a 2-category having strict PIE-limits but not all strict limits. \hypertarget{pseudo_limits_and_homotopy_limits}{}\subsection*{{Pseudo limits and homotopy limits}}\label{pseudo_limits_and_homotopy_limits} If there is a [[model category]] structure on the 1-category underlying the given strict 2-category $C$, then in addition to whatever 2-categorical notions of limit exist in $C$, there is the notion of [[homotopy limit]]s in $C$. If $C$ is a [[model 2-category]] with the ``trivial'' or ``natural'' model structure constructed in (Lack 2006), then these two notions coincide (Gambino 2007). For example, this is the case in [[Cat]] and [[Grpd]], so the examples listed at [[homotopy limit]] are also examples of pseudo limits. In general, homotopy limits in a model 2-category give (non-strict) limits in its ``homotopy 2-category.'' \hypertarget{examples}{}\subsection*{{Examples}}\label{examples} Any ordinary 1-limit can be made into a strict 2-limit simply by boosting up its ordinary universal property (a bijection of sets) to an isomorphism of hom-categories. Thus we have strict products, strict pullbacks, strict equalizers, and so on. Of these, strict products (including terminal objects) respect the [[principle of equivalence]] (and thus are also limits), while others such as pullbacks and equalizers tend to violate the [[principle of equivalence]]. \begin{itemize}% \item For example, a strict terminal object is an object 1 such that $K(X,1)$ is \emph{isomorphic} to the [[terminal category]], for any object $X$. \item Likewise, a strict product of $A$ and $B$ is an object $A\times B$ with projections $p:A\times B\to A$ and $q:A\times B\to B$ such that (1) given any $f:X\to A$ and $g:X\to B$, there exists a unique $h:X\to A\times B$ such thath $p h = f$ and $q h = g$ (equal, not isomorphic), and (2) given any $h,k:X\to A\times B$ and $\alpha: p h \to p k$ and $\beta:q h \to q k$, there exists a unique $\gamma:h\to k$ such that $p\gamma = \alpha$ and $q\gamma =\beta$. \end{itemize} As mentioned above, adding \textbf{pseudo} in front of an ordinary limit has a precise meaning: it means that all the triangles in the limit cone now commute up to specified isomorphism, and the universal property is still expressed by an isomorphism of categories. In particular, there is still a specified projection to \emph{each} object in the diagram. For example: \begin{itemize}% \item The \textbf{pseudo [[pullback]]} of a cospan $A \overset{f}{\to} C \overset{g}{\leftarrow} B$ is a universal object $P$ equipped with projections $p:P\to A$, $q:P\to B$, and $r:P\to C$ and 2-cell isomorphisms $f p \cong r$ and $g q \cong r$. \item The \textbf{pseudo [[equalizer]]} of a pair of arrows $f,g:A\rightrightarrows B$ is a universal object $E$ equipped with morphisms $h:E\to A$ and $k:E\to B$ and 2-cell isomorphisms $f h \cong k$ and $g h \cong k$. \end{itemize} These are to be distinguished from: \begin{itemize}% \item The \textbf{iso-[[comma object]]} of $A \overset{f}{\to} C \overset{g}{\leftarrow} B$ is a universal object $P$ equipped with projections $p:P\to A$ and $q:P\to B$ and a 2-cell isomorphism $f p \cong g q$. \item The \textbf{iso-[[inserter]]} of $f,g:A\rightrightarrows B$ is a universal object $E$ equipped with a morphism $e:E\to A$ and a 2-cell isomorphism $f e \cong g e$. \end{itemize} The pseudo pullback, pseudo equalizer, iso-comma object, and iso-inserter are all strict Cat-weighted limits; their universal property is expressed by an isomorphism of categories. Usually the pseudo pullback and iso-comma object are not isomorphic, and likewise the pseudo equalizer and iso-inserter are not isomorphic. However, both the pseudo pullback and iso-comma object respect the [[principle of equivalence]] and represent a pullback; therefore they are \emph{equivalent} when they both exist. Likewise, the pseudo equalizer and iso-inserter both represent an equalizer, and are equivalent when they both exist. If one is mostly interested in (non-strict) limits, then there is little harm in using ``pseudo pullback'' to mean ``iso-comma object'' or ``pullback,'' as is common in the literature. However, with \emph{lax} limits the situation is more serious. Speaking precisely, in the \emph{lax} version of a limit, the triangles in the limiting cone are made to commute up to a specified transformation in one direction, but there are still specified projections to \emph{each} object in the diagram. For example: \begin{itemize}% \item The \textbf{strict lax limit of an arrow} $f:A\to B$ is a universal object $L$ equipped with projections $p:L\to A$ and $q:L\to B$ and a 2-cell $f p \to q$. \item The \textbf{strict lax pullback} of a cospan $A \overset{f}{\to} C \overset{g}{\leftarrow} B$ is a universal object $P$ equipped with projections $p:P\to A$, $q:P\to B$, $r:P\to C$, and 2-cells $f p \to r$ and $g q \to r$. \end{itemize} In particular, the strict lax pullback is quite different from the following more common limit. \begin{itemize}% \item The \textbf{comma object} of a cospan $A \overset{f}{\to} C \overset{g}{\leftarrow} B$ is a generalization of the [[comma category]] in $Cat$; it is a universal object $(f/g)$ equipped with projections $p:(f/g)\to A$ and $q:(f/g)\to B$ and a 2-cell $f p \to g q$. \end{itemize} Even in their non-strict forms, the lax pullback and comma object are distinct. Usually the comma object is the more important one, but calling it a ``lax pullback'' should be avoided. Here are some more important examples of 2-limits, all of which come in strict and weak forms and respect the [[principle of equivalence]]. \begin{itemize}% \item The \textbf{[[inserter]]} of a pair of parallel arrows $f,g:A \;\rightrightarrows\; B$ is a universal object $I$ equipped with a map $i:I\to A$ and a 2-cell $f i \to g i$. \item The \textbf{[[equifier]]} of a pair of parallel 2-cells $\alpha,\beta: f\to g: A\to B$ is a universal object $E$ equipped with a map $e:E\to A$ such that $\alpha e = \beta e$. \item The \textbf{[[inverter]]} of a 2-cell $\alpha:f\to g:A\to B$ is a universal object $V$ with a map $v:V\to A$ such that $\alpha v$ is invertible. \item The \textbf{[[power]]} of an object $A$ by a category $C$ is a universal object $A^C$ equipped with a functor $C\to K(A^C,A)$. \end{itemize} \hypertarget{references}{}\subsection*{{References}}\label{references} \begin{itemize}% \item [[Ross Street]], \emph{Limits indexed by category-valued 2-functors} \item [[Max Kelly]], \emph{Elementary observations on 2-categorical limits} \item [[Steve Lack]], \emph{A 2-categories companion} (\href{http://arxiv.org/abs/math.CT/0702535}{arXiv:math.CT/0702535}) \item [[Steve Lack]], \emph{Homotopy theoretic aspects of 2-monads} (\href{http://www.arxiv.org/abs/math.CT/0607646}{arXiv:math.CT/0607646}). \item [[Nicola Gambino]], \emph{Homotopy limits for 2-categories} (\href{http://www1.maths.leeds.ac.uk/~pmtng/Publications/homotopy.pdf}{pdf}) \end{itemize} [[!redirects strict 2-limits]] [[!redirects strict 2-colimit]] [[!redirects strict 2-colimits]] \end{document}