Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
% This file: (find-LATEX "2019J-ops-categories.tex") % See: (find-LATEX "2020J-ops-new.tex") % (defun c () (interactive) (find-LATEXsh "lualatex -record 2019J-ops-categories.tex" :end)) % (defun d () (interactive) (find-pdf-page "~/LATEX/2019J-ops-categories.pdf")) % (defun e () (interactive) (find-LATEX "2019J-ops-categories.tex")) % (defun u () (interactive) (find-latex-upload-links "2019J-ops-categories")) % (find-pdf-page "~/LATEX/2019J-ops-categories.pdf") % (find-sh0 "cp -v ~/LATEX/2019J-ops-categories.pdf /tmp/") % (find-sh0 "cp -v ~/LATEX/2019J-ops-categories.pdf /tmp/pen/") % file:///home/edrx/LATEX/2019J-ops-categories.pdf % file:///tmp/2019J-ops-categories.pdf % file:///tmp/pen/2019J-ops-categories.pdf % http://angg.twu.net/LATEX/2019J-ops-categories.pdf % (find-LATEX "2019.mk") % «.classifier-intro» (to "classifier-intro") % «.classifier-big-figure-defs» (to "classifier-big-figure-defs") % «.classifier-big-figure» (to "classifier-big-figure") % «.Set-PA» (to "Set-PA") % «.Set-PA-logic» (to "Set-PA-logic") % «.Set-PA-morphisms» (to "Set-PA-morphisms") \directlua{tf_push("2019J-ops-categories.tex")} \def\dnto{{\downarrow}} \def\sfJ{\mathsf{J}} % ____ _ % / ___|__ _| |_ ___ % | | / _` | __/ __| % | |__| (_| | |_\__ \ % \____\__,_|\__|___/ % % «classifier-intro» (to ".classifier-intro") % (jonp 26 "classifier-intro") % (joe "classifier-intro") \section{Categories, toposes, sheaves} In this section I will explain {\sl very, very briefly} how to adapt what we saw about J-operators to toposes. The first big diagram that we will try to understand is the in one in Figure \ref{fig:classifier-big} below, that shows in its upper part a structure $((P,A),Q) \squigbij (H,J)$ with a 2CG with question marks and its associated ZHA with J-operator, and in its lower part the classifier $Ω$ of the topos $\Set^{(P,A)}$ and the local operator $j:Ω→Ω$ that is associated to $Q$ and $J$. This big diagram shows how to define the classifier and the local operator, and in sec.\ref{kan-extensions} we will see another big diagram that shows how to define sheaves and sheafification. I will omit some technical details --- a very readable reference for them is \cite{McLarty}, chapters 13 and 22. I learned most of them from \cite{BellLST}, though. \newpage % (find-books "__cats/__cats.el" "mclarty") % (find-books "__cats/__cats.el" "bell") % As in sec.\ref{qms-and-slashings}, this ``associated to'' in a sense % that will be explained soon. % (jopp 2 "qms-and-slashings") % (jos "qms-and-slashings") % \bsk % «classifier-big-figure-defs» (to ".classifier-big-figure-defs") % (jonp 27 "classifier-big-figure-defs") % (joe "classifier-big-figure-defs") % From: % (clap 1 "PAQ-HJ-Om-j-big-figure") % (cla "PAQ-HJ-Om-j-big-figure") % (elzp 15 "classifier") % (elz "classifier") % (find-dn6 "zhas.lua" "MixedPicture-cuts" "addcutssub =") % (find-dn6 "zhas.lua" "MixedPicture-zha" "zhalrf0 =") %L -- Define the components of the %L -- internal views of Om and j. %L %L myspec = "1232RL1" %L mycuts = "c 32/10 012|3" %L mytop = v"35" %L lr_to_lr_or_dot = "lr -> lr:below(mytop) and lr:lr() or '..'" %L %L foo_Om = function (top, opts) %L mytop = v(top) -- set global var %L mpnew(opts, myspec):zhalrf0(lr_to_lr_or_dot) %L :print():output() %L end %L foo_j = function (top, opts) %L mytop = v(top) -- set global var %L mpnew(opts, myspec):addcutssub(mytop, mycuts) %L :zhalrf0(lr_to_lr_or_dot) %L :print():output() %L end %L %L foo_j("32", {zdef="j.3_"}); foo_j("13", {zdef="j._3"}) %L foo_j("20", {zdef="j.2_"}); foo_j("02", {zdef="j._2"}) %L foo_j("10", {zdef="j.1_"}); foo_j("01", {zdef="j._1"}) %L %L foo_Om("32", {zdef="Om.3_"}); foo_Om("13", {zdef="Om._3"}) %L foo_Om("20", {zdef="Om.2_"}); foo_Om("02", {zdef="Om._2"}) %L foo_Om("10", {zdef="Om.1_"}); foo_Om("01", {zdef="Om._1"}) %L %L -- Bonus: define the ZHA with cuts (H,J) %L -- that generates our 2CGQ ((P,A),Q), the topos %L -- Set^{(P,A)}, and the modality j on it. %L -- %L foo_j("33", {zdef="H,J 33"}) %L %L -- ...and its version without cuts: %L mpnew({zdef="H 33"}, myspec):addlrs():print():output() %L %L %L -- Define our TCGs. %L -- \tcg{(P,A),Q} is small, %L -- \tcg{Om} and \tcg{j} are very big. %L -- See: (find-dednat6 "extra-modules.tex" "TCGs" "dimension parameters") %L %L tdims_mini = TCGDims {h=30, v=25, q=15, crh=12, crv=7, qrh=5} %L tdims_mini = TCGDims {h=35, v=25, q=15, crh=12, crv=7, qrh=5} %L tdims_mini = TCGDims {h=35, v=25, q=15, crh=10, crv=7, qrh=5} %L tdims_mini = TCGDims {h=32, v=25, q=15, crh=9, crv=7, qrh=5} %L tdims_mini = TCGDims {h=32, v=25, q=15, crh=8, crv=7, qrh=5} %L tdims_big = TCGDims {h=110, v=110, crh=30, crv=45} %L tspec_mini = TCGSpec.new("33; 32, 13", "?.?", "??.") %L tspec_big = TCGSpec.new("33; 32, 13") %L tcg_PA = TCGQ.newdsoa(tdims_mini, tspec_big, %L {tdef="(P,A) 33", meta="1pt p"}, %L " h v p lr q" %L -- "B QB h v p lr q" %L ) %L tcg_PAQ = TCGQ.newdsoa(tdims_mini, tspec_mini, %L {tdef="(P,A),Q 33", meta="1pt p"}, %L " h v p lr q" %L -- "B QB h v p lr q" %L ) %L tcg_j = TCGQ.newdsoa(tdims_big, tspec_big, %L {tdef="j", meta="1pt p"}, %L -- "B h v p" %L "h v p" %L ) %L tcg_Om = TCGQ.newdsoa(tdims_big, tspec_big, %L {tdef="Om", meta="1pt p"}, %L -- "B h v p" %L "h v p" %L ) %L %L -- Like :lrs(), but by hand. %L -- See: (find-dednat6 "dednat6/tcgs.lua" "TCGQ" "lrs =") %L %L tcg_Om:Lput(3, "\\zha{Om.3_}"); tcg_Om:Rput(3, "\\zha{Om._3}") %L tcg_Om:Lput(2, "\\zha{Om.2_}"); tcg_Om:Rput(2, "\\zha{Om._2}") %L tcg_Om:Lput(1, "\\zha{Om.1_}"); tcg_Om:Rput(1, "\\zha{Om._1}") %L %L tcg_j:Lput(3, "\\zha{j.3_}"); tcg_j:Rput(3, "\\zha{j._3}") %L tcg_j:Lput(2, "\\zha{j.2_}"); tcg_j:Rput(2, "\\zha{j._2}") %L tcg_j:Lput(1, "\\zha{j.1_}"); tcg_j:Rput(1, "\\zha{j._1}") %L %L tcg_j:output() %L tcg_Om:output() %L tcg_PAQ:output() %L tcg_PA:output() % % % % «classifier-big-figure» (to ".classifier-big-figure") % (jonp 27 "classifier-big-figure") % (joe "classifier-big-figure") % \pu \begin{figure}[h] $ % \hspace{-40pt} \begin{array}{ccc} ((P,A),Q) = \tcg{(P,A),Q 33} & & (H,J) = \zha{H,J 33} \\ \\ Ω = \scalebox{0.9}{$\tcg{Om}$} & & j = \scalebox{0.9}{$\tcg{j}$} \\ \\ \end{array} $ \caption{The classifier and a local operator in a particular case} \label{fig:classifier-big} \end{figure} \newpage % ____ _ /\ ______ _ __ % / ___| ___| |_ |/\| / / _ \ / \ \ \ % \___ \ / _ \ __| | || |_) | / _ \ | | % ___) | __/ |_ | || __/ / ___ \| | % |____/ \___|\__| | ||_| ( )_/ \_\ | % \_\ |/ /_/ % % «Set-PA» (to ".Set-PA") % (jonp 28 "Set-PA") % (joe "Set-PA") \subsection{Toposes of the form $\Set^{(P,A)}$} \label{Set-PA} %L kite = ".1.|2.3|.4.|.5." %L six = ".1..|2.3.|.4.5|..6." %L mp = MixedPicture.new({def="dagKite", meta="s", scale="5pt"}, z):zfunction(kite):output() %L mp = MixedPicture.new({def="dagSix", meta="s", scale="4.5pt"}, z):zfunction(six):output() \pu In sec.2 of \cite{OchsPH1} we established that the same bullet diagram --- say, $\dagKite{•}{•}{•}{•}{•}$ --- could be intepreted as subset of $\Z^2$, as a DAG, or as poset, depending on the context. Now we will do something similar for graphs whose nodes are labeled. A diagram like this % % (vgsp 14 "first-gm") % (vgs "first-gm") % %L sesw = {[" w"]="↙", [" e"]="↘"} % %R local B, F, RG = 3/ 1 \, 3/ F_1 \, 3/ !Gt \ %R | w e | | w e | | w e | %R | 2 3 | |F_2 F_3 | |G_2 G_3 | %R | e w e | | e w e | | e w e | %R | 4 5 | | F_4 F_5| | G_4 G_5| %R | e w | | e w | | e w | %R \ 6 / \ F_6 / \ 1 / %R %R local A, G, LF = 3/ 2 3 \, 3/G_2 G_3 \, 3/F_2 F_3 \ %R | e w e | | e w e | | e w e | %R \ 4 5 / \ G_4 G_5/ \ F_4 F_5/ %R %R B :tozmp({zdef="pB", scale="7pt", meta="s p"}):addcells(sesw):output() %R F :tozmp({zdef="pF", scale="7pt", meta="s p"}):addcells(sesw):output() %R RG:tozmp({zdef="pRG", scale="7pt", meta="s p"}):addcells(sesw):output() %R A :tozmp({zdef="pA", scale="7pt", meta="s p"}):addcells(sesw):output() %R G :tozmp({zdef="pG", scale="7pt", meta="s p"}):addcells(sesw):output() %R LF:tozmp({zdef="pLF", scale="7pt", meta="s p"}):addcells(sesw):output() %R %R B :tozmp({zdef="pB0", scale="10pt", meta=" "}):addcells(sesw):output() %R F :tozmp({zdef="pF0", scale="10pt", meta=" "}):addcells(sesw):output() %R %R local Bargs = 3/ #1 \ %R | w e | %R |#2 #3 | %R | e w e | %R | #4 #5 | %R | e w | %R \ #6 / %R %R Bargs:tozmp({def="pBargs#1#2#3#4#5#6", scale="11pt", meta="p"}):addcells(sesw):output() % \pu $$\zha{pB0} $$ % is interpreted as a DAG by default, but in this section it will be also be interpreted as a (posetal) category in some contexts. We will keep the same notation: if $(P,A)$ is a DAG then we will denote $(P,A)$ ``regarded as a category'' by $(P,A)$. A functor $F$ from a category $(P,A)$ to $\Set$ can be drawn as a diagram with the same shape as $(P,A)$. If we draw the internal view of $F:(P,A)→\Set$ over its internal view as in the introduction of \cite{OchsPH1} we get this diagram: % %D diagram F6-int-ext %D 2Dx 100 +75 %D 2D 100 I1 --> I2 %D 2D %D 2D +40 E1 --> E2 %D 2D %D ren I1 I2 ==> \left(\zha{pB0}\right) \left(\zha{pF0}\right) %D ren E1 E2 ==> (P,A) \Set %D %D (( I1 I2 |-> %D E1 E2 -> .plabel= a F %D %D )) %D enddiagram %D $$\pu \diag{F6-int-ext} $$ % The `$\diagxyto/|->/$' in it stands for a bunch of `$\diagxyto/|->/$'s, one for each object and one for each morphism. We will only draw the upper-right part of diagrams like the one above. With this convention, an object $F∈\Set^{(P,A)}$ can be drawn as: % $$ F \;\; = \;\; \pBargs{F_1}{F_2}{F_3}{F_4}{F_5}{F_6} $$ % (elep 6 "elephant-A2.1.3") % (ele "elephant-A2.1.3") Every category of the form $\Set^{(P,A)}$ where $(P,A)$ is a finite graph is a topos --- see \cite{EA}, example A2.1.3 --- so categories of the form $\Set^{(P,A)}$ are toposes whose objects can be drawn as $(P,A)$-shaped diagrams. % ____ _ /\ ______ _ __ _ _ % / ___| ___| |_ |/\| / / _ \ / \ \ \ | | ___ __ _(_) ___ % \___ \ / _ \ __| | || |_) | / _ \ | | | |/ _ \ / _` | |/ __| % ___) | __/ |_ | || __/ / ___ \| | | | (_) | (_| | | (__ % |____/ \___|\__| | ||_| ( )_/ \_\ | |_|\___/ \__, |_|\___| % \_\ |/ /_/ |___/ % % «Set-PA-logic» (to ".Set-PA-logic") % (jonp 29 "Set-PA-logic") % (joe "Set-PA-logic") \subsection{The logic of toposes of the form $\Set^{(P,A)}$} %L -- Define the components of the %L -- internal views of Om and j. %L %L myspec = "1232RL1" %L tdims_mini = TCGDims {h=32, v=25, q=15, crh=8, crv=7, qrh=5} %L tdims_big = TCGDims {h=110, v=110, crh=30, crv=45} %L tspec_PAQ = TCGSpec.new("33; 32, 13", "?.?", "??.") %L tspec_PA = TCGSpec.new("33; 32, 13") %L tcg_PAQ = TCGQ.newdsoa(tdims_mini, tspec_mini, %L {tdef="(P,A),Q", meta="1pt p"}, %L " h v p lr q" %L -- "B QB h v p lr q" %L ) %L tcg_j = TCGQ.newdsoa(tdims_big, tspec_big, %L {tdef="j", meta="1pt p"}, %L -- "B h v p" %L "h v p" %L ) %L tcg_Om = TCGQ.newdsoa(tdims_big, tspec_big, %L {tdef="Om", meta="1pt p"}, %L -- "B h v p" %L "h v p" %L ) The terminal object $1∈\Set^{(P,A)}$ is: % $$\def\u{\{*\}} 1 \;\; = \;\; \pBargs{\u}{\u}{\u}{\u}{\u}{\u} $$ % and we can obtain all its subobjects by replacing some of the `$\{*\}$'s in it by empty sets. If we rewrite each $\{*\}$ as 1 and each $∅$ as 0 and use a more compact notation, then $1 = \dagSix111111$ and: % % (ph1p 25 "topologies-on-ZSets") % (ph1 "topologies-on-ZSets") % $$\Sub(1) = \left\{ \dagSix000000, \dagSix000001, \dagSix000011, \dagSix000101, \dagSix000111, \dagSix001111, \dagSix010101, \dagSix010111, \dagSix011111, \dagSix111111 \right\} $$ % The Heyting Algebra of subobjects of 1 when $(P,A) = \dagSix{•}{•}{•}{•}{•}{•}$ is essentially the same as the order topology $\Opens_A(P)$ that we saw in sec.12 of \cite{OchsPH1}! This holds for all graphs, and when $(P,A)$ is a 2CG --- for example, when % $$ (P,A) \;\; = \;\; \tcg{(P,A) 33} $$ % we can abbreviate the result further using the ideas is sec.15 of \cite{OchsPH1}: % % (ph1p 28 "topologies-on-2CGs") % (ph1 "topologies-on-2CGs") % $$ \Sub(1) \;\; = \;\; \Opens \tcg{(P,A) 33} \;\; = \;\; \zha{H 33} $$ So: the ``logic'' of a topos of the form $\Set^{(P,A)}$ --- i.e., its Heyting Algebra of subobjects of the terminal --- is exactly the topology $\Opens_A(P)$. \newpage % ____ _ /\ ______ _ __ _ % / ___| ___| |_ |/\| / / _ \ / \ \ \ _ __ ___ _ __ _ __ | |__ ___ % \___ \ / _ \ __| | || |_) | / _ \ | | | '_ ` _ \| '__| '_ \| '_ \/ __| % ___) | __/ |_ | || __/ / ___ \| | | | | | | | | | |_) | | | \__ \ % |____/ \___|\__| | ||_| ( )_/ \_\ | |_| |_| |_|_| | .__/|_| |_|___/ % \_\ |/ /_/ |_| % % «Set-PA-morphisms» (to ".Set-PA-morphisms") % (jonp 30 "Set-PA-morphisms") % (joe "Set-PA-morphisms") % \subsection{Morphisms in a topos $\Set^{(P,A)}$} \subsection{Morphisms as natural transformations} If $F$ and $G$ are objects of a category $\Set^\catA$ and $T:F→G$ is a morphism between them then $F$ and $G$ are functors and $T:F→G$ is a natural transformation, and T has to obey a ``naturalness condition'' that says that for every morphism $v:B→C$ in $\catA$ a certain ``obvious'' square must commute. We can draw that condition as the commutativity of the middle square below, % %D diagram sqcond-1 %D 2Dx 100 +30 +30 +30 +45 %D 2D 100 B FB -> GB x |--> rx %D 2D | | | - - %D 2D | | | | v %D 2D +22 v v v v drx %D 2D +8 C FC -> GC dx |-> rdx %D 2D %D 2D +20 F --> G %D 2D %D ren rx drx ==> (TB)(x) (Gv∘TB)(x) %D ren dx rdx ==> (Fv)(x) (TC∘Fv)(x) %D %D (( B C -> .plabel= l v %D F G -> .plabel= a T %D %D FB GB -> .plabel= a TB %D FB FC -> .plabel= l Fv %D GB GC -> .plabel= r Gv %D FC GC -> .plabel= a TC %D %D x rx |-> rx drx |-> %D x dx |-> dx rdx |-> %D )) %D enddiagram %D $$\pu \diag{sqcond-1} $$ % and as the domain of $F$ and $G$ is $\Set$ we can express that naturality as % $$∀(v:B→C). \, ∀x∈FB. \, (Gv∘TB)(x) = (TC∘Fv)(x)$$ % and represent that as the square at the right above. \msk We will often draw these morphisms/natural transformations like this, % $$\pBargs{F_1}{F_2}{F_3}{F_4}{F_5}{F_6} \diagxyto/->/<250>^{T} \pBargs{F_1}{F_2}{F_3}{F_4}{F_5}{F_6} $$ % leaving the category $\catA$ implicit. The `$\diagxyto/->/^{T}$' is a pack of six functions between sets, $T_1:F_1→G_1$, $\ldots$, $T_6:F_6→G_6$ --- compare with the meaning of the `$\diagxyto/|->/$' in sec.\ref{Set-PA}. \msk The definition of the local operator $j:Ω→Ω$ in Figure \ref{fig:classifier-big} is a natural transformation written in a very compact form. In that example $j_{3▁}(21) = 32$. \directlua{tf_pop()} % Local Variables: % coding: utf-8-unix % ee-tla: "joe" % End: