|
Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
% (find-LATEX "2008comprcat-utf8.tex")
% (defun c () (interactive) (find-LATEXsh "lualatex -record 2008comprcat-utf8.tex" :end))
% (defun d () (interactive) (find-pdf-page "~/LATEX/2008comprcat-utf8.pdf"))
% (defun d () (interactive) (find-pdftools-page "~/LATEX/2008comprcat-utf8.pdf"))
% (defun e () (interactive) (find-LATEX "2008comprcat-utf8.tex"))
% (defun u () (interactive) (find-latex-upload-links "2008comprcat-utf8"))
% (defun v () (interactive) (find-2a '(e) '(d)) (g))
% (find-pdf-page "~/LATEX/2008comprcat-utf8.pdf")
% (find-sh0 "cp -v ~/LATEX/2008comprcat-utf8.pdf /tmp/")
% (find-sh0 "cp -v ~/LATEX/2008comprcat-utf8.pdf /tmp/pen/")
% file:///home/edrx/LATEX/2008comprcat-utf8.pdf
% file:///tmp/2008comprcat-utf8.pdf
% file:///tmp/pen/2008comprcat-utf8.pdf
% http://angg.twu.net/LATEX/2008comprcat-utf8.pdf
% (find-LATEX "2019.mk")
\documentclass[oneside]{book}
\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")
%
% (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
% (find-dednat6 "dednat6/block.lua" "TexLines")
\directlua{tf:processuntil(texlines:nlines())}
% %:*\s[*\dncdisplay[*
\def\s{\dncdisplay}
\def\dncdisplay[#1|#2]{\begin{pmatrix} #2 \\ #1 \end{pmatrix}}
% «.dtt-exchange» (to "dtt-exchange")
% «.dtt-unpack» (to "dtt-unpack")
% «.dtt-structural-rules» (to "dtt-structural-rules")
% «.dtt-type-rules» (to "dtt-type-rules")
% «.dtt-alt-sum-rules» (to "dtt-alt-sum-rules")
% «.dtt-alt-equality» (to "dtt-alt-equality")
% «.dtt-adjunctions» (to "dtt-adjunctions")
% «.dtt-conversions» (to "dtt-conversions")
% «.rules-dtt» (to "rules-dtt")
% «.ccw1» (to "ccw1")
% «.ccw1-bij» (to "ccw1-bij")
% «.ccw1-bigbij» (to "ccw1-bigbij")
% «.ccw1-three-rules» (to "ccw1-three-rules")
% «.ccompc-prodI-and-prodE» (to "ccompc-prodI-and-prodE")
% «.ccompc-sumI» (to "ccompc-sumI")
% «.ccompc-sumE+» (to "ccompc-sumE+")
% «.dtt-unpack-2» (to "dtt-unpack-2")
% «.elisp» (to "elisp")
Index of the slides:
\msk
% To update the list of slides uncomment this line:
%\makelos{tmp.los}
% then rerun LaTeX on this file, and insert the contents of "tmp.los"
% below, by hand (i.e., with "insert-file"):
% (find-fline "tmp.los")
% (insert-file "tmp.los")
\tocline {DTT: the exchange rule} {2}
\tocline {DTT: the ``unpack'' rule} {3}
\tocline {DTT: structural rules} {4}
\tocline {DTT: type rules} {5}
\tocline {DTT: alternate rules for strong sum} {6}
\tocline {DTT: Alternate rules for strong equality} {7}
\tocline {Adjunction diagrams} {8}
\tocline {Conversions} {9}
\tocline {Comprehension categories with unit} {10}
\tocline {Comprehension categories with unit: a bijection} {11}
\tocline {Comprehension categories with unit: big bijection} {12}
\tocline {Comprehension categories with unit: three rules} {13}
\tocline {Interpreting $\Pi$I and $\Pi$E in a CCompC} {14}
\tocline {Interpreting $\Sigma$I in a CCompC} {15}
\tocline {Interpreting $\Sigma \mathrm{E}^+$ in a CCompC} {16}
\tocline {The ``unpack'' rule (2)} {17}
\tocline {Rules for DTT} {18}
\newpage
%*
% (eedn4-51-bounded)
% (find-diagxypage 23)
% (find-dn4 "dednat41.lua" "lplacement")
% (find-dn4file "experimental.lua")
% (find-LATEXfile "diagxy.tex")
% (find-LATEXfile "diagxy.tex" "\\def\\domorphism")
% (eedn4-51-bounded)
% (find-zsh0 "cd ~/LATEX/ && dvips -D 300 -o tmp.ps tmp.dvi")
% (find-pspage "~/LATEX/tmp.ps")
% (find-LATEXfile "2008topos-str.tex")
% --------------------
% «dtt-exchange» (to ".dtt-exchange")
% (s "DTT: the exchange rule" "dtt-exchange")
\myslide {DTT: the exchange rule} {dtt-exchange}
\def▁{\underline}
\def\unpackasin#1#2#3{\text{unpack $#1$ as $\ang{#2}$ in $#3$}}
\def\unpackin#1#2{\text{unpack $#1$ in $#2$}}
\def\withvia#1#2#3{\text{$#1$ with $#2$ via $#3$}}
\def\wvia#1#2{\text{with $#1$ via $#2$}}
\def\via#1#2{\text{$#1$ via $#2$}}
\def\eqdef{\overset{\text{def}}{=}}
\def\eqeta{\overset{\eta}{=}}
\def\eqbeta{\overset{\beta}{=}}
\def\Type{𝐬{Type}}
\def\Eq{𝐫{Eq}}
In Jacobs (10.1) the exchange rule for DTT is stated like this:
%: \GG,x:σ,y:τ,\DD|-M:ρ
%: --------------------
%: \GG,y:τ,x:σ,\DD|-M:ρ
%:
%: ^exchange-jacobs
%:
$$\ded{exchange-jacobs}$$
with a side-condition: ``$x$ is not free in $τ$''.
\msk
Let's translate this:
%: \vec{a}⠆\vec{A},b⠆B_{\vec{a}},c⠆C_{\vec{a}},\vec{d}⠆\vec{D}_{\vec{a}bc}|-e_{\vec{a}bc\vec{d}}⠆E_{\vec{a}bc\vec{d}}
%: -----------------------------------------------------------------------------------------------------
%: \vec{a}⠆\vec{A},c⠆C_{\vec{a}},b⠆B_{\vec{a}},\vec{d}⠆\vec{D}_{\vec{a}bc}|-e_{\vec{a}bc\vec{d}}⠆E_{\vec{a}bc\vec{d}}
%:
%: ^exchange-abcde-big
%:
$$\ded{exchange-abcde-big}$$
Note that if we had used $c:C_{\vec{a}b}$ instead of $c:C_{\vec{a}}$
the bottom judgment would have made no sense.
\msk
Let's make this shorter.
We can hide the annotations that indicate dependencies,
the types, and the ``vector'' marks:
%: \vec{a}⠆\vec{A},b⠆B,c⠆C,\vec{d}⠆\vec{D}|-e⠆E
%: ------------------------------------
%: \vec{a}⠆\vec{A},c⠆C,b⠆B,\vec{d}⠆\vec{D}|-e⠆E
%:
%: ^exchange-abcde-tv
%:
%: \vec{a},b,c,\vec{d}|-e
%: ----------------------
%: \vec{a},c,b,\vec{d}|-e
%:
%: ^exchange-abcde-v
%:
%: a,b,c,d|-e
%: ----------
%: a,c,b,d|-e
%:
%: ^exchange-abcde
%:
$$\ded{exchange-abcde-tv} \qquad \ded{exchange-abcde-v} \qquad \ded{exchange-abcde}$$
It is this last form that we will use.
\bsk
\bsk
{\bf Exercise:} rewrite the first translation with
%
$$\begin{array}{rcl}
(\vec{a}⠆\vec{A}) & := & (a_1⠆A_1[\,],\ldots,a_n⠆A_n[a_1,...,a_{n-1}]) \\
(\vec{d}⠆\vec{D}_{\vec{a}bc}) & := & (d_1⠆D_1[a_1,...,a_{n},b,c],\ldots, \\
& & \phantom{(}d_m⠆D_m[a_1,...,a_{n},b,c,d_1,...,d_{m-1}]) \\
\end{array}
$$
and check that the rule becomes unbearably big.
\newpage
% --------------------
% «dtt-unpack» (to ".dtt-unpack")
% (s "DTT: the ``unpack'' rule" "dtt-unpack")
\myslide {DTT: the ``unpack'' rule} {dtt-unpack}
In Jacobs (10.1, but after 10.1.2) the strong
sum-elimination rule is stated as this:
%:
%: \GG,z:Σx:σ.τ|-ρ:\Type \GG,x:σ,y:τ|-Q:ρ[\ang{x,y}/z]
%: -----------------------------------------------------(𝐫{strong})
%: \GG,z:Σx:σ.τ|-(\unpackasin{z}{x,y}{Q}):ρ
%:
%: ^unpack-ren-1
%:
$$\ded{unpack-ren-1}$$
In an ``unpack'' term like
%
$$\unpackasin{P}{x,y}{Q}$$
the ``unpack'' binds two variables in $Q$, $x$ and $y$,
at the same time, and sets their values to the components
of the (dependent) pair $P$.
\msk
In the presence of $π$ and $π'$ we can {\sl define}:
%
$$(\unpackasin{P}{x,y}{Q}) := Q[x:=πP,y:=π'P].$$
Let's change the ``unpack'' notation one step at a time:
$$\begin{array}{rl}
& \unpackasin{P}{x,y}{Q} \\
\funto & \unpackin{P=:x,y}{Q} \\
\funto & Q[x,y:=P] \\
\end{array}
$$
\msk
Now let's rewrite the rule:
%: \GG,z:Σx:σ.τ|-ρ:\Type \GG,x:σ,y:τ|-Q:ρ[z:=\ang{x,y}]
%: -----------------------------------------------------
%: \GG,z:Σx:σ.τ|-Q[x,y:=z]:ρ
%:
%: ^unpack-ren-2
%:
%: \vec{a}⠆\vec{A},p⠆(Σb⠆B.C)|-D⠆\Type \vec{a}⠆\vec{A},b⠆B,c⠆C|-d⠆D[p:=\ang{b,c}]
%: -----------------------------------------------------
%: \vec{a}⠆\vec{A},p⠆(Σb⠆B.C)|-d[b,c:=p]⠆D
%:
%: ^unpack-ren-3
%:
%: \vec{a}⠆\vec{A},(b,c)⠆(Σb⠆B.C)|-D⠆\Type \vec{a}⠆\vec{A},b⠆B,c⠆C|-d⠆D[(b,c):=\ang{b,c}]
%: -----------------------------------------------------
%: \vec{a}⠆\vec{A},(b,c)⠆(Σb⠆B.C)|-d[b,c:=(b,c)]⠆D
%:
%: ^unpack-ren-4
%:
%: \vec{a},(b,c)|-D \vec{a},b,c|-d
%: ---------------------------------
%: \vec{a},(b,c)|-d[b,c:=(b,c)]
%:
%: ^unpack-ren-5
%:
%: a,(b,c)|-D a,b,c|-d
%: --------------------------Σ𝐫E^+
%: a,(b,c)|-d[b,c:=(b,c)]
%:
%: ^unpack-ren-6
%:
%: a,(b,c)|-D a,b,c|-d
%: ---------------------Σ𝐫E^+
%: a,(b,c)|-d
%:
%: ^unpack-ren-7
%:
$$\ded{unpack-ren-2}$$
$$\ded{unpack-ren-3}$$
$$\ded{unpack-ren-4}$$
$$\ded{unpack-ren-5}$$
$$\ded{unpack-ren-6}$$
$$\ded{unpack-ren-7}$$
We will use the two last forms.
\newpage
% --------------------
% «dtt-structural-rules» (to ".dtt-structural-rules")
% (s "DTT: structural rules" "dtt-structural-rules")
\myslide {DTT: structural rules} {dtt-structural-rules}
%: a|-b a|-B=B'
%: Conversion: -------------𝐫{conv}
%: a|-b'
%:
%: ^10.1-conv
%:
%: a|-B
%: Projection: ------𝐫{v}
%: a,b|-b
%:
%: ^10.1-var
%:
%: a,b,b',c|-D a,b,b',c|-d
%: Contraction: -----------𝐫{contr} -----------𝐫{contr}
%: a,b,c|-D a,b,c|-d
%:
%: ^10.1-Contr ^10.1-contr
%:
%: a|-b a,b,c|-D a|-b a,b,c|-d
%: Substitution: --------------𝐫s --------------𝐫s
%: a,c|-D a,c|-d
%:
%: ^10.1-Subst ^10.1-subst
%:
%: a|-B a|-C a|-B a|-c
%: Weakening: ----------𝐫w ----------𝐫w
%: a,b|-C a,b|-c
%:
%: ^10.1-Weak ^10.1-weak
%:
%: a,b,c,d|-E a,b,c,d|-e
%: Exchange: ----------𝐫{exch} ----------𝐫{exch}
%: a,c,b,d|-E a,c,b,d|-e
%:
%: ^10.1-Exch ^10.1-exch
These ones are used very often:
$$\begin{array}{lcc}
\text{Variable:} & \cded{10.1-var} \\ \\
\text{Substitution:} & \cded{10.1-Subst} & \cded{10.1-subst} \\ \\
\text{Weakeking:} & \cded{10.1-Weak} & \cded{10.1-weak} \\ \\
\end{array}
$$
These ones not so much:
$$\begin{array}{lcc}
\text{Conversion:} & \cded{10.1-conv} \\ \\
\text{Contraction:} & \cded{10.1-Contr} & \cded{10.1-contr} \\ \\
\text{Exchange:} & \cded{10.1-Exch} & \cded{10.1-exch} \\ \\
\end{array}
$$
Note: ``Variable'' is called ``Projection'' at [Jacobs].
\newpage
% --------------------
% «dtt-type-rules» (to ".dtt-type-rules")
% (s "DTT: type rules" "dtt-type-rules")
\myslide {DTT: type rules} {dtt-type-rules}
We have four different type-formers:
singleton, (dependent) products, (dependent) sums, and equality.
For each one of them we have a type-building rule, an introduction
rule, and elimination rules.
\msk
There are several options for elimination rules
for dependent sums and equality.
\msk
In a system with ``weak sums'' the rule is $Σ𝐫E^-$.
In a system with ``strong sums'' the rule is $Σ𝐫E^+$,
or, equivalently, $π+π'$.
\msk
In a system with ``weak equality'' the rule is $𝐫{EqE}^-$.
In a system with ``strong equality'' the rule is $𝐫{EqE}^+$,
or, equivalently, ee+ur (``externalization of equality''
plus ``uniqueness of reflexivity'').
%:
%: Type: Intro: Elim:
%:
%: a|-*'
%: Singleton: ---1 ---1𝐫I -------1𝐫E
%: |-1 |-* a|-*'=*
%:
%: ^10.1-1 ^10.1-1I ^10.1-1E
%:
%: a,b|-C a,b|-c a|-b a|-b|->c
%: DepProds: ---------Π --------Π𝐫I --------------Π𝐫E
%: a|-Πb:B.C a|-b|->c a|-c
%:
%: ^10.1-prod ^10.1-prodI ^10.1-prodE
%:
%: a,b|-C a|-B a,b|-C
%: DepSums: ---------Σ ------------Σ𝐫I (see below)
%: a|-Σb:B.C a,b,c|-(b,c)
%:
%: ^10.1-sum ^10.1-sumI
%:
%: a|-B a|-B
%: Equality: ----------------𝐫{Eq} ----------𝐫{EqI} (see below)
%: a,b,b'|-𝐫W[b=b'] a,b|-(b=b)
%:
%: ^10.1-eq ^10.1-eqI
\def\twol#1#2{\begin{array}[m]{ll}\text{#1} \\ \text{#2}\end{array}}
\def\twol#1#2{\text{#2}}
$$\begin{array}{lccc}
\text{Singleton:} & \cded{10.1-1} & \cded{10.1-1I} & \cded{10.1-1E} \\ \\
\twol{Dependent}
{Products:} & \cded{10.1-prod} & \cded{10.1-prodI} & \cded{10.1-prodE} \\ \\
\twol{Dependent}
{Sums:} & \cded{10.1-sum} & \cded{10.1-sumI} & \text{(See below)} \\ \\
\text{Equality:} & \cded{10.1-eq} & \cded{10.1-eqI} & \text{(See below)} \\ \\
\end{array}
$$
%: Elimination rules:
%: DepSums: Equality:
%:
%: a|-D a,b,c|-d a,b,b',c|-D a,b,c|-d
%: Weak: --------------Σ𝐫E^- ---------------------𝐫{EqE}^-
%: a,(b,c)|-d a,b,b',(b=b'),c|-d
%:
%: ^10.1-sumE- ^10.1-eqE-
%:
%: a,(b,c)|-D a,b,c|-d a,b,b',(b=b')|-C a,b|-c
%: Strong: --------------------Σ𝐫E^+ ------------------------𝐫{EqE}^+
%: a,(b,c)|-d a,b,b',(b=b')|-c
%:
%: ^10.1-sumE+ ^10.1-eqE+
%:
%: a|-b,c a|-b,c a|-(b=b') a|-(b=b)'
%: AltStrong: ------π ------π' ---------𝐫{ee} ---------------𝐫{ur}
%: a|-b a|-c a|-b=b' a|-(b=b)'=(b=b)
%:
%: ^10.1-pi ^10.1-pi' ^10.1-ee ^10.1-ur
$$\begin{array}{ccc}
\ded{10.1-sumE-} & & \ded{10.1-eqE-} \\ \\
\ded{10.1-sumE+} & & \ded{10.1-eqE+} \\ \\
\ded{10.1-pi} \qquad \ded{10.1-pi'} & & \ded{10.1-ee} \quad\;\; \ded{10.1-ur} \\ \\
\end{array}
$$
\newpage
%*
% (eedn4-51-bounded)
% --------------------
% «dtt-alt-sum-rules» (to ".dtt-alt-sum-rules")
% (s "DTT: alternate rules for strong sum" "dtt-alt-sum-rules")
\myslide {DTT: alternate rules for strong sum} {dtt-alt-sum-rules}
Jacobs, 10.1.3 (i):
The rules $π$ and $π'$ can be defined from $ΣE^+$:
%:
%: a,b|-C a|-B
%: -------Σ ------𝐫v
%: a|-Σb.C a|-B a,b|-C a,b|-b
%: --------------𝐫w --------------𝐫w
%: a,(b,c)|-B a,b,c|-b
%: ----------------------------ΣE^+
%: a|-(b,c) a|-(b,c) a,(b,c)|-b
%: --------π ------------------------------𝐫s
%: a|-b := a|-b
%:
%: ^strongsum1 ^strongsum2
%:
%:
%: a,b|-C
%: ==========
%: a,(b,c)|-b a,b|-C a,b|-C
%: -------------------𝐫s --------𝐫v
%: a,(b,c)|-C a,b,c|-c
%: ------------------------------ΣE^+
%: a|-(b,c) a|-(b,c) a,(b,c)|-c
%: --------π' -------------------------------------𝐫s
%: a|-c := a|-c
%:
%: ^strongsum3 ^strongsum4
%:
$$\ded{strongsum1} \quad := \quad \ded{strongsum2}$$
$$\ded{strongsum3} \quad := \quad \ded{strongsum4}$$
\bsk
\bsk
The rule $ΣE^+$ can be defined from $π$ and $π'$:
%:
%: a,b|-C
%: -------Σ
%: a,b|-C a|-Σb.C a,b,c|-d
%: ==========π ------------------𝐫{w}
%: a,b|-C a,(b,c)|-b a,(b,c),b,c|-d
%: ==========π' -----------------------------𝐫s
%: a,(b,c)|-D a,b,c|-d a,(b,c)|-c a,(b,c),c|-d
%: ----------------------ΣE^+ ------------------------------𝐫s
%: a,(b,c)|-d := a,(b,c)|-d
%:
%: ^strongsum5 ^strongsum6
%:
$$
\begin{array}{l}
\ded{strongsum5} \quad \\
\quad := \quad \ded{strongsum6}
\end{array}
$$
\newpage
% --------------------
% «dtt-alt-equality» (to ".dtt-alt-equality")
% (s "DTT: alternate rules for strong equality" "dtt-alt-equality")
\myslide {DTT: Alternate rules for strong equality} {dtt-alt-equality}
The $Σ𝐫E^+$ rule is equivalent to the two rules ee and ur,
that say that from ``witnesses of equality'' we can prove
external equality - i.e., that some terms are equal.
This equivalence $Σ𝐫E^+ \iff (𝐫{ee},𝐫{ur})$ is of a different
nature from the ones that we have seen before -
this one uses $\bb/\ee/{:=}$ and lives intrinsically in the
(P+T) structure - it cannot be restricted to the T-part
(i.e., to the syntactical world).
$$\begin{array}{rcl}
a,b,b',e & \vdash & b \\
& \eqeta & \withvia{b[b':=b, e:=r]}{b=b'}{e} \\
& = & \withvia{b'[b':=b, e:=r]}{b=b'}{e} \\
& \eqeta & b' \\
\end{array}
$$
$$\begin{array}{rcl}
a,b,b',e & \vdash & e \\
& \eqeta & \withvia{e[b':=b, e:=r]}{b=b'}{e} \\
& = & \withvia{r[b':=b, e:=r]}{b=b'}{e} \\
& \eqeta & r \\
\end{array}
$$
\newpage
% --------------------
% «dtt-adjunctions» (to ".dtt-adjunctions")
% (s "Adjunction diagrams" "dtt-adjunctions")
\myslide {Adjunction diagrams} {dtt-adjunctions}
%D diagram Hyperdoctrine-foo
%D 2Dx 100 +45 +85 +40
%D 2D 100 eq0 =====> eq1 aw0 =====> aw1
%D 2D - - - -
%D 2D | <--> | | <--> |
%D 2D v v v v
%D 2D +40 eq2 <===== eq3 aw2 <===== aw3
%D 2D - -
%D 2D | <--> |
%D 2D v v
%D 2D +40 aw4 =====> aw5
%D 2D
%D 2D +20 eq4 |----> eq5 aw6 |----> aw7
%D
%D (( eq0 .tex= \s[a,b|c] eq1 .tex= \s[a,b,b'|(b{=}b'),c]
%D eq2 .tex= \s[a,b|d] eq3 .tex= \s[a,b,b'|d]
%D @ 0 @ 1 => sl_ @ 0 @ 1 |-> sl^ .plabel= a \co{◻}
%D @ 2 @ 3 <= sl_ @ 2 @ 3 |-> sl^ .plabel= a {◻}
%D # @ 0 @ 2 |-> @ 1 @ 3 |-> @ 0 @ 3 harrownodes nil 20 nil <->
%D @ 0 @ 2 |-> .PLABEL= _(0.43) a,b;c|-d
%D @ 1 @ 3 |-> .PLABEL= ^(0.43) a,b,b';e,c|-d[\via{b=b'}{e}]
%D @ 0 @ 2 |-> .PLABEL= _(0.57) a,b;c|-d[b':=b,e:=r]
%D @ 1 @ 3 |-> .PLABEL= ^(0.57) a,b,b';e,c|-d
%D @ 0 @ 3 harrownodes nil 20 nil |-> sl^
%D @ 0 @ 3 harrownodes nil 20 nil <-| sl_
%D ))
%D (( eq4 .tex= a,b eq5 .tex= a,b,b'
%D @ 0 @ 1 |->
%D ))
%D (( aw0 .tex= \s[a,b|c] aw1 .tex= \s[a|b,c]
%D aw2 .tex= \s[a,b|d] aw3 .tex= \s[a|d]
%D aw4 .tex= \s[a,b|e] aw5 .tex= \s[a|{b|->e}]
%D @ 0 @ 1 => sl_ @ 0 @ 1 |-> sl^ .plabel= a \co{◻}
%D @ 2 @ 3 <= sl_ @ 2 @ 3 |-> sl^ .plabel= a {◻}
%D @ 4 @ 5 =>
%D @ 0 @ 2 |-> .PLABEL= _(0.43) a,b;c|-d
%D @ 1 @ 3 |-> .PLABEL= ^(0.43) a;p|-d[b,c:=p]
%D @ 0 @ 2 |-> .PLABEL= _(0.57) a,b;c|-d[p:=\ang{b,c}]
%D @ 1 @ 3 |-> .PLABEL= ^(0.57) a;p|-d
%D @ 0 @ 3 harrownodes nil 20 nil |-> sl^
%D @ 0 @ 3 harrownodes nil 20 nil <-| sl_
%D @ 2 @ 4 |-> .PLABEL= _(0.43) a,b;d|-fb
%D @ 3 @ 5 |-> .PLABEL= ^(0.43) a;d|-f
%D @ 2 @ 4 |-> .PLABEL= _(0.57) a,b;d|-e
%D @ 3 @ 5 |-> .PLABEL= ^(0.57) a;d|-λb.e
%D @ 2 @ 5 harrownodes nil 20 nil <-| sl^
%D @ 2 @ 5 harrownodes nil 20 nil |-> sl_
%D ))
%D (( aw6 .tex= a,b aw7 .tex= a
%D @ 0 @ 1 |->
%D ))
%D enddiagram
$$\def\s{\dncdisplay}
\diag{Hyperdoctrine-foo}
$$
\bsk
\bsk
%D diagram beta-and-eta-for-sums
%D 2Dx 100 +40
%D 2D 100 aw0 =====> aw1
%D 2D - -
%D 2D | <--> |
%D 2D v v
%D 2D +40 aw2 <===== aw3
%D 2D
%D 2D +30 bw0 =====> bw1
%D 2D - -
%D 2D | <--> |
%D 2D v v
%D 2D +40 bw2 <===== bw3
%D 2D
%D (( aw0 .tex= \s[a,b|c] aw1 .tex= \s[a|b,c]
%D aw2 .tex= \s[a,b|d] aw3 .tex= \s[a|d]
%D @ 0 @ 1 => sl_ @ 0 @ 1 |-> sl^ .plabel= a \co{◻}
%D @ 2 @ 3 <= sl_ @ 2 @ 3 |-> sl^ .plabel= a {◻}
%D @ 0 @ 2 |-> .PLABEL= _(0.43) a,b;c|-d
%D @ 0 @ 2 |-> .PLABEL= _(0.57) a,b;c|-d[b,c:=p][p:=\ang{b,c}]
%D @ 1 @ 3 |-> .PLABEL= ^(0.43) a;p|-d[b,c:=p]
%D @ 1 @ 3 |-> .PLABEL= ^(0.57) a;p|-d[b,c:=p]
%D @ 0 @ 3 harrownodes nil 20 nil |-> sl^
%D @ 0 @ 3 harrownodes nil 20 nil <-| sl_
%D ))
%D (( bw0 .tex= \s[a,b|c] bw1 .tex= \s[a|b,c]
%D bw2 .tex= \s[a,b|d] bw3 .tex= \s[a|d]
%D @ 0 @ 1 => sl_ @ 0 @ 1 |-> sl^ .plabel= a \co{◻}
%D @ 2 @ 3 <= sl_ @ 2 @ 3 |-> sl^ .plabel= a {◻}
%D @ 0 @ 2 |-> .PLABEL= _(0.43) a,b;c|-d[p:=\ang{b,c}]
%D @ 1 @ 3 |-> .PLABEL= ^(0.43) a;p|-d[p:=\ang{b,c}][b,c:=p]
%D @ 0 @ 2 |-> .PLABEL= _(0.57) a,b;c|-d[p:=\ang{b,c}]
%D @ 1 @ 3 |-> .PLABEL= ^(0.57) a;p|-d
%D @ 0 @ 3 harrownodes nil 20 nil |-> sl^
%D @ 0 @ 3 harrownodes nil 20 nil <-| sl_
%D ))
%D enddiagram
$\def\s{\dncdisplay}
\diag{beta-and-eta-for-sums}
$
%*
% (eedn4a-bounded)
% (find-zsh0 "cd ~/LATEX/ && dvips -D 300 -o tmp.ps tmp.dvi")
% (find-pspage "~/LATEX/tmp.ps")
\newpage
% --------------------
% «ccw1-conversions» (to ".ccw1-conversions")
% (s "Conversions" "ccw1-conversions")
\myslide {Conversions} {ccw1-conversions}
Conventions:
$\bb$-conversions first, then $\eta$-conversions.
Underlined names are terms.
$▁{(b{=}b)}$ is the reflexivity term.
$\begin{array}{rcl}
(λb.▁c)▁b &=& ▁c[▁b=:b] \\
λb.▁fb &=& ▁f \\
\unpackasin{\ang{▁b,▁c}}{b,c}{▁d} &=& ▁d[▁b=:b,▁c=:c] \\
\unpackasin{▁{(b,c)}}{b,c}{▁d[\ang{b,c}=:(b,c)]} &=& ▁d[▁{(b,c)}=:(b,c)] \\
\withvia {▁d} {b=b} {▁{(b{=}b)}} &=& ▁d \\
\withvia {▁d[b=:b',▁{(b{=}b)}=:(b{=}b)']} {b'=b} {(b{=}b)'} &=& ▁d \\
\end{array}
$
\bsk
$$\begin{array}{rcccl}
a & \vdash & f & \eqbeta & λb.fb \\
a,b & \vdash & e & \eqeta & (λb.e)b \\
a,b,c & \vdash & d & = & d[b,c:=\ang{b,c}] \\
a,p & \vdash & d & = & d[p:=\ang{b,c}][b,c:=p] \\
a,b,c & \vdash & d & = & d[\wvia{b=b}{r}] \\
a,b,b',e,c & \vdash & d & = & d[b':=b,e:=r][\wvia{b'=b}{e}] \\
\end{array}
$$
% (find-LATEXfile "edrx08.sty")
%: \GG,x:σ,x':σ,\DD|-ρ:\Type \GG,x:σ,\DD[x/x']|-Q:ρ[x/x']
%: --------------------------------------------------------(𝐫{weak})
%: \GG,x:σ,x':σ,z:\Eq_σ(x,x'),\DD|-(\withvia{Q}{x'=x}{z}):ρ
%:
%: ^Jacobs-587.2
%:
%: a,b,b',c|-D a,b,c[b=:b']|-d:D[b=:b']
%: ----------------------------------------------(𝐫{weak})
%: a,b,b',(b=b'),c|-(\withvia{d}{b'=b}{(b=b')}):D
%:
%: ^Jacobs-587.2-my
%:
$$\ded{Jacobs-587.2}$$
$$\ded{Jacobs-587.2-my}$$
%*
\newpage
% --------------------
% «ccw1» (to ".ccw1")
% (s "Comprehension categories with unit" "ccw1")
\myslide {Comprehension categories with unit} {ccw1}
\def\EtoBto{\mathbb{E} \to \mathbb{B}^\to}
% (find-jacobspage (+ 19 616))
Jacobs, 10.4.7 (p.616):
A fibration $p: \mathbb{E} \to \mathbb{B}$ with a
terminal object functor $1: \mathbb{B} \to \mathbb{E}$
(where we know by lemma 1.8.8 that $p \dashv 1$ and that $\eta_I = \id$)
is {\sl comprehension category with unit} if 1 has a right adjoint.
We call this right adjoint $\{-\}$.
%D diagram ccwu-adjs-dnc
%D 2Dx 100 +30 +30
%D 2D 100 a0 |---> a1 |---> a2
%D 2D || ^ /\ ^ ||
%D 2D || | || | ||
%D 2D \/ v || v \/
%D 2D +30 a3 |---> a4 |---> a5
%D 2D
%D (( a0 .tex= \s[a|b] a1 .tex= \s[c|*] a2 .tex= \s[d|e]
%D a3 .tex= a a4 .tex= c a5 .tex= d,e
%D @ 0 @ 1 |-> @ 1 @ 2 |->
%D @ 0 @ 3 => .plabel= l p
%D @ 1 @ 4 <= .plabel= r 1
%D @ 2 @ 5 => .plabel= r \{-\}
%D @ 0 @ 4 varrownodes nil 20 nil <->
%D @ 1 @ 5 varrownodes nil 20 nil <->
%D @ 3 @ 4 |-> @ 4 @ 5 |->
%D ))
%D enddiagram
%D
$$\diag{ccwu-adjs-dnc}$$
\msk
Jacobs, 10.4.7 (p.616):
Definition of the functor $\EtoBto$:
its action on objects is $X \mto pε_X$.
%D diagram ccwu-p
%D 2Dx 100 +30 +30 +40 +30 +30
%D 2D 100 a0 |------------> a2 b0 |------------> b2
%D 2D /\ ^ // || /\ ^ // ||
%D 2D || | // || || | // ||
%D 2D || - \/ \/ || - \/ \/
%D 2D +30 a3 |---> a4 |---> a5 b3 |---> b4 |---> b5
%D 2D
%D (( a0 .tex= 1\{X\} a2 .tex= X
%D a3 .tex= \{X\} a4 .tex= \{X\} a5 .tex= pX
%D a0 a2 -> .plabel= a ε_X
%D a3 a4 -> .plabel= b \id
%D a4 a5 -> .plabel= b pε_X
%D a0 a3 <-| a2 a4 |-> a2 a5 |->
%D a0 a4 varrownodes nil 20 nil <-|
%D ))
%D (( b0 .tex= \s[d,e|*] b2 .tex= \s[d|e]
%D b3 .tex= d,e b4 .tex= d,e b5 .tex= d
%D b0 b2 |-> b3 b4 |-> b4 b5 |->
%D b0 b3 <= b2 b4 => b2 b5 =>
%D b0 b4 varrownodes nil 20 nil <-|
%D ))
%D enddiagram
$$\diag{ccwu-p}$$
% (fooi "|->" "->" "<-|" "<-" "=>" "|->" "<=" "<-|")
% (fooi "|->" "=>" "<-|" "<=" "->" "|->" "<-" "<-|")
\msk
% (find-dn4exfile "eedemo2.tex")
%D diagram ccwu-pb
%D 2Dx 100 +30 +5 +15 +15 +15 +30
%D 2D 100 a0
%D 2D /\/
%D 2D || \
%D 2D || v
%D 2D +25 a1 |--> a2 a3
%D 2D - - ||/
%D 2D \ \ || \
%D 2D v v\/ \
%D 2D +25 a4 |---> a5 \
%D 2D - - v
%D 2D +25 a6 |-> a7 |------------------> a8
%D 2D /\ /\ \ // ||
%D 2D || || \ // ||
%D 2D || || v \/ \/
%D 2D +25 a9 |-> a10 |---------> a11 |-> a12
%D 2D
%D (( a0 .tex= 1I
%D a1 .tex= \{1I\} a2 .tex= I a3 .tex= X
%D a4 .tex= \{X\} a5 .tex= pX
%D a6 .tex= 1I a7 .tex= 1\{Y\} a8 .tex= Y
%D a9 .tex= I a10 .tex= \{Y\} a11 .tex= \{Y\} a12 .tex= pY
%D a0 a1 |-> a0 a2 <-|
%D a3 a4 |-> a3 a5 |->
%D a6 a9 <-| a7 a10 <-| a8 a11 |-> a8 a12 |->
%D a1 a2 -> sl_ .plabel= b π_{1I}
%D a1 a2 <- sl^ .plabel= a \eta_I
%D a1 a4 -> .plabel= l \{g\}
%D a2 a4 -> .plabel= m g^\vee
%D a0 a3 -> .plabel= a g
%D a2 a5 -> .plabel= m u
%D a4 a5 -> .plabel= b π_X
%D a3 a8 -> .PLABEL= ^(0.33) f
%D a4 a11 -> .PLABEL= ^(0.33) \{f\}
%D a5 a12 -> .PLABEL= ^(0.33) pf
%D a6 a7 -> .plabel= b 1v
%D a7 a8 -> .PLABEL= _(0.5) ε_Y
%D a9 a10 -> .plabel= b v
%D a10 a11 -> .plabel= b \id
%D a11 a12 -> .plabel= b π_Y
%D ))
%D enddiagram
%D diagram ccwu-pb-dnc
%D 2Dx 100 +30 -15 +15 +15 +15 +30
%D 2D 100 a0
%D 2D /\/
%D 2D || \
%D 2D || v
%D 2D +25 a1 |--> a2 a3
%D 2D - - ||/
%D 2D \ \ || \
%D 2D v v\/ \
%D 2D +25 a4 |---> a5 \
%D 2D - - v
%D 2D +25 a6 |-> a7 |------------------> a8
%D 2D /\ /\ \ // ||
%D 2D || || \ // ||
%D 2D || || v \/ \/
%D 2D +25 a9 |-> a10 |---------> a11 |-> a12
%D 2D
%D (( a0 .tex= \s[i|*]
%D a1 .tex= i,* a2 .tex= i a3 .tex= \s[a|b]
%D a4 .tex= a,b a5 .tex= a
%D a6 .tex= \s[i|*] a7 .tex= \s[c,d|*] a8 .tex= \s[c|d]
%D a9 .tex= i a10 .tex= c,d a11 .tex= c,d a12 .tex= c
%D a0 a2 <= a0 a1 =>
%D a3 a4 => a3 a5 =>
%D a6 a9 <= a7 a10 <= a8 a11 => a8 a12 =>
%D a0 a3 |->
%D a1 a2 <-> a1 a4 |-> a2 a4 |->
%D a2 a5 |-> a3 a8 |-> .plabel= a {◻} a4 a5 |->
%D a4 a11 |-> a5 a12 |->
%D a6 a7 |-> a7 a8 |->
%D a9 a10 |-> a10 a11 |-> a11 a12 |->
%D ))
%D enddiagram
The functor $\EtoBto$ is a comprehension category, i.e.,
it takes cartesian morphisms to pullback squares.
We want to check that the image of a cartesian morphism is a pullback.
Given two maps $i \mto a$ and $i \mto c,d$ such that
$a \mto c$ is well-defined, we need to construct a
mediating map $i \mto a,b$.
%
$$\diag{ccwu-pb}
\qquad
\diag{ccwu-pb-dnc}
$$
\newpage
% --------------------
% «ccw1-bij» (to ".ccw1-bij")
% (s "Comprehension categories with unit: a bijection" "ccw1-bij")
\myslide {Comprehension categories with unit: a bijection} {ccw1-bij}
Jacobs, 10.4.9 (i):
In a CCw1, pack a morphism $u: I \to J$ in the base category,
and an object $Y$ over $J$. Then the vertical morphisms $1I \to u^*Y$
are in bijection with morphisms from $u$ to $π_Y$ in $\mathbb{B}/J$.
%D diagram 1049
%D 2Dx 100 +30 +30 +30 +30 +30
%D 2D 100 a0 |-> a1 b0 |-> b1
%D 2D /\ || / /\ || /
%D 2D || || \ || || \
%D 2D || \/ v || \/ v
%D 2D +30 a2 |-> a3 a4 b2 |-> b3 b4
%D 2D / / || / / ||
%D 2D \ \ || \ \ ||
%D 2D v v \/ v v \/
%D 2D +30 a5 |-> a6 b5 |-> b6
%D 2D
%D (( a0 .tex= 1I a1 .tex= u^*Y
%D a2 .tex= I a3 .tex= I a4 .tex= Y
%D a5 .tex= \{Y\} a6 .tex= J
%D a0 a1 ->
%D a0 a2 <-| a0 a4 -> a1 a3 |-> a1 a4 -> sl^^ .plabel= a {◻} a1 a4 <-|
%D a2 a3 -> .plabel= b \id a2 a5 -> a3 a6 -> .PLABEL= ^(0.3) u a4 a5 |-> a4 a6 |->
%D a5 a6 -> .plabel= b π_Y
%D ))
%D (( b0 .tex= \s[a,b|*] b1 .tex= \s[a,b|c]
%D b2 .tex= a,b b3 .tex= a,b b4 .tex= \s[a|c]
%D b5 .tex= a,c b6 .tex= a
%D b0 b1 |->
%D b0 b2 <= b0 b4 |-> b1 b3 => b1 b4 |-> sl^ .plabel= a {◻} b1 b4 <= sl_
%D b2 b3 |-> b2 b5 |-> b3 b6 |-> b4 b5 => b4 b6 =>
%D b5 b6 |->
%D ))
%D enddiagram
%D
$$\diag{1049}$$
\newpage
% --------------------
% «ccw1-bigbij» (to ".ccw1-bigbij")
% (s "Comprehension categories with unit: big bijection" "ccw1-bigbij")
\myslide {Comprehension categories with unit: big bijection} {ccw1-bigbij}
Jacobs, 10.4.9 (ii):
% \widemtos
%D diagram 10.4.9-ii
%D 2Dx 100 +15 +45 +40 +45 +15 +45
%D 2D
%D 2D 100 a0 <-> a1 <========= a2
%D 2D - - - -
%D 2D | / / |
%D 2D v v v v
%D 2D +30 a3 ==== =====> a4 <-> a5
%D 2D /\ / \
%D 2D \\ \\
%D 2D \\ \\
%D 2D +20 a6 ============== => a7
%D 2D
%D 2D +15 a8
%D 2D / \
%D 2D \\
%D 2D \\
%D 2D +20 b0 |--- ------------> b1 a9
%D 2D -- - -
%D 2D | \ | \
%D 2D | v | v
%D 2D +20 | b2 |------------- -> b3
%D 2D v |- > v |- >
%D 2D +20 b4 b5
%D 2D
%D (( a0 .tex= 1L a1 .tex= (Qu^*A)^*1I a2 .tex= 1I
%D a3 .tex= u'^*X a4 .tex= \prod_{u^*A}u'^*X a5 .tex= u^*\prod_{A}X
%D a6 .tex= X a7 .tex= \prod_{A}X
%D a8 .tex= u^*A a9 .tex= A
%D b0 .tex= L b1 .tex= I
%D b2 .tex= J b3 .tex= K
%D b4 .tex= \{X\} b5 .tex= \{\prod_{A}X\}
%D a0 a1 <-> a1 a2 <-|
%D a0 a3 -> a1 a3 -> a2 a4 -> a2 a5 ->
%D a3 a4 |-> a4 a5 <->
%D a3 a6 <-| a5 a7 <-|
%D a6 a7 |->
%D a8 a9 <-|
%D b0 b1 -> .plabel= a Qu^*A
%D b0 b2 -> .PLABEL= ^(0.6) u'=QA^*u b1 b3 -> .plabel= r u
%D b2 b3 -> .plabel= a QA
%D b0 b4 -> b4 b2 -> .plabel= r π_X b1 b5 -> b5 b3 -> .plabel= r π_{\prod_{A}X}
%D ))
%D enddiagram
%D
$$\diag{10.4.9-ii}$$
\bsk
$a,c; b \vdash d$
$a; b \vdash c \mto d$
%D diagram 10.4.9-ii-dnc
%D 2Dx 100 +15 +45 +40 +45 +15 +45
%D 2D
%D 2D 100 a0 <-> a1 <========= a2
%D 2D - - - -
%D 2D | / / |
%D 2D v v v v
%D 2D +30 a3 ==== =====> a4 <-> a5
%D 2D /\ / \
%D 2D \\ \\
%D 2D \\ \\
%D 2D +20 a6 ============== => a7
%D 2D
%D 2D +15 a8
%D 2D / \
%D 2D \\
%D 2D \\
%D 2D +20 b0 |--- ------------> b1 a9
%D 2D -- - -
%D 2D | \ | \
%D 2D | v | v
%D 2D +20 | b2 |------------- -> b3
%D 2D v |- > v |- >
%D 2D +20 b4 b5
%D 2D
%D (( a0 .tex= \s[a,b,c|*] a1 .tex= \s[a,b,c|*] a2 .tex= \s[a,b|*]
%D a3 .tex= \s[a,b,c|d] a4 .tex= \s[a,b|{c|->d}] a5 .tex= \s[a,b|{c|->d}]
%D a6 .tex= \s[a,c|d] a7 .tex= \s[a|{c|->d}]
%D a8 .tex= \s[a,b|c] a9 .tex= \s[a|c]
%D b0 .tex= a,b,c b1 .tex= a,b
%D b2 .tex= a,c b3 .tex= a
%D b4 .tex= a,c,d b5 .tex= a,(c|->d)
%D a0 a1 <-> a1 a2 <=
%D a0 a3 |-> .plabel= l a,b,c|-d
%D a1 a3 |-> a2 a4 |->
%D a2 a5 |-> .plabel= r a,b|-c|->d
%D a3 a4 => a4 a5 <->
%D a3 a6 <= a5 a7 <=
%D a6 a7 =>
%D a8 a9 <=
%D b0 b1 |->
%D b0 b2 |-> b1 b3 |->
%D b2 b3 |->
%D b0 b4 |-> b4 b2 |-> b1 b5 |-> b5 b3 |->
%D ))
%D enddiagram
%D
$$\diag{10.4.9-ii-dnc}$$
\newpage
% --------------------
% «ccw1-three-rules» (to ".ccw1-three-rules")
% (s "Comprehension categories with unit: three rules" "ccw1-three-rules")
\myslide {Comprehension categories with unit: three rules} {ccw1-three-rules}
Jacobs, 10.3.3:
% (find-dn4file "diagxy.tex" "\\newdir")
% \newdir^{ (}{{ }*!/-.5em/@^{(}}%
\newdir^{) }{{ }*!/.5em/@^{)}}%
%D diagram sumI
%D 2Dx 100 +30 +30
%D 2D 100 a0 /
%D 2D // || /\ \
%D 2D // || \\ v
%D 2D \/ \/ \\
%D 2D +30 a2 |--> a3 a1
%D 2D / / // ||
%D 2D \ // ||
%D 2D v \/ v \/
%D 2D +30 a4 |--> a5
%D 2D
%D (( a0 .tex= \s[a,b|c] a1 .tex= \s[a|b,c]
%D a2 .tex= a,b,c a3 .tex= a,b
%D a4 .tex= a,(b,c) a5 .tex= a
%D @ 0 @ 1 => sl_ @ 0 @ 1 |-> sl^ .plabel= a \co{◻}
%D @ 0 @ 2 => @ 0 @ 3 => @ 1 @ 4 => @ 1 @ 5 =>
%D @ 2 @ 3 |-> @ 2 @ 4 |-> @ 3 @ 5 |-> @ 4 @ 5 |->
%D ))
%D enddiagram
%D diagram sumE+
%D 2Dx 100 +30 +15 +30
%D 2D 100 a0 |------> a1
%D 2D / /
%D 2D \ \
%D 2D v v
%D 2D +30 a2 |------> a3
%D 2D
%D (( a0 .tex= a,b,c,d a1 .tex= a,b,c
%D a2 .tex= a,(b,c),d a3 .tex= a,(b,c)
%D @ 0 @ 1 |-> sl_ @ 0 @ 1 <-' sl^
%D @ 0 @ 2 <-> @ 1 @ 3 <->
%D @ 2 @ 3 |-> sl_ @ 2 @ 3 <-' sl^
%D @ 0 relplace 15 7 \pbsymbol{7}
%D ))
%D enddiagram
%D diagram sumE-
%D 2Dx 100 +30 +40 +35
%D 2D 100 {a,b,c} |----------\
%D 2D - |-> v
%D 2D +20 | a,b,c,d |--> a,(b,c),d |--> a,d
%D 2D \ - _| - _| -
%D 2D \ | | |
%D 2D v v v v
%D 2D +30 a,b,c |----> a,(b,c) |----> a
%D 2D
%D (( {a,b,c} # 0
%D a,b,c,d a,(b,c),d a,d # 1 2 3
%D a,b,c a,(b,c) a # 4 5 6
%D @ 0 @ 4 |-> @ 0 @ 1 |-> @ 0 @ 2 |->
%D @ 1 @ 2 |-> @ 2 @ 3 |->
%D @ 1 @ 4 |-> @ 2 @ 5 |-> @ 3 @ 6 |->
%D @ 4 @ 5 |-> @ 5 @ 6 |->
%D @ 1 relplace 5 5 \pbsymbol{7} @ 2 relplace 5 5 \pbsymbol{7}
%D ))
%D enddiagram
%:
%: a,b|-C
%: ------------Σ𝐫I
%: a;b,c|-(b,c)
%:
%: ^sumI
%:
%:
%: a|-D a,b,c|-d
%: --------------Σ𝐫E^-
%: a,(b,c)|-d
%:
%: ^sumE-
%:
%:
%: a,(b,c)|-D a,b,c|-d
%: ---------------------Σ𝐫E^+
%: a,(b,c)|-d
%:
%: ^sumE+
%:
The categorical interpretation of
the rules for dependent sums:
$$\begin{array}{cc}
\cded{sumI} & \cdiag{sumI} \\ \\
\cded{sumE+} & \cdiag{sumE+} \\ \\
\cded{sumE-} & \cdiag{sumE-} \\
\end{array}
$$
(Oops, the diagram for $Σ𝐫E^-$ is wrong)
\newpage
% --------------------
% «ccompc-prodI-and-prodE» (to ".ccompc-prodI-and-prodE")
% (s "Interpreting $Π𝐫I$ and $Π𝐫E$ in a CCompC" "ccompc-prodI-and-prodE")
\myslide {Interpreting $Π𝐫I$ and $Π𝐫E$ in a CCompC} {ccompc-prodI-and-prodE}
(Jacobs, 10.5.3)
% std->dnc: (fooi ">->" "`->" "|->" "=>" "<-|" "<=" "->" "|->" "<-" "<-|")
% dnc->std: (fooi "`->" ">->" "|->" "->" "<-|" "<-" "=>" "|->" "<=" "<-|")
%D diagram 1053-prodI
%D 2Dx 100 +30 +40 +35
%D 2D 100 a0 <== a1 b0 <== b1
%D 2D - - - -
%D 2D | |-> | | |-> |
%D 2D v v v v
%D 2D +30 a2 ==> a3 b2 ==> b3
%D 2D
%D 2D +25 a4 b4
%D 2D //|| //||
%D 2D // || // ||
%D 2D \/ \/ \/ \/
%D 2D +25 a5 |-> a6 b5 |-> b6
%D 2D
%D (( a0 .tex= 1\{X\} a1 .tex= 1I a2 .tex= Y a3 .tex= Π_XY
%D a4 .tex= X a5 .tex= \{X\} a6 .tex= I
%D a0 a1 <-|
%D a0 a2 -> .plabel= l f
%D a1 a3 -> .plabel= r λ_Xf
%D a2 a3 |->
%D a0 a3 harrownodes nil 20 nil ->
%D a4 a5 |-> a4 a6 |-> a5 a6 -> .plabel= b π_X
%D ))
%D (( b0 .tex= \s[a,b|*] b1 .tex= \s[a|*]
%D b2 .tex= \s[a,b|c] b3 .tex= \s[a|b{|->c}]
%D b4 .tex= \s[a|b] b5 .tex= a,b b6 .tex= a
%D b0 b1 <=
%D b0 b2 |-> .plabel= l a,b|-c
%D b1 b3 |-> .plabel= r a|-(b|->c)
%D b2 b3 =>
%D b0 b3 harrownodes nil 20 nil |->
%D b4 b5 => b4 b6 => b5 b6 |->
%D ))
%D enddiagram
%D
$$\defΣ{\coprod}
\defΠ{\prod}
\diag{1053-prodI}
$$
%D diagram 1053-prodE
%D 2Dx 100 +35 +35 +35 +35 +35
%D 2D 100 a0 <== a1 <== a2 c0 <== c1 <== c2
%D 2D - - - - - -
%D 2D | <-| | <-| | | <-| | <-| |
%D 2D v v v v v v
%D 2D +30 a3 <== a4 ==> a5 c3 <== c4 ==> c5
%D 2D
%D 2D +25 b0 |--------> b2 d0 |--------> d2
%D 2D /\ // || /\ // ||
%D 2D || // || || // ||
%D 2D || \/ || || \/ ||
%D 2D +25 b3 |-> b4 |-> b5 d3 |-> d4 |-> d5
%D 2D
%D (( a0 .tex= 1I a1 .tex= π_X^*1I a2 .tex= 1I
%D a3 .tex= h^{\vee*}Y a4 .tex= Y a5 .tex= Π_XY
%D b0 .tex= 1I b2 .tex= X
%D b3 .tex= I b4 .tex= \{X\} b5 .tex= I
%D a0 a1 <-| a1 a2 <-|
%D a0 a3 -> .plabel= l gh
%D a1 a4 -> .plabel= m g^\wedge
%D a2 a5 -> .plabel= r g
%D a0 a4 harrownodes nil 20 nil <-|
%D a1 a5 harrownodes nil 20 nil <-|
%D a3 a4 <-| a4 a5 |->
%D b0 b2 -> .plabel= a h
%D b0 b3 <-| b2 b4 |-> b2 b5 |->
%D b0 b4 varrownodes nil 17 nil |->
%D b3 b4 >-> .plabel= b h^\vee b4 b5 -> .plabel= b π_X
%D ))
%D (( c0 .tex= \s[a|*] c1 .tex= \s[a,b|*] c2 .tex= \s[a|*]
%D c3 .tex= \s[a|c] c4 .tex= \s[a,b|c] c5 .tex= \s[a|b{|->}c]
%D d0 .tex= \s[a|*] d2 .tex= \s[a|b]
%D d3 .tex= a d4 .tex= a,b d5 .tex= a
%D c0 c1 <= c1 c2 <=
%D c0 c3 |-> .plabel= l a|-c
%D c1 c4 |->
%D c2 c5 |-> .plabel= r a|-(b|->c)
%D c0 c4 harrownodes nil 20 nil <-|
%D c1 c5 harrownodes nil 20 nil <-|
%D c3 c4 <= c4 c5 =>
%D d0 d2 |-> .plabel= a a|-b
%D d0 d3 <= d2 d4 => d2 d5 =>
%D d0 d4 varrownodes nil 17 nil |->
%D d3 d4 `-> d4 d5 |->
%D ))
%D enddiagram
%D
$$\diag{1053-prodE}$$
In the top left vertex of the diagram for $Π𝐫E$ we have
omitted an iso to keep the diagram shorter: $1I \cong h^{\vee*}π_X^*1I$.
\newpage
% --------------------
% «ccompc-sumI» (to ".ccompc-sumI")
% (s "Interpreting $Σ𝐫I$ in a CCompC" "ccompc-sumI")
\myslide {Interpreting $Σ𝐫I$ in a CCompC} {ccompc-sumI}
(Jacobs, 10.5.3)
%D diagram 1053-sumI
%D 2Dx 100 +35 +35 +35 +35 +35
%D 2D 100 a* c*
%D 2D - -
%D 2D | |
%D 2D v v
%D 2D +30 a0 <== a1 ==> a2 c0 <== c1 ==> c2
%D 2D - - - - - -
%D 2D | <-| | <-| | | <-| | <-| |
%D 2D v v v v v v
%D 2D +30 a3 <== a4 <== a5 c3 <== c4 <== c5
%D 2D
%D 2D +25 b0 |--------> b2 d0 |--------> d2
%D 2D /\ // || /\ // ||
%D 2D || // || || // ||
%D 2D || \/ || || \/ ||
%D 2D +25 b3 |-> b4 |-> b5 d3 |-> d4 |-> d5
%D 2D
%D (( a* .tex= 1I
%D a0 .tex= f^{\vee*}X a1 .tex= Y a2 .tex= Σ_XY
%D a3 .tex= Σ_XY a4 .tex= π_X^*Σ_XY a5 .tex= Σ_XY
%D b0 .tex= 1I b2 .tex= X
%D b3 .tex= I b4 .tex= \{X\} b5 .tex= I
%D a* a0 -> .plabel= r g
%D a* a3 -> .slide= -15pt .PLABEL= _(0.25) \ang{f,g}
%D a0 a1 <-| a1 a2 |->
%D a0 a3 ->
%D a1 a4 ->
%D a2 a5 -> .plabel= r \id
%D a0 a4 harrownodes nil 20 nil <-
%D a1 a5 harrownodes nil 20 nil <-
%D a3 a4 <-| a4 a5 <-|
%D b0 b2 -> .plabel= a f
%D b0 b3 <-| b2 b4 |-> b2 b5 |->
%D b0 b4 varrownodes nil 17 nil ->
%D b3 b4 >-> .plabel= b f^\vee b4 b5 -> .plabel= b π_X
%D ))
%D (( c* .tex= \s[a|*]
%D c0 .tex= \s[a|c] c1 .tex= \s[a,b|c] c2 .tex= \s[a|b,c]
%D c3 .tex= \s[a|b,c] c4 .tex= \s[a,b|b,c] c5 .tex= \s[a|b,c]
%D d0 .tex= \s[a|*] d2 .tex= \s[a|b]
%D d3 .tex= a d4 .tex= a,b d5 .tex= a
%D c* c0 |-> .plabel= r a|-c
%D c* c3 |-> .slide= -12.5pt .PLABEL= _(0.25) a|-(b,c)
%D c0 c1 <= c1 c2 =>
%D c0 c3 |->
%D c1 c4 |->
%D c2 c5 |->
%D c0 c4 harrownodes nil 20 nil <-|
%D c1 c5 harrownodes nil 20 nil <-|
%D c3 c4 <= c4 c5 <=
%D d0 d2 |-> .plabel= a a|-b
%D d0 d3 <= d2 d4 => d2 d5 =>
%D d0 d4 varrownodes nil 17 nil |->
%D d3 d4 `-> d4 d5 |->
%D ))
%D enddiagram
%D
$$\diag{1053-sumI}$$
\newpage
% --------------------
% «ccompc-sumE+» (to ".ccompc-sumE+")
% (s "Interpreting $Σ𝐫E^+$ in a CCompC" "ccompc-sumE+")
\myslide {Interpreting $Σ𝐫E^+$ in a CCompC} {ccompc-sumE+}
(Jacobs, 10.5.3)
%D diagram 1053-strongsumI-dnc
%D 2Dx 100 +25 +25 +25 +25 +25 +25 +25 +50
%D 2D
%D 2D 100 a0 |----------> a2 a3 a4
%D 2D /\ // || // || // ||
%D 2D || // || // || // ||
%D 2D || \/ \/ \/ \/ \/ \/
%D 2D +25 b0 |--> b1 |--> b2 |--> b3 |--> b4
%D 2D
%D 2D +40 c0 |----------> c2 c3
%D 2D /\ // || // ||
%D 2D || // || // ||
%D 2D || \/ \/ \/ \/
%D 2D +25 d0 |--> d1 |--> d2 |--> d3
%D 2D
%D (( a0 .tex= \s[a,b,c|*] a2 .tex= \s[a,b,c|d] a3 .tex= \s[a,b|c] a4 .tex= \s[a|b]
%D b0 .tex= a,b,c b1 .tex= a,b,c,d b2 .tex= a,b,c b3 .tex= a,b b4 .tex= a
%D c0 .tex= \s[a,(b,c)|*] c2 .tex= \s[a,(b,c)|d] c3 .tex= \s[a|b,c]
%D d0 .tex= a,(b,c) d1 .tex= a,(b,c),d d2 .tex= a,(b,c) d3 .tex= a
%D a0 a2 |-> .plabel= a a,b,c|-d
%D a0 b0 <= a2 b1 => a2 b2 => a3 b2 => a3 b3 => a4 b3 => a4 b4 =>
%D b0 b1 |-> b1 b2 |-> b2 b3 |-> b3 b4 |->
%D c0 c2 |-> .plabel= a a,(b,c)|-d
%D c0 d0 <= c2 d1 => c2 d2 => c3 d2 => c3 d3 =>
%D d0 d1 |-> d1 d2 |-> d2 d3 |->
%D b0 d0 <-> b1 d1 <-> b2 d2 <-> b3 d3 |->
%D a0 c0 <= sl_ a0 c0 |-> sl^ .PLABEL= ^(0.72) {◻}
%D a2 c2 <= sl_ a2 c2 |-> sl^ .PLABEL= ^(0.72) {◻}
%D a3 c3 => sl_ a3 c3 |-> sl^ .PLABEL= ^(0.72) {𝐫{co}◻}
%D b0 relplace 13 7 \pbsymbol{7}
%D b1 relplace 13 7 \pbsymbol{7}
%D b2 relplace 13 7 \pbsymbol{7}
%D ))
%D enddiagram
%D
$$\diag{1053-strongsumI-dnc}$$
%D diagram 1053-strongsumI
%D 2Dx 100 +25 +25 +25 +25 +25 +25 +25 +25
%D 2D
%D 2D 100 a0 |----------> a2 a3 a4
%D 2D /\ // || // || // ||
%D 2D || // || // || // ||
%D 2D || \/ \/ \/ \/ \/ \/
%D 2D +25 b0 |--> b1 |--> b2 |--> b3 |--> b4
%D 2D
%D 2D +40 c0 |----------> c2 c3
%D 2D /\ // || // ||
%D 2D || // || // ||
%D 2D || \/ \/ \/ \/
%D 2D +25 d0 |--> d1 |--> d2 |--> d3
%D 2D
%D (( a0 .tex= 1\{Y\} a2 .tex= \kk^*Z a3 .tex= Y a4 .tex= X
%D b0 .tex= \{Y\} b1 .tex= \{\kk^*Z\} b2 .tex= \{Y\} b3 .tex= \{X\} b4 .tex= I
%D c0 .tex= 1\{Σ_XY\} c2 .tex= Z c3 .tex= Σ_XY
%D d0 .tex= \{Σ_XY\} d1 .tex= \{Z\} d2 .tex= \{Σ_XY\} d3 .tex= I
%D a0 a2 -> .plabel= a h
%D a0 b0 <-| a2 b1 |-> a2 b2 |-> a3 b2 |-> a3 b3 |-> a4 b3 |-> a4 b4 |->
%D b0 b1 -> .PLABEL= ^(0.6) h^\vee
%D b1 b2 -> .plabel= a π_{\kk^*Z}
%D b2 b3 -> .plabel= a π_Y
%D b3 b4 -> .plabel= a π_X
%D c0 c2 -> .plabel= a (\kk^{-1};\overline{h})^\wedge
%D c0 d0 <-| c2 d1 |-> c2 d2 |-> c3 d2 |-> c3 d3 |->
%D d0 d1 -> .plabel= b \kk^{-1};\overline{h}
%D d1 d2 -> .plabel= b π_Z
%D d2 d3 -> .plabel= b π_{\{Σ_XY\}}
%D b0 d0 <-> .plabel= a \kk
%D b1 d1 <->
%D b2 d2 <-> .plabel= a \kk
%D b3 d3 -> .plabel= a π_X
%D a0 c0 <-| sl_ a0 c0 -> sl^ .PLABEL= ^(0.72) 1\kk
%D a2 c2 <-| sl_ a2 c2 -> sl^ .PLABEL= ^(0.72) {◻}
%D a3 c3 |-> sl_ a3 c3 -> sl^ .PLABEL= ^(0.72) {𝐫{co}◻}
%D b0 relplace 13 7 \pbsymbol{7}
%D b1 relplace 13 7 \pbsymbol{7}
%D b2 relplace 13 7 \pbsymbol{7}
%D ))
%D enddiagram
%D
$$\defΣ{\coprod}
\diag{1053-strongsumI}
$$
\newpage
% --------------------
% «dtt-unpack-2» (to ".dtt-unpack-2")
% (s "The ``unpack'' rule (2)" "dtt-unpack-2")
\myslide {The ``unpack'' rule (2)} {dtt-unpack-2}
In 10.1.2 Jacobs defines (for $P:σ×τ$):
$\begin{array}{rcl}
πP & \eqdef & \unpackasin{P}{x,y}{x} \\
π'P & \eqdef & \unpackasin{P}{x,y}{y} \\
\end{array}
$
i.e.,
$\begin{array}{rcl}
πP & := & x[x,y:=P] \\
π'P & := & y[x,y:=P] \\
\end{array}
$
\bsk
\newpage
% --------------------
% «rules-dtt» (to ".rules-dtt")
% (s "Rules for DTT" "rules-dtt")
\myslide {Rules for DTT} {rules-dtt}
%%*
%% (eedn4a-bounded)
{%\ttchars
\footnotesize
\begin{verbatim}
a|-b a|-B=B'
Conversion: -------------
a|-b'
a|-B
Projection: ------
a,b|-b
a,b,b',c|-D a,b,b',c|-d
Contraction: ----------- -----------
a,b,c|-D a,b,c|-d
a|-b a,b,c|-D a|-b a,b,c|-d
Substitution: -------------- --------------
a,c|-D a,c|-d
a|-B a|-C a|-B a|-c
Weakening: ---------- ----------
a,b|-C a,b|-c
a,b,c,d|-E a,b,c,d|-e
Exchange: ---------- ----------
a,c,b,d|-E a,c,b,d|-e
Type: Intro: Elim:
a|-*'
Singleton: --- --- -------
|-1 |-* a|-*'=*
a,b|-C a,b|-c a|-b a|-b|->c
DepProds: --------- -------- --------------
a|-Πb:B.C a|-b|->c a|-c
a,b|-C a|-B a,b|-C
DepSums: --------- ------------ (see below)
a|-Σb:B.C a,b,c|-(b,c)
a|-B a|-B
Equality: --------------- ---------- (see below)
a,b,b'|-W[b=b'] a,b|-(b=b)
Elimination rules:
DepSums: Equality:
a|-D a,b,c|-d a,b,b',c|-D a,b,c|-d
Weak: -------------- ---------------------
a,(b,c)|-d a,b,b',(b=b'),c|-d
a,(b,c)|-D a,b,c|-d a,b,b',(b=b')|-C a,b|-c
Strong: -------------------- ------------------------
a,(b,c)|-d a,b,b',(b=b')|-c
a|-b,c a|-b,c a|-(b=b') a|-(b=b)'
AltStrong: ------ ------ --------- ---------------
a|-b a|-c a|-b=b' a|-(b=b)'=(b=b)
\end{verbatim}
}
\end{document}
% __ __ _
% | \/ | __ _| | _____
% | |\/| |/ _` | |/ / _ \
% | | | | (_| | < __/
% |_| |_|\__,_|_|\_\___|
%
% <make>
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# (find-LATEXfile "2019planar-has-1.mk")
make -f 2019.mk STEM=2008comprcat-utf8 veryclean
make -f 2019.mk STEM=2008comprcat-utf8 pdf
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cp -v ~/LATEX/2008comprcat.tex /tmp/o
~/LUA/texcatcodes.lua -trans /tmp/o /tmp/o2
# (find-LATEXfile "2008hyp-utf8.tex")
# (find-LATEXfile "2008comprcat.tex")
# (find-fline "~/LUA/texcatcodes.lua")
# (find-fline "/tmp/o2")
% Local Variables:
% coding: utf-8-unix
% ee-tla: "NONE"
% End: