|
Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
% (find-LATEX "2020sheaves.tex")
% (defun c () (interactive) (find-LATEXsh "lualatex -record 2020sheaves.tex" :end))
% (defun d () (interactive) (find-pdf-page "~/LATEX/2020sheaves.pdf"))
% (defun d () (interactive) (find-pdftools-page "~/LATEX/2020sheaves.pdf"))
% (defun e () (interactive) (find-LATEX "2020sheaves.tex"))
% (defun u () (interactive) (find-latex-upload-links "2020sheaves"))
% (defun v () (interactive) (find-2a '(e) '(d)) (g))
% (find-pdf-page "~/LATEX/2020sheaves.pdf")
% (find-sh0 "cp -v ~/LATEX/2020sheaves.pdf /tmp/")
% (find-sh0 "cp -v ~/LATEX/2020sheaves.pdf /tmp/pen/")
% file:///home/edrx/LATEX/2020sheaves.pdf
% file:///tmp/2020sheaves.pdf
% file:///tmp/pen/2020sheaves.pdf
% http://angg.twu.net/LATEX/2020sheaves.pdf
% (find-LATEX "2019.mk")
% «.sheaves» (to "sheaves")
% «.unique-glueing» (to "unique-glueing")
% «.finite-topologies» (to "finite-topologies")
% «.OO-House» (to "OO-House")
\documentclass[oneside,12pt]{article}
\usepackage[colorlinks,citecolor=DarkRed,urlcolor=DarkRed]{hyperref} % (find-es "tex" "hyperref")
\usepackage{indentfirst}
\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")
\input 2017planar-has-defs.tex % (find-LATEX "2017planar-has-defs.tex")
%
% (find-es "tex" "geometry")
\usepackage[backend=biber,
style=alphabetic]{biblatex} % (find-es "tex" "biber")
\addbibresource{catsem-slides.bib} % (find-LATEX "catsem-slides.bib")
%
% (find-es "tex" "geometry")
\begin{document}
\catcode`\^^J=10
\directlua{dofile "dednat6load.lua"} % (find-LATEX "dednat6load.lua")
\def\Cinfty{\mathcal{C}^\infty}
\def\sfSets{\mathsf{Sets}}
\def↓{{\downarrow}}
\def\phop{{}^{\phantom{\op}}}
%L vee = "1.2|.3."
%L kite = ".1.|2.3|.4.|.5."
%L house = ".1.|2.3|4.5"
%L mp = MixedPicture.new({def="dagKite", meta="t", scale="4pt"}, z):zfunction(kite):output()
%L mp = MixedPicture.new({def="dagKite", meta="s", scale="6pt"}, z):zfunction(kite):output()
%L mp = MixedPicture.new({def="dagHouse", meta="s", scale="5pt"}, z):zfunction(house):output()
%L mp = MixedPicture.new({def="dagVee", meta="s", scale="5pt"}, z):zfunction(vee):output()
\pu
\def\V{\dagVee}
\def\dagVee#1#2#3{\vcenter{\hbox{\unitlength=5pt%
\celllower=2pt%
\def\cellfont{\scriptsize}%
\begin{picture}(3,2)(-0.5,-0.5)
\put(0,1){\cell{#1}}
\put(2,1){\cell{#2}}
\put(1,0){\cell{#3}}
\end{picture}}}}
\title{On a way to visualize (some) sheaves}
\author{Eduardo Ochs \\
\url{http://angg.twu.net/math-b.html}
}
\maketitle
\begin{abstract}
This is an attempt to connect the way in which sheaves are presented
in \cite{MacLaneMoerdijk} with the approach ``for children'' from
\cite{PH1}, \cite{PH2}, and \cite{FavC} --- but these notes are a
work in progress that is still in a very preliminary form.
\end{abstract}
% ____ _
% / ___|| |__ ___ __ ___ _____ ___
% \___ \| '_ \ / _ \/ _` \ \ / / _ \/ __|
% ___) | | | | __/ (_| |\ V / __/\__ \
% |____/|_| |_|\___|\__,_| \_/ \___||___/
%
% «sheaves» (to ".sheaves")
% (shvp 1 "sheaves")
% (shv "sheaves")
\section{Sheaves}
The archetypal example of a sheaf is the operation
%
$$\begin{array}{rrcl}
\Cinfty: & \Opens(\R)^\op &→& \Set \\
& U & \mapsto & \setofst{f:U→\R}{f \text{ is } \Cinfty} \\
\end{array}
$$
%
that expects open sets of $\R$ and returns sets of functions; more
precisely, for each subset $U⊆\R$ it returns $\Cinfty(U)$, the set of
infinitely differentiable functions from $U$ to $\R$.
This $\Cinfty$ is a {\sl contravariant functor}. The topology
$\Opens(\R)$ is a preorder category whose morphisms are the
inclusions, and the image by $\Cinfty$ of each inclusion map $V \ito
U$ is a {\sl restriction map} $\Cinfty(U) → \Cinfty(V)$. In a diagram:
%
%D diagram ??
%D 2Dx 100 +15 +25 +15 +25 +15
%D 2D 100 A0 B0
%D 2D <- ->
%D 2D +15 A1 B1 C1
%D 2D -> <- <-
%D 2D +15 A2 B2 C2
%D 2D <- ->
%D 2D +15 A3 B3
%D 2D
%D 2D +15 D0
%D 2D +10 D1 ---> D2
%D 2D
%D ren A0 A1 A2 A3 ==> \R U V ∅
%D ren B0 B1 B2 B3 ==> \Cinfty(\R) \Cinfty(U) \Cinfty(V) \Cinfty(∅)
%D ren C1 C2 ==> f_U f_U|_V
%D ren D0 D1 D2 ==> \Opens(\R) \Opens(\R)^\op \Set
%D
%D (( A3 A2 `-> A2 A1 `-> A1 A0 `->
%D B0 B1 -> B1 B2 -> B2 B3 ->
%D C1 C2 |->
%D
%D D0 place
%D D1 D2 -> .plabel= a \Cinfty
%D ))
%D enddiagram
%D
$$\pu
\diag{??}
$$
This diagram follows the conventions from \cite[section 2]{FavC}. In
brief:
\begin{itemize}
\item[(CAI)] the diagram $∅ \ito V \ito U \ito \R$ is drawn above
$\Opens(\R)$ to indicate that it is inside the category
$\Opens(\R)$,
\item[(CFSh)] the image of $∅ \ito V \ito U \ito \R$ by the functor
$\Cinfty$ is drawn as a diagram with the same shape as the original;
in particular, the unnamed arrow $\Cinfty(V)←\Cinfty(U)$ is the
image by $\Cinfty$ of the (unnamed) inclusion map $V \ito U$,
\item[(C$↦$)] the arrow $f_U \mapsto f_U|_V$ is the internal view of
the unnamed arrow $\Cinfty(U)→\Cinfty(V)$, and $f_U|_V := \Cinfty(U
\iot V)(f_U)$.
\end{itemize}
The rationale for having an `$\Opens(\R)$' above the
`$\Opens(\R)^\op$' is explained in \cite[section 7.4]{FavC}, and our
reasons for drawing topological spaces with the ``everything'' on top
and the ``nothing'' at the bottom are explained in \cite{PH1}; in
short, that's because we will at some point treat $\Opens(\R)$ as a
logic, in which $\R$ is `true', `top', and `$⊤$'.
% (favp 38 "opposite-categories")
% (fav "opposite-categories")
% _ _ ____ ____
% | | | |/ ___| _ \
% | | | | | _| |_) |
% | |_| | |_| | __/
% \___/ \____|_|
%
% «unique-glueing» (to ".unique-glueing")
% (shvp 2 "unique-glueing")
% (shv "unique-glueing")
\subsection{The unique glueing property}
$\Cinfty$ has the ``unique glueing property''. The UGP can be
formalized in several different, and slightly incompatible, ways.
Take any two open sets $U_1, U_2 ∈ \Opens(\R)$ and choose functions
$f_{U_1}∈\Cinfty(U_1)$ and $f_{U_2}∈\Cinfty(U_2)$. We say that
$f_{U_1}$ and $f_{U_2}$ are {\sl compatible} when their restrictions
to $\Cinfty(U_1∩U_2)$ are the same --- i.e., when $f_{U_1}|_{U_1∩U_2}
= f_{U_2}|_{U_1∩U_2}$. In a diagram:
%
%D diagram ??
%D 2Dx 100 +20 +20 +25 +20 +20 +25 +20 +20
%D 2D 100 A0 B0 C0
%D 2D
%D 2D 100 A1 A2 B1 B2 C1 C2
%D 2D
%D 2D +20 A3 B3 C3
%D 2D
%D ren A1 A2 A3 ==> U_1 U_2 U_1∩U_2
%D ren B1 B2 B3 ==> \Cinfty(U_1) \Cinfty(U_2) \Cinfty(U_1∩U_2)
%D ren C1 C2 C3 ==> f_{U_1} f_{U_2} f_{U_1}|_{U_1∩U_2}=f_{U_2}|_{U_1∩U_2}
%D
%D (( A3 A1 `-> sl_ A3 A2 `->
%D B1 B3 -> B2 B3 ->
%D C1 C3 |-> C2 C3 |->
%D ))
%D enddiagram
%D
$$\pu
\diag{??}
$$
Our first version of the unique glueing property is this. For all
$U_1, U_2 ∈ \Opens(\R)$, for every {\sl compatible} pair
$(f_{U_1},f_{U_2}) ∈ \Opens(U_1)×\Opens(U_2)$ has a {\sl unique
glueing}: there is a unique $f∈\Cinfty(U_1∪U_2)$ such that this $f$
restricts to $f_{U_1}$ and $f_{U_2}$, i.e., $f|_{U_1}=f_{U_1}$ and
$f|_{U_2}=f_{U_2}$. In a diagram:
%
%D diagram ??
%D 2Dx 100 +20 +20 +25 +20 +20 +25 +20 +20
%D 2D 100 C0
%D 2D +8 A0 B0
%D 2D +12 C1' C2'
%D 2D +8 A1 A2 B1 B2 C1 C2
%D 2D
%D 2D +20 A3 B3 C3
%D 2D
%D ren A0 A1 A2 A3 ==> U_1∪U_2 U_1 U_2 U_1∩U_2
%D ren B0 B1 B2 B3 ==> \Cinfty(U_1∪U_2) \Cinfty(U_1) \Cinfty(U_2) \Cinfty(U_1∩U_2)
%D ren C1 C2 C3 ==> ∀f_{U_1} ∀f_{U_2} f_{U_1}|_{U_1∩U_2}=f_{U_2}|_{U_1∩U_2}
%D ren C0 C1' C2' ==> ∃!f f|_{U_1} f|_{U_2}
%D
%D (( A1 A0 `-> A2 A0 `-> A3 A1 `-> sl_ A3 A2 `->
%D B0 B1 -> B0 B2 -> B1 B3 -> B2 B3 ->
%D C1 C3 |-> C2 C3 |->
%D C0 C1' |-> C0 C2' |->
%D ))
%D enddiagram
%D
$$\pu
\diag{??}
$$
Our second version of the UGP deals with compatible {\sl families} of
functions. Take an index set $I$, a family of open sets $(U_i)_{i∈I}$
such that each $U_i∈\Opens(\R)$, and a family of functions
$(f_i)_{i∈I}$ such that each $f_i∈U_i$. We say that this family of
functions is {\sl pairwise compatible} if
%
$$∀i,j∈I. f_i|_{U_i∩U_j} = f_j|_{U_i∩U_j},$$
%
and we say that this family {\sl has a unique glueing} if there is a
unique $f∈\Cinfty(U)$, where $U:=\bigcup_{i∈I}U_i$, such that
%
$$∀i∈I. f_i = f|_{U_i}.$$
% (find-books "__cats/__cats.el" "maclane-moerdijk")
% (find-maclanemoerdijkpage (+ 11 64) "II. Sheaves of Sets")
% (find-maclanemoerdijkpage (+ 11 64) "1. Sheaves")
% (find-books "__logic/__logic.el" "hott")
% (find-hottpage (+ 12 25) "1.4 Dependent function types (-types)")
% (find-hottpage (+ 12 26) "1.5 Product types")
% (find-hottpage (+ 12 30) "1.6 Dependent pair types (-types)")
A standard reference for this is \cite{MacLaneMoerdijk}, section II.1,
but it uses some notational tricks that took me years (really!!!) to
understand... they are easy to decypher when we know some notations
from dependent types, though.
Let $A=\{2,3\}$, $B=\{4,5\}$, $C_2=\{20,21\}$, $C_3=\{32,33\}$. The
notations for the set of all pairs $(a,b)$ with $a∈A$ and $b∈B$ and
for all function that take each $a∈A$ to a $b∈B$ are well-known: $A×B$
and $B^A$, but we will sometimes write $B^A$ as $A{→}B$.
%
% using a `$→$' with very little whitespace around it to distinguish
% this from the other uses of the arrow.
%
The standard notations for the set of all pairs $(a,c)$ with $a∈A$ and
$c∈C_a$ and for the set of all functions that take each $a∈A$ to a
$c∈C_a$ are less familiar (see \cite[sections 1.4 and 1.6]{HOTT}):
$Σ_{a∈A}.C_a$ and $Π_{a∈A}.C_a$. Some programming languages with
support for dependent types, such as Agda, implement a notation that
looks like an extension of `$×$' and `$→$':
%
$$\begin{array}{rcl}
(a:A)×C_a &:=& Σ_{a∈A}.C_a \\
(a:A)→C_a &:=& Π_{a∈A}.C_a \\
\end{array}
$$
%
So we have:
%
$$\begin{array}{rcl}
(a:A)×C_a &:=& \{(2,20), (2,21), (3,32), (3,33)\}, \\
(a:A)→C_a &:=& \{ \{(2,20), (3,32)\}, \\
&& \;\, \{(2,20), (3,33)\}, \\
&& \;\, \{(2,21), (3,32)\}, \\
&& \;\, \{(2,21), (3,33)\} \}. \\
\end{array}
$$
A family of pairwise functions on $\Cinfty$ is a triple
%
$$(I,\calU,\calF) \quad : \quad
(I:\sfSets) × (\calU:I→\Opens(\R)) × (\calF : (i:I)→\Cinfty(\calU i))
$$
%
obeying:
%
$$∀i,j∈I. (\calF i)|_{(\calU i ∩ \calU j)} = (\calF j)|_{(\calU i ∩ \calU j)}.
$$
\msk
Our third version of the UGP needs ``downward-closedness''. For a
subset $\calV⊆\Opens(\R)$ we define
%
$$↓\calV := \setofst{W∈\Opens(\R)}{∃V∈\calV. W⊆V},$$
%
and we say that a $\calV⊆\Opens(\R)$ is {\sl sieve} when $\calV =
↓\calV$. A {\sl compatible family $\calG$ on a sieve $\calV$} is a
family $\calG : (V:\calV) → \Cinfty(V)$ obeying:
%
$$∀V,W∈\calV.\; W⊆V → \calG W = \calG V|_W.
$$
A compatible family $\calG$ on a sieve $\calV$ has a unique glueing
iff there is a unique $f∈\Cinfty(U)$, where $U = \bigcup \calV$, such
that
%
$$∀V∈\calV,\; f|_V=\calG V.$$
A good way to understand how these ideas can be generalized is to work
on cases where everything is finite and everything can be drawn
explicitly.
% ____ _
% | _ \ _ __ ___ ___ ___| |__ __ ___ _____ ___
% | |_) | '__/ _ \/ __|/ _ \ '_ \ / _` \ \ / / _ \/ __|
% | __/| | | __/\__ \ __/ | | | (_| |\ V / __/\__ \
% |_| |_| \___||___/\___|_| |_|\__,_| \_/ \___||___/
%
% «finite-topologies» (to ".finite-topologies")
% (shvp 4 "finite-topologies")
% (shv "finite-topologies")
\subsection{Presheaves (on some finite topologies)}
In the previous sections we worked with a fixed topology,
$\Opens(\R)$, and with a fixed contravariant functor,
$\Cinfty:\Opens(\R)^\op→\Set$. We saw that $\Cinfty$ obeys three
different ``unique glueing properties'' that were easy to understand;
we will now generalize this, in two steps.
Let $X$ be the open interval $(0,3)⊂\R$, and let
%
$$\Opens(X) := \{∅,\, (1,2),\, (0,2),\, (1,3),\, (0,3)\},$$
%
which is a subtopology of the usual topology on $(0,3)$. As
$\Opens(X)$ is finite we can draw it, and its image by $\Cinfty$,
explicitly:
%
%D diagram presh-1
%D 2Dx 100 +20 +20 +35 +20 +20 +20 +20
%D 2D 100 A1 B1
%D 2D +20 A2 A3 B2 B3
%D 2D +20 A4 B4
%D 2D +20 A5 B5
%D 2D
%D 2D +15 C0
%D 2D +10 C1 C2
%D 2D
%D ren A1 A2 A3 A4 A5 ==> (0,3) (0,2) (1,3) (1,2) ∅
%D ren B1 B2 B3 B4 B5 ==> \Cinfty((0,3)) \Cinfty((0,2)) \Cinfty((1,3)) \Cinfty((1,2)) \Cinfty(∅)
%D ren C0 C1 C2 ==> \Opens(X) \Opens(X)^\op \Set
%D
%D (( A5 A4 `-> A4 A2 `-> A4 A3 `-> A2 A1 `-> A3 A1 `->
%D B1 B2 -> B1 B3 -> B2 B4 -> B3 B4 -> B4 B5 ->
%D C0 place C1 C2 -> .plabel= a \Cinfty
%D ))
%D enddiagram
%D
$$\pu
\diag{presh-1}
$$
In \cite[sections 1, 2, 12, and 13]{PH1}, we saw how to interpret
diagrams like $\dagVee•••$ as directed acyclical graphs (DAGs), how to
define an order topology on a DAG, and how to draw these topologies.
If we replace $X$ by $\dagVee•••$ and $\Cinfty$ by an arbitrary
contravariant functor $F:\Opens(\dagVee•••)^\op→\Set$ we get this,
%
%D diagram presh-2
%D 2Dx 100 +20 +20 +35 +20 +20 +20 +20
%D 2D 100 A1 B1
%D 2D +20 A2 A3 B2 B3
%D 2D +20 A4 B4
%D 2D +20 A5 B5
%D 2D
%D 2D +15 C0
%D 2D +10 C1 C2
%D 2D
%D ren A1 A2 A3 A4 A5 ==> \V111 \V101 \V011 \V001 \V000
%D ren B1 B2 B3 B4 B5 ==> F(\V111) F(\V101) F(\V011) F(\V001) F(\V000)
%D ren C0 C1 C2 ==> \Opens(\V•••) \Opens(\V•••)^\op \Set
%D
%D (( A5 A4 `-> A4 A2 `-> A4 A3 `-> A2 A1 `-> A3 A1 `->
%D B1 B2 -> B1 B3 -> B2 B4 -> B3 B4 -> B4 B5 ->
%D C0 place C1 C2 -> .plabel= a F
%D ))
%D enddiagram
%D
$$\pu
\diag{presh-2}
$$
%
that by (an intentional) coincidence has the same shape as the
previous diagram. The trick to ``pronounce'' things like $\V011$ is
explained in \cite[section 1]{PH1}: if we read aloud the digits of
$\V011$ in ``reading order'', i.e., for top to bottom and in each line
from left to right, then it becomes ``zero-one-one''.
% (ph1p 5 "positional")
% (ph1 "positional")
% (ph1p 6 "ZDAGs")
% (ph1 "ZDAGs")
% (ph1p 24 "topologies")
% (ph1 "topologies")
% (ph1p 26 "topologies-as-partial-orders")
% (ph1 "topologies-as-partial-orders")
Now that our topology has a definite shape we can use that shape, with
`0's and `1's at the right positions, to talk of subsets of it. For
example, $\{\V101, \V011\} = \dagKite01100$, and this is not a sieve,
because $↓\dagKite01100 = \dagKite01111$; also, $\bigcup\dagKite01100
= \bigcup\{\V101, \V011\} = \V111$, and $↓\{\bigcup\dagKite01100\} =
\dagKite11111$.
We can also choose other presheaves and test if they obey the unique
glueing properties. Let $E$ be this functor:
%
%D diagram presh-3
%D 2Dx 100 +20 +20 +35 +20 +20 +20 +20
%D 2D 100 A1 B1
%D 2D +20 A2 A3 B2 B3
%D 2D +20 A4 B4
%D 2D +20 A5 B5
%D 2D
%D 2D +15 C0
%D 2D +10 C1 C2
%D 2D
%D ren A1 A2 A3 A4 A5 ==> \V111 \V101 \V011 \V001 \V000
%D ren B1 B2 B3 B4 B5 ==> \{23,24\} \{1\} \{1,2\} \{1\} \{0,1\}
%D ren C0 C1 C2 ==> \Opens(\V•••) \Opens(\V•••)^\op \Set
%D
%D (( A5 A4 `-> A4 A2 `-> A4 A3 `-> A2 A1 `-> A3 A1 `->
%D B1 B2 -> B1 B3 -> B2 B4 -> B3 B4 -> B4 B5 ->
%D C0 place C1 C2 -> .plabel= a E
%D ))
%D enddiagram
%D
$$\pu
\diag{presh-3}
$$
For the first version of the UGP, let $U_1=\V101$, $U_2=\V011$,
$f_{U_1} = 1$, $f_{U_2} = 2$. This is a compatible pair, because
$U_1∩U_2=\V001$ and $f_{U_1}|_{U_1∩U_2} = f_{U_2}|_{U_1∩U_2} = 1$ ---
but there is no $f∈E(U_1∪U_2)$ that restricts to both $f_{U_1}$ and
$f_{U_2}$; to check this we just need to test the two candidates, 23
and 24.
The second version of the UGP needs an index set. Take $I=\{42,200\}$
--- 42 and 200 are two of my favorite numbers ---, and $\calU =
\{(42,\V101), (200,\V011)\}$, $\calF = \{(42,1), (200,2)\}$. This is a
pairwise compatible family of functions, but it has two possible
glueings. We have $U:=\bigcup_{i∈I} U_i = \V111$, and both $23$ and
$24$ are glueings, i.e., are possible values for the
$f∈E(\bigcup_{i∈I} U_i)$ that obeys $∀i∈I. f_i = f|_{U_i}$.
The third version of the UGP is the nicest to draw. A pair
$(\calV⊆\Opens(\V111), \calG : (V:\calV) → E(V))$ can be drawn using
the conventions for drawing partial functions from \cite[section
1]{PH1}: we call $\calV$ the {\sl support} of the family $(\calV,
\calG)$, and for each $V∈\Opens(\V•••)$ we draw $\calG V$ on the
position of $V$ if $V∈\calV$; when $V\not∈\calV$ we draw a `$·$'. For
example, let
%
$$\begin{array}{c}
\calV = \{\V101, \V011, \V000\} = \dagKite·••·• = \dagKite01101, \\
\calG = \{(\V101, 1), (\V011, 2), (\V000,0)\} = \dagKite·12·0, \\
(\calV,\calG) = \left( \dagKite·••·•, \dagKite·12·0 \right). \\
\end{array}
$$
This $\calV = \dagKite·••·•$ isn't a sieve, and this $\calG =
\dagKite·12·0$ isn't compatible downwards. We want to restrict our
attention to sieves, and it turns out the set of all sieves on
$\Opens(\dagVee•••)$ is exactly $\Opens(\Opens(\dagVee•••))$, the
order topology on the partial order $\dagKite•••••$. A very good place
to learn about this is the section about down-sets and up-sets of
\cite[page 20 onwards]{DaveyPriestley}; for an ordered set $P$ they
define $\Opens(P)$ as the ``ordered set of down-sets of $P$'' in a way
that is very easy to iterate
% (find-books "__alg/__alg.el" "davey-priestley")
% (find-daveypriestleypage (+ 14 20) "Down-sets and up-sets")
% (find-LATEXgrep "grep --color -nH --null def.ito *")
\newpage
%D diagram ??
%D 2Dx 100 +40 +40 +40
%D 2D 100 A0 A1 C0 C1
%D 2D
%D 2D +30 A2 A3 C2 C3
%D 2D
%D 2D +25 B0 D0
%D 2D +15 B1 B2 D1 D2
%D 2D
%D ren A0 ==> \left(\dagKite11111\right)
%D ren A2 ==> \left(\dagKite01111\right)
%D ren C0 ==> \left(\dagKite00001\right)
%D ren C2 ==> \left(\dagKite00000\right)
%D ren A1 ==> \left\{\dagKite{23}1211,\dagKite{24}1211\right\}
%D ren A3 ==> \left\{\dagKite·1111,\dagKite·1211\right\}
%D ren C1 ==> \left\{\dagKite····0,\dagKite····1\right\}
%D ren C3 ==> \left\{\dagKite·····\right\}
%D ren B0 B1 B2 ==> \Sub(\dagKite11111) \phop\Sub(\dagKite11111)^\op \Set
%D ren D0 D1 D2 ==> \Sub(\dagKite11111) \phop\Sub(\dagKite11111)^\op \Set
%D
%D (( A0 A1 |->
%D A2 A0 `->
%D A1 A3 ->
%D A2 A3 |->
%D A0 A3 harrownodes nil 20 nil
%D B0 place
%D B1 B2 -> .plabel= a E
%D
%D C0 C1 |->
%D C2 C0 `->
%D C1 C3 ->
%D C2 C3 |->
%D C0 C3 harrownodes nil 20 nil
%D D0 place
%D D1 D2 -> .plabel= a E
%D ))
%D enddiagram
%D
$$\pu
\diag{??}
$$
% _ _
% | | | | ___ _ _ ___ ___
% | |_| |/ _ \| | | / __|/ _ \
% | _ | (_) | |_| \__ \ __/
% |_| |_|\___/ \__,_|___/\___|
%
% «OO-House» (to ".OO-House")
% (find-LATEX "2020maclane-moerdijk.tex" "OO-House")
% (find-books "__alg/__alg.el" "davey-priestley")
% (find-daveypriestleypage (+ 10 24) "1.28 The ordered set O(P ) of down-sets")
% (find-daveypriestleytext (+ 10 24) "1.28 The ordered set O(P ) of down-sets")
%R local y22, mid, lc, dnlc, y21 =
%R 1/ 0 \, 1/ 0 \, 1/ 0 \, 1/ 0 \, 1/ 0 \
%R | 1 | | 0 | | 0 | | 0 | | 0 |
%R | 1 1 | | 0 0 | | 0 0 | | 0 0 | | 1 0 |
%R |1 1 1| |1 1 1| |1 1 0| |1 1 0| |1 1 0|
%R | 1 1 | | 1 1 | | 0 0 | | 1 1 | | 1 1 |
%R \ 1 / \ 1 / \ 0 / \ 1 / \ 1 /
%R -- y22 :tozmp({zdef="y22", meta="s", size="6pt"}):addcells():output()
%R y22 :tozmp({zdef="y22", scale="8pt"}):addcells():output()
%R mid :tozmp({zdef="mid", scale="8pt"}):addcells():output()
%R lc :tozmp({zdef="lc", scale="8pt"}):addcells():output()
%R dnlc:tozmp({zdef="dnlc", scale="8pt"}):addcells():output()
%R y21 :tozmp({zdef="y21", scale="8pt"}):addcells():output()
%R y21 :tozmp({zdef="bott", scale="5pt"}):addbullets():output()
\pu
% (find-LATEX "2017planar-has-defs.tex" "defzha-and-deftcg")
%
% Let H be the "house" DAG:
%
% 1 3_
% / \ | \
% H = 2 3 == 2_ _2
% | | | |
% 4 5 1_ _1
%
% Then O(H) is this ZHA:
%
% 32
% 22
% 21 12
% B := O(H) = 20 11 02
% 10 01
% 00
%
% Let B be the bottle ZHA above.
% Label its nodes like this:
%
% L
% M
% L R
% L M R
% L R
% M
%
% I name the elements of O(B) by counting how many 1s
% they have on Ls, Ms, and Rs. The topology O(B) is:
%
% 433
% \
% 333
% |
% 323
% / \
% 322 223
% / \ / \
% 321 222 123
% \ / | \ /
% 221 212 122
% | X X |
% 211 121 112
% / \ | / \
% 210 111 012
% \ / \ /
% 110 011
% \ /
% 010
% |
% 000
%
%
% (find-LATEX "2017planar-has-defs.tex" "defzha-and-deftcg")
\def\Def#1#2{\expandafter\def\csname myDef#1\endcsname{#2}}
\def\Get #1{\csname myDef#1\endcsname}
\def\Run #1{\csname myDef#1\endcsname}
\def\Defupperargs #1#2{\Def{21}{#1}\Def{12}{#2}}
\def\Defmiddleargs#1#2#3{\Def{20}{#1}\Def{11}{#2}\Def{02}{#3}}
\def\Deflowerargs #1#2{\Def{10}{#1}\Def{01}{#2}}
\def\Defallargs#1.#2.#3.#4.#5.#6{
\Def{32}{#1}
\Def{22}{#2}
\Defupperargs#3
\Defmiddleargs#4
\Deflowerargs#5
\Def{00}{#6}
}
\def\Setbottle#1#2{\Def{#1}{\Defallargs#2}}
\Setbottle{433}{1.1.11.111.11.1}
\Setbottle{333}{0.1.11.111.11.1}
\Setbottle{323}{0.0.11.111.11.1}
\Setbottle{322}{0.0.10.111.11.1}
\Setbottle{223}{0.0.01.111.11.1}
\Setbottle{321}{0.0.10.110.11.1}
\Setbottle{222}{0.0.00.111.11.1}
\Setbottle{123}{0.0.01.011.11.1}
\Setbottle{221}{0.0.00.110.11.1}
\Setbottle{212}{0.0.00.101.11.1}
\Setbottle{122}{0.0.00.011.11.1}
\Setbottle{211}{0.0.00.100.11.1}
\Setbottle{121}{0.0.00.010.11.1}
\Setbottle{112}{0.0.00.001.11.1}
\Setbottle{210}{0.0.00.100.10.1}
\Setbottle{111}{0.0.00.000.11.1}
\Setbottle{012}{0.0.00.001.01.1}
\Setbottle{110}{0.0.00.000.10.1}
\Setbottle{011}{0.0.00.000.01.1}
\Setbottle{010}{0.0.00.000.00.1}
\Setbottle{000}{0.0.00.000.00.0}
%% A simple test using matrices:
%
% \def\pbottle{\psm{
% \Get{32} \;\;\; \\
% \Get{22} \\
% \Get{21} \Get{12} \\
% \Get{20} \Get{11} \Get{02} \\
% \Get{10} \Get{01} \\
% \Get{00} \\
% }}
%
% \def\B#1#2#3{\Run{#1#2#3}\pbottle}
%
% $\def\S{\phantom{mmm}}
% \mat{ \B433 \phantom{mm} \\
% \B333 \\
% \B323 \\
% \B322 \S \B223 \\
% \B321 \S \B222 \S \B123 \\
% \B221 \B212 \B122 \\
% \B211 \B121 \B112 \\
% \B210 \S \B111 \S \B012 \\
% \B110 \S \B011 \\
% \B000 \\
% }
% $
\def\G #1#2{\Get{#1#2}}
\def\B#1#2#3{\Run{#1#2#3}\zha{bottlesieve}}
%R local bottlesieve =
%R 4/ !G32 \
%R | !G22 |
%R | !G21 !G12 |
%R |!G20 !G11 !G02|
%R | !G10 !G01 |
%R \ !G00 /
%R bottlesieve:tozmp({zdef="bottlesieve", meta="s", scale="4.5pt"}):addcells():output()
%R local bottlesieves =
%R 5/ !B433 \
%R | !B333 |
%R | !B323 |
%R | !B322 !B223 |
%R |!B321 !B222 !B123|
%R | !B221!B212!B122 |
%R | !B211!B121!B112 |
%R |!B210 !B111 !B012|
%R | !B110 !B011 |
%R | !B010 |
%R \ !B000 |
%R
%R -- A bug fix:
%R -- (find-dn6 "zhas.lua" "MixedPicture")
%R -- (find-dn6 "zhas.lua" "MixedPicture" "addarrowsexcept =")
%R -- (find-dn6 "zhas.lua" "MixedPicture-cuts")
%R -- (find-dn6file "zhas.lua" "addxys =")
%R -- (find-dn6 "picture.lua" "V" " xy =")
%R
%R V.__index.xy = function (v) return pformat("(%s,%s)", v[1], v[2]) end
%R
%R MixedPicture.__index.
%R arrows = function (mp, w) return (mp.ar or mp.zha):arrows(w) end
%R
%R bottlesieves:tozmp({zdef="bottlesieves", meta="s", scale="42pt"})
%R :addcells()
%R :addarrowsexcept("w", "(0,5)0")
%R :output()
\pu
$$\Opens(\Opens(\dagHouse•••••))
\;\;=\;\;
\Opens(\zha{bott})
\;\;=\;\;
\zha{bottlesieves}
$$
\printbibliography
\end{document}
% __ __ _
% | \/ | __ _| | _____
% | |\/| |/ _` | |/ / _ \
% | | | | (_| | < __/
% |_| |_|\__,_|_|\_\___|
%
% <make>
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# (find-LATEXfile "2019planar-has-1.mk")
make -f 2019.mk STEM=2020sheaves veryclean
make -f 2019.mk STEM=2020sheaves pdf
% Local Variables:
% coding: utf-8-unix
% ee-tla: "shv"
% End: