\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*{subobject} \hypertarget{context}{}\subsubsection*{{Context}}\label{context} \hypertarget{category_theory}{}\paragraph*{{Category theory}}\label{category_theory} [[!include category theory - contents]] \hypertarget{subobjects}{}\section*{{Subobjects}}\label{subobjects} \noindent\hyperlink{definition}{Definition}\dotfill \pageref*{definition} \linebreak \noindent\hyperlink{as_classes_of_monomorphisms}{As classes of monomorphisms}\dotfill \pageref*{as_classes_of_monomorphisms} \linebreak \noindent\hyperlink{in_terms_of_over_categories}{In terms of over categories}\dotfill \pageref*{in_terms_of_over_categories} \linebreak \noindent\hyperlink{generalizations}{Generalizations}\dotfill \pageref*{generalizations} \linebreak \noindent\hyperlink{properties}{Properties}\dotfill \pageref*{properties} \linebreak \noindent\hyperlink{the_poset_of_subobjects}{The poset of subobjects.}\dotfill \pageref*{the_poset_of_subobjects} \linebreak \noindent\hyperlink{LimitsAndColimits}{Limits and colimits of subobjects}\dotfill \pageref*{LimitsAndColimits} \linebreak \noindent\hyperlink{comparison_with_the_notion_of_subset}{Comparison with the notion of ``subset''}\dotfill \pageref*{comparison_with_the_notion_of_subset} \linebreak \noindent\hyperlink{Examples}{Examples}\dotfill \pageref*{Examples} \linebreak \noindent\hyperlink{related_concepts}{Related concepts}\dotfill \pageref*{related_concepts} \linebreak \noindent\hyperlink{references}{References}\dotfill \pageref*{references} \linebreak \hypertarget{definition}{}\subsection*{{Definition}}\label{definition} \hypertarget{as_classes_of_monomorphisms}{}\subsubsection*{{As classes of monomorphisms}}\label{as_classes_of_monomorphisms} A \textbf{subobject} of an [[object]] $c$ in a [[category]] $C$ is an [[isomorphism]] class of [[monomorphisms]] \begin{displaymath} i: a \hookrightarrow c \end{displaymath} into $c$. (Two morphisms $i: a \to c$, $j: b \to c$ are \emph{isomorphic} if there exists an isomorphism $k: a \to b$ such that $i = j k$.) Monos into an object $c$ are [[preorder|preordered]] by a relation \begin{displaymath} (i: a \to c) \leq (j: b \to c) \end{displaymath} defined by the condition that there exists $k: a \to b$ such that $i = j k$. (There is at most one such $k$ since $j$ is monic, and such $k$ is monic since $i$ is monic.) A subobject of $c$ may equivalently be defined as an element of the [[poset]]al reflection $Sub(c)$ of this preorder. \hypertarget{in_terms_of_over_categories}{}\subsubsection*{{In terms of over categories}}\label{in_terms_of_over_categories} Let $C_c$ be the [[full subcategory]] of the [[over category]] $C/c$ on [[monomorphism]]s. Then $C_c$ is the [[poset]] of subobjects of $c$ and the set of isomorphism classes of $C_c$ is the set of subobjects of $c$. However this ``set'' can be in fact a proper class in general, see [[well-powered category]]. \hypertarget{generalizations}{}\subsubsection*{{Generalizations}}\label{generalizations} \begin{itemize}% \item More generally, in some contexts we may take ``subobject'' to mean an isomorphism class of morphisms $i: a\to c$ satisfying some suitable condition other than being a monomorphism (usually a stronger one). Common choices are [[strong monomorphisms]], [[regular monomorphisms]], or the right class of some [[orthogonal factorization system]]. (The latter choice has the advantage that then [[images]] will automatically exist.) \begin{itemize}% \item For example, in [[Top]] a monomorphism is just a continuous injective function, whereas the strong and regular monomorphisms coincide and are the subspace embeddings. In some contexts at least, one can argue that subspace embeddings are a more appropriate notion of ``subobject'' in $Top$ (for example, if one wants to exhibit it as a [[locally bounded category]]). A similar thing happens in a [[quasitopos]]. \end{itemize} \item The [[partial order]] on the collection of subobjects internalizes into contexts more general than [[Set]]. For instance in every [[topos]] the [[subobject classifier]] $\Omega$ has the structure of an internal poset (see there). \end{itemize} \hypertarget{properties}{}\subsection*{{Properties}}\label{properties} \hypertarget{the_poset_of_subobjects}{}\subsubsection*{{The poset of subobjects.}}\label{the_poset_of_subobjects} \begin{itemize}% \item For $C$ an [[accessible category]], $c \in C$ any object, the poset $Sub(c)$ of subobjects of $c$ is a [[small category]]. \item Suppose $E$ is a [[well-powered category]]. Denote by $Sub(X)$ the poset of subobjects of object $X$ in $E$. The correspondence $Sub:X\mapsto Sub(X)$ may be extended to a [[contravariant functor]] $E \to Pos$ (that is a functor $E^op \to Pos$), namely if $f: X\to Y$ is arbitrary and $m:S\hookrightarrow Y$ is an element of $Sub(Y)$, i.e. monic, then the pullback $f^*(m):f^*(S)\to X$ of $m$ along $f$ is automatically a monic; the correspondence $m\mapsto f^*(m)$ describes $Sub(f)$ at the level of representatives of subobjects. \end{itemize} \hypertarget{LimitsAndColimits}{}\subsubsection*{{Limits and colimits of subobjects}}\label{LimitsAndColimits} Assume that the ambient category has all [[limit]]s and [[colimit]]s considered in the following. \begin{defn} \label{}\hypertarget{}{} For $X \in C$ an [[object]], $Sub(X)$ the [[poset]] of subobjects and\newline $U_1, U_2 \hookrightarrow X$ two [[subobject]]s, \begin{itemize}% \item their [[product]] in $Sub(X)$ is denoted $U_1 \cap U_2$ or $U_1 \wedge U_2$ and called the \textbf{[[intersection]]} or \textbf{[[meet]]} of the two subobjects; \item their [[coproduct]] in $Sub(X)$ is denoted $U_1 \cup U_2$ or $U_1 \vee U_2$ and called the \textbf{[[union]]} or \textbf{[[join]]} of the two subobjects. \end{itemize} Two subobjects $U_1, U_2 \in Sub_C(X)$ are called \textbf{disjoint} if $U_1 \cap U_2 = \emptyset$ is the [[initial object]]. \end{defn} \begin{prop} \label{IntersectionAndUnionAsFiberProductAndCoimage}\hypertarget{IntersectionAndUnionAsFiberProductAndCoimage}{} Let $C$ be a [[topos]]. \begin{enumerate}% \item The intersection of two subobjects in $Sub_C(X)$ is their [[fiber product]] in $C$: the [[diagram]] \begin{displaymath} \itexarray{ U_1 \cap U_2 &\to& U_2 \\ \downarrow && \downarrow \\ U_1 &\to& X } \end{displaymath} is a [[pullback]] diagram. \item The union of two subobjects $U_1, U_2 \in Sub_C(X)$ is the [[pushout]] $U_1 \coprod_{U_1 \cap U_2} U_2$ in $C$: the [[diagram]] \begin{displaymath} \itexarray{ U_1 \cap U_2 &\to& U_2 \\ \downarrow && \downarrow \\ U_1 &\to& U_1 \cup U_2 } \end{displaymath} is a [[pushout]] diagram. \item This last pushout diagram is also a [[pullback]] diagram. \end{enumerate} \end{prop} \begin{proof} For the first point: Since [[monomorphism]] are (as discussed there) stable under [[pullback]] and composition, the fiber product is a subobject. Its [[universal property]] as a [[limit]] in $C$ then implies its universal property as a [[product]] in $Sub_C(X)$. For the second point: by the same kind of argument, it is sufficient to show that the canonical morphism $U_1 \coprod_{U_1 \cap U_2} U_2 \to X$ exhibits the coproduct as a subobject. Since [[monomorphism]]s (as discussed there) are characterized by the fact that the [[pullback]] along themselves is their domain, it is sufficient to show that \begin{displaymath} \itexarray{ U_1 \coprod_{U_1 \cap U_2} U_2 &\stackrel{Id}{\to}& U_1 \coprod_{U_1 \cap U_2} U_2 \\ {}^{\mathllap{id}}\downarrow && \downarrow \\ U_1 \coprod_{U_1 \cap U_2} U_2 &\stackrel{i}{\to}& X } \end{displaymath} is a [[pullback]] diagram. For showing this we use that in a [[topos]] we have [[universal colimits]], so that equivalently it is sufficient to show that \begin{displaymath} U_1 \coprod_{U_1 \cap U_2} U_2 \simeq (i^* U_1) \coprod_{i^* (U_1 \cap U_2)} (i^* U_2) \,. \end{displaymath} To see this, again use [[universal colimits]] to get \begin{displaymath} \begin{aligned} i^* U_1 & \simeq U_1 \times_X (U_1 \coprod_{U_1 \cap U_2} U_2) \\ & \simeq (U_1 \times_X U_1) \coprod_{U_1 \times_X (U_1 \cap U_2)} (U_1 \times_X U_2) \\ & \simeq U_1 \coprod_{U_1 \cap U_2} (U_1 \times_X U_2) \\ & \simeq U_1 \coprod_{U_1 \cap U_2} (U_1 \cap U_2) \\ & \simeq U_1 \end{aligned} \end{displaymath} and similarly \begin{displaymath} i^* U_2 \simeq U_2 \end{displaymath} and \begin{displaymath} i^* (U_1 \cap U_2) \simeq (U_1 \cap U_2) \,. \end{displaymath} This proves the second point. The third point is directly verified by checking the universal property. \end{proof} \hypertarget{comparison_with_the_notion_of_subset}{}\subsubsection*{{Comparison with the notion of ``subset''}}\label{comparison_with_the_notion_of_subset} The notion of subobject figures prominently in [[topos theory]] and in other approaches to [[set theory]] based on categories. It is not an exact translation of the usual notion of ``subset'' in traditional set theory; in ordinary set theory, the notion of subset is defined in terms of a global elementhood relation between sets, which one doesn't have in categorical set theory (and which one wouldn't necessarily want: it's ``[[evil|evil]]'' in the sense of not being invariant with respect to isomorphism). Category-theoretically, the traditional notion of subset gives a way of picking out a canonical representative or ``normal form'' among all the monos in an isomorphism class. As we intimated, there is no intrinsic way of defining such representatives in the theory of toposes: such would have to be considered an extra structure on a topos. Mathematically, there is no particular gain in having such structure around; at best it enables a traditional mode of discourse in which subsets are concrete maps, and to this end it can function as a linguistic or psychological convenience. On the other hand, there is no particular harm either in having such structure around, as long as one remembers that it is not an isomorphism invariant. People will instinctively turn to canonical representatives whenever they can -- think of what we would tell a student who asks for help understanding how to multiply elements in $\mathbb{Z}_13$ -- and even category theorists do so when they are available. \hypertarget{Examples}{}\subsection*{{Examples}}\label{Examples} \begin{itemize}% \item A subobject in [[Set]] is a [[subset]]. \item A subobject in [[Grp]] is a [[subgroup]]. \item A subobject in $R$[[Mod]] is a [[submodule]]. \item A subobject of a [[representation]] is a [[subrepresentation]]. \item A subobject (a [[subfunctor]]) of a [[representable functor]] is a [[sieve]]. \item A subobject of a [[bundle]] (hence in a [[slice category]]) is a [[sub-bundle]]. \end{itemize} \hypertarget{related_concepts}{}\subsection*{{Related concepts}}\label{related_concepts} \begin{itemize}% \item \textbf{subobject} \item [[pure subobject]] \item [[subobject in an (∞,1)-category]] \item [[property sup]] \end{itemize} \hypertarget{references}{}\subsection*{{References}}\label{references} Standard textbook references include section I.3 of \begin{itemize}% \item [[Saunders MacLane]], [[Ieke Moerdijk]], \emph{[[Sheaves in Geometry and Logic]]} \end{itemize} and \begin{itemize}% \item [[Peter Johnstone]], \emph{[[Sketches of an Elephant]]} \end{itemize} [[!redirects subobjects]] [[!redirects sub-object]] [[!redirects sub-objects]] \end{document}