Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
% (find-LATEX "2020pullback-lemmas.tex") % (defun c () (interactive) (find-LATEXsh "lualatex -record 2020pullback-lemmas.tex" :end)) % (defun d () (interactive) (find-pdf-page "~/LATEX/2020pullback-lemmas.pdf")) % (defun d () (interactive) (find-pdftools-page "~/LATEX/2020pullback-lemmas.pdf")) % (defun e () (interactive) (find-LATEX "2020pullback-lemmas.tex")) % (defun u () (interactive) (find-latex-upload-links "2020pullback-lemmas")) % (defun v () (interactive) (find-2a '(e) '(d)) (g)) % (find-pdf-page "~/LATEX/2020pullback-lemmas.pdf") % (find-sh0 "cp -v ~/LATEX/2020pullback-lemmas.pdf /tmp/") % (find-sh0 "cp -v ~/LATEX/2020pullback-lemmas.pdf /tmp/pen/") % file:///home/edrx/LATEX/2020pullback-lemmas.pdf % file:///tmp/2020pullback-lemmas.pdf % file:///tmp/pen/2020pullback-lemmas.pdf % http://angg.twu.net/LATEX/2020pullback-lemmas.pdf % (find-LATEX "2019.mk") % «.make» (to "make") \documentclass[oneside,12pt]{article} \usepackage[colorlinks,citecolor=DarkRed,urlcolor=DarkRed]{hyperref} % (find-es "tex" "hyperref") \usepackage{amsmath} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{pict2e} \usepackage[x11names,svgnames]{xcolor} % (find-es "tex" "xcolor") %\usepackage{colorweb} % (find-es "tex" "colorweb") %\usepackage{tikz} % % (find-dn6 "preamble6.lua" "preamble0") \usepackage{proof} % For derivation trees ("%:" lines) \input diagxy % For 2D diagrams ("%D" lines) \xyoption{curve} % For the ".curve=" feature in 2D diagrams % \usepackage{edrx15} % (find-LATEX "edrx15.sty") \input edrxaccents.tex % (find-LATEX "edrxaccents.tex") \input edrxchars.tex % (find-LATEX "edrxchars.tex") \input edrxheadfoot.tex % (find-LATEX "edrxheadfoot.tex") \input edrxgac2.tex % (find-LATEX "edrxgac2.tex") % \usepackage[backend=biber, style=alphabetic]{biblatex} % (find-es "tex" "biber") \addbibresource{catsem-u.bib} % (find-LATEX "catsem-u.bib") % % (find-es "tex" "geometry") \begin{document} \catcode`\^^J=10 \directlua{dofile "dednat6load.lua"} % (find-LATEX "dednat6load.lua") % %L dofile "edrxtikz.lua" -- (find-LATEX "edrxtikz.lua") % %L dofile "edrxpict.lua" -- (find-LATEX "edrxpict.lua") % \pu \def\PB{\mathsf{PB}} \def\Wd{\mathsf{wd}} \def\good{\mathsf{good}} \def\unique{\mathsf{unique}} \title{Typing the Pullback Lemmas} \author{Eduardo Ochs} \date{} \maketitle The first Pullback Lemma states that if the squares $\sm{AB\\DE}$ and $\sm{BC\\EF}$ in the diagram below % %D diagram PB0 %D 2Dx 100 +20 +20 +20 %D 2D 100 X %D 2D %D 2D +20 A B C %D 2D %D 2D +20 D E F %D 2D %D (( A B -> %D B C -> %D A D -> %D B E -> %D C F -> %D D E -> %D E F -> %D %D X A -> %D X C -> %D X D -> %D )) %D enddiagram %D $$\pu \diag{PB0} $$ % are pullbacks then the rectangle obtained by glueing them together, $\sm{A{-}C\\D{-}F}$, is also a pullback. I don't know any place in the literature where this is proved in detail; its proof usually left as an exercise (for example, in \cite{CWM2}, III.4.8), or said to be a simple diagram chase (\cite{Awodey}, Lemma 5.10). Here we will see how to prove that in a Type System {\sl starting by its syntactical skeleton} --- a trick explained in section 12 and 19 of \cite{OchsIDARCT}. \msk Let's fix our terminology. We are in a category $\catC$ --- we won't need to consider other categories --- and our arrows will be named like this: % %D diagram PB1 %D 2Dx 100 +25 +25 +25 %D 2D 100 X %D 2D %D 2D +25 A B C %D 2D %D 2D +25 D E F %D 2D %D (( A B -> .plabel= b f_{AB} %D B C -> .plabel= b f_{BC} %D A D -> .plabel= m f_{AD} %D B E -> .plabel= m f_{BE} %D C F -> .plabel= m f_{CD} %D D E -> .plabel= b f_{DE} %D E F -> .plabel= b f_{EF} %D %D X A -> .plabel= m g_{A} %D X C -> .plabel= a g_{C} %D X D -> .plabel= l g_{D} %D )) %D enddiagram %D $$\pu \diag{PB1} $$ % The arrows $g_B$, $g_E$, and $g_F$ are not shown, and at some points of the proof we will need arrows $h_A:X→A$ and $h_B:X→B$. $\PB1$ is the statement that the left square $\sm{AB\\DE}$ is a pullback, $\PB2$ the statement that right square $\sm{BC\\EF}$ is a pullback, and $\PB3$ the statement that the outer rectangle is a pullback. Formally, $\PB1$ is: \begin{itemize} \item The square $\sm{AB\\DE}$ commutes, \item For every pair of arrows $(g_B,g_D)$ such that the quadrillateral $\sm{XB\\DE}$ commutes there is a unique arrow $g_A$ that makes everything commute. \end{itemize} Let's create some abbreviations. $\Wd[A→E]$ means that we have two ``natural constructions'' for arrows of type $A→E$, and these two natural constructions yield the same result. The pronounciation of ``$\Wd[A→E]$'' is ``the arrow from $A$ to $E$ is well-defined''. $\good(g_A)$ means $(g_A;f_{AB})=g_B$ and $(g_A;f_{AD})=g_D$; $\good(h_A)$ means $(h_A;f_{AB})=h_B$ and $(h_A;f_{AD})=h_D$; and $\unique(g_A)$ means $∀h_A:X→A.(\good(h_A) → (g_A=h_A))$. We can now express $\PB1$ in a more type-theoretical style as: \begin{itemize} \item $\Wd[A→E]$ plus: \item an operation that receives a (dependent) tuple $(g_B,g_D,\Wd[X→B],\Wd[X→D])$ and returns a tuple $(g_A, \good(g_A), \unique(g_A))$. \end{itemize} We can type all that as: % $$\begin{array}{rcl} \Wd[A→E] &:& ((f_{AB};f_{BE}) = (f_{AB};f_{BE})) \\ X &:& |\catC| \\ g_B &:& X→B \\ g_D &:& X→D \\ \Wd[X→B] &:& ((g_A;f_{AB}) = g_B) \\ \Wd[X→D] &:& ((g_A;f_{AD}) = g_D) \\ \end{array} $$ $\Wd[A→E] : ((f_{AB};f_{BE}) = (f_{AB};f_{BE}))$ Hi Robert! How are things? Long time no see/hear/read/write... Sorry for disappearing for so long - the reason was the usual one: my personal life was a total mess, I wasn't publishing enough, my self-esteem was at abyssal levels, and in these situations we tend to hide until things get much, much, much better... Anyway, a few years ago I found a niche in which I could produce material that lots of people found interesting, and I could get enough feedback on it and even present it at lots of places and even organize workshops on it (yaaaay!!!) - % (find-books "__cats/__cats.el" "ochs") % (find-awodeyctpage (+ 10 84) "Lemma 5.10. (Two-pullbacks)") % (find-awodeycttext (+ 10 84) "Lemma 5.10. (Two-pullbacks)") % (find-cwm2page (+ 9 76) "If both squares are pullbacks,") % (find-cwm2text (+ 9 76) "If both squares are pullbacks,") \printbibliography \end{document} % __ __ _ % | \/ | __ _| | _____ % | |\/| |/ _` | |/ / _ \ % | | | | (_| | < __/ % |_| |_|\__,_|_|\_\___| % % «make» (to ".make") * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) make -f 2019.mk STEM=2020pullback-lemmas veryclean make -f 2019.mk STEM=2020pullback-lemmas pdf % Local Variables: % coding: utf-8-unix % ee-tla: "pbl" % End: