范畴论
\(\newcommand{\footnotename}{footnote}\)
\(\def \LWRfootnote {1}\)
\(\newcommand {\footnote }[2][\LWRfootnote ]{{}^{\mathrm {#1}}}\)
\(\newcommand {\footnotemark }[1][\LWRfootnote ]{{}^{\mathrm {#1}}}\)
\(\let \LWRorighspace \hspace \)
\(\renewcommand {\hspace }{\ifstar \LWRorighspace \LWRorighspace }\)
\(\newcommand {\mathnormal }[1]{{#1}}\)
\(\newcommand \ensuremath [1]{#1}\)
\(\newcommand {\LWRframebox }[2][]{\fbox {#2}} \newcommand {\framebox }[1][]{\LWRframebox } \)
\(\newcommand {\setlength }[2]{}\)
\(\newcommand {\addtolength }[2]{}\)
\(\newcommand {\setcounter }[2]{}\)
\(\newcommand {\addtocounter }[2]{}\)
\(\newcommand {\arabic }[1]{}\)
\(\newcommand {\number }[1]{}\)
\(\newcommand {\noalign }[1]{\text {#1}\notag \\}\)
\(\newcommand {\cline }[1]{}\)
\(\newcommand {\directlua }[1]{\text {(directlua)}}\)
\(\newcommand {\luatexdirectlua }[1]{\text {(directlua)}}\)
\(\newcommand {\protect }{}\)
\(\def \LWRabsorbnumber #1 {}\)
\(\def \LWRabsorbquotenumber "#1 {}\)
\(\newcommand {\LWRabsorboption }[1][]{}\)
\(\newcommand {\LWRabsorbtwooptions }[1][]{\LWRabsorboption }\)
\(\def \mathchar {\ifnextchar "\LWRabsorbquotenumber \LWRabsorbnumber }\)
\(\def \mathcode #1={\mathchar }\)
\(\let \delcode \mathcode \)
\(\let \delimiter \mathchar \)
\(\def \oe {\unicode {x0153}}\)
\(\def \OE {\unicode {x0152}}\)
\(\def \ae {\unicode {x00E6}}\)
\(\def \AE {\unicode {x00C6}}\)
\(\def \aa {\unicode {x00E5}}\)
\(\def \AA {\unicode {x00C5}}\)
\(\def \o {\unicode {x00F8}}\)
\(\def \O {\unicode {x00D8}}\)
\(\def \l {\unicode {x0142}}\)
\(\def \L {\unicode {x0141}}\)
\(\def \ss {\unicode {x00DF}}\)
\(\def \SS {\unicode {x1E9E}}\)
\(\def \dag {\unicode {x2020}}\)
\(\def \ddag {\unicode {x2021}}\)
\(\def \P {\unicode {x00B6}}\)
\(\def \copyright {\unicode {x00A9}}\)
\(\def \pounds {\unicode {x00A3}}\)
\(\let \LWRref \ref \)
\(\renewcommand {\ref }{\ifstar \LWRref \LWRref }\)
\( \newcommand {\multicolumn }[3]{#3}\)
\(\require {textcomp}\)
\(\newcommand {\intertext }[1]{\text {#1}\notag \\}\)
\(\let \Hat \hat \)
\(\let \Check \check \)
\(\let \Tilde \tilde \)
\(\let \Acute \acute \)
\(\let \Grave \grave \)
\(\let \Dot \dot \)
\(\let \Ddot \ddot \)
\(\let \Breve \breve \)
\(\let \Bar \bar \)
\(\let \Vec \vec \)
\(\let \symnormal \mathit \)
\(\let \symliteral \mathrm \)
\(\let \symbb \mathbb \)
\(\let \symbbit \mathbb \)
\(\let \symcal \mathcal \)
\(\let \symscr \mathscr \)
\(\let \symfrak \mathfrak \)
\(\let \symsfup \mathsf \)
\(\let \symsfit \mathit \)
\(\let \symbfsf \mathbf \)
\(\let \symbfup \mathbf \)
\(\newcommand {\symbfit }[1]{\boldsymbol {#1}}\)
\(\let \symbfcal \mathcal \)
\(\let \symbfscr \mathscr \)
\(\let \symbffrak \mathfrak \)
\(\let \symbfsfup \mathbf \)
\(\newcommand {\symbfsfit }[1]{\boldsymbol {#1}}\)
\(\let \symup \mathrm \)
\(\let \symbf \mathbf \)
\(\let \symit \mathit \)
\(\let \symtt \mathtt \)
\(\let \symbffrac \mathbffrac \)
\(\newcommand {\mathfence }[1]{\mathord {#1}}\)
\(\newcommand {\mathover }[1]{#1}\)
\(\newcommand {\mathunder }[1]{#1}\)
\(\newcommand {\mathaccent }[1]{#1}\)
\(\newcommand {\mathbotaccent }[1]{#1}\)
\(\newcommand {\mathalpha }[1]{\mathord {#1}}\)
\(\def\upAlpha{\unicode{x0391}}\)
\(\def\upBeta{\unicode{x0392}}\)
\(\def\upGamma{\unicode{x0393}}\)
\(\def\upDigamma{\unicode{x03DC}}\)
\(\def\upDelta{\unicode{x0394}}\)
\(\def\upEpsilon{\unicode{x0395}}\)
\(\def\upZeta{\unicode{x0396}}\)
\(\def\upEta{\unicode{x0397}}\)
\(\def\upTheta{\unicode{x0398}}\)
\(\def\upVartheta{\unicode{x03F4}}\)
\(\def\upIota{\unicode{x0399}}\)
\(\def\upKappa{\unicode{x039A}}\)
\(\def\upLambda{\unicode{x039B}}\)
\(\def\upMu{\unicode{x039C}}\)
\(\def\upNu{\unicode{x039D}}\)
\(\def\upXi{\unicode{x039E}}\)
\(\def\upOmicron{\unicode{x039F}}\)
\(\def\upPi{\unicode{x03A0}}\)
\(\def\upVarpi{\unicode{x03D6}}\)
\(\def\upRho{\unicode{x03A1}}\)
\(\def\upSigma{\unicode{x03A3}}\)
\(\def\upTau{\unicode{x03A4}}\)
\(\def\upUpsilon{\unicode{x03A5}}\)
\(\def\upPhi{\unicode{x03A6}}\)
\(\def\upChi{\unicode{x03A7}}\)
\(\def\upPsi{\unicode{x03A8}}\)
\(\def\upOmega{\unicode{x03A9}}\)
\(\def\itAlpha{\unicode{x1D6E2}}\)
\(\def\itBeta{\unicode{x1D6E3}}\)
\(\def\itGamma{\unicode{x1D6E4}}\)
\(\def\itDigamma{\mathit{\unicode{x03DC}}}\)
\(\def\itDelta{\unicode{x1D6E5}}\)
\(\def\itEpsilon{\unicode{x1D6E6}}\)
\(\def\itZeta{\unicode{x1D6E7}}\)
\(\def\itEta{\unicode{x1D6E8}}\)
\(\def\itTheta{\unicode{x1D6E9}}\)
\(\def\itVartheta{\unicode{x1D6F3}}\)
\(\def\itIota{\unicode{x1D6EA}}\)
\(\def\itKappa{\unicode{x1D6EB}}\)
\(\def\itLambda{\unicode{x1D6EC}}\)
\(\def\itMu{\unicode{x1D6ED}}\)
\(\def\itNu{\unicode{x1D6EE}}\)
\(\def\itXi{\unicode{x1D6EF}}\)
\(\def\itOmicron{\unicode{x1D6F0}}\)
\(\def\itPi{\unicode{x1D6F1}}\)
\(\def\itRho{\unicode{x1D6F2}}\)
\(\def\itSigma{\unicode{x1D6F4}}\)
\(\def\itTau{\unicode{x1D6F5}}\)
\(\def\itUpsilon{\unicode{x1D6F6}}\)
\(\def\itPhi{\unicode{x1D6F7}}\)
\(\def\itChi{\unicode{x1D6F8}}\)
\(\def\itPsi{\unicode{x1D6F9}}\)
\(\def\itOmega{\unicode{x1D6FA}}\)
\(\def\upalpha{\unicode{x03B1}}\)
\(\def\upbeta{\unicode{x03B2}}\)
\(\def\upvarbeta{\unicode{x03D0}}\)
\(\def\upgamma{\unicode{x03B3}}\)
\(\def\updigamma{\unicode{x03DD}}\)
\(\def\updelta{\unicode{x03B4}}\)
\(\def\upepsilon{\unicode{x03F5}}\)
\(\def\upvarepsilon{\unicode{x03B5}}\)
\(\def\upzeta{\unicode{x03B6}}\)
\(\def\upeta{\unicode{x03B7}}\)
\(\def\uptheta{\unicode{x03B8}}\)
\(\def\upvartheta{\unicode{x03D1}}\)
\(\def\upiota{\unicode{x03B9}}\)
\(\def\upkappa{\unicode{x03BA}}\)
\(\def\upvarkappa{\unicode{x03F0}}\)
\(\def\uplambda{\unicode{x03BB}}\)
\(\def\upmu{\unicode{x03BC}}\)
\(\def\upnu{\unicode{x03BD}}\)
\(\def\upxi{\unicode{x03BE}}\)
\(\def\upomicron{\unicode{x03BF}}\)
\(\def\uppi{\unicode{x03C0}}\)
\(\def\upvarpi{\unicode{x03D6}}\)
\(\def\uprho{\unicode{x03C1}}\)
\(\def\upvarrho{\unicode{x03F1}}\)
\(\def\upsigma{\unicode{x03C3}}\)
\(\def\upvarsigma{\unicode{x03C2}}\)
\(\def\uptau{\unicode{x03C4}}\)
\(\def\upupsilon{\unicode{x03C5}}\)
\(\def\upphi{\unicode{x03D5}}\)
\(\def\upvarphi{\unicode{x03C6}}\)
\(\def\upchi{\unicode{x03C7}}\)
\(\def\uppsi{\unicode{x03C8}}\)
\(\def\upomega{\unicode{x03C9}}\)
\(\def\italpha{\unicode{x1D6FC}}\)
\(\def\itbeta{\unicode{x1D6FD}}\)
\(\def\itvarbeta{\unicode{x03D0}}\)
\(\def\itgamma{\unicode{x1D6FE}}\)
\(\def\itdigamma{\mathit{\unicode{x03DD}}}\)
\(\def\itdelta{\unicode{x1D6FF}}\)
\(\def\itepsilon{\unicode{x1D716}}\)
\(\def\itvarepsilon{\unicode{x1D700}}\)
\(\def\itzeta{\unicode{x1D701}}\)
\(\def\iteta{\unicode{x1D702}}\)
\(\def\ittheta{\unicode{x1D703}}\)
\(\def\itvartheta{\unicode{x1D717}}\)
\(\def\itiota{\unicode{x1D704}}\)
\(\def\itkappa{\unicode{x1D705}}\)
\(\def\itvarkappa{\unicode{x1D718}}\)
\(\def\itlambda{\unicode{x1D706}}\)
\(\def\itmu{\unicode{x1D707}}\)
\(\def\itnu{\unicode{x1D708}}\)
\(\def\itxi{\unicode{x1D709}}\)
\(\def\itomicron{\unicode{x1D70A}}\)
\(\def\itpi{\unicode{x1D70B}}\)
\(\def\itvarpi{\unicode{x1D71B}}\)
\(\def\itrho{\unicode{x1D70C}}\)
\(\def\itvarrho{\unicode{x1D71A}}\)
\(\def\itsigma{\unicode{x1D70E}}\)
\(\def\itvarsigma{\unicode{x1D70D}}\)
\(\def\ittau{\unicode{x1D70F}}\)
\(\def\itupsilon{\unicode{x1D710}}\)
\(\def\itphi{\unicode{x1D719}}\)
\(\def\itvarphi{\unicode{x1D711}}\)
\(\def\itchi{\unicode{x1D712}}\)
\(\def\itpsi{\unicode{x1D713}}\)
\(\def\itomega{\unicode{x1D714}}\)
\(\let \lparen (\)
\(\let \rparen )\)
\(\newcommand {\cuberoot }[1]{\,{}^3\!\!\sqrt {#1}}\,\)
\(\newcommand {\fourthroot }[1]{\,{}^4\!\!\sqrt {#1}}\,\)
\(\newcommand {\longdivision }[1]{\mathord {\unicode {x027CC}#1}}\)
\(\newcommand {\mathcomma }{,}\)
\(\newcommand {\mathcolon }{:}\)
\(\newcommand {\mathsemicolon }{;}\)
\(\newcommand {\overbracket }[1]{\mathinner {\overline {\ulcorner {#1}\urcorner }}}\)
\(\newcommand {\underbracket }[1]{\mathinner {\underline {\llcorner {#1}\lrcorner }}}\)
\(\newcommand {\overbar }[1]{\mathord {#1\unicode {x00305}}}\)
\(\newcommand {\ovhook }[1]{\mathord {#1\unicode {x00309}}}\)
\(\newcommand {\ocirc }[1]{\mathord {#1\unicode {x0030A}}}\)
\(\newcommand {\candra }[1]{\mathord {#1\unicode {x00310}}}\)
\(\newcommand {\oturnedcomma }[1]{\mathord {#1\unicode {x00312}}}\)
\(\newcommand {\ocommatopright }[1]{\mathord {#1\unicode {x00315}}}\)
\(\newcommand {\droang }[1]{\mathord {#1\unicode {x0031A}}}\)
\(\newcommand {\leftharpoonaccent }[1]{\mathord {#1\unicode {x020D0}}}\)
\(\newcommand {\rightharpoonaccent }[1]{\mathord {#1\unicode {x020D1}}}\)
\(\newcommand {\vertoverlay }[1]{\mathord {#1\unicode {x020D2}}}\)
\(\newcommand {\leftarrowaccent }[1]{\mathord {#1\unicode {x020D0}}}\)
\(\newcommand {\annuity }[1]{\mathord {#1\unicode {x020E7}}}\)
\(\newcommand {\widebridgeabove }[1]{\mathord {#1\unicode {x020E9}}}\)
\(\newcommand {\asteraccent }[1]{\mathord {#1\unicode {x020F0}}}\)
\(\newcommand {\threeunderdot }[1]{\mathord {#1\unicode {x020E8}}}\)
\(\newcommand {\Bbbsum }{\mathop {\unicode {x2140}}\limits }\)
\(\newcommand {\oiint }{\mathop {\unicode {x222F}}\limits }\)
\(\newcommand {\oiiint }{\mathop {\unicode {x2230}}\limits }\)
\(\newcommand {\intclockwise }{\mathop {\unicode {x2231}}\limits }\)
\(\newcommand {\ointclockwise }{\mathop {\unicode {x2232}}\limits }\)
\(\newcommand {\ointctrclockwise }{\mathop {\unicode {x2233}}\limits }\)
\(\newcommand {\varointclockwise }{\mathop {\unicode {x2232}}\limits }\)
\(\newcommand {\leftouterjoin }{\mathop {\unicode {x27D5}}\limits }\)
\(\newcommand {\rightouterjoin }{\mathop {\unicode {x27D6}}\limits }\)
\(\newcommand {\fullouterjoin }{\mathop {\unicode {x27D7}}\limits }\)
\(\newcommand {\bigbot }{\mathop {\unicode {x27D8}}\limits }\)
\(\newcommand {\bigtop }{\mathop {\unicode {x27D9}}\limits }\)
\(\newcommand {\xsol }{\mathop {\unicode {x29F8}}\limits }\)
\(\newcommand {\xbsol }{\mathop {\unicode {x29F9}}\limits }\)
\(\newcommand {\bigcupdot }{\mathop {\unicode {x2A03}}\limits }\)
\(\newcommand {\bigsqcap }{\mathop {\unicode {x2A05}}\limits }\)
\(\newcommand {\conjquant }{\mathop {\unicode {x2A07}}\limits }\)
\(\newcommand {\disjquant }{\mathop {\unicode {x2A08}}\limits }\)
\(\newcommand {\bigtimes }{\mathop {\unicode {x2A09}}\limits }\)
\(\newcommand {\modtwosum }{\mathop {\unicode {x2A0A}}\limits }\)
\(\newcommand {\sumint }{\mathop {\unicode {x2A0B}}\limits }\)
\(\newcommand {\intbar }{\mathop {\unicode {x2A0D}}\limits }\)
\(\newcommand {\intBar }{\mathop {\unicode {x2A0E}}\limits }\)
\(\newcommand {\fint }{\mathop {\unicode {x2A0F}}\limits }\)
\(\newcommand {\cirfnint }{\mathop {\unicode {x2A10}}\limits }\)
\(\newcommand {\awint }{\mathop {\unicode {x2A11}}\limits }\)
\(\newcommand {\rppolint }{\mathop {\unicode {x2A12}}\limits }\)
\(\newcommand {\scpolint }{\mathop {\unicode {x2A13}}\limits }\)
\(\newcommand {\npolint }{\mathop {\unicode {x2A14}}\limits }\)
\(\newcommand {\pointint }{\mathop {\unicode {x2A15}}\limits }\)
\(\newcommand {\sqint }{\mathop {\unicode {x2A16}}\limits }\)
\(\newcommand {\intlarhk }{\mathop {\unicode {x2A17}}\limits }\)
\(\newcommand {\intx }{\mathop {\unicode {x2A18}}\limits }\)
\(\newcommand {\intcap }{\mathop {\unicode {x2A19}}\limits }\)
\(\newcommand {\intcup }{\mathop {\unicode {x2A1A}}\limits }\)
\(\newcommand {\upint }{\mathop {\unicode {x2A1B}}\limits }\)
\(\newcommand {\lowint }{\mathop {\unicode {x2A1C}}\limits }\)
\(\newcommand {\bigtriangleleft }{\mathop {\unicode {x2A1E}}\limits }\)
\(\newcommand {\zcmp }{\mathop {\unicode {x2A1F}}\limits }\)
\(\newcommand {\zpipe }{\mathop {\unicode {x2A20}}\limits }\)
\(\newcommand {\zproject }{\mathop {\unicode {x2A21}}\limits }\)
\(\newcommand {\biginterleave }{\mathop {\unicode {x2AFC}}\limits }\)
\(\newcommand {\bigtalloblong }{\mathop {\unicode {x2AFF}}\limits }\)
\(\newcommand {\arabicmaj }{\mathop {\unicode {x1EEF0}}\limits }\)
\(\newcommand {\arabichad }{\mathop {\unicode {x1EEF1}}\limits }\)
\(\require {mathtools}\)
\(\newenvironment {crampedsubarray}[1]{}{}\)
\(\newcommand {\smashoperator }[2][]{#2\limits }\)
\(\newcommand {\SwapAboveDisplaySkip }{}\)
\(\newcommand {\LaTeXunderbrace }[1]{\underbrace {#1}}\)
\(\newcommand {\LaTeXoverbrace }[1]{\overbrace {#1}}\)
\(\newcommand {\LWRmultlined }[1][]{\begin {multline*}}\)
\(\newenvironment {multlined}[1][]{\LWRmultlined }{\end {multline*}}\)
\(\let \LWRorigshoveleft \shoveleft \)
\(\renewcommand {\shoveleft }[1][]{\LWRorigshoveleft }\)
\(\let \LWRorigshoveright \shoveright \)
\(\renewcommand {\shoveright }[1][]{\LWRorigshoveright }\)
\(\newcommand {\shortintertext }[1]{\text {#1}\notag \\}\)
\(\newcommand {\vcentcolon }{\mathrel {\unicode {x2236}}}\)
\(\newcommand {\iddots }{\mathinner {\unicode {x22F0}}}\)
\(\let \fixedddots \ddots \)
\(\let \fixedvdots \vdots \)
\(\let \fixediddots \iddots \)
\(\let \originalddots \ddots \)
\(\let \originalvdots \vdots \)
\(\let \originaliddots \iddots \)
\(\let \originaldddot \dddot \)
\(\let \originalddddot \ddddot \)
\(\newcommand {\tcbset }[1]{}\)
\(\newcommand {\tcbsetforeverylayer }[1]{}\)
\(\newcommand {\tcbox }[2][]{\boxed {\text {#2}}}\)
\(\newcommand {\tcboxfit }[2][]{\boxed {#2}}\)
\(\newcommand {\tcblower }{}\)
\(\newcommand {\tcbline }{}\)
\(\newcommand {\tcbtitle }{}\)
\(\newcommand {\tcbsubtitle [2][]{\mathrm {#2}}}\)
\(\newcommand {\tcboxmath }[2][]{\boxed {#2}}\)
\(\newcommand {\tcbhighmath }[2][]{\boxed {#2}}\)
\(\Newextarrow \xLongleftarrow {10,10}{0x21D0}\)
\(\Newextarrow \xLongrightarrow {10,10}{0x21D2}\)
\(\Newextarrow \xLongleftrightarrow {10,10}{0x21D4}\)
\(\Newextarrow \xLeftrightarrow {10,10}{0x21D4}\)
\(\Newextarrow \xlongleftrightarrow {10,10}{0x2194}\)
\(\Newextarrow \xleftrightarrow {10,10}{0x2194}\)
\(\let \xlongleftarrow \xleftarrow \)
\(\let \xlongrightarrow \xrightarrow \)
\(\newcommand {\C }{ \mathbb {C} }\)
\(\newcommand {\Cc }{ \mathcal {C} }\)
\(\newcommand {\Dc }{ \mathcal {D} }\)
\(\newcommand {\Z }{ \mathbb {Z} }\)
\(\newcommand {\ra }[1]{\xrightarrow {#1}}\)
\(\DeclareMathOperator {\Sym }{Sym}\)
\(\def \id {\mathrm {id}}\)
\(\newcommand {\Q }{\mathbb {Q}}\)
\(\renewcommand {\a }{{\alpha }}\)
\(\renewcommand {\b }{{\beta }}\)
\(\def \g {\gamma }\)
\(\def \w {\omega }\)
\(\def \e {\epsilon }\)
\(\def \z {\zeta }\)
\(\def \d {\partial }\)
\(\newcommand {\tHpb }[3]{{\mathbf {\overline {2H}}^{#1}_{(#2,#3)}}}\)
\(\newcommand {\Hpb }{\mathbf {\overline {H}}}\)
\(\def \red {\textcolor {red}}\)
\(\def \green {\textcolor {green}}\)
\(\def \blue {\textcolor {blue}}\)
\(\let \symsf \symsfit \)
\(\def\Alpha{\unicode{x1D6E2}}\)
\(\def\Beta{\unicode{x1D6E3}}\)
\(\def\Gamma{\unicode{x1D6E4}}\)
\(\def\Digamma{\mathit{\unicode{x03DC}}}\)
\(\def\Delta{\unicode{x1D6E5}}\)
\(\def\Epsilon{\unicode{x1D6E6}}\)
\(\def\Zeta{\unicode{x1D6E7}}\)
\(\def\Eta{\unicode{x1D6E8}}\)
\(\def\Theta{\unicode{x1D6E9}}\)
\(\def\Vartheta{\unicode{x1D6F3}}\)
\(\def\Iota{\unicode{x1D6EA}}\)
\(\def\Kappa{\unicode{x1D6EB}}\)
\(\def\Lambda{\unicode{x1D6EC}}\)
\(\def\Mu{\unicode{x1D6ED}}\)
\(\def\Nu{\unicode{x1D6EE}}\)
\(\def\Xi{\unicode{x1D6EF}}\)
\(\def\Omicron{\unicode{x1D6F0}}\)
\(\def\Pi{\unicode{x1D6F1}}\)
\(\def\Rho{\unicode{x1D6F2}}\)
\(\def\Sigma{\unicode{x1D6F4}}\)
\(\def\Tau{\unicode{x1D6F5}}\)
\(\def\Upsilon{\unicode{x1D6F6}}\)
\(\def\Phi{\unicode{x1D6F7}}\)
\(\def\Chi{\unicode{x1D6F8}}\)
\(\def\Psi{\unicode{x1D6F9}}\)
\(\def\Omega{\unicode{x1D6FA}}\)
\(\def\alpha{\unicode{x1D6FC}}\)
\(\def\beta{\unicode{x1D6FD}}\)
\(\def\varbeta{\unicode{x03D0}}\)
\(\def\gamma{\unicode{x1D6FE}}\)
\(\def\digamma{\mathit{\unicode{x03DD}}}\)
\(\def\delta{\unicode{x1D6FF}}\)
\(\def\epsilon{\unicode{x1D716}}\)
\(\def\varepsilon{\unicode{x1D700}}\)
\(\def\zeta{\unicode{x1D701}}\)
\(\def\eta{\unicode{x1D702}}\)
\(\def\theta{\unicode{x1D703}}\)
\(\def\vartheta{\unicode{x1D717}}\)
\(\def\iota{\unicode{x1D704}}\)
\(\def\kappa{\unicode{x1D705}}\)
\(\def\varkappa{\unicode{x1D718}}\)
\(\def\lambda{\unicode{x1D706}}\)
\(\def\mu{\unicode{x1D707}}\)
\(\def\nu{\unicode{x1D708}}\)
\(\def\xi{\unicode{x1D709}}\)
\(\def\omicron{\unicode{x1D70A}}\)
\(\def\pi{\unicode{x1D70B}}\)
\(\def\varpi{\unicode{x1D71B}}\)
\(\def\rho{\unicode{x1D70C}}\)
\(\def\varrho{\unicode{x1D71A}}\)
\(\def\sigma{\unicode{x1D70E}}\)
\(\def\varsigma{\unicode{x1D70D}}\)
\(\def\tau{\unicode{x1D70F}}\)
\(\def\upsilon{\unicode{x1D710}}\)
\(\def\phi{\unicode{x1D719}}\)
\(\def\varphi{\unicode{x1D711}}\)
\(\def\chi{\unicode{x1D712}}\)
\(\def\psi{\unicode{x1D713}}\)
\(\def\omega{\unicode{x1D714}}\)
2.2 函子的性质
所有从范畴 \(A\) 到 \(B\) 的函子 \(F\) 都保持同构;即,每当 \(A \xrightarrow {k} A'\) 是 \(A\) 的同构时,\(F(k)\) 是 \(B\) 的同构。
注释 2.1:
-
1. 尽管上述命题有一个平凡的证明,但它具有有趣的结果。特别地,它可用于证明范畴中的某些对象不同构。例如,基本群函子可用于证明某些拓扑空间不是同胚的,因为它能够显示它们的基本群不同构。
-
2. 即使所有函子都保持同构,它们不一定反映同构(即如果 \(F(k)\) 是同构,则 \(k\) 不一定是同构)。例如,考虑遗忘函子 \(U: \text {Top} \to \text {Set}\)。从实数集合(带离散拓扑)到实数集合 \(\mathbb {R}\)(带有常规拓扑)的恒等函数不是同胚映射(即在 \(\text {Top}\) 中不是同
构),尽管其底层映射是一个恒等映射,因此在 \(\text {Set}\) 中是同构。
如果 \(F:A\to B\) 和 \(G:B\to C\) 是函子,那么由 \(G\circ F:A\to C\) 定义的复合函子是一个函子。\(G\circ F\) 的定义如下:
\[(G\circ F)(A\xrightarrow {f} A') = G(FA) \overset {G(Ff)}{\longrightarrow } G(FA').\]
1. 如果函子 \(F:A\to B\) 存在函子 \(G:B\to A\),使得 \(G\circ F=\text {id}_A\) 和 \(F\circ G=\text {id}_B\),则 \(F:A\to B\) 被称为同构。2. 如果存在同构 \(F:A\to B\),则范畴 \(A\) 和 \(B\) 被称为同构。
例子:
-
1. 对于任意类 \((X, Y)\),如果范畴 \(C(X)\) 和 \(C(Y)\) 是同构的,当且仅当存在从 \(X\) 到 \(Y\) 的双射。如果一个范畴同构于形如 \(C(X)\) 的范畴,当且仅当它的每个态射都是恒同态射,这样的范畴被称为离散的。
-
2. 对于任意预序类对 \(((X, \leq ), (Y, \leq ))\),如果范畴 \(C(X, \leq )\) 和 \(C(Y, \leq )\) 是同构的,当且仅当 \((X, \leq )\) 和 \((Y, \leq )\) 是等序的。如果一个范畴同构于形如 \(C(X, \leq )\) 的范畴,当且仅当对于每一对对象 \((A, B)\),\(hom(A, B)\) 中至多有一个成员
时,这样的范畴被称为薄范畴。
-
3. 对于任意幺半群对 \((M, N)\),如果范畴 \(C(M)\) 和 \(C(N)\) 是同构的,当且仅当 \(M\) 和 \(N\) 是同构幺半群。如果一个范畴同构于形如 \(C(M)\) 的范畴,当且仅当它只有一个对象。
-
4. 构造布尔代数的范畴与布尔环和环同态的构造范畴 BooRng 是同构的。
-
5. 对于任意交换环 \(R\),记 \(R\text {-Mod}\)(或 \(\text {Mod-}R\))为左(或右)\(R\) - 模和模同态的构造范畴。那么:
-
6. 对于任意幺半群 \(M\),令 \(M\text {-Act}\) 为所有 \(M\) - 作用和作用同态映射 \([f(m\ast x)=m\ast f(x)]\) 所构成的范畴。如果 \(\Sigma ^*\) 是所有字母串的自由幺半群,那么 \(\Sigma ^*\text {-Act}\) 同构于代数结构范畴 Alg (\(\Sigma \))。
设 \(F: A \to B\) 为一个函子。
-
1. 嵌入的 :如果 \(F\) 在态射上是单射,则称 \(F\) 为嵌入的。
-
2. 忠实的 :如果所有的 hom-set 限制 \(F: \text {hom}_A(A, A') \to \text {hom}_B(F(A), F(A'))\) 都是单射,则称 \(F\) 为忠实的。
-
3. 全的 :如果所有 homset 限制都是满射,则称 \(F\) 为满的。
-
4. 健忘的 :如果对于任意 \(A\) - 态射 \(f\),当 \(Ff\) 是恒同态射时,\(f\) 也是恒同态射,则称 \(F\) 为健忘。
例子:
-
1. 忘却函子 \(U: \text {Vec} \to \text {Set}\):它是忠实的和健忘的,但既不是满的也不是嵌入的。这对于上述提到的所有构造都成立(当然,除了 \(\text {Set}\) 本身)。
-
2. 协变幂集函子 \(P: \text {Set} \to \text {Set}\) 和逆变幂集函子 \(Q: \text {Set}^\text {op} \to \text {Set}\):它们都是嵌入,但不是满的。
-
3. 函子 \(U: \text {Met}_c \to \text {Top}\):定义为 \(U((X, d) \xrightarrow {f} (X', d')) = (X, \tau _d) \xrightarrow {f} (X', \tau _{d'})\),其中 \(\tau _d\) 表示由度量 \(d\) 诱导的拓扑,是满的和忠实的,但不是嵌入的。
-
4. 对于任意范畴 \(A\),从 \(A\) 到 \(1\) 的 唯一函子 :当且仅当 \(A\) 是薄的,则该函子是忠实的。
-
5. 离散空间函子 \(D: \text {Set} \to \text {Top}\):定义为 \(D(X \xrightarrow {f} Y) = (X, \delta _X) \xrightarrow {f} (Y, \delta _Y)\),其中 \(\delta _Z\) 表示集合 \(Z\) 上的离散拓扑,是一个全嵌入。
-
6. 非离散空间函子 \(N: \text {Set} \to \text {Top}\):定义为 \(N(X \xrightarrow {f} Y) = (X, \iota _X) \xrightarrow {f} (Y, \iota _Y)\),其中 \(\iota _Z\) 表示集合 \(Z\) 上的非离散拓扑,是一个全嵌入。
设 \(F: A \rightarrow B\) 和 \(G: B \rightarrow C\) 是函子。
-
1. 如果 \(F\) 和 \(G\) 都是同构(或者嵌入、忠诚、或者全函子),那么 \(G \circ F\) 也是同构(或者嵌入、忠诚、或者全函子)。
-
2. 如果 \(G \circ F\) 是嵌入(或者忠诚),那么 \(F\) 也是嵌入(或者忠诚)。
-
3. 如果 \(F\) 对象上是满射,且 \(G \circ F\) 是全函子,那么 \(G\) 也是全函子。
如果 \(F: A \rightarrow B\) 是一个全函子(full)且忠诚(faithful)的函子,那么对于每个 \(B\) - 态射 \(f: FA \rightarrow FA'\),都存在唯一的 \(A\) - 态射 \(g: A \rightarrow A'\),使得 \(Fg = f\)。此外,\(g\) 是一个 \(A\) - 同构当且仅当它是一个 \(B\) - 同构。
全(full)且忠诚(faithful)的函子 \(F: A \rightarrow B\) 反映同构;即,每当 \(g\) 是 \(A\) - 态射,使得 \(F(g)\) 是 \(B\) - 同构,那么 \(g\) 就是 \(A\) - 同构。
回顾我们之前提到的:同构的范畴被视为是本质相同的。这个” 相同性” 的概念非常严格。下面这个稍微弱一些、更灵活的” 本质相同性” 概念,被称为范畴的等价(equivalence of categories),更容易被满足。事实上,等价的范畴在所有有趣的范畴性质方面都有相同的行为。
-
1. 函子 \(F: A \rightarrow B\) 被称为等价(equivalence),如果它是全的(full)、忠诚的(faithful),并且在以下意义上是同构密集的:对于任意 \(B\) - 对象 \(B\),存在某个 \(A\) - 对象 \(A\),使得 \(F(A)\) 同构于 \(B\)。
-
2. 如果存在从 \(A\) 到 \(B\) 的等价,那么范畴 \(A\) 和 \(B\) 被称为等价的。
注释 2.4: 在命题 3.36 中被证明,” 等价于” 是所有范畴的聚合上的一个等价关系。
例子:
-
1. 每个范畴之间的同构都是一个等价。因此,同构的范畴是等价的。
-
2. 范畴 ‘Mat‘ 与有限维向量空间(及其线性变换)的构造范畴是等价的,但不是同构的。不存在同构的原因可以从观察到的 ‘Mat‘ 中不同的对象不能同构来推导。一个等价由以下函子给出:对于每个自然数 \(n \in Ob(Mat)\),将其映射到向量空间 \(R^n\),将每个 \(n \times m\) 矩阵 \(A \in
Mor(Mat)\) 映射到线性映射,该映射将 \(R^n\) 中的每个元素 \((x_1, x_2, …, x_n)\) 映射到 \(R^m\) 中的 \(1 \times m\) 矩阵 \([x_1, x_2, …, x_n]A\)(矩阵乘法定义)。
-
3. 度量空间和连续映射的构造 ‘Met‘ 与可度量化拓扑空间和连续映射的构造 ‘Topm‘ 是等价的。将每个度量空间映射到其诱导的拓扑空间的函子是一个等价,但不是同构。
-
4. 如果偏序集合(作为范畴)被视为等价,那么它们是同构的。然而,如果将预序集合(作为范畴)视为等价,它们可以在不同于同构的情况下是等价的。
-
5. 所有最小接受者(即,对于接受给定语言的最小状态数)的构造,作为 ‘Σ-Seq‘ 的一个全子范畴,与所有可识别语言的偏序集合是等价的(按包含关系排序,作为细范畴)。实际上,对于两个最小接受者 \(A\) 和 \(A'\),存在至多一个模拟 \(A \rightarrow A'\),而且只有当 \(A'\)
接受 \(A\) 接受的每个单词时才存在这样的模拟。
-
证明. (1) 对于每个 \(B\) 的对象,选择一个 \(A\) 的对象 \(G(B)\) 和一个 \(B\) - 同构 \(\varepsilon _B: F(G(B)) \rightarrow B\)。由于 \(F\) 是全的和忠诚的,对于每个 \(B\) - 态射 \(g: B \rightarrow B'\),存在唯一的 \(A\) - 态射
\(G(g): G(B) \rightarrow G(B')\) 使得 \(F(G(g)) = \varepsilon _{B'}^{-1} \circ g \circ \varepsilon _B: F(G(B)) \rightarrow F(G(B'))\)。因此,\(G(g)\) 是唯一的 \(A\) - 态射,使得下面的图
\[ \xymatrix { F(G(B))\ar [r]^{F(G(g))} \ar [d]^{\epsilon _{B}} & F(G(B'))\ar [d]^{\epsilon _{B'}} \\ B\ar [r]^{g} & B' } \]
交换。从上述图的唯一性要求,可以立即得出 \(G\) 保持单位态射。\(G\) 保持复合由唯一性、下图的交换性
\[ \xymatrix { F(G(B))\ar [r]^{F(G(g))} \ar [d]^{\epsilon _{B}} & F(G(B'))\ar [d]^{\epsilon _{B'}} \ar [r]^{F(G(g'))}& F(G(B''))\ar [d]^{\epsilon _{B''}} \\ B\ar [r]^{g} & B' \ar [r]^{g'} &
B'' } \]
和 \(F\) 保持复合的事实可以立即得出。因此,\(G\) 是一个函子。\(G\) 是全的,因为对于每个 \(A\) - 态射 \(f: G(B) \rightarrow G(B')\),态射 \(\varepsilon _{B'} \circ F(f) \circ \varepsilon _{B}^{-1}: B \rightarrow B'\)(我们用 \(g\) 表示)具有性质 \(g
\circ \varepsilon _B = \varepsilon _{B'} \circ F(f)\),这意味着 \(f = G(g)\)。\(G\) 是忠诚的,因为给定 \(B \xrightarrow {g_1} B'\) 和 \(B \xrightarrow {g_2} B'\) 且 \(G(g_1) = G(g_2) = f\),我们有 \(g_1 = \varepsilon _{B'} \circ F(G(g_1))
\circ \varepsilon _{B}^{-1} = \varepsilon _{B'} \circ F(f) \circ \varepsilon _{B}^{-1} = \varepsilon _{B'} \circ F(G(g_2)) \circ \varepsilon _{B}^{-1} = g_2\)。最后,\(G\) 是同构密集的,因为对于每个 \(A\) - 对象 \(A\),\(B\) - 同构 \(\varepsilon _{FA}:
F(G(FA)) \rightarrow FA\) 是某个 \(A\) - 同构 \(GFA \rightarrow A\) 在函子 F 下的像。
(2) 只需证明 \(H \circ F\) 是同构密集的。给定一个 \(C\) -对象 \(C\),由于 \(F\) 和 \(H\) 都是同构密集的事实,存在一个 \(B\) -对象 \(B\),一个同构 \(h: H(B) \rightarrow C\),以及一个 \(A\) -对象 \(A\),其中存在一个同构 \(k: F(A) \rightarrow B\)。因此,\(h \circ H(k): (H
\circ F)(A) \rightarrow C\) 是一个同构。□
注释 2.5: 等价性的概念在涉及对偶性时尤为有用。有许多例子表明存在一对熟悉的范畴,其中每个范畴等价于另一个的对偶。
如果 \(A^{op}\) 和 \(B\) 是等价的,那么范畴 \(A\) 和 \(B\) 被称为 对偶等价 。
例子:
-
1. 布尔代数构造 \(Boo\) 对偶等价于布尔空间构造 \(BooSpa\)(即,零维紧致 Hausdorff 空间和连续映射的构造)。可以通过将每个布尔空间与其开闭子集的布尔代数关联来获得等价性(Stone 对偶)。
-
2. 有限维实向量空间的范畴对偶等价于自身。可以通过将每个有限维向量空间与其对偶空间关联来获得等价性 [参见 3.20 (12)]。
-
3. 集合对偶等价于完备原子布尔代数和完备布尔同态的范畴。可以通过将每个集合与其幂集关联(视为完备原子布尔代数)来获得等价性。
-
4. 紧致 Hausdorff 交换群的范畴对偶等价于 \(Ab\)。可以通过将每个紧致 Hausdorff 交换群 \(G\) 与其字符的群 \(\text {hom}(G, \mathbb {R}/\mathbb {Z})\) 关联来获得等价性(Pontrjagin 对偶)。
-
5. 局部紧致交换群的范畴对偶等价于自身。可以通过类似于上述(4)的方式获得等价性。
-
6. 紧致 Hausdorff 空间(和连续函数)的范畴 \(HComp\) 对偶等价于 \(C^*\) -代数和代数同态的范畴。可以通过将每个紧致 Hausdorff 空间 \(X\) 与其复值连续函数的 \(C^*\) -代数 \(C(X, \mathbb {C})\) 关联来获得等价性(Gelfand-Naimark 对偶)。
注释 2.6: 回顾先前的对偶原理,现在我们将其扩展到函子,即:引入对于任何函子 \(F: A \rightarrow B\) 的对偶函子的概念,该概念可用于涉及函子的范畴逻辑语句的对偶。读者可以猜测涉及函子的范畴语句的对偶可能是什么。两个常见的错误是要么做得太少(只对其中一个范畴 \(A\)
或 \(B\) 进行对偶化),要么做得太多(甚至颠倒表示函子 \(F\) 的箭头)。在这两种情况下,通常都不能获得新的函子。
给定一个从 \(A\) 到 \(B\) 的函子 \(F: A \rightarrow B\),其对偶(或者说反)函子 \(F^{op}: A^{op} \rightarrow B^{op}\) 是由下式定义的函子:
\[F^{op}(A \xrightarrow {f} A') = F (A' \xrightarrow {f} A)\]
注释 2.7: 显然,\((F^{op})^{op} = F\)。为了形成涉及函子的范畴语句的对偶,制定相同的语句,但将每个范畴和每个函子替换为其对偶。然后将这个对偶语句翻译回关于原始范畴和函子的语句。
以下每个关于函子的性质都是自对偶的: “同构”, “嵌入”, “忠诚”, “全函子”, “同构密集”, 和“等价”。