Warning: this is an htmlized version!
The original is here, and
the conversion rules are here.
% (find-angg "LATEX/2017planar-has-3.tex")
% (defun c () (interactive) (find-LATEXsh "lualatex -record 2017planar-has-3.tex"))
% (defun d () (interactive) (find-xpdfpage "~/LATEX/2017planar-has-3.pdf"))
% (defun b () (interactive) (find-zsh "bibtex 2017planar-has-3; makeindex 2017planar-has-3"))
% (defun e () (interactive) (find-LATEX "2017planar-has-3.tex"))
% (defun u () (interactive) (find-latex-upload-links "2017planar-has-3"))
% (find-xpdfpage "~/LATEX/2017planar-has-3.pdf")
% (find-sh0 "cp -v  ~/LATEX/2017planar-has-3.pdf /tmp/")
% (find-sh0 "cp -v  ~/LATEX/2017planar-has-3.pdf /tmp/pen/")
%   file:///home/edrx/LATEX/2017planar-has-3.pdf
%               file:///tmp/2017planar-has-3.pdf
%           file:///tmp/pen/2017planar-has-3.pdf
% http://angg.twu.net/LATEX/2017planar-has-3.pdf
%
% «.picturedots»			(to "picturedots")
% «.title»				(to "title")
% «.abstract»				(to "abstract")
%
% «.introduction»			(to "introduction")
% «.a-factorization»			(to "a-factorization")
% «.classifier»				(to "classifier")
%
\documentclass[oneside]{article}
\usepackage[colorlinks]{hyperref} % (find-es "tex" "hyperref")
%\usepackage[latin1]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{pict2e}
%\usepackage{color}               % (find-LATEX "edrx15.sty" "colors")
\usepackage{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
%\catcode`\^^J=10                      % (find-es "luatex" "spurious-omega")
%\directlua{dofile "dednat6load.lua"}  % (find-LATEX "dednat6load.lua")
%
\usepackage{edrx15}               % (find-angg "LATEX/edrx15.sty")
\input edrxaccents.tex            % (find-angg "LATEX/edrxaccents.tex")
\input edrxchars.tex              % (find-LATEX "edrxchars.tex")
\input edrxheadfoot.tex           % (find-dn4ex "edrxheadfoot.tex")
\input edrxgac2.tex               % (find-LATEX "edrxgac2.tex")
%
\begin{document}

\catcode`\^^J=10
\directlua{dofile "dednat6load.lua"}  % (find-LATEX "dednat6load.lua")

\directlua{dofile "edrxtikz.lua"} % (find-LATEX "edrxtikz.lua")
\directlua{dofile "edrxpict.lua"} % (find-LATEX "edrxpict.lua")
%L V.__tostring = function (v) return format("(%.3f,%.3f)", v[1], v[2]) end



\def\eqP{\underset{P}{\sim}}
\def\eqJ{\underset{J}{\sim}}
\def\eqP{\underset{\scriptscriptstyle P}{\sim}}
\def\eqJ{\underset{\scriptscriptstyle J}{\sim}}
\def\eqP{\sim_P}
\def\eqJ{\sim_J}
\def\eqL{\sim_L}
\def\eqR{\sim_R}
\def\eqS{\sim_S}
\def\eqF{\sim_F}
\def\eqQ{\sim_Q}
\def\eqQp{\sim_{Q'}}

\def\ECube{\mathsf{ECube}}   \def\ecube{\mathsf{ecube}}
\def\OCube{\mathsf{OCube}}   \def\ocube{\mathsf{ocube}}
\def\FCube{\mathsf{FCube}}   \def\fcube{\mathsf{fcube}}
\def\VCube{\mathsf{VCube}}   \def\vcube{\mathsf{vcube}}
\def\Exprs{\mathsf{Exprs}}
\def\Thms{\mathsf{Thms}}
\def\thms{\mathsf{thms}}
\def\vthms{\mathsf{vthms}}
\def\NClasses{\mathsf{NClasses}}
\def\nclasses{\mathsf{nclasses}}
\def\ZHAstar{ZHA${}^*$}
\def\sfE{\mathsf{E}}
\def\sfV{\mathsf{V}}

\def\OPENS{\operatorname{\mathsf{Opens}}}
\def\OPENSPABD{\OPENS(\Opens_A(P),B,D)}
\def\OPENSPABD{\OPENS((P,A),B,D)}
\def\relevant {\operatorname{\mathsf{relev}}}
\def\qmarks   {\operatorname{\mathsf{qmarks}}}
\def\forget   {\operatorname{\mathsf{forget}}}
\def\propagate{\operatorname{\mathsf{prpgt}}}
\def\propagate{\operatorname{\mathsf{prp}}}
\def\biggest{\mathsf{biggest}}
\def\ess{\mathsf{ess}}
\def\obeys{\mathsf{obeys}}
\def\isoftheform{\operatorname{\mathsf{is\ of\ the\ form}}}

\def\ph{\phantom}

%L tcg_big  = {scale="10pt", meta="p",   dv=2, dh=3, ev=0.32, eh=0.2}
%L tcg_med  = {scale= "8pt", meta="p s", dv=1, dh=2, ev=0.32, eh=0.25}
%L tcgnew = function (opts, def, str)
%L     return TCG.new(opts, def, unpack(split(str, "[ %d]+")))
%L   end
%L tcgbig  = function (def, spec) return tcgnew(tcg_big,  def, spec or tcg_spec) end
%L tcgmed  = function (def, spec) return tcgnew(tcg_med,  def, spec or tcg_spec) end
%L
%L tcg_bigq = {scale="10pt", meta="p",   dv=2, dh=3, ev=0.32, eh=0.2,  dq=1.4}
%L tcg_medq = {scale= "8pt", meta="p s", dv=1, dh=2, ev=0.32, eh=0.25, dq=1.4}
%L tcg_Medq = {scale="10pt", meta="p",   dv=1, dh=3, ev=0.32, eh=0.25, dq=1.4}
%L
%L tcgbigq = function (def, spec) return tcgnew(tcg_bigq, def, spec or tcg_spec) end
%L tcgmedq = function (def, spec) return tcgnew(tcg_medq, def, spec or tcg_spec) end
%L tcgMedq = function (def, spec) return tcgnew(tcg_Medq, def, spec or tcg_spec) end

%L -- (find-dn6 "zhas.lua" "TCG")
%L -- (find-dn6 "zhas.lua" "TCG" "lrs =")
%L
%L TCG.__index.QL    = function (tcg, y) return v(0     -tcg.lp.dq, tcg.dv*y) end
%L TCG.__index.QR    = function (tcg, y) return v(tcg.dh+tcg.lp.dq, tcg.dv*y) end
%L TCG.__index.putql = function (tcg, y, str) tcg.lp:put(tcg:QL(y), str) end
%L TCG.__index.putqr = function (tcg, y, str) tcg.lp:put(tcg:QR(y), str) end
%L TCG.__index.qmarks = function (tcg, lstr, rstr)
%L     for y=1,tcg.l do tcg:putql(y, lstr:sub(y, y)) end
%L     for y=1,tcg.r do tcg:putqr(y, rstr:sub(y, y)) end
%L     return tcg
%L   end

%L mp = mpnew({def="foo"}, "1R2R3212RL1"):addlrs():addcuts("c 4321/0 0123|45|6"):output()
%L mp = mpnew({def="foo"}, "1R2R3212RL1"):addlrs():output()
%L tcg_spec  = "4, 6; 11 22 34 45, 25"
%L tcgbig("tcgL" ):strs("1 ? ? ?", "? ? ? 0 ? 0"):hs():vs():lrs():output()
%L tcgbig("tcgL" ):hs():vs():lrs():output()
%
%$$\pu
%  \foo \squigbij \tcgL
%$$


%  _____ _ _   _      
% |_   _(_) |_| | ___ 
%   | | | | __| |/ _ \
%   | | | | |_| |  __/
%   |_| |_|\__|_|\___|
%                     
% (find-LATEX "idarct/idarct-preprint.tex")
% «title» (to ".title")

\title{Planar Heyting Algebras for Children 3: Visualizing Geometric Morphisms}

\author{Eduardo Ochs \and Peter Arndt}


%     _    _         _                  _   
%    / \  | |__  ___| |_ _ __ __ _  ___| |_ 
%   / _ \ | '_ \/ __| __| '__/ _` |/ __| __|
%  / ___ \| |_) \__ \ |_| | | (_| | (__| |_ 
% /_/   \_\_.__/|___/\__|_|  \__,_|\___|\__|
%                                           
% «abstract» (to ".abstract")

% \begin{abstract}

% \end{abstract}

% (find-kopkadaly4page (+ 12  58)  "3.4 Table of contents")
% \tableofcontents


\maketitle






%  ___       _                 _            _   _             
% |_ _|_ __ | |_ _ __ ___   __| |_   _  ___| |_(_) ___  _ __  
%  | || '_ \| __| '__/ _ \ / _` | | | |/ __| __| |/ _ \| '_ \ 
%  | || | | | |_| | | (_) | (_| | |_| | (__| |_| | (_) | | | |
% |___|_| |_|\__|_|  \___/ \__,_|\__,_|\___|\__|_|\___/|_| |_|
%                                                             
% «introduction» (to ".introduction")


% (find-angg "LATEX/2017visualizing-gms.tex")

{\bf Warning:} {\sl this paper does not exist yet!}

Its first part --- on internal views --- has been moved to the
beginning of:

\url{http://angg.twu.net/LATEX/2017yoneda.pdf}

{\bf Links:}

Parts 1, 2, and 3 (this one) in this series of papers:

\url{http://angg.twu.net/math-b.html#zhas-for-children-2}

A workshop very much related to this:

\url{http://angg.twu.net/logic-for-children-2018.html}

A big part of the core of this paper will be on putting some of the
diagrams on ``Notes on notation: Elephant'' in readable form.

\url{http://angg.twu.net/LATEX/2017elephant.pdf}

\url{http://angg.twu.net/math-b.html\#notes-on-notation}





\section{``Children'' and ``adults''}

Different people have different ways of remembering theorems. A person
with a very visual mind may remember a theorem in Category Theory
mainly by the shape of a diagram and the order in which its objects
are constructed. For such a person most books on Category Theory feel
as if they have lots of missing diagrams, that she has to reconstruct
if she wants to understand the subject.

The shape of a categorical diagram remains the same if we specialize
it to a particular case --- and this means that we can sometimes
remember a general diagram, and the theorems associated to it, from
the diagram of a particular case. A diagram for a particular case
becomes a skeleton, or a scaffold, from which we reconstruct mentally
a general statement when we need it.

In this paper we will use ``missing diagrams'', ``particular cases'',
and a third technique called ``internal views'', to show how to obtain
a version ``for children'' of some theorems about topos (actually
about factorizations of geometrical morphisms between toposes). Our
aim on a higher level, though, is to sketch some techniques for doing
``maths for children'' and ``maths for adults'' in parallel, with
tools to creating a --- somewhat faulty, but still useful --- bridge
between the two languages.

Let's {\sl define} what we mean by ``children'' and ``adults''.
``Children'' means (for us!!!) ``people without mathematical
maturity'', which in its turn means people who:

\begin{itemize}

\item have trouble with very abstract definitions,

\item prefer starting from particular cases (and then generalize),

\item handle diagrams better than algebraic notations,

\item like to use diagrams and analogies,

\item like to work with finite cases where all calculations can be
  done explicitly ``by brute force''.

\end{itemize}

People who prefer to always work on a very high-level abstract
language, and who frown on working out examples in details, are
``adults'', or ``mathematicians''.

With these terms, categorical definitions are ``for adults'', because
they may be very abstract, and particular cases, diagrams, and
analogies are ``for children''. ``Children'' are willing to use
``tools for children'' to do mathematics, {\sl even if they will have
  to translate everything to a language ``for adults'' to make their
  results dependable and publishable}, and even if the bridge between
their tools ``for children'' and ``for adults'' is somewhat defective,
i.e., if the translation only works on simple cases...

% We are interested in that {\sl bridge} between maths ``for adults and
% "for children" in several areas. Maths "for children" are hard to
% publish, even informally as notes (see [R
%   http://angg.twu.net/categories-2017may02.html this thread] in the
% Categories mailing list), so often techniques are rediscovered over
% and over, but kept restricted to the "oral culture" of the area.


% one application: reconstructing the statements, and some of the
% proofs, of two factorizations of geometric morphisms between toposes
% described in section A4 of [1], from particular cases that are easy
% to draw explicitly --- in which our toposes are of the form
% $\Set^\A$, where $\A$ is a finite category whose objects are certain
% points of $\Z^2$. The tricks for visualizing sheaves on these
% `$\Set^\A$'s are described in [2].



% «a-factorization» (to ".a-factorization")
\section{A factorization}

\def\calA{\mathcal{A}}
\def\calB{\mathcal{B}}
\def\calC{\mathcal{C}}
\def\calD{\mathcal{D}}
\def\bbG{\mathbb{G}}

Two factorizations of geometric morphisms (``g.m.s'') described in
section A4 of [E1] can be depicted together, as this:

Take two toposes $\calA$ and $\calD$ and an arbitrary geometric
morphism $\calA \ton{a} \calD$ between them. All factorizations of $a$
as a surjection followed by an inclusion, $\calA \ton{s} \calB \ton{i}
\calD$ are essentially equivalent, and all factorizations of an
inclusion $\calB \ton{i} \calD$ as a dense g.m.\ followed by a closed
g.m., $\calB \ton{d} \calC \ton{c} \calD$, are essentially equivalent.
There is a construction that yields a factorization of $\calA \ton{a}
\calD$ into surjection followed by inclusion: its middle topos,
$\calA_\bbG$, is built using comonads and coalgebras. There is a
construction that yields a factorization of $\calB \ton{i} \calD$ into
surjection followed by inclusion: its middle topos,
$\mathsf{sh}_{¬¬}(\calD)$, is built using the double-negation sheaf.
The arrows drawn as `$\diagxyto/==/<150>$' in the diagram are
equivalences of categories, and the `$\diagxyto/->/<150>$'s are
geometric morphisms.


%L forths["=="] = function () pusharrow("==") end

%D diagram ??
%D 2Dx     100   +50   +40   +40
%D 2D  100 A1 -------------> D1
%D 2D      ||                ||
%D 2D  +20 A2 -> B2 -------> D2
%D 2D            ||          ||
%D 2D  +20       B3 -> C3 -> D3
%D 2D            ||    ||
%D 2D  +20       B4    C4
%D 2D
%D ren A1       D1 ==> \calA             \calD
%D ren A2 B2    D2 ==> \calA \calB       \calD
%D ren    B3 C3 D3 ==>       \calB \calC \calD
%D ren    B4 C4    ==> \calA_\bbG \mathsf{sh}_{¬¬}(\calD)
%D
%D (( A1 D1 -> .plabel= a \gm{a}{arbitrary}
%D    A2 B2 -> .plabel= a \gm{s}{surjection}
%D    B2 D2 -> .plabel= a \gm{i}{inclusion}
%D    B3 C3 -> .plabel= a \gm{d}{dense}
%D    C3 D3 -> .plabel= a \gm{c}{closed}
%D    A1 A2 =  D1 D2 =  B2 B3 =  D2 D3 =
%D    B3 B4 == C3 C4 ==
%D ))
%D enddiagram
%D
$$\pu
  \def\gm#1#2{#1\;\text{(#2)}}
  \diag{??}
$$





%  ___       _                        _         _               
% |_ _|_ __ | |_ ___ _ __ _ __   __ _| | __   _(_) _____      __
%  | || '_ \| __/ _ \ '__| '_ \ / _` | | \ \ / / |/ _ \ \ /\ / /
%  | || | | | ||  __/ |  | | | | (_| | |  \ V /| |  __/\ V  V / 
% |___|_| |_|\__\___|_|  |_| |_|\__,_|_|   \_/ |_|\___| \_/\_/  
%                                                               

\section{Internal views}

\section{Particular cases}

\section{ZCategories}

\section{ZFunctors}


% (find-LATEXfile "2017visualizing-gms.tex")
% (find-xpdfpage "~/LATEX/2017visualizing-gms.pdf")



% «classifier» (to ".classifier")
% (find-es "dednat" "sub-ZHA")
% (xz "~/tmp/20181115_pha_030625.jpg")
\section{Classifier}


%L mytcgspec  = "3, 3; 32, 13"
%L myspec = "1232RL1"
%L mycuts = "c 32/10 012|3"
%L mytop  = v"35"
%L myf    = "lr -> lr:below(mytop) and lr:lr() or '..'"
%L 
%L foo = function (top, opts)
%L     mytop = v(top)
%L     mpnew(opts, myspec):addcutssub(mytop, mycuts):zhalrf0(myf):print():output()
%L   end
%L foo("33", {def="fooZ"})
%L
%L foo("32", {def="fooA"})
%L foo("20", {def="fooB"})
%L foo("10", {def="fooC"})
%L
%L foo("13", {def="fooD"})
%L foo("02", {def="fooE"})
%L foo("01", {def="fooF"})

%L claOpts = {scale="90pt", meta="p",   dv=1.2, dh=1.4, ev=0.45, eh=0.28}
%L claT = tcgnew(claOpts, "fooT", mytcgspec)
%L claT:strs("\\fooC \\fooB \\fooA", "\\fooF \\fooE \\fooD"):hs():vs():output()

%L local tcg = tcgbigq("footcg", mytcgspec)
%L tcg:lrs():hs():vs()
%L tcg:qmarks("?!?", "??!")
%L tcg:output()


\pu

% $$
%   \fooZ
%   \begin{pmatrix}
%   \fooA & \fooD \\ \\
%   \fooB & \fooE \\ \\
%   \fooC & \fooF \\
%   \end{pmatrix}
% $$

$$\fooZ
  \quad
  \footcg
  \quad
  \fooT
$$



\end{document}

% Local Variables:
% coding: utf-8-unix
% End: