Warning: this is an htmlized version!
The original is here, and
the conversion rules are here.
% (find-angg "LATEX/2017planar-has-deleted.tex")
% (find-angg "LATEX/2017planar-has.tex")
% (defun c () (interactive) (find-LATEXsh "lualatex -record 2017planar-has-deleted.tex"))
% (defun d () (interactive) (find-xpdfpage "~/LATEX/2017planar-has-deleted.pdf"))
% (defun e () (interactive) (find-LATEX "2017planar-has-deleted.tex"))
% (defun u () (interactive) (find-latex-upload-links "2017planar-has-deleted"))
% (find-xpdfpage "~/LATEX/2017planar-has-deleted.pdf")
% (find-sh0 "cp -v  ~/LATEX/2017planar-has-deleted.pdf /tmp/")
% (find-sh0 "cp -v  ~/LATEX/2017planar-has-deleted.pdf /tmp/pen/")
%   file:///home/edrx/LATEX/2017planar-has-deleted.pdf
%               file:///tmp/2017planar-has-deleted.pdf
%           file:///tmp/pen/2017planar-has-deleted.pdf
% http://angg.twu.net/LATEX/2017planar-has-deleted.pdf

% An improvised index with links to pages:
% (find-LATEXsh "grep phap 2017planar-has.tex")
% (find-LATEXsh "grep phap 2017planar-has-deleted.tex")
% (phai)


% «.picturedots»			(to "picturedots")
% «.title»				(to "title")
% «.introduction»			(to "introduction")
%
% «.positional»				(to "positional")
% «.ZDAGs»				(to "ZDAGs")
% «.LR-coords»				(to "LR-coords")
% «.ZHAs»				(to "ZHAs")
% «.two-conventions»			(to "two-conventions")
% «.prop-calc»				(to "prop-calc")
% «.prop-calc-ZHA»			(to "prop-calc-ZHA")
% «.HAs»				(to "HAs")
% «.implication-formally»		(to "implication-formally")
% «.logic-in-HAs»			(to "logic-in-HAs")
% «.derived-rules»			(to "derived-rules")
% «.topologies»				(to "topologies")
% «.topologies-on-ZSets»		(to "topologies-on-ZSets")
% «.topologies-as-partial-orders»	(to "topologies-as-partial-orders")
% «.2CGs»				(to "2CGs")
% «.topologies-on-2CGs»			(to "topologies-on-2CGs")
% «.converting-ZHAs-2CAGs»		(to "converting-ZHAs-2CAGs")
%
% «.piccs-and-slashings»		(to "piccs-and-slashings")
% «.slash-partitions»			(to "slash-partitions")
% «.slash-max»				(to "slash-max")
% «.cuts-stopping-midway»		(to "cuts-stopping-midway")
% «.slash-ops»				(to "slash-ops")
% «.slash-ops-property»			(to "slash-ops-property")
% «.slash-regions-and-ops»		(to "slash-regions-and-ops")
% «.J-ops-and-regions»			(to "J-ops-and-regions")
% «.no-Y-cuts-no-L-cuts»		(to "no-Y-cuts-no-L-cuts")
% «.J-ops-and-connectives»		(to "J-ops-and-connectives")
% «.J-cubes-as-partial-orders»		(to "J-cubes-as-partial-orders")
% «.valuations-induce-POs»		(to "valuations-induce-POs")
% «.comparing-partial-orders»		(to "comparing-partial-orders")
% «.lindenbaum-fragments»		(to "lindenbaum-fragments")
% «.polynomial-J-ops»			(to "polynomial-J-ops")
% «.algebra-of-J-ops»			(to "algebra-of-J-ops")
%
% «.question-marks-new»			(to "question-marks-new")
% «.question-marks»			(to "question-marks")
% «.rectangular-ZHAs»			(to "rectangular-ZHAs")
% «.on-intervals-and-interiors»		(to "on-intervals-and-interiors")
% «.how-J-ops-act-on-2CGs»		(to "how-J-ops-act-on-2CGs")
% «.2017jun05»				(to "2017jun05")
% «.2017jun06»				(to "2017jun06")
% «.2017jun11»				(to "2017jun11")
% «.rectangular-1»			(to "rectangular-1")
%
% «.children»				(to "children")
% «.comprehension»			(to "comprehension")


\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{colorweb}             % (find-es "tex" "colorweb")
\usepackage{tikz}
\usepackage{proof}                % (find-dn6 "preamble6.lua" "preamble0")
\input diagxy                     % (find-dn6 "preamble6.lua" "preamble0")
%
\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{dednat6dir = "dednat6/"}
\directlua{dofile(dednat6dir.."dednat6.lua")}
\directlua{texfile(tex.jobname)}
\directlua{verbose()}
\directlua{output(preamble1)}
\def\expr#1{\directlua{output(tostring(#1))}}
\def\eval#1{\directlua{#1}}
\def\pu{\directlua{pu()}}

\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


% «picturedots» (to ".picturedots")
% (find-LATEX "2016-2-GA-algebra.tex" "picturedots")
% (find-LATEX "2016-2-GA-algebra.tex" "comprehension-gab")
% (gaap 5)
%
\def\beginpicture(#1,#2)(#3,#4){\expr{beginpicture(v(#1,#2),v(#3,#4))}}
\def\pictaxes{\expr{pictaxes()}}
\def\pictdots#1{\expr{pictdots("#1")}}
\def\picturedotsa(#1,#2)(#3,#4)#5{%
  \vcenter{\hbox{%
  \beginpicture(#1,#2)(#3,#4)%
  \pictaxes%
  \pictdots{#5}%
  \end{picture}%
  }}%
}
\def\picturedots(#1,#2)(#3,#4)#5{%
  \vcenter{\hbox{%
  \beginpicture(#1,#2)(#3,#4)%
  %\pictaxes%
  \pictdots{#5}%
  \end{picture}%
  }}%
}

\def\sa{\rightsquigarrow}
\def\BPM{\mathsf{BPM}}
\def\WPM{\mathsf{WPM}}
\def\ZHAG{\mathsf{ZHAG}}

\def\catTwo{\mathbf{2}}
%\def\Pts{\mathcal{P}}
\def\calS{\mathcal{S}}

\def\und#1#2{\underbrace{#1}_{#2}}

\def\subst#1{\left[\begin{array}{rcl}#1\end{array}\right]}
\def\subst{\bsm}

% (find-LATEXfile "2015planar-has.tex" "\\def\\Mop")

\def\MP{\mathsf{MP}}

\def\J   {\mathsf{J}}
\def\Mo  {\mathsf{Mo}}
\def\Mop {\mathsf{Mop}}
\def\Sand{\mathsf{Sand}}
\def\ECa {\mathsf{EC}{\&}}
\def\ECv {\mathsf{EC}{∨}}
\def\ECS {\mathsf{ECS}}
\def\pdiag#1{\left(\diag{#1}\right)}
\def\ltor#1#2{#1\_{\to}\_#2}
\def\lotr#1#2{#1\_{\ot}\_#2}
\def\Int{{\operatorname{int}}}
\def\coInt{{\operatorname{\mathsf{coint}}}}
\def\propagate{\operatorname{\mathsf{prp}}}
%
\def\NoLcuts{\mathsf{No}λ\mathsf{cuts}}
\def\NoYcuts{\mathsf{NoYcuts}}
\def\astarcube{{\&}^*\mathsf{Cube}}
\def\ostarcube{{∨}^*\mathsf{Cube}}
\def\istarcube{{→}^*\mathsf{Cube}}
\def\acz{{\&}^*\mathsf{C}_0}
\def\ocz{{∨}^*\mathsf{C}_0}
\def\icz{{→}^*\mathsf{C}_0}
%
\def\astarcuben{{\&}^*\mathsf{Cube}_\mathsf{n}}
\def\ostarcuben{{∨}^*\mathsf{Cube}_\mathsf{n}}
\def\istarcuben{{→}^*\mathsf{Cube}_\mathsf{n}}
\def\astarcubev{{\&}^*\mathsf{Cube}_\mathsf{v}}
\def\ostarcubev{{∨}^*\mathsf{Cube}_\mathsf{v}}
\def\istarcubev{{→}^*\mathsf{Cube}_\mathsf{v}}
%
%\catcode`∧=13 \def∧{\mathop{\&}}

\def\biggest {\mathsf{biggest}}
\def\smallest{\mathsf{smallest}}
\def\Cuts    {\mathsf{Cuts}}

\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\calS{\mathcal{S}}
\def\calI{\mathcal{I}}
\def\calK{\mathcal{K}}
\def\calV{\mathcal{V}}




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

\title{Planar Heyting Algebras for Children - Deleted Parts}

\author{Eduardo Ochs}

% \begin{abstract}
% Not yet
% \end{abstract}

\maketitle




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

This paper shows a way to interpret (propositional) intuitionistic
logic {\sl visually} (see section \ref{prop-calc-ZHA}).

The ``for children'' in the title has a precise, but somewhat unusual,
meaning, that is explained in sec.\ref{children}.

% \nopagebreak  % (find-es "tex" "pagebreak")


%  ____           _ _   _                   _ 
% |  _ \ ___  ___(_) |_(_) ___  _ __   __ _| |
% | |_) / _ \/ __| | __| |/ _ \| '_ \ / _` | |
% |  __/ (_) \__ \ | |_| | (_) | | | | (_| | |
% |_|   \___/|___/_|\__|_|\___/|_| |_|\__,_|_|
%                                             
% «positional» (to ".positional")
\section{Positional notations}
\label  {positional}
% Good (phap 1 "positional")

% (laq 2)
% (laq 3)
% (gaap 5)
% (to "picturedots")

\unitlength=8pt \def\closeddot{\circle*{0.4}}
\def\closeddot{\circle*{0.5}}

%L kite  = ".1.|2.3|.4.|.5."
%L house = ".1.|2.3|4.5"
%L W     = "1.2.3|.4.5."
%L guill = ".1.2|3.4.|.5.6"
%L hex   = ".1.2.|3.4.5|.6.7."
%L mp = MixedPicture.new({def="dagKite", meta="s", scale="5pt"}, z):zfunction(kite):output()
%L mp = MixedPicture.new({def="dagKite",  meta="t", scale="4pt"}, z):zfunction(kite):output()
%L mp = MixedPicture.new({def="dagHouse", meta="s", scale="5pt"}, z):zfunction(house):output()
%L mp = MixedPicture.new({def="dagW",     meta="s", scale="4pt"}, z):zfunction(W):output()
%L mp = MixedPicture.new({def="dagGuill", meta="s", scale="4pt"}, z):zfunction(guill):output()
%L mp = MixedPicture.new({def="dagHex",   meta="s", scale="4pt"}, z):zfunction(hex):output()
\pu



%  _________    _    ____     
% |__  /  _ \  / \  / ___|___ 
%   / /| | | |/ _ \| |  _/ __|
%  / /_| |_| / ___ \ |_| \__ \
% /____|____/_/   \_\____|___/
%                             
% «ZDAGs» (to ".ZDAGs")
\section{ZDAGs}
\label  {ZDAGs}
% Good (phap 2 "ZDAGs")

%  _     ____                            _ _             _            
% | |   |  _ \    ___ ___   ___  _ __ __| (_)_ __   __ _| |_ ___  ___ 
% | |   | |_) |  / __/ _ \ / _ \| '__/ _` | | '_ \ / _` | __/ _ \/ __|
% | |___|  _ <  | (_| (_) | (_) | | | (_| | | | | | (_| | ||  __/\__ \
% |_____|_| \_\  \___\___/ \___/|_|  \__,_|_|_| |_|\__,_|\__\___||___/
%                                                                     
% «LR-coords» (to ".LR-coords")
\section{LR-coordinates}
\label  {LR-coords}
% Good (phap 3 "LR-coords")

\def\LR{\mathbb{LR}}


%  ______   _    _        
% |__  / | | |  / \   ___ 
%   / /| |_| | / _ \ / __|
%  / /_|  _  |/ ___ \\__ \
% /____|_| |_/_/   \_\___/
%                         
% «ZHAs» (to ".ZHAs")
\section{ZHAs}
\label  {ZHAs}
% Good (phap 4 "ZHAs")



%  _____                                                _   _                 
% |_   _|_      _____     ___ ___  _ ____   _____ _ __ | |_(_) ___  _ __  ___ 
%   | | \ \ /\ / / _ \   / __/ _ \| '_ \ \ / / _ \ '_ \| __| |/ _ \| '_ \/ __|
%   | |  \ V  V / (_) | | (_| (_) | | | \ V /  __/ | | | |_| | (_) | | | \__ \
%   |_|   \_/\_/ \___/   \___\___/|_| |_|\_/ \___|_| |_|\__|_|\___/|_| |_|___/
%                                                                             
% «two-conventions» (to ".two-conventions")
\section{Conventions on diagrams without axes}
\label  {two-conventions}
% Good (phap 5 "two-conventions")


%  ____                              _      
% |  _ \ _ __ ___  _ __     ___ __ _| | ___ 
% | |_) | '__/ _ \| '_ \   / __/ _` | |/ __|
% |  __/| | | (_) | |_) | | (_| (_| | | (__ 
% |_|   |_|  \___/| .__/   \___\__,_|_|\___|
%                 |_|                       
%
% «prop-calc» (to ".prop-calc")
\section{Propositional calculus}
\label  {prop-calc}
% Good (phap 5 "prop-calc")


%  ____                              _        ______   _    _    
% |  _ \ _ __ ___  _ __     ___ __ _| | ___  |__  / | | |  / \   
% | |_) | '__/ _ \| '_ \   / __/ _` | |/ __|   / /| |_| | / _ \  
% |  __/| | | (_) | |_) | | (_| (_| | | (__   / /_|  _  |/ ___ \ 
% |_|   |_|  \___/| .__/   \___\__,_|_|\___| /____|_| |_/_/   \_\
%                 |_|                                            
%
% «prop-calc-ZHA» (to ".prop-calc-ZHA")
\section{Propositional calculus in a ZHA}
\label  {prop-calc-ZHA}
% Good (phap 7 "prop-calc-ZHA")



%  _   _    _        
% | | | |  / \   ___ 
% | |_| | / _ \ / __|
% |  _  |/ ___ \\__ \
% |_| |_/_/   \_\___/
%                    
% «HAs» (to ".HAs")
% Good (phap 7 "HAs")

\section{Heyting Algebras}
\label{HAs}



%      __      __                            _ _       
%      \ \    / _| ___  _ __ _ __ ___   __ _| | |_   _ 
%  _____\ \  | |_ / _ \| '__| '_ ` _ \ / _` | | | | | |
% |_____/ /  |  _| (_) | |  | | | | | | (_| | | | |_| |
%      /_( ) |_|  \___/|_|  |_| |_| |_|\__,_|_|_|\__, |
%        |/                                      |___/ 
%
% «implication-formally» (to ".implication-formally")
% Bad  (phap 10 "implication-formally")
\section{Implication, formally}
\label  {implication-formally}

{

\def\impen{\ton{\text{en}}}
\def\impeq{\ton{\text{eq}}}

\def\o#1{\mathop{\mathsf{#1}}}
\def\o#1{\mathbin{\mathsf{#1}}}
\def\a#1#2{\ang{#1,#2}}
\def\ab{\a ab}
\def\cd{\a cd}
\def\ef{\a ef}
\def\ab{ab}
\def\cd{cd}
\def\ef{ef}
\def\wh{\widehat}

The definition of `$→$' in sec.\ref{prop-calc-ZHA} is easy to state in
English and easy to calculate; the definition from sec.\ref{HAs} is
hard to calculate, but it is easy to check that it obeys the expected
equation. Let's refer to them as `$\impen$' and `$\impeq$'. If we
write $P=ab$, $Q=cd$, $R=ef$, we have:
%
$$\begin{array}{rcl}
  \cd \impen \ef &:=& \begin{array}[t]{llll}
                 \o{if}     & \cd \o{below} \ef   & \o{then} & ⊤           \\
                 \o{elseif} & \cd \o{leftof} \ef  & \o{then} & \o{ne}(\cd∧\ef) \\
                 \o{elseif} & \cd \o{rightof} \ef & \o{then} & \o{nw}(\cd∧\ef) \\
                 \o{elseif} & \cd \o{above} \ef   & \o{then} & \ef            \\
                 \o{end}
                 \end{array} \\
  \end{array}
$$
$$(ab ≤ (cd \impeq ef)) ↔ ((ab ∧ cd) ≤ ef)$$

We want to check that $cd \impen ef$ obeys the same equation, i.e.,
%
$$(ab ≤ (cd \impen ef)) ↔ ((ab ∧ cd) ≤ ef)$$
%
and so `$\impen$' and `$\impeq$' are equivalent.

In `$\impen$' the order of the cases is very important. For example,
if $cd=21$ and $ef=23$ then both ``$\cd \o{below} \ef$'' and ``$\cd
\o{leftof} \ef$'' are true, but ``$\cd \o{below} \ef$'' takes
precedence and so $\cd \impen \ef = ⊤$. It easy to check that we can
redefine `$\impen$' as this:
%
$$\begin{array}{rcl}
  \cd \impen \ef &=& \begin{array}[t]{llll}
                 \o{if}     & c≤e∧d≤f & \o{then} & ⊤           \\
                 \o{elseif} & c>e∧d≤f & \o{then} & \o{ne}(\cd∧\ef) \\
                 \o{elseif} & c≤e∧d>f & \o{then} & \o{nw}(\cd∧\ef) \\
                 \o{elseif} & c>e∧d>f  & \o{then} & \ef            \\
                 \o{end},
                 \end{array} \\
  \end{array}
$$
%
and now the four cases are disjoint.

Let's introduce a notation: a ``$\widehat{a}$'' means ``make this
digit as big possible without leaving the ZHA''. So,
%
%L mpnew({def="foo"}, "123RL232L1"):addlrs():output()
$$\pu
  \text{in} \qquad \foo \qquad \text{we have} \qquad
  \begin{array}{rclcl}
  \wh1\wh2 &=& 54 &=& ⊤, \\
  1\wh2 &=& 13 &=& \o{ne}(12), \\
  \wh12 &=& 42 &=& \o{nw}(12); \\
  \end{array}
  % \quad ;
$$
%
it turns out that we can get rid of the `$\o{ne}$' and the `$\o{nw}$',
rewriting the definition of `$\impen$' as:
%
$$\begin{array}{rcl}
  \cd \impen \ef &=& \begin{array}[t]{llll}
                 \o{if}     & c≤e∧d≤f & \o{then} & \wh{e}\wh{f}   \\
                 \o{elseif} & c>e∧d≤f & \o{then} & e\wh{f} \\
                 \o{elseif} & c≤e∧d>f & \o{then} & \wh{e}f \\
                 \o{elseif} & c>e∧d>f  & \o{then} & \ef            \\
                 \o{end},
                 \end{array} \\
  \end{array}
$$
%
and ``$(ab ≤ (cd \impen ef)) ↔ ((ab ∧ cd) ≤ ef)$'' is equivalent to
the conjunction of these four statements:
%
\def\abcdef{ab ≤ (\cd \impen \ef)}
\def\abcdeF{ab ∧ \cd ≤ \ef}
\def\abcdem{\min(a,c)≤e ∧ \min(b,d)≤f}
\def\p{\phantom}
%
$$\begin{array}[t]{lllllllll}
   c≤e∧d≤f &→& (\abcdef &↔& \abcdeF)  \\
   c>e∧d≤f &→& (\abcdef &↔& \abcdeF) \\
   c≤e∧d>f &→& (\abcdef &↔& \abcdeF) \\
   c>e∧d>f  &→& (\abcdef &↔& \abcdeF)  \\
  \end{array} \\
$$
%
If we replace each `$cd \impen ef$' by $\wh{e}\wh{f}$, $e\wh{f}$,
$\wh{e}f$, $ef$ depending on in which case we are, and we replace each
`$\abcdeF$' by `$\min(a,c)≤e ∧ \min(b,d)≤f$', we get:
%
$$\begin{array}[t]{lllllllll}
   c≤e∧d≤f &→& (ab≤\wh{e}\wh{f} &↔& \abcdem)  \\
   c>e∧d≤f &→& (ab≤e\wh{f}       &↔& \abcdem) \\
   c≤e∧d>f &→& (ab≤\wh{e}f       &↔& \abcdem) \\
   c>e∧d>f  &→& (ab≤\ef         &↔& \abcdem)  \\
  \end{array} \\
$$
%
Let's see how to prove the second implication. The third one is
similar to the second, and the first and the fourth are very easy. We
have
%
$$ab≤e\wh{f} \;\;↔\;\; a≤e∧b≤\wh{f} \;\;↔\;\; a≤e,$$
%
and when $c>e∧d≤f$ when have:
%
$$\abcdem \;\;↔\;\; a≤e∧⊤ \;\;↔\;\; a≤e.$$

}



%  _                _        _         _   _    _        
% | |    ___   __ _(_) ___  (_)_ __   | | | |  / \   ___ 
% | |   / _ \ / _` | |/ __| | | '_ \  | |_| | / _ \ / __|
% | |__| (_) | (_| | | (__  | | | | | |  _  |/ ___ \\__ \
% |_____\___/ \__, |_|\___| |_|_| |_| |_| |_/_/   \_\___/
%             |___/                                      
%
% «logic-in-HAs» (to ".logic-in-HAs")
% Good (phap 12 "logic-in-HAs")

\section{Logic in a Heyting Algebra}
\label  {logic-in-HAs}



%  ____            _               _              _           
% |  _ \  ___ _ __(_)_   _____  __| |  _ __ _   _| | ___  ___ 
% | | | |/ _ \ '__| \ \ / / _ \/ _` | | '__| | | | |/ _ \/ __|
% | |_| |  __/ |  | |\ V /  __/ (_| | | |  | |_| | |  __/\__ \
% |____/ \___|_|  |_| \_/ \___|\__,_| |_|   \__,_|_|\___||___/
%                                                             
% «derived-rules» (to ".derived-rules")
% Bad  (phap 14 "derived-rules")
\subsection{Derived rules}
\label     {derived-rules}

\def\HAness{\mathsf{HA-ness}}
\def\HAness{\textsf{HA-ness}}

%  _____                 _             _           
% |_   _|__  _ __   ___ | | ___   __ _(_) ___  ___ 
%   | |/ _ \| '_ \ / _ \| |/ _ \ / _` | |/ _ \/ __|
%   | | (_) | |_) | (_) | | (_) | (_| | |  __/\__ \
%   |_|\___/| .__/ \___/|_|\___/ \__, |_|\___||___/
%           |_|                  |___/             
%
% «topologies» (to ".topologies")
\section{Topologies}
\label  {topologies}
% Good (phap 18 "topologies")

%  _____                               _________       _       
% |_   _|__  _ __  ___    ___  _ __   |__  / ___|  ___| |_ ___ 
%   | |/ _ \| '_ \/ __|  / _ \| '_ \    / /\___ \ / _ \ __/ __|
%   | | (_) | |_) \__ \ | (_) | | | |  / /_ ___) |  __/ |_\__ \
%   |_|\___/| .__/|___/  \___/|_| |_| /____|____/ \___|\__|___/
%           |_|                                                
%
% «topologies-on-ZSets» (to ".topologies-on-ZSets")
\section{The default topology on a ZSet}
\label  {topologies-on-ZSets}
% Good (phap 19 "topologies-on-ZSets")


%  _____                                           _               
% |_   _|__  _ __  ___    __ _ ___    ___  _ __ __| | ___ _ __ ___ 
%   | |/ _ \| '_ \/ __|  / _` / __|  / _ \| '__/ _` |/ _ \ '__/ __|
%   | | (_) | |_) \__ \ | (_| \__ \ | (_) | | | (_| |  __/ |  \__ \
%   |_|\___/| .__/|___/  \__,_|___/  \___/|_|  \__,_|\___|_|  |___/
%           |_|                                                    
%
% «topologies-as-partial-orders» (to ".topologies-as-partial-orders")
\section{Topologies as partial orders}
\label  {topologies-as-partial-orders}
% Good (phap 19 "topologies-as-partial-orders")




%  ____   ____ ____     
% |___ \ / ___/ ___|___ 
%   __) | |  | |  _/ __|
%  / __/| |__| |_| \__ \
% |_____|\____\____|___/
%                       
% «2CGs» (to ".2CGs")
\section{2-Column Graphs}
\label  {2CGs}
% Good (phap 22 "2CGs")

\def\LC {\mathsf{LC}}
\def\RC {\mathsf{RC}}
\def\TCG{\mathsf{2CG}}
\def\pile{\mathsf{pile}}
\def\l#1{#1\_}
\def\r#1{\_#1}
\def\ltor#1#2{#1\_{\to}\_#2}
\def\lotr#1#2{#1\_{\ot}\_#2}
\def\ltol#1#2{#1\_{\to}#2\_}
\def\rtor#1#2{\_#1{\to}\_#2}

%L -- (find-LATEX "edrxpict.lua" "TCG")
%L
%L tcg_big    = {scale="10pt", meta="p",   dv=2, dh=3, ev=0.32, eh=0.2}
%L tcg_medium = {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_medium, def, spec or tcg_spec) end
%L
%L tcg = TCG.new(tcg_big,    "foo", 3, 4, "34 23", "22 12"):lrs():vs():hs():output()

%L tcg_spec = "3, 4; 34 23, 22 12"
%L tcgmed("foo"):lrs():hs():output()
%L tcgmed("bar"):bus():hs():output()

%L tcg_spec = "4, 3; 32, 32"
%L tcgbig("foo"):lrs():vs():hs():output()
%L tcg_spec = "3, 4; 14, 32"
%L tcgbig("bar"):lrs():vs():hs():output()


%  _____                               ____   ____ ____     
% |_   _|__  _ __  ___    ___  _ __   |___ \ / ___/ ___|___ 
%   | |/ _ \| '_ \/ __|  / _ \| '_ \    __) | |  | |  _/ __|
%   | | (_) | |_) \__ \ | (_) | | | |  / __/| |__| |_| \__ \
%   |_|\___/| .__/|___/  \___/|_| |_| |_____|\____\____|___/
%           |_|                                             
%
% «topologies-on-2CGs» (to ".topologies-on-2CGs")
\section{Topologies on 2CGs}
\label  {topologies-on-2CGs}
% Good (phap 23 "topologies-on-2CGs")

\catcode`↓=13 \def↓{\dnto}
\catcode`↓=13 \def↓{{\dnto}}



%  ______   _    _            __   __     ____   ____    _    ____     
% |__  / | | |  / \   ___    / /   \ \   |___ \ / ___|  / \  / ___|___ 
%   / /| |_| | / _ \ / __|  / /_____\ \    __) | |     / _ \| |  _/ __|
%  / /_|  _  |/ ___ \\__ \  \ \_____/ /   / __/| |___ / ___ \ |_| \__ \
% /____|_| |_/_/   \_\___/   \_\   /_/   |_____|\____/_/   \_\____|___/
%                                                                      
% «converting-ZHAs-2CAGs» (to ".converting-ZHAs-2CAGs")
\section{Converting between ZHAs and 2CAGs}
\label  {converting-ZHAs-2CAGs}
% Good (phap 25 "converting-ZHAs-2CAGs")


%  ____  _              
% |  _ \(_) ___ ___ ___ 
% | |_) | |/ __/ __/ __|
% |  __/| | (_| (__\__ \
% |_|   |_|\___\___|___/
%                       
% «piccs-and-slashings» (to ".piccs-and-slashings")
\section{Piccs and slashings}
\label  {piccs-and-slashings}
% Good (phap 28 "piccs-and-slashings")

\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}

%L -- local putl, putr, cutl, cutr
%L -- mp = MixedPicture.new {scale="7pt", def="foo"}
%L -- putl = function (n) mp:put(v((n+1).."0"), n.."", n.."") end
%L -- putr = function (n) mp:put(v("0"..(n+1)), n.."", n.."") end
%L -- cutl = function (n) mp:addcuts(format("%d0w-%d0n", n+1, n+1)) end
%L -- cutr = function (n) mp:addcuts(format("0%dn-0%de", n+1, n+1)) end
%L -- putl(0); putl(1); putl(2); putl(3); putl(4)
%L -- putr(0); putr(1); putr(2); putr(3); putr(4); putr(5); putr(6)
%L -- cutl(0)
%L -- cutr(3); cutr(5)
%L -- mp:print():output()
%L
%L -- (find-LATEX "dednat6/zhas.lua" "VCuts-tests")
%L local vc = VCuts.new({scale="7pt", def="foo"}, 4, 6)
%L vc:cutl(0)
%L vc:cutr(3):cutr(5)
%L vc:output()
%L
%L mp = mpnew({def="ZQuot"},      "12345RR4321"):addlrs():addcuts("c 4321/0 0123|45|6"):output()
%L mp = mpnew({def="ZQuotients"}, "1R2R3212RL1"):addlrs():addcuts("c 4321/0 0123|45|6"):output()
%L mp:print()
%
%                /  \
%                 46
%             /  \     \
%              45    36
%             \     \     \
%                 35    26
%             /        \  /
%              34    25
%             \        /
%                 24
%             /  \     \
%              23    14
%          /        \  /  \
%           22    13    04
%          \        /  \  /
%              12    03
%          /     /     /
%           11    02
%          \  /     /
%              01
%          /     /
%           00
% 4321/0   \  /           0123\45\6
%
%$$\pu
%  \foo
%  \qquad
%  \ZQuot
%  \qquad
%  \ZQuotients
%$$

\pagebreak[0]  % (find-es "tex" "pagebreak")



%  ____  _           _                            _   
% / ___|| | __ _ ___| |__        _ __   __ _ _ __| |_ 
% \___ \| |/ _` / __| '_ \ _____| '_ \ / _` | '__| __|
%  ___) | | (_| \__ \ | | |_____| |_) | (_| | |  | |_ 
% |____/|_|\__,_|___/_| |_|     | .__/ \__,_|_|   \__|
%                               |_|                   
% «slash-partitions» (to ".slash-partitions")
\section{From slash-partitions back to slashings}
\label  {slash-partitions}
% Good (phap 29 "slash-partitions")

%
\def\nem#1#2{\psm{   &\!#2\\ #1&    \\}}
\def\nwm#1#2{\psm{ #2&    \\   &\!#1\\}}
\def\nem#1#2{\sm{   &&\!#2\\ &\!\nearrow&\\ #1&    \\}}
\def\nwm#1#2{\sm{ #2&\\&\!\nwarrow&\\  &&\!#1\\}}
\def\neyes#1#2#3#4{\nem{#1#2}{#3#4}: #1#2 {    \eqS} #3#4 \;⇒\; #2 {    \eqR} #4 \;⇒\; #2 #4 }
\def\neno #1#2#3#4{\nem{#1#2}{#3#4}: #1#2 {\not\eqS} #3#4 \;⇒\; #2 {\not\eqR} #4 \;⇒\; #2\bsl#4 }
\def\nwyes#1#2#3#4{\nwm{#1#2}{#3#4}: #1#2 {    \eqS} #3#4 \;⇒\; #1 {    \eqL} #3 \;⇒\; #3 #1 }
\def\nwno #1#2#3#4{\nwm{#1#2}{#3#4}: #1#2 {\not\eqS} #3#4 \;⇒\; #1 {\not\eqL} #3 \;⇒\; #3/#1 }



%  ____  _           _                                
% / ___|| | __ _ ___| |__        _ __ ___   __ ___  __
% \___ \| |/ _` / __| '_ \ _____| '_ ` _ \ / _` \ \/ /
%  ___) | | (_| \__ \ | | |_____| | | | | | (_| |>  < 
% |____/|_|\__,_|___/_| |_|     |_| |_| |_|\__,_/_/\_\
%                                                     
% «slash-max» (to ".slash-max")
\section{Slash-regions have maximal elements}
\label  {slash-max}
% Good (phap 30 "slash-max")



%   ____      _             _                    _             
%  / ___|   _| |_ ___   ___| |_ ___  _ __  _ __ (_)_ __   __ _ 
% | |  | | | | __/ __| / __| __/ _ \| '_ \| '_ \| | '_ \ / _` |
% | |__| |_| | |_\__ \ \__ \ || (_) | |_) | |_) | | | | | (_| |
%  \____\__,_|\__|___/ |___/\__\___/| .__/| .__/|_|_| |_|\__, |
%                                   |_|   |_|            |___/ 
%
% «cuts-stopping-midway» (to ".cuts-stopping-midway")
\section{Cuts stopping midway}
\label  {cuts-stopping-midway}
% Good (phap 31 "cuts-stopping-midway")


\def\undtrue #1{\und{#1}{\text{true}}}
\def\undfalse#1{\und{#1}{\text{false}}}
\def\undfrown#1{\und{#1}{=(}}
\def\iff{\;\;↔\;\;}
\def\notiff{\;\not↔\;}

%  ____  _           _                           
% / ___|| | __ _ ___| |__         ___  _ __  ___ 
% \___ \| |/ _` / __| '_ \ _____ / _ \| '_ \/ __|
%  ___) | | (_| \__ \ | | |_____| (_) | |_) \__ \
% |____/|_|\__,_|___/_| |_|      \___/| .__/|___/
%                                     |_|        
% «slash-ops» (to ".slash-ops")
\section{Slash-operators}
\label  {slash-ops}
% Good (phap 32 "slash-ops")


%  ____  _           _                                       _         
% / ___|| | __ _ ___| |__    _ __  _ __ ___  _ __   ___ _ __| |_ _   _ 
% \___ \| |/ _` / __| '_ \  | '_ \| '__/ _ \| '_ \ / _ \ '__| __| | | |
%  ___) | | (_| \__ \ | | | | |_) | | | (_) | |_) |  __/ |  | |_| |_| |
% |____/|_|\__,_|___/_| |_| | .__/|_|  \___/| .__/ \___|_|   \__|\__, |
%                           |_|             |_|                  |___/ 
%
% «slash-ops-property» (to ".slash-ops-property")
\section{Slash-operators: a property}
\label  {slash-ops-property}
% Good (phap 33 "slash-ops-property")




%      _                       
%     | |       ___  _ __  ___ 
%  _  | |_____ / _ \| '_ \/ __|
% | |_| |_____| (_) | |_) \__ \
%  \___/       \___/| .__/|___/
%                   |_|        
%
% «J-ops-and-regions» (to ".J-ops-and-regions")
% J-regions and J-operators
\section{J-operators and J-regions}
\label  {J-ops-and-regions}
% Good (phap 35 "J-ops-and-regions")



%  _   _        __   __             _       
% | \ | | ___   \ \ / /   ___ _   _| |_ ___ 
% |  \| |/ _ \   \ V /   / __| | | | __/ __|
% | |\  | (_) |   | |   | (__| |_| | |_\__ \
% |_| \_|\___/    |_|    \___|\__,_|\__|___/
%                                           
% «no-Y-cuts-no-L-cuts» (to ".no-Y-cuts-no-L-cuts")
\section{The are no Y-cuts and no $\lambda$-cuts}
\label  {no-Y-cuts-no-L-cuts}
% Good (phap 37 "no-Y-cuts-no-L-cuts")



%      _                   _                             
%     | |   __ _ _ __   __| |   ___ ___  _ __  _ __  ___ 
%  _  | |  / _` | '_ \ / _` |  / __/ _ \| '_ \| '_ \/ __|
% | |_| | | (_| | | | | (_| | | (_| (_) | | | | | | \__ \
%  \___/   \__,_|_| |_|\__,_|  \___\___/|_| |_|_| |_|___/
%                                                        
% «J-ops-and-connectives» (to ".J-ops-and-connectives")
\section{How J-operators interact with connectives}
\label  {J-ops-and-connectives}

% (find-LATEX "2015planar-has.tex" "J-connectives")
% (find-planarhaspage 16 "How J-operators interact with the connectives")
% (find-planarhastext 16 "How J-operators interact with the connectives")



%D diagram cube-and*-obvious
%D 2Dx     100 +30 +30
%D 2D  100     A7
%D 2D  +20 A5  A3  A6
%D 2D  +20 A1  A4  A2
%D 2D  +20     A0
%D 2D
%D ren     A7      ==>     7
%D ren  A5 A3 A6   ==>  5  3  6
%D ren  A1 A4 A2   ==>  1  4  2
%D ren     A0      ==>     0
%D
%D ren     A7      ==>              (P^*{∧}Q^*)^*
%D ren  A5 A3 A6   ==>  (P^*{∧}Q)^* P^*{∧}Q^*  (P{∧}Q^*)^*
%D ren  A1 A4 A2   ==>   P^*{∧}Q     (P{∧}Q)^*  P{∧}Q^*
%D ren     A0      ==>                P{∧}Q
%D
%D (( A0 A1 ->  A2 A3 ->  A4 A5 ->  A6 A7 ->
%D    A0 A2 ->  A1 A3 ->  A4 A6 ->  A5 A7 ->
%D    A0 A4 ->  A1 A5 ->  A2 A6 ->  A3 A7 ->
%D ))
%D enddiagram
%
%D diagram cube-and*-full
%D 2Dx     100 +30 +30
%D 2D  100     A7
%D 2D  +20 A5  A3  A6
%D 2D  +20 A1  A4  A2
%D 2D  +20     A0
%D 2D
%D ren     A7      ==>     7
%D ren  A5 A3 A6   ==>  5  3  6
%D ren  A1 A4 A2   ==>  1  4  2
%D ren     A0      ==>     0
%D
%D ren     A7      ==>              (P^*{∧}Q^*)^*
%D ren  A5 A3 A6   ==>  (P^*{∧}Q)^* P^*{∧}Q^*  (P{∧}Q^*)^*
%D ren  A1 A4 A2   ==>   P^*{∧}Q     (P{∧}Q)^*  P{∧}Q^*
%D ren     A0      ==>                P{∧}Q
%D
%D (( A0 A1 ->  A2 A3 ->  A4 A5 =   A6 A7 =
%D    A0 A2 ->  A1 A3 ->  A4 A6 =   A5 A7 =
%D    A0 A4 ->  A1 A5 ->  A2 A6 ->  A3 A7 =
%D ))
%D enddiagram
%
%D diagram cube-or*-obvious
%D 2Dx     100 +30 +30
%D 2D  100     A7
%D 2D  +20 A5  A3  A6
%D 2D  +20 A1  A4  A2
%D 2D  +20     A0
%D 2D
%D ren     A7      ==>     7
%D ren  A5 A3 A6   ==>  5  3  6
%D ren  A1 A4 A2   ==>  1  4  2
%D ren     A0      ==>     0
%D
%D ren     A7      ==>              (P^*{∨}Q^*)^*
%D ren  A5 A3 A6   ==>  (P^*{∨}Q)^* P^*{∨}Q^*  (P{∨}Q^*)^*
%D ren  A1 A4 A2   ==>   P^*{∨}Q     (P{∨}Q)^*  P{∨}Q^*
%D ren     A0      ==>                P{∨}Q
%D
%D (( A0 A1 ->  A2 A3 ->  A4 A5 ->  A6 A7 ->
%D    A0 A2 ->  A1 A3 ->  A4 A6 ->  A5 A7 ->
%D    A0 A4 ->  A1 A5 ->  A2 A6 ->  A3 A7 ->
%D ))
%D enddiagram
%
%D diagram cube-or*-full
%D 2Dx     100 +30 +30
%D 2D  100     A7
%D 2D  +20 A5  A3  A6
%D 2D  +20 A1  A4  A2
%D 2D  +20     A0
%D 2D
%D ren     A7      ==>     7
%D ren  A5 A3 A6   ==>  5  3  6
%D ren  A1 A4 A2   ==>  1  4  2
%D ren     A0      ==>     0
%D
%D ren     A7      ==>              (P^*{∨}Q^*)^*
%D ren  A5 A3 A6   ==>  (P^*{∨}Q)^* P^*{∨}Q^*  (P{∨}Q^*)^*
%D ren  A1 A4 A2   ==>   P^*{∨}Q     (P{∨}Q)^*  P{∨}Q^*
%D ren     A0      ==>                P{∨}Q
%D
%D (( A0 A1 ->  A2 A3 ->  A4 A5 =   A6 A7 =
%D    A0 A2 ->  A1 A3 ->  A4 A6 =   A5 A7 =
%D    A0 A4 ->  A1 A5 ->  A2 A6 ->  A3 A7 ->
%D ))
%D enddiagram
%
%D diagram cube-imp*-obvious
%D 2Dx     100 +30 +30
%D 2D  100     A7
%D 2D  +20 A5  A3  A6
%D 2D  +20 A1  A4  A2
%D 2D  +20     A0
%D 2D
%D ren     A7      ==>     7
%D ren  A5 A3 A6   ==>  5  3  6
%D ren  A1 A4 A2   ==>  1  4  2
%D ren     A0      ==>     0
%D
%D ren     A7      ==>              (P^*{→}Q^*)^*
%D ren  A5 A3 A6   ==>  (P^*{→}Q)^* P^*{→}Q^*  (P{→}Q^*)^*
%D ren  A1 A4 A2   ==>   P^*{→}Q     (P{→}Q)^*  P{→}Q^*
%D ren     A0      ==>                P{→}Q
%D
%D (( A0 A1 <-  A2 A3 <-  A4 A5 <-  A6 A7 <-
%D    A0 A2 ->  A1 A3 ->  A4 A6 ->  A5 A7 ->
%D    A0 A4 ->  A1 A5 ->  A2 A6 ->  A3 A7 ->
%D ))
%D enddiagram
%
%D diagram cube-imp*-full
%D 2Dx     100 +30 +30
%D 2D  100     A7
%D 2D  +20 A5  A3  A6
%D 2D  +20 A1  A4  A2
%D 2D  +20     A0
%D 2D
%D ren     A7      ==>     7
%D ren  A5 A3 A6   ==>  5  3  6
%D ren  A1 A4 A2   ==>  1  4  2
%D ren     A0      ==>     0
%D
%D ren     A7      ==>              (P^*{→}Q^*)^*
%D ren  A5 A3 A6   ==>  (P^*{→}Q)^* P^*{→}Q^*  (P{→}Q^*)^*
%D ren  A1 A4 A2   ==>   P^*{→}Q     (P{→}Q)^*  P{→}Q^*
%D ren     A0      ==>                P{→}Q
%D
%D (( A0 A1 <-  A2 A3 =   A4 A5 <-  A6 A7 =
%D    A0 A2 ->  A1 A3 ->  A4 A6 ->  A5 A7 ->
%D    A0 A4 ->  A1 A5 ->  A2 A6 =   A3 A7 =
%D ))
%D enddiagram
%
\pu
%$$
%  \begin{array}{rcl}
%  \diag{cube-and*-obvious} && \diag{cube-and*-full} \\ \\
%  \diag{cube-or*-obvious}  && \diag{cube-or*-full}  \\ \\
%  \diag{cube-imp*-obvious} && \diag{cube-imp*-full} \\
%  \end{array}
%$$




%      _                  _                             ____   ___      
%     | |       ___ _   _| |__   ___  ___    __ _ ___  |  _ \ / _ \ ___ 
%  _  | |_____ / __| | | | '_ \ / _ \/ __|  / _` / __| | |_) | | | / __|
% | |_| |_____| (__| |_| | |_) |  __/\__ \ | (_| \__ \ |  __/| |_| \__ \
%  \___/       \___|\__,_|_.__/ \___||___/  \__,_|___/ |_|    \___/|___/
%                                                                       
% «J-cubes-as-partial-orders» (to ".J-cubes-as-partial-orders")
\section{J-cubes as partial orders}
\label  {J-cubes-as-partial-orders}
% Good (phap 40 "J-cubes-as-partial-orders")



% __     __    _             _   _                       __    ____   ___      
% \ \   / /_ _| |_   _  __ _| |_(_) ___  _ __  ___       \ \  |  _ \ / _ \ ___ 
%  \ \ / / _` | | | | |/ _` | __| |/ _ \| '_ \/ __|  _____\ \ | |_) | | | / __|
%   \ V / (_| | | |_| | (_| | |_| | (_) | | | \__ \ |_____/ / |  __/| |_| \__ \
%    \_/ \__,_|_|\__,_|\__,_|\__|_|\___/|_| |_|___/      /_/  |_|    \___/|___/
%                                                                              
% «valuations-induce-POs» (to ".valuations-induce-POs")
\section{Valuations induce partial orders}
\label  {valuations-induce-partial-orders}
% Good (phap 42 "valuations-induce-POs")

\def\V#1{v(#1)}
\def\VV#1{v((∨)_#1)}

%D diagram cube-or*-0v
%D 2Dx     100 +20 +20
%D 2D  100     A7
%D 2D  +15 A5  A3  A6
%D 2D  +15 A1  A4  A2
%D 2D  +15     A0
%D 2D
%D ren     A7      ==>            (P^*∨Q^*)^*
%D ren  A5 A3 A6   ==>  (P∨Q^*)^* P^*∨Q^*  (P^*∨Q)^*
%D ren  A1 A4 A2   ==>   P∨Q^*     (P∨Q)^*  P^*∨Q
%D ren     A0      ==>              P∨Q
%D
%D ren     A7      ==>     7
%D ren  A5 A3 A6   ==>  5  3  6
%D ren  A1 A4 A2   ==>  1  4  2
%D ren     A0      ==>     0
%D
%D ren     A7      ==>     22
%D ren  A5 A3 A6   ==>  22 22 22
%D ren  A1 A4 A2   ==>  21 22 12
%D ren     A0      ==>     11
%D
%D (( A0 A1 ->  A2 A3 ->  A4 A5 =   A6 A7 =
%D    A0 A2 ->  A1 A3 ->  A4 A6 =   A5 A7 =
%D    A0 A4 ->  A1 A5 ->  A2 A6 ->  A3 A7 =
%D ))
%D enddiagram
%
%D diagram cube-or*-0vn
%D 2Dx     100 +20 +20
%D 2D  100     A7
%D 2D  +15 A5  A3  A6
%D 2D  +15 A1  A4  A2
%D 2D  +15     A0
%D 2D
%D ren     A7      ==>            (P^*∨Q^*)^*
%D ren  A5 A3 A6   ==>  (P∨Q^*)^* P^*∨Q^*  (P^*∨Q)^*
%D ren  A1 A4 A2   ==>   P∨Q^*     (P∨Q)^*  P^*∨Q
%D ren     A0      ==>              P∨Q
%D
%D ren     A7      ==>     22
%D ren  A5 A3 A6   ==>  22 22 22
%D ren  A1 A4 A2   ==>  21 22 12
%D ren     A0      ==>     11
%D
%D ren     A7      ==>     7
%D ren  A5 A3 A6   ==>  5  3  6
%D ren  A1 A4 A2   ==>  1  4  2
%D ren     A0      ==>     0
%D
%D (( A0 A1 ->  A2 A3 ->  A4 A5 =   A6 A7 =
%D    A0 A2 ->  A1 A3 ->  A4 A6 =   A5 A7 =
%D    A0 A4 ->  A1 A5 ->  A2 A6 ->  A3 A7 =
%D ))
%D enddiagram
%
%R local fooor =
%R 2/1 1 1 1 1 1 1 1 \
%R  |1 1 1 1 1 1 1 1 |
%R  |1 1 1 1 1 1 1 1 |
%R  |1 1 1 1 1 1 1 1 |
%R  |1 1 1 1 0 0 0 0 |
%R  |1 0 1 0 0 0 0 0 |
%R  |1 1 0 0 0 0 0 0 |
%R  \1 0 0 0 0 0 0 0 /
%R 
%R fooor:tomp({def="fooor", scale="7pt", meta="s"}):addcells():output()

%L mp = mpnew({def="orCube", scale="11pt"}, "12321"):addcuts("c 21/0 0|12")
%L mp:put(v"10", "P"):put(v"20", "P*", "P^*")
%L mp:put(v"01", "Q"):put(v"02", "Q*", "Q^*")
%L mp:output()
%
%D diagram cube-or*-a
%D 2Dx     100 +20 +20
%D 2D  100     A7
%D 2D  +15 A5  A3  A6
%D 2D  +15 A1  A4  A2
%D 2D  +15     A0
%D 2D
%D ren     A7      ==>     7
%D ren  A5 A3 A6   ==>  5  3  6
%D ren  A1 A4 A2   ==>  1  4  2
%D ren     A0      ==>     0
%D
%D (( A0 A1 ->  A2 A3 ->  A4 A5 =   A6 A7 =
%D    A0 A2 ->  A1 A3 ->  A4 A6 =   A5 A7 =
%D    A0 A4 ->  A1 A5 ->  A2 A6 ->  A3 A7 =
%D ))
%D enddiagram
%
%D diagram cube-or*-b
%D 2Dx     100 +30 +30
%D 2D  100     A7
%D 2D  +20 A5  A3  A6
%D 2D  +20 A1  A4  A2
%D 2D  +20     A0
%D 2D
%D ren     A7      ==>              (P^*{∨}Q^*)^*
%D ren  A5 A3 A6   ==>  (P{∨}Q^*)^* P^*{∨}Q^*  (P^*{∨}Q)^*
%D ren  A1 A4 A2   ==>   P{∨}Q^*     (P{∨}Q)^*  P^*{∨}Q
%D ren     A0      ==>                P{∨}Q
%D
%D (( A0 A1 ->  A2 A3 ->  A4 A5 =   A6 A7 =
%D    A0 A2 ->  A1 A3 ->  A4 A6 =   A5 A7 =
%D    A0 A4 ->  A1 A5 ->  A2 A6 ->  A3 A7 =
%D ))
%D enddiagram

%L mp = mpnew({def="orCubeTen", scale="11pt"}, "12321L"):addcuts("c 321/0 0|12")
%L mp:put(v"10", "P"):put(v"20", "P*", "P^*")
%L mp:put(v"01", "Q"):put(v"02", "Q*", "Q^*")
%L mp:output()
%
%D diagram cube-or*-c
%D 2Dx     100 +30 +30
%D 2D  100     A7
%D 2D  +20 A5  A3  A6
%D 2D  +20 A1  A4  A2
%D 2D  +20     A0
%D 2D
%D ren     A7      ==>              (P^*{∨}Q^*)^*
%D ren  A5 A3 A6   ==>  (P{∨}Q^*)^* P^*{∨}Q^*  (P^*{∨}Q)^*
%D ren  A1 A4 A2   ==>   P{∨}Q^*     (P{∨}Q)^*  P^*{∨}Q
%D ren     A0      ==>                P{∨}Q
%D
%D (( A0 A1 ->  A2 A3 ->  A4 A5 =   A6 A7 =
%D    A0 A2 ->  A1 A3 ->  A4 A6 =   A5 A7 =
%D    A0 A4 ->  A1 A5 ->  A2 A6 ->  A3 A7 ->
%D ))
%D enddiagram
%


%   ____                                 _               ____   ___      
%  / ___|___  _ __ ___  _ __   __ _ _ __(_)_ __   __ _  |  _ \ / _ \ ___ 
% | |   / _ \| '_ ` _ \| '_ \ / _` | '__| | '_ \ / _` | | |_) | | | / __|
% | |__| (_) | | | | | | |_) | (_| | |  | | | | | (_| | |  __/| |_| \__ \
%  \____\___/|_| |_| |_| .__/ \__,_|_|  |_|_| |_|\__, | |_|    \___/|___/
%                      |_|                       |___/                   
%
% «comparing-partial-orders» (to ".comparing-partial-orders")
\section{Comparing partial orders}
\label  {comparing-partial-orders}
% Rewrite (phap 44 "comparing-partial-orders")


\def\ptab#1{\left(\begin{tabular}{c}#1\end{tabular}\right)}


%  _     _           _            _                           
% | |   (_)_ __   __| | ___ _ __ | |__   __ _ _   _ _ __ ___  
% | |   | | '_ \ / _` |/ _ \ '_ \| '_ \ / _` | | | | '_ ` _ \ 
% | |___| | | | | (_| |  __/ | | | |_) | (_| | |_| | | | | | |
% |_____|_|_| |_|\__,_|\___|_| |_|_.__/ \__,_|\__,_|_| |_| |_|
%                                                             
% «lindenbaum-fragments» (to ".lindenbaum-fragments")
\section{Fragments of Lindenbaum Algebras}
\label  {lindenbaum-fragments}
% Bad (phap 47 "lindenbaum-fragments")


%  ____       _             _                       
% |  _ \ ___ | |_   _      | |       ___  _ __  ___ 
% | |_) / _ \| | | | |  _  | |_____ / _ \| '_ \/ __|
% |  __/ (_) | | |_| | | |_| |_____| (_) | |_) \__ \
% |_|   \___/|_|\__, |  \___/       \___/| .__/|___/
%               |___/                    |_|        
%
% «polynomial-J-ops» (to ".polynomial-J-ops")
\section{Polynomial J-operators}
\label  {polynomial-J-ops}
% Bad (phap 47 "polynomial-J-ops")
% (phop 22)
% (pho "J-examples")
% (find-books "__cats/__cats.el" "fourman")
% (find-slnm0753page (+ 14 331)   "polynomial")

\def\JiiR {{({→→}R)}}
\def\JoQ  {{(∨Q)}}
\def\JiR  {{({→}R)}}
\def\JfoQR{{(∨Q∧{→}R)}}
\def\JmiQ {({→→}Q∧{→}Q)}



%      _                               _            _               
%     | |       ___  _ __  ___    __ _| | __ _  ___| |__  _ __ __ _ 
%  _  | |_____ / _ \| '_ \/ __|  / _` | |/ _` |/ _ \ '_ \| '__/ _` |
% | |_| |_____| (_) | |_) \__ \ | (_| | | (_| |  __/ |_) | | | (_| |
%  \___/       \___/| .__/|___/  \__,_|_|\__, |\___|_.__/|_|  \__,_|
%                   |_|                  |___/                      
%
% «algebra-of-J-ops» (to ".algebra-of-J-ops")
\section{An algebra of J-operators}
\label  {algebra-of-J-ops}
% Bad (phap 49 "algebra-of-J-ops")

% (pho     "algebra-of-piccs")
% (phop 25 "algebra-of-piccs")
%
%L partitiongraph = function (opts, spec, ylabel)
%L     local mp = MixedPicture.new(opts)
%L     for y=0,5 do mp:put(v(-1, y), y.."") end
%L     for x=0,5 do mp:put(v(x, -1), x.."") end
%L     for a=0,5 do local aP = spec:sub(a+1, a+1)+0; mp:put(v(a, aP), "*") end
%L     mp.lp:addlineorvector(v(0, 0), v(6, 0), "vector")
%L     mp.lp:addlineorvector(v(0, 0), v(0, 6.5), "vector")
%L     mp:put(v(7, 0), "a")
%L     mp:put(v(0, 7), "aP", ylabel)
%L     return mp
%L   end
%L pg = function (def, spec, ylabel)
%L     return partitiongraph({def=def, scale="5pt", meta="s"}, spec, ylabel)
%L   end
%L
%L pg("grapha", "012345", "a^P"     ):output()
%L pg("graphb", "113355", "a^{P'}"  ):output()
%L pg("graphc", "115555", "a^{P''}" ):output()
%L pg("graphd", "555555", "a^{P'''}"):output()
%L
%
%  a^P                  a^P                  a^P                  a^P
%    ^                    ^                    ^                    ^
%  5 |         *        5 |       * *        5 |   * * * *        5 * * * * * *
%  4 |       *          4 |                  4 |                  4 |
%  3 |     *        <=  3 |   * *        <=  3 |              <=  3 |
%  2 |   *              2 |                  2 |                  2 |
%  1 | *                1 * *                1 * *                1 |
%  0 *----------> a     0 +----------> a     0 +----------> a     0 +----------> a
%    0 1 2 3 4 5          0 1 2 3 4 5          0 1 2 3 4 5          0 1 2 3 4 5
%
%     0|1|2|3|4|5   <=      01|23|45     <=       01|2345            012345
%



%   ___                  _   _                              _          ____  
%  / _ \ _   _  ___  ___| |_(_) ___  _ __    _ __ ___  _ __| | _____  |___ \ 
% | | | | | | |/ _ \/ __| __| |/ _ \| '_ \  | '_ ` _ \| '__| |/ / __|   __) |
% | |_| | |_| |  __/\__ \ |_| | (_) | | | | | | | | | | |  |   <\__ \  / __/ 
%  \__\_\\__,_|\___||___/\__|_|\___/|_| |_| |_| |_| |_|_|  |_|\_\___/ |_____|
%                                                                            
% «question-marks-new» (to ".question-marks-new")
\section{Question marks (new)}
\label  {question-marks-new}



\section{How J-operators act on 2CGs}
\label  {how-J-ops-act-on-2CGs}

We saw in sec.\ref{piccs-and-slashings} (and
sec.\ref{J-ops-and-regions}) that a J-operator $J$ on a ZHA $H$ can be
represented a pair $(L,R)$ of piccs, that we drew in a V-shaped
diagram; let's write $S$ for the set of numbers above the cuts in the
V-shaped diagram, converting them to the notation for elements of the
left and the right columns of 2-column graphs:
%
%L -- (find-LATEX "dednat6/zhas.lua" "VCuts-tests")
%L local vc = VCuts.new({scale="7pt", def="vcuts"}, 4, 6)
%L vc:cutl(0)
%L vc:cutr(3):cutr(5)
%L vc:output()
%L
%L mp = mpnew({def="ZQuot"},      "12345RR4321"):addlrs():addcuts("c 4321/0 0123|45|6"):output()
%L mp = mpnew({def="ZQuotients"}, "1R2R3212RL1"):addlrs():addcuts("c 4321/0 0123|45|6"):output()
%L mp:print()
%
$$\pu
  J = \ZQuotients
  \qquad
  (L,R) = \vcuts
  \qquad
  S = \{1\_, \; \_4, \_6\}
$$

Let $\mathsf{S}$ be the operation that obtains the set $S$ for a
J-operator $J$: $\mathsf{S}(J) = \{1\_, \; \_4, \_6\}$ for the $J$
above.

\msk

The ZHA $H$ above is generated by the 2CG $(P,A)$ below; we will
sometimes need the 2CG $(P,A')$ that is obtained by $(P,A)$ by
deleting the intercolumn arrows,
%
%L tcg_spec = "4, 6; 11 22 34 45, 25"
%L tcgbig("foo"):lrs():hs():vs():output()
%L tcg_spec = "4, 6; , "
%L tcgbig("bar"):lrs():hs():vs():output()
%
$$
  \pu
  (P,A) = \foo
  \qquad
  (P,A') = \bar
$$
%
and we will need the ``rectangular versions'' of $H$ and $J$, that we
will call $H'$ and $J'$:
%
%L mp = mpnew({def="Hprime"}, "12345RR4321"):addlrs()                              :output()
%L mp = mpnew({def="Jprime"}, "12345RR4321"):addlrs():addcuts("c 4321/0 0123|45|6"):output()
%
$$\pu
  H' = \Hprime
  \qquad
  J' = \Jprime
$$


Note that $S⊆P$.

\msk

The J-operator $J$ acts on $H$, but we can transfer its action to
$\Opens_A(P)$ using the bijection $\pile:H→\Opens_A(P)$ described in
sec.\ref{2CGs}, and obtain a function $J':\Opens_A(P)→\Opens_A(P)$.
Note that $J'=\pile∘J∘\pile^{-1}$ and $J=\pile^{-1}∘J'∘\pile$.

\def\dro{\mathsf{dro}}
\def\rec{\mathsf{rec}}

The main theme of this section is that the action of $J'$ is
equivalent to {\sl dropping information} and then {\sl reconstructing
  it back in the ``biggest'' way possible}. More formally, for a
$U∈\Opens_A(P)$ we have $J'(U) = \rec(\dro(U))$, where $\dro(U) = U∩S$
and $\rec(V) = (V∪(P\bsl S))^\Int$. In a diagram, with a parallel
diagram at the right showing the particular case that we will discuss:
%
%L tcg_spec = "4, 6; 11 22 34 45, 25"
%L tcgmed("tcgC"):strs(split("1 0 0 0"), split("1 1 0 0 0 0")):hs():output()
%L tcgmed("tcgD"):strs(split("1 1 0 0"), split("1 1 1 0 0 0")):hs():output()
%L tcgmed("tcgE"):strs(split("1 · · ·"), split("· · · 0 · 0")):hs():output()
%L tcgmed("tcgF"):strs(split("1 1 1 1"), split("1 1 1 0 0 0"))     :output()
%L
%D diagram dro-rec
%D 2Dx     100 +40 +40 +35 +40 +40
%D 2D  100 A ----> B   a ----> b
%D 2D      |       |   |       |
%D 2D      v       v   v       v
%D 2D  +35 C ----> D   c ----> d
%D 2D       \    ^ ^    \    ^ ^
%D 2D        v  /  |     v  /  |
%D 2D  +50     E > F       e > f
%D 2D
%D ren   A B      ==>  H H
%D ren   C D      ==>  \Opens_A(P) \Opens_A(P)
%D ren   E F      ==>  \Opens_{A|_S}(S) \Opens_{A'}(P')
%D ren   a b      ==>  12 23
%D ren   c d      ==>  \tcgC \tcgD
%D ren   e f      ==>  \tcgE \tcgF
%D (( A B -> .plabel= a J
%D    A C -> .plabel= l \pile B D -> .plabel= r \pile
%D    C D -> .plabel= a J'
%D    C E -> .plabel= l \dro
%D    E D -> .plabel= r \rec
%D    F D -> .plabel= r \Int
%D    E F -> .plabel= b \rec'
%D    
%D    a b |->
%D    a c |-> b d |->
%D    c d |->
%D    c e |-> e d |-> f d |->
%D    e f |->
%D ))
%D enddiagram
%D
$$\pu
  \diag{dro-rec}
$$

The extra step at the bottom left of the diagram will simplify a part
of the proof. The function $\rec'$ acts like $\rec$, but takes the
interior relative to the topology of $(P',A')$, and the vertical arrow
saying `$\Int$' takes the interior relative to $(P,A)$.

\bsk


There is a bijection between $H$ and $\Opens_A(P)$ --- we saw it in
sec.\ref{topologies-on-2CGs}, it was given by the function
$\pile:H→\Opens_A(P)$. We can transfer the action of $J:H→H$ to
$\Opens_A(P)$; let's call it $J':\Opens_A(P)→\Opens_A(P)$ --- we have
$J'=\pile∘J∘\pile^{-1}$.

Let $U$ be any element of $\Opens_A(P)$. Now look at $U∩S$; the
operation $U↦U∩S$ ``drops information'', roughly in this way:
%
%L tcg_spec = "4, 6; 11 22 34 45, 25"
%L tcgbig("before"):lrs():hs():vs():output()
%L tcgbig("after"):strs(split("1\\_ · · ·"), split("· · · \\_4 · \\_6")):hs():vs():output()
$$\pu
  \before
  \qquad
  \squigto
  \after
$$

There are several ways to reconstruct from $U∩S$ the information that
was dropped. This one yields the biggest element of $\Opens_A(P)$
whose intersection with $S$ is $U∩S$: 1) add the complement of $S$, 2)
take the interior (in $\Opens_A(P)$) of the result. Formally, this is:
%
$$\begin{array}{rcl}
  ↑_S(U) &:=&  ((U∩S)∪(P \bsl S))^\Int \\
           &=&  (U∪(P \bsl S))^\Int \\
  \end{array}
$$

%L tcgmed("tcgU") :strs(split("1 0 0 0"), split("1 1 0 0 0 0")):hs():output()
%L tcgmed("tcgPS"):strs(split("0 1 1 1"), split("1 1 1 0 1 0")):hs():output()
%L tcgmed("tcgUB"):strs(split("1 1 1 1"), split("1 1 1 0 1 0")):hs():output()
%L tcgmed("tcgI") :strs(split("1 1 0 0"), split("1 1 1 0 0 0")):hs():output()


If $U=\pile(12)$, then:
%
$$\pu ↑_S \tcgU = \left(\tcgU ∪ \tcgPS\right)^\Int = \tcgUB^\Int = \tcgI$$
%
note that $↑_S(\pile(12)) = \pile(23)$, and $J(12)=23$.

\msk

{\sl Theorem:} for every $ab∈H$ we have $↑_S(\pile(ab)) =
\pile(J(ab))$, i.e., $↑_S=J'$.

\msk

It is easier to sketch a proof of the theorem above if we use another
notation, in which we write a `?' for each element of $P$ that is not
in $S$, and where we write `$\biggest(\ldots)$' for the biggest open
set of a given form. The result of the operation $↑_S(U) = (U∪(P \bsl
S))^\Int$ is clearly equivalent to the following series of operations:
1) let $U'$ be $U$ with a `?'s in each positions that is not in $S$,
2) looking at each column separately, replace each `?' that is above a
`0' with a `0' and each `?' that is below a `1' with a `1' and call
the result $U''$, 4) take the biggest open set of the form $U''$.


%L tcgmed("tcgU"):strs(split("1 0 0 0"), split("1 1 0 0 0 0")):hs():output()
%L tcgmed("tcgA"):strs(split("1 ? ? ?"), split("? ? ? 0 ? 0")):hs():output()
%L tcgmed("tcgB"):strs(split("1 ? ? ?"), split("? ? ? 0 0 0")):hs():output()
%L tcgmed("tcgC"):strs(split("1 1 1 1"), split("1 1 1 0 0 0")):hs():output()
%L tcgmed("tcgD"):strs(split("1 1 0 0"), split("1 1 1 0 0 0")):hs():output()

$$\pu \tcgU \tcgA \tcgB \tcgC \tcgD$$




% In section ??? we saw that a description for a 2-column graph (a
% ``D2CG'') is 4-uple $(l,r,R,L)$, and a 2-column graph (a ``2CG'') is a
% pair $(P,A)$. The operation $\TCG$
% %
% $$\begin{array}{rcl}
%   \TCG(l,r,R,L) &:=& \left(\LC(l)∪\RC(r),
%                            \csm{\{\ltol{l}{(l-1)}, \;\ldots, \;\ltol21\}∪ \\
%                                 \{\rtor{r}{(r-1)}, \;\ldots, \;\rtor21\}∪ \\
%                                 R∪L
%                                }
%                      \right)
%   \end{array}
% $$
% %
% converts a D2CG into a 2CG; and in section ??? we saw an operation
% $\pile(ab)$ that returns subsets of $\LC(l)∪\RC(r)$; $\pile(ab)$ was
% an open set of $(P,A)$ exactly when $ab$ was an element of the ZHA
% generated by the 2CG.




%   ___                  _   _                                    _        
%  / _ \ _   _  ___  ___| |_(_) ___  _ __    _ __ ___   __ _ _ __| | _____ 
% | | | | | | |/ _ \/ __| __| |/ _ \| '_ \  | '_ ` _ \ / _` | '__| |/ / __|
% | |_| | |_| |  __/\__ \ |_| | (_) | | | | | | | | | | (_| | |  |   <\__ \
%  \__\_\\__,_|\___||___/\__|_|\___/|_| |_| |_| |_| |_|\__,_|_|  |_|\_\___/
%                                                                      
% «question-marks» (to ".question-marks")
\section{Question marks}
\label  {question-marks}
% Bad (phap 53 "question-marks")

% ZHA taken from:
% (find-LATEX "2017planar-has.tex" "slash-partitions")
% 2-piles taken from:
% (find-LATEX "2017planar-has.tex" "topologies-on-2CGs")

Let's now see a second way in which a J-operator on a ZHA $H$ induces
a slashing on $H$. Let's work on a specific example: $H$ is ZHA below,
and $J$ (a.k.a. `${}^*$') is J-operator that takes each element in $H$
to the top element of its equivalence class.

%L mp = mpnew({def="foo"}, "1R2R3212RL1"):addlrs():addcuts("c 4321/0 0123|45|6"):output()
$$\pu
  H = \;\;\foo
  \qquad
  \begin{array}{rcl}
  12^* &=& 23 \\\relax
  [12]^J &=& \{11,12,23,22,33\} \\
  12 &\eqJ& 22 \\
  12 &\not\eqJ& 04 \\
  \end{array}
$$

We have $12 \eqJ 13$; in 2CG notation, this is
%
%L tcg_spec = "4, 6; 11 22 34 45, 26"
%L tcgmed("foo"):lrs():hs():output()
%L tcgmed("bara"):cs("1000", "100000"):hs():output()
%L tcgmed("barb"):cs("1000", "110000"):hs():output()
%L tcgmed("barc"):cs("1000", "111000"):hs():output()
%L tcgmed("bard"):cs("1100", "110000"):hs():output()
%L tcgmed("bare"):cs("1100", "111000"):hs():output()
%L tcgmed("barq"):cs("1?00", "1??000"):hs():output()
%
\pu
$$
  12 \;\;=\;\; \barb \;\;\eqJ\;\; \barc \;\;=\;\; 13,
$$
%
i.e., $\{1\_, \_1, \_2\} \eqJ \{1\_, \_1, \_2, \_3\}$. This {\sl
  suggests} that modulo J-equivalence classes the presence or not of
the element $\_3$ does not matter.

Let's introduce several notations with `?'s in the places that ``don't
matter when we look modulo J-equivalence''. The first notation uses
`0's, `1's and `?'s. The equivalence class of 23 is $[23]^J = \{11,
12, 13, 22, 23\}$, which is:
%
$$% [12]^J \;\;=\;\;
  \cmat{
  \bara, \;
  \barb, \;
  \barc, \;
  \bard, \;
  \bare
  }
$$
%
or all open sets between
%
$$\bara
  \quad\text{and}\quad
  \bare;
$$
%
the notation
%
$$\barq
$$
%
will mean
%
$$\text{all open sets of the form} \quad \barq,
$$
%
or sometimes ``all open sets of the form ... belong to the same
J-equivalence class''.

\msk

The J-equivalence classes of the ZHA $H$ above are:
%
%L tcgmed("barqa"):cs("0000", "???000"):hs():output()
%L tcgmed("barqb"):cs("0000", "111100"):hs():output()
%L tcgmed("barqc"):cs("1?00", "1??000"):hs():output()
%L tcgmed("barqd"):cs("1???", "1111?0"):hs():output()
%L tcgmed("barqe"):cs("11??", "111111"):hs():output()
%L tcgmed("barqs"):cq("L???", "???R?R"):hs():output()
%L tcgmed("barQb"):cs("1???", "???0?0"):hs():output()
%L tcgmed("barQb"):cs("1???", "???0?0"):hs():output()
\pu
$$
  \begin{array}{rrr}
  {} [11]^J=[23]^J=\barqc &
  {} [14]^J=[45]^J=\barqd &
  {} [26]^J=[46]^J=\barqd \\\\
  {} [00]^J=[03]^J=\barqa &
  {}        [04]^J=\barqb \\
  \end{array}
$$

If we transfer the `?'s above to the 2CG, we get this:
%
$$\barqs$$
%
where now each `?' means ``this point does not matter in {\sl at least
  one} J-equivalence class''. Let's define formally what is the
diagram above. A {\sl 2-column graph with question marks} (a ``2CGQ'')
is a pair made of a 2CG $(P,A)$ and a subset $P'⊆P$, where $P'$ is the
set of points of $P$ that are not displayed as question marks; in the
example above, $P'=\{1\_, \_4, \_6\}$.

Each 2CGQ $Q=((P,A), P')$ induces two operations, $\biggest_Q$ and
$\smallest_Q$, from $\Opens_A(P)$ to $\Opens_A(P)$:
%
%$$\biggest_Q\barb \quad := \quad (\text{the biggest open set in $\barqb$})$$
%
$$\begin{array}{rcrcl}
  \biggest _Q\barb &:=& \text{the biggest  open set of the form $\barQb$} &=& \bare \\\\
  \smallest_Q\barb &:=& \text{the smallest open set of the form $\barQb$} &=& \bara \\
  \end{array}
$$

\msk

{\sl Theorem:} $\biggest_Q$ coincides with $J$, and $\smallest_Q$
coincides with the operation that takes each element of $H$ to the
smallest element in its J-equivalence class mentioned in
secs.\ref{slash-ops} and \ref{J-ops-and-regions}.

The proof is non-trivial: the equivalence class $[11]^J=[23]^J$
described in the beginning of the section had three `?'s, but now we
are working with diagrams with six `?'s... however, we can reduce the
number of `?'s by replacing `$?→0$'s with `$0→0$'s and `$1→?$'s with
`$1→1$'s, both in vertical arrows and in intercolumn arrows:
%
%L tcgmed("barQb"):cs("1???", "???0?0"):hs():output()
%L tcgmed("barQc"):cs("1???", "???000"):hs():output()
%L tcgmed("barQd"):cs("1?00", "???000"):hs():output()
%L tcgmed("barQe"):cs("1?00", "1??000"):hs():output()
%L tcgmed("barQf"):cs("1???", "???000"):hs():output()
\pu
$$\barQb = \barQc = \barQd = \barQe$$
$$\biggest _Q(12) = \biggest _Q \barQb = \biggest _Q \barQe = \bare = 23$$
$$\smallest_Q(12) = \smallest_Q \barQb = \smallest_Q \barQe = \bara = 11$$

We only saw a particular case, but this works in general.

\msk

A {\sl formal} proof can be done like this. We start with a diagram
with all the `?'s from the 2CGQ --- six `?'s in the examples that we
are using. Then replace the `$?→0$'s in it with `$0→0$'s, and the
`$1→?$'s with `$1→1$'s, {\sl only along the vertical arrows}; we get a
new diagram in which in each column we have '0's at the top, followed
by '?'s and then `1's. In the example:
%
$$\barQb = \barQf$$

The open sets in
%
$$\barQf$$
%
are exactly the open sets between
%
%L tcgmed("barSbelow"):cs("1000", "000000"):hs():output()
%L tcgmed("barSabove"):cs("1111", "111000"):hs():output()
$$\pu
  \barSbelow = 10 \quad\text{and}\quad \barSbelow = 43
$$
%
where 10 and 43 are not (necessarily) open, but are the extremities of
a slash-equivalence class; compare with sec.\ref{piccs-and-slashings},
where we saw that the same slashing, $S=(4321/0,\, 0123\bsl45\bsl6)$,
could act on two different ZHAs,
%
%L mp = mpnew({def="foo"}, "12345RR4321"):addlrs():addcuts("c 4321/0 0123|45|6"):output()
%L mp = mpnew({def="bar"}, "1R2R3212RL1"):addlrs():addcuts("c 4321/0 0123|45|6"):output()
$$\pu
  [00,46] = \foo \qquad H = \bar
$$
%
and we have $[10,43]∩H = [12]^J = \{11, 12, 13, 22, 23\}$.



\newpage

\def\OPENS{\operatorname{\mathsf{Opens}}}
\def\OPENSPABC{\OPENS_{PABC}}
\def\dro{\mathsf{dro}}
\def\rec{\mathsf{rec}}
\def\ess{\mathsf{ess}}
\def\puq{\operatorname{\mathsf{puq}}}
\def\rqo{\operatorname{\mathsf{rq1}}}


%      _                                       ____   ____ ____     
%     | |       ___  _ __  ___    ___  _ __   |___ \ / ___/ ___|___ 
%  _  | |_____ / _ \| '_ \/ __|  / _ \| '_ \    __) | |  | |  _/ __|
% | |_| |_____| (_) | |_) \__ \ | (_) | | | |  / __/| |__| |_| \__ \
%  \___/       \___/| .__/|___/  \___/|_| |_| |_____|\____\____|___/
%                   |_|                                             
%
% «how-J-ops-act-on-2CGs» (to ".how-J-ops-act-on-2CGs")
\section{How J-operators act on 2CGs}
\label  {how-J-ops-act-on-2CGs}
% (phap 52 "how-J-ops-act-on-2CGs")
% (phap)

The main theme of this section is that the action of $J$ is equivalent
to {\sl dropping information} (about the points in $Q$) and then {\sl
  reconstructing it back in the ``biggest'' way possible} (by setting
these points to 1 and then taking the interior of the result). For
example:
%
%L tcg_spec = "4, 6; , "
%L tcg_spec = "4, 6; 11 22 34 45, 25"
%L tcgmed("tcgA"):strs(split("1 0 0 0"), split("1 1 0 0 0 0")):hs():output()
%L tcgmed("tcgB"):strs(split("1 ? ? ?"), split("? ? ? 0 ? 0")):hs():output()
%L tcgmed("tcgC"):strs(split("1 1 1 1"), split("1 1 1 0 1 0")):hs():output()
%L tcgmed("tcgD"):strs(split("1 1 0 0"), split("1 1 1 0 0 0")):hs():output()
%
$$\pu
  12
  \;\;\;\mton{\pile}\;\;\;
  \tcgA
  \;\;\mton{\puq}\;\;
  \tcgB
  \;\;\mton{\rqo}\;\;
  \tcgC
  \;\;\mton{\Int}\;\;
  \tcgD
  \;\;\;\mton{\pile^{-1}}\;\;\;
  23
$$
%
We write `$\puq$' is the operation that puts question marks at the
points of $Q$, and `$\rqo$' for the operation that replaces each
question mark by a `1'; `$\Int$' is the interior relative to the
topology $\Opens_A(P)$.

If we start with $ab∈H$, the sequence of steps above acts as:
%
$$\begin{array}{rcl}
  ab & \mton{\pile} & \pile(ab) \\
     & \mton{\puq}  & ((P,A), \pile(ab)∩S, \pile(ab)∪Q) \\
     & \mton{\rqo}  & \pile(ab)∪Q \\
     & \mton{\Int}  & (\pile(ab)∪Q)^\Int \\
     & \mton{\pile^{-1}} & \pile^{-1}((\pile(ab)∪Q)^\Int) \\
  \end{array}
$$

\hrule

We will need three other topologies, coming from the 2-column graphs
$(P,A')$, $(S, A|_S)$ and $(S, A'|_S)$, where the last two are new;
the operations of taking the interior relative to each of them will be
called $\Int'$, $\Int|_S$, $\Int'|_S$. The 2CGs $(S, A|_S)$ and $(S,
A'|_S)$ are obtained from $(P, A)$ and $(P, A')$ by restricting the
points to $S$:
%
%L tcg_spec = "4, 6; 11 22 34 45, 25"
%L tcgbig("tcgSA") :strs(split("1\\_ · · ·"), split("· · · \\_4 · \\_6")):hs():vs():output()
%L tcg_spec = "4, 6; , 16"
%L tcgbig("tcgSAr") :strs(split("1\\_ · · ·"), split("· · · \\_4 · \\_6")):hs():vs():output()
%L tcg_spec = "4, 6; ,   "
%L tcgbig("tcgSAp"):strs(split("1\\_ · · ·"), split("· · · \\_4 · \\_6")):hs():vs():output()
%
$$
  \pu
  (S,A|_S) = \tcgSA = \tcgSAr
  \qquad
  (S,A'|_S) = \tcgSAp
$$

Referring to their arrows as $A|_S$ and $A'|_S$ is an abuse of
language; the correct way to do that is to {\sl define} $A|_S$ as
$(A^*∩(S×S))^\ess$, and similarly for $A'|_S$: we take the
transitive-reflexive closure of $A$, $A^*$, to make it into a partial
order, then we restrict that to $S$, then we take only the essential
arrows. A really honest drawing for $(S,A|_S)$ would have only one
vertical arrow, $\_6→\_4$, ond only one intercolumn arrow, $1\_←\_6$
--- but we will draw the arrows in the restriction as in the original
2CG, even though some arrows may look as coming from or going to
nonexistent points.

\bsk
\bsk





%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section{Deleted stuff}


\def\OPENSXBC{\OPENS'_{XBC}}
\def\OPENSPABC{\OPENS_{PABC}}


Theorem: take a 2CG $(P,A)$, and draw an open set $V∈\Opens_A(P)$ as
the 2CG with the points replaced by `0's and `1's. Replace some of
these `0's and `1's with `?'s; this yields a 2CGQ $((P,A),B,C)$. Then
$V⊆\bigcup\OPENSPABC=C^\Int⊆C$.

Here is an example of how we will use that theorem:
%
%L tcg_spec = "6, 6; 45, "
%L tcgmed("tcgA"):strs(split("1 1 0 0 0 0"), split("1 1 1 0 0 0")):hs():output()
%L tcgmed("tcgB"):strs(split("? 1 ? ? 0 ?"), split("? 1 ? ? 0 ?")):hs():output()
%L tcgmed("tcgb"):strs(split("1 1 ? ? 0 0"), split("1 1 ? ? 0 0")):hs():output()
%L tcgmed("tcgC"):strs(split("1 1 1 1 0 1"), split("1 1 1 1 0 1")):hs():output()
%L tcgmed("tcgD"):strs(split("1 1 1 0 0 0"), split("1 1 1 1 0 0")):hs():output()
%

%L tcgmed("tcgn"):strs(split("1 1 ? ? 0 0"), split("1 1 ? ? 0 0")):hs():output()
%R mpnew({def="Zfoo", scale="7pt", meta="s"}, "12345654321"):addlrs():output()
%R mpnew({def="Zbar", scale="5pt", meta="t"}, "1234RRRLLL321"):addlrs():output()  -- 43
%R mpnew({def="Zbar", scale="5pt", meta="t"}, "1234RRR32LLL1"):addlrs():output()  -- 45
\pu

$$\OPENS\tcgB = \OPENS\tcgb = \; [22,44] ∩ \; \Zbar$$

$$
  23 =
  \tcgA \text{ is open}
  \quad⇒\quad
  \sup\OPENS\tcgB = \tcgC^{\!\Int} \! = \tcgD = 34
$$

A set of the form $\OPENSPABC$ is always an interval in a ZHA.

If we start with an open set $V=\pile(ab)$ in a ZHA $H$, change some
of the `0's and `1's in $V$ to `?' and look for the biggest open set
of that form, 



%
%L tcg_spec = "6, 6; , "
%L tcgmed("tcgA"):strs(split("? 1 ? ? 0 ?"), split("? 1 ? ? 0 ?")):hs():output()
%L tcgmed("tcgB"):strs(split("1 1 ? ? 0 0"), split("1 1 ? ? 0 0")):hs():output()
%L tcg_spec = "6, 6; 44, "
%L tcgmed("tcgC"):strs(split("? 1 ? ? 0 ?"), split("? 1 ? ? 0 ?")):hs():output()
%L tcgmed("tcgD"):strs(split("1 1 ? ? 0 0"), split("1 1 ? ? 0 0")):hs():output()
%L tcgmed("tcgE"):lrs()                                           :hs():output()
%




{\bf Garbage:}

More formally, for a $U∈\Opens_A(P)$ we have $J'(U) = \rec(\dro(U))$,
where $\dro(U) = U∩S$ and $\rec(V) = (V∪(P∖S))^\Int$. In a
diagram, with a parallel diagram at the right showing the particular
case that we will discuss:




Note that $S⊆P$ and that $S$ has this property: take any $Q∈H'$ and
replace the points not in $S$ in $\pile(Q)$ by `?'s; the set of open
sets of that form is exactly --- modulo $\pile$ --- the region in $J'$
containing $Q$. For example:
%
%L tcg_spec = "4, 6; , "
%L tcgmed("tcgA"):strs(split("1 1 0 0"), split("1 1 1 1 0 0")):hs():output()
%L tcgmed("tcgB"):strs(split("1 ? ? ?"), split("? ? ? 1 ? 0")):hs():output()
%L tcgmed("tcgC"):strs(split("1 ? ? ?"), split("1 1 1 1 ? 0")):hs():output()
$$\pu
  24
  \quad\squigto\quad
  \tcgA
  \quad\squigto\quad
  \OPENS\tcgB = 
  \OPENS\tcgC = [14, 45]
  % \quad\squigto\quad
$$

\bsk
\msk

The J-operator $J$ acts on $H$, but we can transfer its action to
$\Opens_A(P)$ using the bijection $\pile:H→\Opens_A(P)$ described in
sec.\ref{2CGs}, and obtain a function $J':\Opens_A(P)→\Opens_A(P)$.
Note that $J'=\pile∘J∘\pile^{-1}$ and $J=\pile^{-1}∘J'∘\pile$.

\msk

The main theme of this section is that the action of $J'$ is
equivalent to {\sl dropping information} and then {\sl reconstructing
  it back in the ``biggest'' way possible}. More formally, for a
$U∈\Opens_A(P)$ we have $J'(U) = \rec(\dro(U))$, where $\dro(U) = U∩S$
and $\rec(V) = (V∪(P∖S))^\Int$. In a diagram, with a parallel diagram
at the right showing the particular case that we will discuss:
%
%L tcg_spec = "4, 6; 11 22 34 45, 25"
%L tcgmed("tcgC"):strs(split("1 0 0 0"), split("1 1 0 0 0 0")):hs():output()
%L tcgmed("tcgD"):strs(split("1 1 0 0"), split("1 1 1 0 0 0")):hs():output()
%L tcgmed("tcgE"):strs(split("1 · · ·"), split("· · · 0 · 0")):hs():output()
%L tcgmed("tcgF"):strs(split("1 1 1 1"), split("1 1 1 0 0 0"))     :output()
%L
%D diagram dro-rec
%D 2Dx     100 +40 +40 +35 +40 +40
%D 2D  100 A ----> B   a ----> b
%D 2D      |       |   |       |
%D 2D      v       v   v       v
%D 2D  +35 C ----> D   c ----> d
%D 2D       \    ^ ^    \    ^ ^
%D 2D        v  /  |     v  /  |
%D 2D  +50     E > F       e > f
%D 2D
%D ren   A B      ==>  H H
%D ren   C D      ==>  \Opens_A(P) \Opens_A(P)
%D ren   E F      ==>  \Opens_{A|_S}(S) \Opens_{A'}(P')
%D ren   a b      ==>  12 23
%D ren   c d      ==>  \tcgC \tcgD
%D ren   e f      ==>  \tcgE \tcgF
%D (( A B -> .plabel= a J
%D    A C -> .plabel= l \pile B D -> .plabel= r \pile
%D    C D -> .plabel= a J'
%D    C E -> .plabel= l \dro
%D    E D -> .plabel= r \rec
%D    F D -> .plabel= r \Int
%D    E F -> .plabel= b \rec'
%D    
%D    a b |->
%D    a c |-> b d |->
%D    c d |->
%D    c e |-> e d |-> f d |->
%D    e f |->
%D ))
%D enddiagram
%D
$$\pu
  \diag{dro-rec}
$$

The extra step at the bottom right of the diagram is a trick that will
simplify a part of the proof later. The function $\rec'$ acts like
$\rec$, but takes the interior relative to the topology of $(P',A')$,
and the vertical arrow saying `$\Int$' takes the interior relative to
$(P,A)$. The 2-column graph in the bottom middle has fewer points in
each column than the original $(P,A)$, and the right way to calculate
the intercolumn arrows in it would to turn $(P,A)$ into a partial
order $(P,A^*)$, and then restrict that to a partial order
$(S,A^*∩(S×S))$ and drop the superfluous arrows as we did in
sec.\ref{converting-ZHAs-2CAGs}; the result would be this:
%
%L tcg_spec = "4, 6; 11 22 34 45, 25"
%L tcgmed("tcgE"):strs(split("1 · · ·"), split("· · · 0 · 0")):hs():output()
%L tcg_spec = "4, 6; , 14"
%L tcgmed("tcgF"):strs(split("1 · · ·"), split("· · · 0 · 0")):hs():output()
%
$$\pu
  (S, (A^*∩(S×S))^\ess) = \tcgF
$$

The ``restriction of $A$ to $S$'', $A|_S$, is formally the set of
``essential arrows'' in $(A^*∩(S×S))$, $(A^*∩(S×S))^\ess$, but we
prefer to draw its intercolumn arrows as a copy of the intercolumn
arrows in $(P,A)$, even though some of the arrows may look as coming
from or going to nonexistent points.


\bsk

{\sl Theorem.} For any $Q∈H$ the diagram above becomes
%
%D diagram dro-rec-2
%D 2Dx     100 +45 +45 +35 +40 +40
%D 2D  100 A ----> B   a ----> b
%D 2D      |       |   |       |
%D 2D      v       v   v       v
%D 2D  +30 C ----> D   c ----> d
%D 2D       \    ^ ^    \    ^ ^
%D 2D        v  /  |     v  /  |
%D 2D  +30     E > F       e > f
%D 2D
%D ren   A B      ==>  Q J(Q)
%D ren   C D      ==>  \pile(Q) \pile(J(Q))
%D ren   E F      ==>  \pile(Q)∩S \pile(J'(Q))
%D (( A B |->
%D    A C |-> B D |->
%D    C D |->
%D    C E |-> E D |-> F D |->
%D    E F |->
%D ))
%D enddiagram
%D
$$\pu
  \diag{dro-rec-2}
$$
%
and:

a) for $R'∈H'$ we have $\pile(R')∩S = \pile(Q)∩S$ iff $R'∈[Q]_{J'}$.

b) for $R∈H$ we have $\pile(R)∩S = \pile(Q)∩S$ iff $R∈[Q]_J$,

\bsk




%L tcg_spec = "4, 6; 11 22 34 45, 25"
%L tcgmed("tcgH") :strs(split("1 ? ? ?"), split("? ? ? 0 ? 0")):hs():output()
%L tcg_spec = "4, 6;            ,   "
%L tcgmed("tcgHp"):strs(split("1 ? ? ?"), split("? ? ? 0 ? 0")):hs():output()
\pu
$$\pile(R') \quad\text{is an open set of the form}\quad \tcgHp \iff R'∈[12]_{J'}$$

$$\pile(R)  \quad\text{is an open set of the form}\quad \tcgH  \iff R∈[12]_J$$





\bsk
\bsk
\bsk

Let's write
%
%L tcg_spec = "4, 6; 11 22 34 45, 25"
%L tcgmed("tcgO"):strs(split("1 ? ? ?"), split("? ? ? 0 ? 0")):hs():output()
%L tcgmed("tcgB"):strs(split("1 ? ? ?"), split("? ? ? 0 ? 0")):hs():output()
$$\pu
  \OPENS \tcgO \qquad \text{and} \qquad \biggest \tcgB
$$
%
for the set of all opens sets of the given form and for the biggest
open set of the given form.


\bsk

{\sl (Incomplete)}




%  ____   ___  _ _____ _              ___  ____  
% |___ \ / _ \/ |___  (_)_   _ _ __  / _ \| ___| 
%   __) | | | | |  / /| | | | | '_ \| | | |___ \ 
%  / __/| |_| | | / / | | |_| | | | | |_| |___) |
% |_____|\___/|_|/_/ _/ |\__,_|_| |_|\___/|____/ 
%                   |__/                         
%
% «2017jun05» (to ".2017jun05")
\section{2017jun05}
\label{2017jun05}

The next theorem applies these ideas to the case where the $I$ of the
previous theorem is a J-equivalence (or slash-equivalence) class.

{\sl Theorem 4.} Suppose the conditions of Theorem 3 plus a J-operator
$J:H→H$. Then:

a) if $ab$ and $ef$ are the minimal and maximal elements of a
J-equivalence class then $I = H∩[ab,ef] = [ab]^J = [ef]^J$,

b) if $\pile(cd)∈\OPENS(G)$ (i.e., $cd∈H$) and $ab = \co J(cd)$ and
$ef = J(cd)$ then $ab$ and $ef$ are the minimal and maximal elements
of $I = H∩[ab,ef] = [ab]^J = [ef]^J = [cd]^J$.

\bsk

Let's allow the notation $\OPENS(\calU, B, D)$ for all
open sets in $\calU$ between $B$ and $D$; we always have $\Int(S) =
\sup(\OPENS(\calU, ∅, S)) = ⋃ \OPENS(\calU, ∅, S)$, and in finite
topologies such as the ones we've been working on we also have
$\coInt(S) = \inf(\OPENS(\calU, S, P)) = ⋂ \OPENS(\calU, S, P)$.

The expression ``$B$ and $D$ are the extremities of $\calU$'' will
mean: $B = \inf(\calU) = ⋂\calU$, $D = \sup(\calU) = ⋃\calU$, and
$B,D∈\calU$.

The operations of propagating only the `1's or only the `0's as
described above are called `$\propagate_1$', `$\propagate_0$' and
respectively; note that $\OPENS(G) = \OPENS(\propagate_1(G)) =
\OPENS(\propagate_0(G))$, and that `$\propagate_1$' enlarges $P_1$ and
shrinks $P_?$, and `$\propagate_0$' enlarges $P_0$ and shrinks $P_?$.
In other words, `$\propagate_1$' enlarges $B$ and keeps $D$ unchanged,
and `$\propagate_0$' shrinks $D$ and keeps $B$ unchanged,

\msk

In other words: suppose that $G=((P,A),B,D)$ and $\OPENS(G)≠∅$. Then
the extremities of $\OPENS(\propagate(G))$ are $\coInt(B)$ and
$\Int(D)$ --- which are open sets, so they are piles, and so there
exist $ab$ and $ef$ such that $B'=\pile(ab)$ and $C'=\pile(ef)$. Each
element of $\OPENS(G)$ is a pile between $ab$ and $ef$, and, moreover,
a pile that is open in $(P,A)$... this lets us rephrase Theorem 1 into
the language of ZHAs:

\msk

{\sl Theorem 2.} Suppose that $\OPENS(G)≠∅$. Let $B' = \coInt(B)$, $D'
= \Int(D)$, $ab = \pile^{-1}(B')$, $ef = \pile^{-1}(D')$. Then $B'$
and $D'$ are the extremities of $\OPENS(G)$, and $\OPENS(G)$
corresponds to $[ab,ef]∩H$, where $H = \TCG(P,A)$.

\msk

An example:
%
%L tcg_spec  = "4, 6; 11 22 34 45, 25"
%L tcgmed("tcgG"  ):strs("1 ? ? ?", "? ? ? 0 ? 0"):hs():output()
%L tcgmed("tcgGG" ):strs("1 ? ? ?", "? ? ? 0 0 0"):hs():output()
%L tcgmed("tcgGGG"):strs("1 ? 0 0", "1 ? ? 0 0 0"):hs():output()
%
%L tcg_spec  = "4, 6; , "
%L tcgmed("tcgGG" ):strs("1 ? ? ?", "? ? ? 0 0 0"):hs():output()
%
%L mp = mpnew({def="foo", meta="s", scale="7pt"}, "1R2R3212RL1"):addlrs():output()
%
$$\pu
  \begin{array}{c}
  G = \tcgG
  \qquad
  G' = \propagate(G) = \tcgGGG = ((P,A), \pile(11), \pile(23))
  \\
  \OPENS(G) = \OPENS(G')
  \quad
  \two/<-`->/<300>^{\pile}_{\pile^{-1}}
  \quad
  [11,23]∩\;\;\foo \\
  \end{array}
$$



%  ____   ___  _ _____ _              ___   __   
% |___ \ / _ \/ |___  (_)_   _ _ __  / _ \ / /_  
%   __) | | | | |  / /| | | | | '_ \| | | | '_ \ 
%  / __/| |_| | | / / | | |_| | | | | |_| | (_) |
% |_____|\___/|_|/_/ _/ |\__,_|_| |_|\___/ \___/ 
%                   |__/                         
%
% «2017jun06» (to ".2017jun06")
\section{2017jun06}
\label{2017jun06}

\bsk
\bsk
\bsk


Choose an element $cd∈H$. Let $Q=\qmarks(J)$, $C=\pile(cd)$,
$G=((P,A'), C∖Q, C∪Q)$, $G = \propagate(G) = ((P,A'),B',C') =
((P,A'),\pile(ab), \pile(ef))$. For example, if $cd=12$ we have:
%
%L tcg_spec  = "4, 6; , "
%L tcgmed("tcgGF" ):strs("1 ? ? ?", "? ? ? 0 ? 0"):hs():output()
%L tcgmed("tcgGR" ):strs("1 ? ? ?", "? ? ? 0 0 0"):hs():output()
%
$$\pu
  \begin{array}{c}
  \forget_{(P,A'),Q}(\pile(12)) = \tcgGF \\
  \propagate(\forget_{(P,A'),Q}(\pile(12))) = \tcgGR = ((P,A), \pile(10), \pile(43)) \\
  \end{array}
$$

Each column of a $\forget_{(P,A'),Q}(\pile(cd))$ is made of blocks of
consecutive `?'s separated from the other ones by `0's and `1's, and
$\propagate$ acts homogeneously on each block --- a block below a `1'
is replaced by `1's, a block above a `0' is replaced by `0's, and
there's at most one block of consecutive `?'s in each column that
keeps its `?'s. Applying `$\OPENS$' on that yields exactly the
$J'$-equivalence class of $cd$.

\def\PA{{(P,A)}}
\def\PA{{}}
\def\PAP{{(P,A')}}

The bottom and the top points of the $J'$-equivalence class of $cd$
can be calculated as $\co J'(cd)$ and $J'(cd)$, and also as
$\coInt_\PAP(\pile(cd)∖Q)$ and $\Int_\PAP(\pile(cd)∪Q)$.

\msk

{\sl Theorem.} For any $cd∈H'$ we have:

a) $\pile(J'(cd)) = \Int_\PAP(\pile(cd)∪Q)$,

b) $\pile(\co J'(cd)) = \coInt_\PAP(\pile(cd)∖Q)$.






%  ____   ___  _ _____ _             _ _ 
% |___ \ / _ \/ |___  (_)_   _ _ __ / / |
%   __) | | | | |  / /| | | | | '_ \| | |
%  / __/| |_| | | / / | | |_| | | | | | |
% |_____|\___/|_|/_/ _/ |\__,_|_| |_|_|_|
%                   |__/                 
%
% «2017jun11» (to ".2017jun11")
\section{2017jun11}


\bsk

Fix a ZHA $H$ and a J-operator $J$ on it, and from that produce
$(P,A)$, $\calU=\Opens_A(P)$, $S$, $Q$, etc. Let's define the
functions:
%
$$\begin{array}{lll}
    f: S→P                 && \text{(inclusion)} \\
  f^!: \Opens(S)→\Opens(P) && f^!(W) = \coInt(W∖Q) \\
  f^*: \Opens(P)→\Opens(S) && f^*(V) = V∩Q \\
  f_*: \Opens(S)→\Opens(P) && f_*(U) = \Int(U∪Q) \\
  \end{array}
$$
%
where the $\coInt$ and $\Int$ are in the topology $\Opens(P)$. The
functions $f^!$, $f^*$, $f_*$ are clearly (the actions on objects of)
functors, and we will see that we have adjunctions $f^! ⊣ f^* ⊣ f_*$.

Using a notation similar to figures 6 and 7 in \cite{OchsIDARCT}, we
can draw the ``external view'' and the ``external view'' of $f^! ⊣ f^*
⊣ f_*$ as:
%
%D diagram foo
%D 2Dx      100       +40     +30    +35
%D 2D  100                    U --> U_*
%D 2D                         ^      ^
%D 2D                         | <--> |
%D 2D                         |      |
%D 2D  +25 O(S) :::: O(P)    V^* <-- V
%D 2D                         ^      ^
%D 2D                         | <--> |
%D 2D                         |      |
%D 2D  +25                    W --> W^!
%D 2D
%D 2D  +20  S0 -----> P0      S ---> P
%D 2D
%D ren O(S) O(P) ==> \Opens(S) \Opens(P)
%D ren S0 P0 ==> S P
%D
%D ren W^! ==> f^!(W)
%D ren V^* ==> f^*(V)
%D ren U_* ==> f_*(U)
%D ren S P ==> s f(s){=}s
%D
%D (( O(S) O(P) -> sl__ .plabel= b f^!
%D    O(S) O(P) <-      .plabel= m f^*
%D    O(S) O(P) -> sl^^ .plabel= a f_*
%D    S0 P0     ->      .plabel= a f
%D ))
%D
%D (( W W^! |->
%D    V^* V <-|
%D    U U_* |->
%D    W V^* ->  W^! V ->
%D    W V harrownodes nil 20 nil <->
%D    V^* U -> V U_* ->
%D    V U harrownodes nil 20 nil <->
%D    S P |->
%D ))
%D enddiagram
%D
$$\pu
  \diag{foo}
$$

The vertical arrows at the right are inclusions, and the
`$\diagxyto/<->/<150>$'s mean that the inclusion at the left is true
if and only if the inclusion at the right is true, i.e., for any
choices of $W,U∈\Opens(S)$ and $V∈\Opens(P)$ we have:

a) $f^*(V)⊆U$ iff $V⊆f_*(U)$

b) $W⊆f^*(V)$ iff $f^!(W)⊆V$

\msk

We will prove (a) and (b) soon, but let's first clarify what the
diagram above ``means''. Expanding $f^!$, $f^*$ and $f_*$ and making
some intermediate steps explicit, the diagram becomes this:
%
%D diagram foo
%D 2Dx     100    +30    +40
%D 2D  100 U0 --> U1 --> U2
%D 2D      ^              ^
%D 2D      |     <-->     |
%D 2D      |              |
%D 2D  +25 V2 <--------- V0
%D 2D      ^              ^
%D 2D      |     <-->     |
%D 2D      |              |
%D 2D  +25 W0 --> W1 --> W2
%D 2D
%D 2D  +20 OS     PP     OP
%D
%D ren U0 U1 U2 ==> U U∪Q \Int(U∪Q)
%D ren V0    V2 ==> V V∩S
%D ren W0 W1 W2 ==> W W   \coInt(W)
%D ren OS PP OP ==> \Opens(S) \Pts(P) \Opens(P)
%D
%D (( U0 U1 |-> U1 U2 |->
%D    V2 V0 <-|
%D    W0 W1 |-> W1 W2 |->
%D
%D    U0 V2 <- U2 V0 <-
%D    V2 W0 <- V0 W2 <-
%D    U0 V0 harrownodes nil 25 nil <->
%D    V0 W0 harrownodes nil 25 nil <->
%D
%D    OS PP -> PP OP -> OS OP <- sl__
%D ))
%D enddiagram
%D
$$\pu
  \diag{foo}
$$

Every $V∈\Opens(P)$ is of the form $\pile(cd)$ for some $cd∈H$, and
all opens sets $U,W∈\Opens(S)$ are restrictions by `$∩S$' of sets
$\pile(ab)$ and $\pile(ef)$ where $ab,ef∈H$, so we can rewrite the
diagram as:
%
%D diagram foo
%D 2Dx     100    +60    +75
%D 2D  100 U0 --> U1 --> U2
%D 2D      ^              ^
%D 2D      |     <-->     |
%D 2D      |              |
%D 2D  +25 V2 <--------- V0
%D 2D      ^              ^
%D 2D      |     <-->     |
%D 2D      |              |
%D 2D  +25 W0 --> W1 --> W2
%D 2D
%D 2D  +20 OS     PP     OP
%D
%D ren U0 U1 U2 ==> \pile(ef)∩S (\pile(ef)∩S)∪Q \Int((\pile(ef)∩S)∪Q)
%D ren V0    V2 ==> \pile(cd) \pile(cd)∩S
%D ren W0 W1 W2 ==> \pile(ab)∩S \pile(ab)∩S   \coInt(\pile(ab)∩S)
%D ren OS PP OP ==> \Opens(S) \Pts(P) \Opens(P)
%D
%D (( U0 U1 |-> U1 U2 |->
%D    V2 V0 <-|
%D    W0 W1 |-> W1 W2 |->
%D
%D    U0 V2 <- U2 V0 <-
%D    V2 W0 <- V0 W2 <-
%D    U0 V0 harrownodes nil 30 nil <->
%D    V0 W0 harrownodes nil 30 nil <->
%D
%D    OS PP -> PP OP -> OS OP <- sl__
%D ))
%D enddiagram
%D
$$\pu
  \diag{foo}
$$

We know that:

c) $(\pile(ef)∩S)∪Q = \pile(ef)∪Q$,

d) $\Int(\pile(ef)∪Q) = \pile(J(ef))$,

e) $\coInt(\pile(ab)∩S) = \pile(\co J(ab))$,

so the diagram can be rewritten as:
%
%D diagram foo
%D 2Dx     100    +50    +55
%D 2D  100 U0 --> U1 --> U2
%D 2D      ^              ^
%D 2D      |     <-->     |
%D 2D      |              |
%D 2D  +25 V2 <--------- V0
%D 2D      ^              ^
%D 2D      |     <-->     |
%D 2D      |              |
%D 2D  +25 W0 --> W1 --> W2
%D 2D
%D 2D  +20 OS     PP     OP
%D
%D ren U0 U1 U2 ==> \pile(ef)∩S \pile(ef)∪Q \pile(J(ef))
%D ren V0    V2 ==> \pile(cd) \pile(cd)∩S
%D ren W0 W1 W2 ==> \pile(ab)∩S \pile(ab)∩S   \pile(\co{J}(ab))
%D ren OS PP OP ==> \Opens(S) \Pts(P) \Opens(P)
%D
%D (( U0 U1 |-> U1 U2 |->
%D    V2 V0 <-|
%D    W0 W1 |-> W1 W2 |->
%D
%D    U0 V2 <- U2 V0 <-
%D    V2 W0 <- V0 W2 <-
%D    U0 V0 harrownodes nil 25 nil <->
%D    V0 W0 harrownodes nil 25 nil <->
%D
%D    OS PP -> PP OP -> OS OP <- sl__
%D ))
%D enddiagram
%D
$$\pu
  \diag{foo}
$$

We can rewrite (a) and (b) as:

\ssk

a') $\pile(cd)∩S ⊆ \pile(ef)∩S$ iff $\pile(cd) ⊆ \pile(J(ef))$

b') $\pile(ab)∩S ⊆ \pile(cd)∩S$ iff $\pile(\co J(ab)) ⊆ \pile(cd)$

\ssk

and we know that:

\ssk

g) $\pile(cd)∩S ⊆ \pile(ef)∩S$ iff $J(cd)      ≤ J(ef)$

h) $\pile(ab)∩S ⊆ \pile(cd)∩S$ iff $\co J(ab)) ≤ \co J(cd)$

\ssk

so we can rewrite (a') and (b') into:

\ssk

a'') $    J(cd)  ≤     J(ef)$ iff $cd ≤ J(ef)$

b'') $\co J(ab)) ≤ \co J(cd)$ iff $\co J(ab) ≤ cd$,

\ssk

and (a'') and (b'') are very easy to prove.

\msk

Note that our last diagram is also very easy to {\sl visualize}. If we
take $ab=cd=ef=12$ and use the $H$, $J$ and $(P,A)$ that we are using
in most examples in the last sections, it becomes:
%
%L tcg_spec  = "4, 6; 11 22 34 45, 25"
%L tcgmed("tcgL" ):strs("1 · · ·", "· · · 0 · 0"):hs():output()
%L tcgmed("tcgUB"):strs("1 1 1 1", "1 1 1 0 1 0"):hs():output() -- U1
%L tcgmed("tcgWB"):strs("1 0 0 0", "0 0 0 0 0 0"):hs():output() -- W1
%L tcgmed("tcgUC"):strs("1 1 0 0", "1 1 1 0 0 0"):hs():output() -- U2 = 23
%L tcgmed("tcgVA"):strs("1 0 0 0", "1 1 0 0 0 0"):hs():output() -- V0 = 12
%L tcgmed("tcgWC"):strs("1 0 0 0", "1 0 0 0 0 0"):hs():output() -- W2 = 11
%
%D diagram foo
%D 2Dx     100    +45    +45
%D 2D  100 U0 --> U1 --> U2
%D 2D      ^              ^
%D 2D      |     <-->     |
%D 2D      |              |
%D 2D  +50 V2 <--------- V0
%D 2D      ^              ^
%D 2D      |     <-->     |
%D 2D      |              |
%D 2D  +50 W0 --> W1 --> W2
%D 2D
%D 2D  +35 OS     PP     OP
%D
%D ren U0 U1 U2 ==> \tcgL \tcgUB \tcgUC
%D ren V2    V0 ==> \tcgL        \tcgVA
%D ren W0 W1 W2 ==> \tcgL \tcgWB \tcgWC
%D ren OS PP OP ==> \Opens(S) \Pts(P) \Opens(P)
%D
%D (( U0 U1 |-> U1 U2 |->
%D    V2 V0 <-|
%D    W0 W1 |-> W1 W2 |->
%D
%D    U0 V2 <- U2 V0 <-
%D    V2 W0 <- V0 W2 <-
%D    U0 V0 harrownodes nil 30 nil <->
%D    V0 W0 harrownodes nil 30 nil <->
%D
%D    OS PP -> PP OP -> OS OP <- sl__
%D ))
%D enddiagram
%D
$$\pu
  \diag{foo}
$$


\bsk
\bsk


{\sl Lemma.} The operations corresponding to the horizontal arrows
above --- $U ↦ U∪Q ↦ \Int(U∪Q)$, \; $V ↦ V∩S$, \; $W ↦ W ↦ \coInt(W)$
--- never change the Q-equivalence class.





%  ____           _                          _              _ 
% |  _ \ ___  ___| |_ __ _ _ __   __ _ _   _| | __ _ _ __  / |
% | |_) / _ \/ __| __/ _` | '_ \ / _` | | | | |/ _` | '__| | |
% |  _ <  __/ (__| || (_| | | | | (_| | |_| | | (_| | |    | |
% |_| \_\___|\___|\__\__,_|_| |_|\__, |\__,_|_|\__,_|_|    |_|
%                                |___/                        
%
% «rectangular-1» (to ".rectangular-1")
\section{Rectangular 1}

Also, note that $J(ab)=J(cd)$ is equivalent to $\co J(ab)=\co J(cd)$
(see sec.\ref{slash-ops}).

\msk

Let's say that $ab$ and $cd$ are ``$Q$-equivalent'', for some $Q⊆P$
that is clear from the context (notation: $ab\eqQ cd$) when
$\pile(ab)$ and $\pile(cd)$ are equal modulo question marks:
$\pile(ab)∖Q = \pile(cd)∖Q$. This is equivalent to saying that
$\pile(ab)$ and $\pile(cd)$ are equal on the relevant points, i.e.,
that $\pile(ab)∩S = \pile(cd)∩S$.

\msk

{\sl Theorem}. $J(ab)=J(cd)$ if and only if $ab,cd$ are $Q$-equivalent
for $Q=\qmarks(J)$.

{\sl Proof}: omitted, but the main idea is that $J(ab)=J(cd)$ if and
only if $a\eqL c$ and $b\eqR d$, and $a\eqL c$ happens if and only if
$\pile(ab)∖Q$ and $\pile(cd)∖Q$ are equal in the left column; same for
$a\eqR c$ and the right column.

\msk

In the next sections we will see ways to calculate the maximal and
minimal elements of each J-equivalence class --- i.e., $J(ab)$ and
$\co J(ab)$ --- using the set of relevant points of $J$ and the
topology.














%  ____           _                          _              ____  
% |  _ \ ___  ___| |_ __ _ _ __   __ _ _   _| | __ _ _ __  |___ \ 
% | |_) / _ \/ __| __/ _` | '_ \ / _` | | | | |/ _` | '__|   __) |
% |  _ <  __/ (__| || (_| | | | | (_| | |_| | | (_| | |     / __/ 
% |_| \_\___|\___|\__\__,_|_| |_|\__, |\__,_|_|\__,_|_|    |_____|
%                                |___/                            
%
\section{Rectangular 2}

The following assumptions will hold for the rest of this section. Let
$G=((P,A),B,D)$ and suppose that $\OPENS(G)≠∅$. Let $G'$ be the 2CGQ
obtained by deleting the intercolumn arrows and applying $\propagate$
to that; let $G''$ be the 2CGQ obtained from $G'$ by adding the
intercolumn arrows back and applying $\propagate$ to that, and let
$G''':=\propagate(G)$. Formally,
%
$$\begin{array}{rclcl}
  G'   &=& ((P,A'),B',D')    &:=& \propagate((P,A'),B,D)  \\
  G''  &=& ((P,A),B'',D'')   &:=& \propagate((P,A),B',D') \\
  G''' &=& ((P,A),B''',D''') &:=& \propagate((P,A),B,D)   \\
  \end{array}
$$

\def\PA{{(P,A)}}
\def\PA{{}}
\def\PAP{{(P,A')}}

{\sl Theorem 3.} 

a) $B''=B'''$ and

b) $D''=D'''$, so

c) $G''=G'''$;

d) $B'' = \coInt_\PA(B') = \coInt_\PA(\coInt_\PAP(B))$ and

e) $B''' = \coInt_\PA(B)$, so $\coInt_\PA(B) = \coInt_\PA(\coInt_\PAP(B))$,

f) $D'' = \Int_\PA(D') = \Int_\PA(\Int_\PAP(D))$ and

g) $D''' = \Int_\PA(D)$, so $\Int_\PA(D) = \Int_\PA(\Int_\PAP(D))$,

\msk

Here is a motivating example for Theorem 3:
%
%L tcg_spec  = "4, 6; 11 22 34 45, 25"
%L tcgmed("tcgG"  ):strs("1 ? ? ?", "? ? ? 0 ? 0"):hs():output()
%L tcgmed("tcgGG" ):strs("1 ? ? ?", "? ? ? 0 0 0"):hs():output()
%L tcgmed("tcgGGG"):strs("1 ? 0 0", "1 ? ? 0 0 0"):hs():output()
%
%L tcg_spec  = "4, 6; , "
%L tcgmed("tcgGG" ):strs("1 ? ? ?", "? ? ? 0 0 0"):hs():output()
%
$$\pu
  G = \tcgG
  \qquad
  G' = \tcgGG
  \qquad
  G'' = G''' = \tcgGGG
$$

Omitting the `$\pile$'s and `$\pile^{-1}$'s to make the main ideas
clearer. Note that $B'$ and $D'$ are the extremities of a rectangular
region, and that $B''$ and $D''$


\msk

Now suppose that $C∈\OPENS(G)$; we will omit the `$\pile$'s and
`$\pile^{-1}$'s to make the argument clearer. Note that $B'$ and $D'$
are the extremities of a rectangular region, and that $B''$ and $D''$
are the extremities of $[B',D']∩H$, and that $C∈[B',D']∩H$. Suppose
also that we have a J-operator $J$, and that $B'$ and $D'$ are the
extremities of the $J'$-equivalence class of $C$. Then we have
something like this:
%
%L mp = mpnew({def="ZRect", meta="s", scale="7pt"}, "12345RR4321"):addcuts("c 4321/0 0123|45|6")
%L mp:put(v"12", "C"):put(v"10", "B'") :put(v"43", "D'") :output()
%L mp = mpnew({def="ZOrig", meta="s", scale="7pt"}, "1R2R3212RL1"):addcuts("c 4321/0 0123|45|6")
%L mp:put(v"12", "C"):put(v"11", "B''"):put(v"23", "D''") :output()
%L mp = mpnew({def="ZHAJR", meta="s", scale="7pt"}, "12345RR4321"):addcuts("c 4321/0 0123|45|6")
%L mp:addlrs():output()
%L mp = mpnew({def="ZHAJ",  meta="s", scale="7pt"}, "1R2R3212RL1"):addcuts("c 4321/0 0123|45|6")
%L mp:addlrs():output()
%
$$\pu
  J=\ZHAJ
  \quad
  J'=\ZHAJR
  \quad
  \ZRect
  \quad
  \ZOrig
$$

{\sl Theorem 4.} With the conditions above, if $B'=\co J'(C)$ and
$D'=J'(C)$ then $B''=\co J(C)$ and $D''=J(C)$.

\bsk



$B'=10$, $C'=43$, $B''=B'''=11$, $C''=C'''=23$, $\OPENS(G')=[10,43]$.





%
where $C=12$, $B=C∖\qmarks(J)$, $D=C∪\qmarks(J)$, $B'=10$, $D'=43$,
$B''=11$, $D''=23$; note that $(B{⊆⊆}D)$ yields all subsets of $P$ that


\bsk


When there are no intercolumn arrows the set of open sets is
a rectangular region (possibly empty).


We will see in sec.\ref{relevant-points} that each of the
slash-regions of the ZHA at the left below corresponds to a set of the
form at the right,
%
%L mp = mpnew({def="ZRect", meta="s", scale="7pt"}, "12345RR4321"):addlrs():addcuts("c 4321/0 0123|45|6"):output()
%L mp = mpnew({def="ZFavo"}, "1R2R3212RL1"):addlrs():addcuts("c 4321/0 0123|45|6"):output()
%L tcg_spec = "4, 6; , "
%L tcgmed("tcgQ"):strs(split("a ? ? ?"), split("? ? ? b ? c")):hs():output()
$$\pu \ZRect \qquad \diagxyto/<-->/<350> \qquad \OPENS\tcgQ
$$
%
for the right choice of $a,b,c∈\{0,1\}$; for example:
%
%L tcg_spec = "4, 6; , "
%L tcgmed("tcgA"):strs(split("1 ? ? ?"), split("? ? ? 0 ? 0")):hs():output()
%L tcgmed("tcga"):strs(split("1 ? ? ?"), split("? ? ? 0 0 0")):hs():output()
%L tcgmed("tcgB"):strs(split("0 ? ? ?"), split("? ? ? 1 ? 0")):hs():output()
%L tcgmed("tcgb"):strs(split("0 0 0 0"), split("1 1 1 1 ? 0")):hs():output()
%
$$\pu
  \begin{array}{l}
  [10,43] = \OPENS\tcgA = \OPENS\tcga, \\ \\\relax
  [04,05] = \OPENS\tcgB = \OPENS\tcgb
  \end{array}
$$

Note that question marks above `0's inside an $\OPENS(\ldots)$ can be
replaced by `0's and question marks below `1's can be replaced by `1's
without changing the resulting set, because no open set can have a `1'
above a `0'; also,



% Also, every $\OPENSPABD$ is the intersection of a rectangular region
% with $\Opens_A(P)$. Writing $\pile(ab)$ as just $ab$ to make the
% notation lighter, we have:
% %
% %L tcg_spec = "6, 6; 43, "
% %L tcgmed("tcgG"):lrs()                                           :hs():output()
% %L tcgmed("tcgQ"):strs(split("? 1 ? ? 0 ?"), split("? 1 ? ? 0 ?")):hs():output()
% %L tcgmed("tcgN"):strs(split("1 1 ? ? 0 0"), split("1 1 ? ? 0 0")):hs():output()
% %L tcgmed("tcgA"):strs(split("0 1 0 0 0 0"), split("0 1 0 0 0 0")):hs():output()
% %L tcgmed("tcgB"):strs(split("1 1 1 1 0 1"), split("1 1 1 1 0 1")):hs():output()
% %L tcg_spec = "6, 6;   , "
% %L tcgmed("tcgn"):strs(split("1 1 ? ? 0 0"), split("1 1 ? ? 0 0")):hs():output()
% %L mpnew({def="Zfoo", scale="7pt", meta="s"}, "12345654321"):addlrs():output()
% %L mpnew({def="Zbar", scale="5pt", meta="t"}, "1234RRR32LLL1"):addlrs():output()  -- 45
% %L mpnew({def="Zbar", scale="5pt", meta="t"}, "1234RRRLLL321"):addlrs():output()  -- 43
% %
% $$\pu
%   \OPENS\tcgN
%   \;\;=\;\;
%   [22,44]∩\Opens\tcgG
%   \;\;=\;\;
%   [22,44]∩\Zbar
%   \;\; ,
% $$

%  _____      _                      _ _   _           
% | ____|_  _| |_ _ __ ___ _ __ ___ (_) |_(_) ___  ___ 
% |  _| \ \/ / __| '__/ _ \ '_ ` _ \| | __| |/ _ \/ __|
% | |___ >  <| |_| | |  __/ | | | | | | |_| |  __/\__ \
% |_____/_/\_\\__|_|  \___|_| |_| |_|_|\__|_|\___||___/
%                                                      
% «extremities» (to ".extremities")
% (phap 54 "extremities")
\section{Extremities}
\label  {extremities}

\def\ul#1{\underline{#1}}
\def\ol#1{\overline {#1}}
\def\UBC{\calU_B^C}

The sets $\OPENSPABD$ of sec.\ref{question-marks} are closed by unions
and intersections; let's prove a theorem about them that holds in a
more general situation. {\sl We will only deal with finite objects},
so we will not need to distinguish between ``closed by {\sl finite}
unions and intersections'' and ``closed by {\sl arbitrary} unions and
intersections''. Two abbreviations: CUAI means ``closed by unions and
intersections'' and CUAINE means ``CUAI and not-empty''; finiteness is
implied everywhere.

Every topology is CUAINE. The intersection of two sets that are CUAI
is also CUAI.

The expression ``$B$ and $C$ are the extremities of $\calS$'' will
mean: $\calS$ is CUAINE and $B=\inf(\calS)=⋂\calS$ and
$C=\sup(\calS)=⋃\calS$.

\msk

{\sl Theorem 1.} If $\calS$ is CUAINE then it has a minimal and a
maximal elements, and they can be calculated as $\inf(\calS)=⋂\calS$
and $\sup(\calS)=⋃\calS$.

{\sl Proof.} It is easy to check that $⋂\calS$ and that $⋃\calS$
belong to $\calS$, and that for any $D∈\calS$ we have
$⋂\calS⊆D⊆⋃\calS$; so the minimal and the maximal elements of $\calS$
are $⋂\calS$ and $⋃\calS$.

\msk

Let $\calU$ be a topology on a set $P$. Remember that the {\sl
  interior} of an $S⊆P$ is the union of all open sets in $\calU$
contained in $S$, and the {\sl cointerior} of an $S⊆P$ is the
intersection of all open sets in $\calU$ containing $S$. We will write
the interior of $S$ as $\Int_\calU(S)$, $\Int(S)$, $S^\Int$ or
$\ul{S}$, and the cointerior as $\coInt_\calU(S)$, $\coInt(S)$,
$S^\coInt$ or $\ol{S}$; we always have $∅ ⊆ \ul{S} ⊆ S ⊆ \ol{S} ⊆ P$.
As our topologies are finite, when $U∈\calU$ we have not only
$\Int(U)=U$ but also $U=\coInt(U)$ --- i.e., $\ul{U} = U = \ol{U}$
instead of just $\ul{U} = U ⊆ \ol{U}$.

If $B⊆D⊆P$, we write $(B{⊆⊆}D)$ for $\setofst{S⊆P}{B⊆S⊆D}$; a
$(B{⊆⊆}D)$ is always CUAINE.

% There's a nice way to calculate the intersection of a $(B{⊆⊆}D)$
% with a topology on $P$ when that intersection is non-empty.

\msk

{\sl Theorem 2.} If $\calU$ is a topology on $P$ and $(B{⊆⊆}D)∩\calU$
is non-empty then all things below happen. Letting $C$ be an element
of $(B{⊆⊆}D)∩\calU$, we
have:

% and abbreviating $(B{⊆⊆}D)∩\calU$ as $\UBC$,

a) $B⊆C⊆D$ and so $\ul{B}⊆\ul{C}⊆\ul{D}$ and $\ol{B}⊆\ol{C}⊆\ol{D}$,

b) $\ul{B}⊆B⊆\ol{B}$, $\ul{C}⊆C⊆\ol{C}$, $\ul{D}⊆D⊆\ol{D}$,

c) $C$ is open, so $\ul{C}=C=\ol{C}$,

d) combining (a), (b), (c) above we get:
%
%D diagram BCD
%D 2Dx     100 +15 +15 +15 +15
%D 2D  100         D3
%D 2D  +15     D2      C3
%D 2D  +15 D1      C2      B3
%D 2D  +15     C1      B2
%D 2D  +15         B1
%D 2D
%D ren D1 D2 D3  ==>  \ul{D} D \ol{D}
%D ren C1 C2 C3  ==>  \ul{C} C \ol{C}
%D ren B1 B2 B3  ==>  \ul{B} B \ol{B}
%D (( D1 D2 -> D2 D3 -> 
%D    C1 C2 =  C2 C3 = 
%D    B1 B2 -> B2 B3 -> 
%D    
%D    B1 C1 -> C1 D1 ->
%D    B2 C2 -> C2 D2 ->
%D    B3 C3 -> C3 D3 ->
%D ))
%D enddiagram
%D
$$\pu
  \diag{BCD}
$$

and so $\ul{B}⊆B⊆\ol{B} ⊆ \ul{C}=C=\ol{C} ⊆ \ul{D}⊆D⊆\ol{D}$;

e) $B ⊆ \ol{B} ⊆ \ul{D} ⊆ D$;

f) $\ol{B} ⊆ C ⊆ \ul{D}$ holds for any open set $C ∈ (B{⊆⊆}D)∩\calU$,

g) $\ol{B}$ and $\ul{D}$ are open sets between $B$ and $C$,

h) $\ol{B}$ and $\ul{D}$ are the minimal and maximal opens sets between $B$ and $C$,

i) $(B{⊆⊆}D)∩\calU = (\ol{B}{⊆⊆}\ul{D})∩\calU$,

j) $(B{⊆⊆}D)∩\calU$ is CUAINE with extremities $\ol{B}$ and $\ul{D}$,

k) $\sup((B{⊆⊆}D)∩\calU) = ⋃((B{⊆⊆}D)∩\calU) = \ul{D} = \Int(D)$,

l) $\inf((B{⊆⊆}D)∩\calU) = ⋂((B{⊆⊆}D)∩\calU) = \ol{B} = \coInt(B)$.

\msk

Here is an application of Theorem 2. Let $\calU=\Opens_A(P)$. Then
%
$$\begin{array}{rcl}
  \OPENSPABD & = & (B{⊆⊆}D)∩\Opens_A(P) \\
             & = & (B{⊆⊆}D)∩\calU \\
             & = & (\ol{B}{⊆⊆}\ul{D})∩\calU \\
             & = & \OPENS((P,A),\ol{B},\ul{D}) \\
  \end{array}
$$
%
two particular cases:
%
%L tcg_spec = "6, 6; 43, "
%L tcg_spec = "6, 6;   , "
%L tcgmed("tcgA"):strs(split("? 1 ? ? 0 ?"), split("? 1 ? ? 0 ?")):hs():output()
%L tcgmed("tcgB"):strs(split("1 1 ? ? 0 0"), split("1 1 ? ? 0 0")):hs():output()
%
%L tcg_spec  = "4, 6; 11 22 34 45, 25"
%L tcgmed("tcgL" ):strs("1 ? ? ?", "? ? ? 0 ? 0"):hs():output()
%L tcgmed("tcgR" ):strs("1 ? 0 0", "1 ? ? 0 0 0"):hs():output()
%
$$
  \pu
  \OPENS\tcgA = \OPENS\tcgB
  \qquad
  \OPENS\tcgL = \OPENS\tcgR
$$


%      _                   _                 _   _         _____ 
%     | |   __ _ _ __   __| |   ___ ___     | | (_)_ __   |___ / 
%  _  | |  / _` | '_ \ / _` |  / __/ _ \ _  | | | | '_ \    |_ \ 
% | |_| | | (_| | | | | (_| | | (_| (_) | |_| | | | | | |  ___) |
%  \___/   \__,_|_| |_|\__,_|  \___\___/ \___/  |_|_| |_| |____/ 
%                                                                
% «J-and-coJ-in-three-steps» (to ".J-and-coJ-in-three-steps")
% (phap 56 "J-and-coJ-in-three-steps")
\section{Calculating $J$ and $\co J$ in three steps}
\label{J-and-coJ-in-three-steps}

Fix a ZHA $H$, a J-operator $J$ on it, and an element $C∈H$. Let
$(P,A)$ be the 2CG for $H$, let $A'$ be $A$ minus its intercolumn
arrows, let $H'$ be the (rectangular) ZHA associated to $(P,A')$, and
let $J':H'→H'$ be the J-operator on $H'$ that has the same cuts as
$J$. We will consistently omit the `$\pile$'s in this section to make
the argument less cluttered, and our motivating example will be this,

%L mp = mpnew({def="ZRect", meta="s", scale="7pt"}, "12345RR4321"):addcuts("c 4321/0 0123|45|6")
%L mp:put(v"12", "C"):put(v"10", "B'") :put(v"43", "D'") :output()
%L mp = mpnew({def="ZOrig", meta="s", scale="7pt"}, "1R2R3212RL1"):addcuts("c 4321/0 0123|45|6")
%L mp:put(v"12", "C"):put(v"11", "B''"):put(v"23", "D''") :output()
%L mp = mpnew({def="ZHAJR", meta="s", scale="7pt"}, "12345RR4321"):addcuts("c 4321/0 0123|45|6")
%L mp:addlrs():output()
%L mp = mpnew({def="ZHAJ",  meta="s", scale="7pt"}, "1R2R3212RL1"):addcuts("c 4321/0 0123|45|6")
%L mp:addlrs():output()
%
$$\pu
  J=\ZHAJ
  \quad
  J'=\ZHAJR
  \quad
  \ZRect
  \quad
  \ZOrig
$$
%
where $C=12$, $B=C∖\qmarks(J)$, $D=C∪\qmarks(J)$, $B'=10$, $D'=43$,
$B''=11$, $D''=23$; note that $(B{⊆⊆}D)$ yields all subsets of $P$ that
are Q-equivalent to $C$, $(B'{⊆⊆}D')∩\Opens_{A'}(P)$ yields the
J-equivalence class of $C$ by $J'$, and $(B''{⊆⊆}D'')∩\Opens_{A}(P)$
yields the J-equivalence class of $C$ by $J$.

\msk

Let's return to the general case. We define

a) $\calU=\Pts(P)$, $\calU'=\Opens_{A'}(P)$, $\calU''=\Opens_{A}(P)$
   (so $\calU⊇\calU'⊇\calU''$),

b) $B=C∖\qmarks(J)$, $D=C∪\qmarks(J)$ (so $B,D∈\calU$)

c) $B'$ and $C'$ are the extremities of $(B{⊆⊆}D)∩\calU'$ (so $B',D'∈\calU'$)

d) $B''$ and $C''$ are the extremities of $(B'{⊆⊆}D')∩\calU''$ (so $B'',D''∈\calU'$)

e) $\calI_0 = \calI = (B{⊆⊆}D)$, $\calU_0 = \calU$,

f) $\calI_1 = \calI' = (B'{⊆⊆}D')$, $\calU_1 = \calU'$,

g) $\calI_2 = \calI'' = (B''{⊆⊆}D'')$, $\calU_2 = \calU''$,

h) $\calV_{ij} = \calI_i ∩ \calU_j$.

\msk

\def  \IntU#1{  \Int_{\calU#1}}
\def\coIntU#1{\coInt_{\calU#1}}

{\sl Lemma.} For all $X⊆P$ we have

i) $\IntU{''}(\IntU{'}(X)) = \IntU{''}(X)$ and

j) $\coIntU{''}(\coIntU{'}(X)) = \coIntU{''}(X)$.

\msk

{\sl Theorem.} The partial order between the sets $\calV{ij}$ above is
given by the diagram below; the non-trivial parts in it are
$\calV_{01} = \calV{11}$ and $\calV_{02} = \calV{12} = \calV{22}$.
%
%D diagram foo
%D 2Dx     100 +15 +15 +15 +15 +15 +15
%D 2D  100         I0      U0
%D 2D
%D 2D  +15     I1      V00     U1
%D 2D
%D 2D  +15 I2      V10     V01     U2
%D 2D
%D 2D  +15     V20     V11     V02
%D 2D
%D 2D  +15         V21     V12
%D 2D
%D 2D  +15             V22
%D 2D
%D ren I0 I1 I2 ==> \calI_0 \calI_1 \calI_2
%D ren U0 U1 U2 ==> \calU_0 \calU_1 \calU_2
%D ren V00 V01 V02 ==> \calV_{00} \calV_{01} \calV_{02}
%D ren V10 V11 V12 ==> \calV_{10} \calV_{11} \calV_{12}
%D ren V20 V21 V22 ==> \calV_{20} \calV_{21} \calV_{22}
%D
%D (( I2 I1 -> I1 I0 ->
%D    U2 U1 -> U1 U0 ->
%D                          
%D    V20 V10 -> V10 V00 -> 
%D    V21 V11 -> V11 V01 = 
%D    V22 V12 =  V12 V02 = 
%D
%D    V02 V01 -> V01 V00 -> 
%D    V12 V11 -> V11 V10 -> 
%D    V22 V21 -> V21 V20 -> 
%D ))
%D enddiagram
%D
$$\pu
  \diag{foo}
$$

\def  \IntU#1{  \Int_{\calU#1}}
\def\coIntU#1{\coInt_{\calU#1}}

{\sl Proof.} Applying the theorems of sec.\ref{extremities} two times
we get:

k) The extremities of $(B{⊆⊆}D)∩\calU'$ are $B'$ and $D'$, so:

k') $(B{⊆⊆}D)∩\calU' = (B'{⊆⊆}D')∩\calU'$ (i.e., $\calV_{01} = \calV_{11}$),

k'') $B' = \coIntU{'}(B)$ and $D' = \IntU{'}(D)$,

l) the extremities of $(B'{⊆⊆}D')∩\calU''$ are $B''$ and $D''$, so:

l') $(B'{⊆⊆}D')∩\calU'' = (B''{⊆⊆}D'')∩\calU'$ (i.e., $\calV_{12} = \calV_{22}$),

l'') $B'' = \coIntU{''}(B')$ and $D'' = \IntU{''}(D')$,

m) $B'' = \coIntU{''}(\coIntU{'}(B))$ and $D'' = \IntU{''}(\IntU{'}(D))$,

n) $B'' = \coIntU{''}(B)$ and $D'' = \IntU{''}(D)$ (by (i) and (j)),

o) the extremities of $(B{⊆⊆}D)∩\calU''$ are $B''$ and $D''$, so:

o') $(B{⊆⊆}D)∩\calU'' = (B''{⊆⊆}D'')∩\calU'$ (i.e., $\calV_{02} = \calV_{22}$),

\msk

If we replace $B$ by $C∖Q$, $D$ by $C∪Q$, $B'$ by $\co J'(C)$, $D'$ by
$J'(C)$, $B''$ by $\co J(C)$, $D''$ by $J(C)$ in the items (k) and
(n'') above we get:

(...)

\msk

m) $B' = \coIntU{'}(C∖Q)$ and $D' = \IntU{'}(C∪Q)$,

n) $B'' = \coIntU{''}(\coIntU{'}(C∖Q))$ and $D' = \IntU{''}(\IntU{'}(C∪Q))$,

o) $B'' = \coIntU{''}(C∖Q)$ and $D' = \IntU{''}(C∪Q)$,



% (phap 56 "extremities")


% Then the extremities of $(B{⊆⊆}D)∩\calU''$ can be calculated in two
% steps





% f) $\ol{B}$ and $\ul{D}$ are two open sects
% 
% 
% $(B{⊆⊆}D)∩\calU$ is CUAINE with extremities
% $\coInt(B)$ and $\Int(D)$.
% 
% {\sl Proof}. Let's write $\calU_B^C$ for $(B{⊆⊆}C)∩\calU$, $\calU^C$
% for $(∅{⊆⊆}C)∩\calU$, and $\calU_B$ for $(B{⊆⊆}P)∩\calU$.
% 
% Then:
% 
% 1) $\calU^C$ is the set of all open sets contained in $C$
% 
% 2) $\calU^C$ is CUAINE and $\Int(C) = ⋃\calU^C = \sup(\calU^C)$
% 
% 3) $\calU_B$ is the set of all open sets containing $B$
% 
% 4) $\calU_B$ is CUAINE and $\coInt(B) = ⋂\calU_B = \inf(\calU_B)$
% 
% 5) $\calU_B^C = \calU_B∩\calU^C$
% 
% and for any $D∈\calU_B^C$ we have:
% 
% 6) $D∈\calU^C$, so $D⊆\Int(C)$
% 
% 7) $D∈\calU_B$, so $\coInt(B)⊆D$
% 
% so:
% 
% 8) $⋃\calU^C⊆\Int(C)$
% 
% 9) $\coInt(B)⊆⋂\calU_B$
% 
% 
% 
% 
% 
% 
% \msk
% \msk
% 
% The sets $\calU$, $\calU'$ and $\calU''$ above are closed by unions
% and intersections. {\sl We will only deal with finite objects}, so we
% will not need to distinguish between ``closed by {\sl finite} unions
% and intersections'' and ``closed by {\sl arbitrary} unions and
% intersections''.
% 
% \msk
% 
% In the rest of this section we will prove some things that hold in
% general motivated by the example above. Let $P$ be a finite set.
% 
% 
% \msk
% 
% {\sl Lemma 1:} if $\calU$ is a topology on $P$, $B⊆C⊆P$, and there is
% an open set $D∈\calU$ with $B⊆D⊆C$, then
% %
% $$\begin{tabular}{rl}
%   a) & $B⊆B^\coInt⊆D⊆C^\Int⊆C$, \\
%   b) & the extremities of $(B{⊆⊆}C)∩\calU$ are $B^\coInt$ and $C^\Int$, \\
%   c) & $(B{⊆⊆}C)∩\calU$ = $(B^\coInt{⊆⊆}C^\Int)∩\calU$. \\
%   \end{tabular}
% $$
% 
% {\sl Proof:} (a) $C^\Int$ is the union of all open sets contained in
% $C$, and one of those open sets is $D$, so $D⊆C^\Int⊆C$; doing the
% same for $B^\coInt$ we get $B⊆B^\coInt⊆D$. (b) We have $B^\coInt, D,
% C^\Int ∈ (B{⊆⊆}C)∩\calU$ and all elements of $(B{⊆⊆}C)∩\calU$ contain
% $B^\coInt$ and are contained in $C^\Int$, so $B^\coInt$ and $C^\Int$
% are the extremities of $(B{⊆⊆}C)∩\calU$. (c) is a consequence of (b).
% 
% \msk
% 
% {\sl Lemma 2:} suppose that $\calU''⊆\calU' ⊆ \Pts(P)$ are topologies
% on $P$, $B⊆D⊆C⊆P$, and $D∈\calU''$, and define:
% %
% $$\begin{tabular}{rl}
%   a) & $B'$ and $C'$ are the extremities of $(B{⊆⊆}C)∩\calU'$, \\
%   b) & $B''$ and $C''$ are the extremities of $(B{⊆⊆}C)∩\calU''$. \\
%   \end{tabular}
% $$
% %
% Then:
% %
% $$\begin{tabular}{rl}
%   c) & $B'  =\coInt_{\calU'} (B)$ and $C' =\Int_{\calU'} (C)$, \\
%   d) & $B'' =\coInt_{\calU''}(B)$ and $C''=\Int_{\calU''}(C)$, \\
%   e) & $B⊆B'⊆B''⊆D⊆C''⊆C'⊆C$, \\
%   f) & $(B{⊆⊆}C)∩\calU' = (B'{⊆⊆}C')∩\calU'$, \\
%   g) & $(B{⊆⊆}C)∩\calU'' = (B''{⊆⊆}C'')∩\calU''$, \\
%   h) & $(B{⊆⊆}C)∩\calU'' = (B'{⊆⊆}C')∩\calU'' = (B''{⊆⊆}C'')∩\calU''$, \\
%   i) & $\Int_{\calU'}(C) = \Int_{\calU'}(C') = C'$, \\
%   j) & $\Int_{\calU''}(C) = \Int_{\calU''}(C') = \Int_{\calU''}(C'') = C''$, \\
%   k) & $\coInt_{\calU'}(B) = \coInt_{\calU'}(B') = B'$, \\
%   l) & $\coInt_{\calU''}(B) = \coInt_{\calU''}(B') = \coInt_{\calU''}(B'') = B''$. \\
%   \end{tabular}
% $$
% 
% {\sl Proofs:} almost trivial: (c) is by 2a and lemma 1a; (d) by 2b and
% lemma 1a; (e) by lemma 1a and $\calU''⊆\calU$; (f) by lemma 1c; (g) by
% lemma 1c; (h) by 2g and $B⊆B'⊆B''$ and $C''⊆C'⊆C$; (i) by 2f and 1c;
% (j) by 1b and 2h; (k) by 2f and 1c; (l) by 1b and 2h.
% 
% \msk
% 
% {\sl Lemma 3:} let $((P,A),B,C)$ be a 2CGQ and let $A'$ be $A$ without
% its intercolumn arrows. Suppose that $B⊆D⊆C$ and $D∈\Opens_A(P)$. Let
% %
% $$\begin{array}{ll}
%   \calU' = \Opens(A')(P), \\
%   \calU'' = \Opens(A)(P), \\
%   B'  = \coInt_{\calU }(B), & C'  = \Int_{\calU }(C), \\
%   B'' = \coInt_{\calU'}(B), & C'' = \Int_{\calU'}(C). \\
%   \end{array}
% $$
% 
% Then
% %
% $$\begin{array}{ll}
%   B'' = \coInt_{\calU'}(B'), & C'' = \Int_{\calU'}(C'), \\
%   \end{array}
% $$
% %
% $$\begin{array}{rcl}
%   \OPENS((P,A),B,C) &=& \OPENS((P,A),B',C') \\
%                     &=& \OPENS((P,A),B'',C''), \\
%   \end{array}
% $$
% %
% and the extremities of $\OPENS((P,A),B,C)$ are $B''$ and $C''$.









%  ____           _                          _            
% |  _ \ ___  ___| |_ __ _ _ __   __ _ _   _| | __ _ _ __ 
% | |_) / _ \/ __| __/ _` | '_ \ / _` | | | | |/ _` | '__|
% |  _ <  __/ (__| || (_| | | | | (_| | |_| | | (_| | |   
% |_| \_\___|\___|\__\__,_|_| |_|\__, |\__,_|_|\__,_|_|   
%                                |___/                    
%
% «rectangular-ZHAs» (to ".rectangular-ZHAs")
\section{Rectangular ZHAs}
\label{rectangular-ZHAs}
% (phap 56 "rectangular-ZHAs")

The ZHA $H$ above is generated by the 2CG $(P,A)$ below; we will
sometimes need the 2CG $(P,A')$ that is obtained by $(P,A)$ by
deleting the intercolumn arrows,
%
%L tcg_spec = "4, 6; 11 22 34 45, 25"
%L tcgmed("foo"):lrs():hs()     :output()
%L tcg_spec = "4, 6; , "
%L tcgmed("bar"):lrs():hs()     :output()
%
%L tcg_spec = "4, 6; 11 22 34 45, 25"
%L tcgbig("foo"):lrs():hs():vs():output()
%L tcg_spec = "4, 6; , "
%L tcgbig("bar"):lrs():hs():vs():output()
%
$$
  \pu
  (P,A) = \foo
  \qquad
  (P,A') = \bar
$$
%
and we will need the ``rectangular versions'' of $H$ and $J$, that we
will call $H'$ and $J'$:
%
%L mp = mpnew({def="Hprime"}, "12345RR4321"):addlrs()                              :output()
%L mp = mpnew({def="Jprime"}, "12345RR4321"):addlrs():addcuts("c 4321/0 0123|45|6"):output()
%
$$\pu
  H' = \Hprime
  \qquad
  J' = \Jprime
$$




%  ___       _                         _   _       _       
% |_ _|_ __ | |_ ___    __ _ _ __   __| | (_)_ __ | |_ ___ 
%  | || '_ \| __/ __|  / _` | '_ \ / _` | | | '_ \| __/ __|
%  | || | | | |_\__ \ | (_| | | | | (_| | | | | | | |_\__ \
% |___|_| |_|\__|___/  \__,_|_| |_|\__,_| |_|_| |_|\__|___/
%                                                          
% «on-intervals-and-interiors» (to ".on-intervals-and-interiors")
\section{A theorem on intervals and interiors}
\label  {on-intervals-and-interiors}
% (phap 53 "on-intervals-and-interiors")

Consider these three partial orders on $P=\LC(4)∪\RC(6)$ (see
sec.\ref{2CGs}),
%
%L tcg_spec = "4, 6; 11 22 34 45, 25"
%L tcgbig("tcgFull"):lrs():hs():vs():output()
%L tcgbig("tcgVert"):lrs()     :vs():output()
%L tcgbig("tcgDisc"):lrs()          :output()
%
$$
  \pu
  (P,∅) = \tcgDisc
  \quad
  (P,A') = \tcgVert
  \quad
  (P,A)  = \tcgFull
$$
%
where $A'$ is obtained from $A$ by deleting the intercolumn arrows.

Writing $\pile(ab)$ as just $ab$ everywhere to make the notation
lighter, we have three nested topologies:
%
%L mp = mpnew({def="ZRect"}, "12345RR4321"):addlrs():addcuts("c 4321/0 0123|45|6"):output()
%L mp = mpnew({def="ZOrig"}, "1R2R3212RL1"):addlrs():addcuts("c 4321/0 0123|45|6"):output()
%L mp = mpnew({def="ZRect", scale="7pt", meta="s"}, "12345RR4321"):addlrs()                              :output()
%L mp = mpnew({def="ZOrig", scale="7pt", meta="s"}, "1R2R3212RL1"):addlrs()                              :output()
%
$$\pu
  \calU=\Pts(P)
  \qquad
  \calU'=\Opens_{A'}(P)=\ZRect
  \qquad
  \calU''=\Opens_{A}(P)=\ZOrig 
$$
%
where $\calU⊇\calU'⊇\calU''$. The ZHAs will be named $H=\Opens_{A}(P)$
and $H='\Opens_{A'}(P)$; $H'$ is the rectangular ZHA associated to
$H$. Except in the passage from $H$ to $H'$ and from $A$ to $A'$ our
convention on the notation will be that addings primes always means
going to a topology with fewer open sets, or to smaller intervals.

We will prove a theorem that involves an interval $[B',C']$ in $H'$
and its (non-empty) intersection with $H$, and we will refer to the
extremities of $[B',C']∩H$ as $B''$ and $C''$. Visually:
%
%L mp = mpnew({def="ZRect"}, "12345RR4321"):put(v"10", "B'") :put(v"43", "C'") :addcuts("c 4321/0 0123|45|6"):output()
%L mp = mpnew({def="ZOrig"}, "1R2R3212RL1"):put(v"11", "B''"):put(v"23", "C''"):addcuts("c 4321/0 0123|45|6"):output()
%
$$\pu
  \ZRect
  \qquad
  \ZOrig
$$
%
but $B'$ and $C'$ will be obtained by a $B$ and a $C$ with $B⊆C⊆P$ by
the operation described in the previous section that replaces the `?'s
above `1's by `1's and the `?'s below `0's by `0's. To make our
example case complete,
%
%L tcg_spec = "4, 6; , "
%L tcg_spec = "4, 6; 11 22 34 45, 25"
%L tcgmed("tcgBC")  :strs("1 ? ? ?", "? ? ? 0 ? 0")     :output()
%L tcgmed("tcgBCp") :strs("1 ? ? ?", "? ? ? 0 0 0")     :output()
%L tcgmed("tcgBCpp"):strs("1 ? 0 0", "1 ? ? 0 0 0"):hs():output()
%
$$\pu
  \begin{array}{rcccl}
  \OPENS((P,∅),B,C) &=& \tcgBC &=& (10{⊆⊆}43)    \\\\
  \OPENS((P,A'),B',C') &=& \tcgBCp &=& [10,43]     \\\\
  \OPENS((P,A),B'',C'') &=& \tcgBCpp &=& [11,23]∩H \\
  \end{array}
$$




\newpage

\def\forget  {\operatorname{\mathsf{forget}}}
\def\coInt{{\operatorname{\mathsf{coint}}}}

Translating these adjunctions to basic terms, they mean that for any
choices of $W,U∈\Opens(S)$ and $V∈\Opens(P)$ we have:

What happens when we combine $\forget_Q$ and $\OPENS$? Fix a ZHA $H$
and a J-operator $J$ on it, and from that produce $(P,A)$,
$\calU=\Opens_A(P)$, $S$, and $Q$. For any $cd∈H$ we have
%
$$\pile^{-1}(\OPENS(\forget_Q(\pile(cd)))) = [cd]^J,$$
%
which yields the J-equivalence class of $cd$ --- and we can use the
tricks from the last sections to obtain the top element, $J(cd)$, from
that equivalence class:
%
$$\begin{array}{rcl}
         J(cd) &=& \sup([cd]^J) \\
               &=& \sup(\pile^{-1}(\OPENS(\forget_Q(\pile(cd))))) \\
               &=& \pile^{-1}(\sup(\OPENS(\forget_Q(\pile(cd))))) \\
               &=& \pile^{-1}(\sup(\OPENS((P,A), \pile(cd)∖Q, \pile(cd)∪Q)))) \\
               &=& \pile^{-1}(\Int(\pile(cd)∪Q)) \\
  \pile(J(cd)) &=& \Int(\pile(cd)∪Q) \\
  \end{array}
$$

We have two different natural operations from $\Opens_{A|_S}(S)$ to
$\Opens_A(P)$. One takes a $V∈\Opens_{A|_S}(S)$ and returns
$\Int(V∪Q)$ --- this one returns the top element of each J-equivalence
class --- and the other a $V∈\Opens_{A|_S}(S)$ and returns
$\coInt(V∖Q)$; this one

%L tcg_spec = "4, 6; 11 22 34 45, 25"
%L tcgmed("tcgO"):strs(split("1 0 0 0"), split("1 1 0 0 0 0")):hs():output()
%L tcgmed("tcgQ"):strs(split("1 ? ? ?"), split("? ? ? 0 ? 0")):hs():output()
%
%$$\pu
%  %\Ques(\pile(12))
%  \Ques(\{1\_, \; \_1, \_2\})
%  \;\;=\;\;
%  \Ques\tcgO
%  \;\;=\;\;
%  \tcgQ
%$$



\newpage

{\sl Theorem:} $f^! ⊣ f^* ⊣ f_*$.

{\sl Proof:} it is sufficient to prove (a) and (b). By a well-known
fact on adjoints on preorders (a) is equivalent to (c) and (e) below,
and (b) is equivalent to (e) and (f):

c) $f^*(f_*(U))⊆U$

d) $V⊆f_*(f^*(V))$

e) $W⊆f^*(f^!(W))$

f) $f^!(f^*(V))⊆V$

%
and we can rewrite conditions (c), (d), (e), (f) as:

c') $\Int(U∪Q)∩S⊆U$

d') $V⊆\Int((V∩S)∪Q)$

e') $W⊆\coInt(W)∩S$

f') $\coInt(V∩S)⊆V$

We will prove (d'), (f'), and the following stronger versions of (c')
and (e'):

c'') $\Int(U∪Q)∩S=U$

e'') $W=\coInt(W)∩S$

Here are the proofs:

c'') Choose an $U'∈\Opens(P)$ such that $U=U'∩S$. Then $U'$, $U$ and
$U∪Q$ are all Q-equivalent, and $U'⊆U∪Q$;

d')

e'')

f')


\newpage



%   ____ _     _ _     _                
%  / ___| |__ (_) | __| |_ __ ___ _ __  
% | |   | '_ \| | |/ _` | '__/ _ \ '_ \ 
% | |___| | | | | | (_| | | |  __/ | | |
%  \____|_| |_|_|_|\__,_|_|  \___|_| |_|
%                                       
% «children» (to ".children")
\section{Appendix: on ``children''}
\label{children}
% Bad (phap 57 "children")

% (find-LATEXfile "" "istanbul1.tex")
% (find-LATEXfile "istanbul1.org")
% (find-LATEXfile "istanbul1.org" "Why study CT")
% (find-xpdfpage "~/LATEX/istanbul1.pdf")
% (find-xpdfpage "~/LATEX/istanbul1.pdf" 3)
% https://mail.google.com/mail/ca/u/0/#search/arndt/153e28089870b2ba

...from the slides of my minicourse in the UniLog 2016 (Istanbul):

\begin{itemize}
\item Why study Category Theory {\sl now}?

  Public education in Brazil is being dismantled --- maybe we should
  be doing better things than studying very technical \& inaccessible
  subjects with no research grants ---

  {\sl (Here I showed a photo called ``The New Girl From Ipanema'' ---
    a girl walking on the Ipanema beach at night with a gas mask, with
    a huge cloud of tear gas behind her)}

\item Category theory should be more accessible

  Most texts about CT are for specialists in research universities...
  {\sl Category theory should be more accessible.}.

  To whom?...

\begin{itemize}
\item Non-specialists (in research universities)
\item Grad students (in research universities)
\item Undergrads (in research universities)
\item Non-specialists (in conferences - where we have to be quick)
\item Undergrads (e.g., in CompSci - in teaching colleges) - (``Children'')
\end{itemize}

\item What do we mean by "accessible"?

\begin{itemize}
\item Done on very firm grounds: mathematical objects made from
  numbers, sets and tuples; FINITE, SMALL mathematical objects
  whenever possible. Avoid references to non-mathematical things like
  windows, cars and pizzas (like the object-orientation people do);
  avoid reference to Physics; avoid Quantum Mecanics at all costs;
  time is difficult to draw, prefer {\sl static} rather than {\sl
    changing}

\item People have very short attention spans nowadays

\item Self-contained, but not {\sl isolated} or {\sl isolating}; our
  material should make the literature more accessible

\item We learn better by doing. Our material should have lots of space
  for exercises.

\item Most people with whom I interact are not from Maths/CS/etc

\item {\sl Proving} general cases is relatively hard. {\sl Checking}
  and {\sl calculating} is much easier. People can believe that
  something can be generalized after seeing a convincing particular
  case. (Sometimes leave them to look for the right generalization by
  themselves)
\end{itemize}
\end{itemize}


% \msk
 
% Most books on advanced mathematics mention, in their introductions,
% how much ``mathematical maturity'' a reader needs to have in order
% to understand their contents... the term ``mathematical maturity''
% means, among other things, the ability to {\sl work on very abstract
% settings}, to {\sl generalize}, to {\sl particularize}, and to {\sl
% use infinite objects}, besides familiarity with the notation,
% methods, and main concepts in mathematics. A nice term for people
% with very little mathematical maturity is ``children''.
 
% I've tried to write this paper in a way as to makes it as accessible
% as possible to ``children'' like humanities students, philosophers
% with little mathematical background, and freshmen Computer Science
% students. Most of the sections were written after I presented the
% material corresponding to them in a {\sl very} basic introductory
% course on lambda-calculus and logic that I gave in the second half
% of 2016, whose audience was a group of six CompSci students; the
% exercises that they solved in class are not included here.
 
% I've had a handful of opportunities to present parts of this
% material to humanities students --- with them I had to start with
% exercises on expressions, quantifiers, evaluation, functions, sets,
% and lambda-notation, that are not included here.


I've been using ``for children'' in titles for a while. This is a bit
of a marketing strategy, of course, but the term ``children'' here has
a precise, though unusual, meaning: it means ``people with very little
mathematical maturity'', where I am taking these as the main aspects
of ``mathematical maturity'': the ability to {\sl work on very
  abstract settings}, to {\sl generalize}, to {\sl particularize}, and
to {\sl use infinite objects}.

Writing things ``for children'' in this sense results in material that
[is accessible] [exercises, not included here] [visual, easy to check]
[who I've tested this with]

\msk

{\sl A note for ``adults''.} In [Ochs2013] I sketched a method for
working in a general case and in a particular case (an ``archetypal
case'') in parallel, and also a way to prove things in the archetypal
case and then ``lift'' the proofs to the general case. This paper is
an offspring of that one; I believe that planar Heyting Algebras
presented here (ZHAs, sec.\ref{ZHAs}) are archetypal Heyting Algebras,
and when we add ``closure operators'' to ZHAs (as in the seminar notes
\url{http://angg.twu.net/math-b.html\#zhas-for-children}, pp.13--30;
they are called ``J-operators'' there) we get something that is
archetypal for studying toposes and sheaves; that will be the subject
of a sequel of this paper.

[Topos theory books are too hard for me] [a bridge between
  philosophers and toposophers]

% besides familiarity with the notation, methods, and main concepts in
% mathematics.




%   ____                               _                    _             
%  / ___|___  _ __ ___  _ __  _ __ ___| |__   ___ _ __  ___(_) ___  _ __  
% | |   / _ \| '_ ` _ \| '_ \| '__/ _ \ '_ \ / _ \ '_ \/ __| |/ _ \| '_ \ 
% | |__| (_) | | | | | | |_) | | |  __/ | | |  __/ | | \__ \ | (_) | | | |
%  \____\___/|_| |_| |_| .__/|_|  \___|_| |_|\___|_| |_|___/_|\___/|_| |_|
%                      |_|                                                
%
% «comprehension» (to ".comprehension")
\section{Appendix: notations for set comprehension}
% Bad (phap 58 "comprehension")

% (find-angg "LATEX/2016-2-LA-zhas.tex")
% (lazp 1)

\def\und#1#2{\underbrace{#1}_{#2}}
\def\und#1#2{\underbrace{#1}_{\text{#2}}} \def\ug#1{\und{#1}{gen}}
\def\uf#1{\und{#1}{filt}} \def\ue#1{\und{#1}{expr}}
\def\uv#1{\und{#1}{var}}

\def\tbl#1#2{\fbox{$\begin{array}{#1}#2\end{array}$}}
\def\tbl#1#2{\fbox{$\sm{#2}$}}
\def\V{\mathbf{T}}
\def\F{\mathbf{F}}
% "Stop":
\def\S{\omit\vrule\phantom{$\scriptstyle($}\hss}   % stop
% strut:
\def\s{\mathstrut}
\def\s{\phantom{$|$}}
\def\s{\phantom{|}}
\def\s{}

This is section is just to clarify the exact meaning of the
``$\setofst{\ldots}{\ldots}$-expressions'' in the previous sections.

% The definition of $\LR$ in the previous sections deserves more
% explanations.

We'll use three notations for set comprehensions: a ``low-level'' one,
with generators and filters separated by commas, then a semicolon and
then the result expression, and two higher-level notations using a
`$|$', that are closer to the standard ones.

Here are some examples of the low-level notation,
%
$$\begin{array}{lll}
  \{\ug{a∈\{1,2,3,4\}}; \ue{10a}\}     &=& \{10,20,30,40\} \\
  \{\ug{a∈\{1,2,3,4\}}; \ue{a}\}       &=& \{1,2,3,4\} \\
  \{\ug{a∈\{1,2,3,4\}}, \uf{a≥3}; \ue{a}\} &=& \{3,4\} \\
  \{\ug{a∈\{1,2,3,4\}}, \uf{a≥3}; \ue{10a}\} &=& \{30,40\} \\
  \{\ug{a∈\{10,20\}}, \ug{b∈\{3,4\}}; \ue{a+b}\} &=& \{13,14,23,24\} \\
  \{\ug{a∈\{1,2\}}, \ug{b∈\{3,4\}}; \ue{(a,b)}\} &=& \{(1,3),(1,4),(2,3),(2,4)\} \\
  \end{array}
$$

Here is how to calculate the results of some low-level comprehensions
using tables; note that when a filter yields ``false'' we stop ---
this is indicated by a vertical bar --- and we don't calculate the
rest of the line. The result of the comprehension is the set of the
results in the lines where all filters yielded ``true''.
%
$$\begin{array}{l}
  \{\ug{x∈\{1,2,3\}}, \ug{y∈\{3,4\}}, \uf{x+y<6}; \ue{(x,y)}\}
  = \{(1,3),(1,4),(2,3)\}
  \\
  \tbl{ccc}{
   \s x & y & x+y<6 & (x,y) \\\hline
   \s 1 & 3 & \V & (1,3) \\
   \s 1 & 4 & \V & (1,4) \\
   \s 2 & 3 & \V & (2,3) \\
   \s 2 & 4 & \F & \S \\
   \s 3 & 3 & \F & \S \\
   \s 3 & 4 & \F & \S \\
  }
  \end{array}
$$

$$\begin{array}{l}
  \{\ug{(x,y)∈\{1,2,3\}^2}, \uf{x>y}; \ue{(x,y)}\}
   = \{(2,1), (3,1), (3,2)\}
  \\
  \tbl{ccc}{
   \s (x,y) & x & y & x>y & (x,y) \\\hline
   \s (1,1) & 1 & 1 & \F & \S \\
   \s (1,2) & 1 & 2 & \F & \S    \\
   \s (1,3) & 1 & 3 & \F & \S    \\
   \s (2,1) & 2 & 1 & \V & (2,1) \\
   \s (2,2) & 2 & 2 & \F & \S    \\
   \s (2,3) & 2 & 3 & \F & \S    \\
   \s (3,1) & 3 & 1 & \V & (3,1) \\
   \s (3,2) & 3 & 2 & \V & (3,2) \\
   \s (3,3) & 3 & 3 & \F & \S    \\
  }
  \end{array}
$$

\bsk

Here are some examples of the higher-level, standard-ish notations for
set comprehensions, and how they can be translated into the low-level notation:
%
$$\begin{array}{llll}
   & \text{(standard)} & & \text{(low-level)} \\[5pt]
   %
   & \setofst{\ue{10a}}{\ug{a∈\{1,2,3,4\}}} &=&
       \{\ug{a∈\{1,2,3,4\}}; \ue{10a}\} \\
   & \setofst{\ue{a}}{\ug{a∈\{1,2,3,4\}}} &=&
       \{\ug{a∈\{1,2,3,4\}}; \ue{a}\} \\
   & \setofst{\ue{10a}}{\ug{a∈\{1,2,3,4\}}, \uf{a≥3}} &=&
       \{\ug{a∈\{1,2,3,4\}}, \uf{a≥3}; \ue{10a}\} \\
   & \setofst{\ue{a}}{\ug{a∈\{1,2,3,4\}}, \uf{a≥3}} &=&
       \{\ug{a∈\{1,2,3,4\}}, \uf{a≥3}; \ue{a}\} \\
   & \setofst{\ug{a∈\{1,2,3,4\}}}{\uf{a≥3}} &=&
       \{\ug{a∈\{1,2,3,4\}}, \uf{a≥3}; \ue{a}\} \\
   % & \{\ug{a∈\{10,20\}}, \ug{b∈\{3,4\}}; \ue{a+b}\} \\
   % & \{\ug{a∈\{1,2\}}, \ug{b∈\{3,4\}}; \ue{(a,b)}\} \\
\end{array}
$$

The first four are of the form
``$\setofst{\text{expr}}{\text{generators and filters}}$''
(``e$|$gf''), and the last one is of the form
``$\setofst{\text{generator}}{\text{filters}}$'' (``g$|$f''). In
``g$|$f'' comprehensions the final `expr' is the variable of the
generator:
%
% (find-angg "LATEX/2016-2-LA-zhas.tex" "comprehension-2")
% (lazp 2)
%
$$\begin{array}{llll}
   % & \text{(standard)} & & \text{(explicit)} \\[5pt]
   & \setofst{\ug{\uv{a}∈\{1,2,3,4\}}}{\uf{a≥3}} &=&
       \{\ug{a∈\{1,2,3,4\}}, \uf{a≥3}; \ue{a}\} \\
   % & \setofst {\ug{\uv{(x,y)}∈\{1,2,3\}^2}} {\uf{x>y}} &=&
   %     \{\ug{(x,y)∈\{1,2,3\}^2}, \uf{x>y}; \ue{(x,y)}\} \\
 \end{array}
$$


\end{document}

\newpage

\section{Cubes: old code}

%D diagram cube-and*-0
%D 2Dx     100 +30 +30
%D 2D  100     A1
%D 2D  +25 A2  A3  A4
%D 2D  +25 A5  A6  A7
%D 2D  +25     A8
%D 2D
%D ren     A1      ==>            (P^*∧Q^*)^*
%D ren  A2 A3 A4   ==>  (P∧Q^*)^* P^*∧Q^*  (P^*∧Q)^*
%D ren  A5 A6 A7   ==>   P∧Q^*     (P∧Q)^*  P^*∧Q
%D ren     A8      ==>              P∧Q
%D
%D (( A1 A2 <- A1 A3 <- A1 A4 <-
%D    A2 A5 <- A2 A6 <- A3 A5 <- A3 A7 <- A4 A6 <- A4 A7 <-
%D    A5 A8 <- A6 A8 <- A7 A8 <-
%D ))
%D enddiagram
%
%D diagram cube-or*-0
%D 2Dx     100 +30 +30
%D 2D  100     A1
%D 2D  +25 A2  A3  A4
%D 2D  +25 A5  A6  A7
%D 2D  +25     A8
%D 2D
%D ren     A1      ==>            (P^*∨Q^*)^*
%D ren  A2 A3 A4   ==>  (P∨Q^*)^* P^*∨Q^*  (P^*∨Q)^*
%D ren  A5 A6 A7   ==>   P∨Q^*     (P∨Q)^*  P^*∨Q
%D ren     A8      ==>              P∨Q
%D
%D (( A1 A2 <- A1 A3 <- A1 A4 <-
%D    A2 A5 <- A2 A6 <- A3 A5 <- A3 A7 <- A4 A6 <- A4 A7 <-
%D    A5 A8 <- A6 A8 <- A7 A8 <-
%D ))
%D enddiagram
%
%D diagram cube-imp*-0
%D 2Dx     100 +30 +30
%D 2D  100     A1
%D 2D  +25 A2  A3  A4
%D 2D  +25 A5  A6  A7
%D 2D  +25     A8
%D 2D
%D ren     A1      ==>            (P→Q^*)^*
%D ren  A2 A3 A4   ==>  (P^*→Q^*)^*   P→Q^*  (P→Q)^*
%D ren  A5 A6 A7   ==>   P^*→Q^*   (P^*→Q)^*  P→Q
%D ren     A8      ==>              P^*→Q
%D
%D (( A1 A2 <- A1 A3 <- A1 A4 <-
%D    A2 A5 <- A2 A6 <- A3 A5 <- A3 A7 <- A4 A6 <- A4 A7 <-
%D    A5 A8 <- A6 A8 <- A7 A8 <-
%D ))
%D enddiagram

%D diagram cube-and*-2
%D 2Dx     100 +30 +30
%D 2D  100     A1
%D 2D  +25 A2  A3  A4
%D 2D  +25 A5  A6  A7
%D 2D  +25     A8
%D 2D
%D ren     A1      ==>            (P^*∧Q^*)^*
%D ren  A2 A3 A4   ==>  (P∧Q^*)^* P^*∧Q^*  (P^*∧Q)^*
%D ren  A5 A6 A7   ==>   P∧Q^*     (P∧Q)^*  P^*∧Q
%D ren     A8      ==>              P∧Q
%D
%D (( A1 A2  = A1 A3  = A1 A4  =
%D    A2 A5 <- A2 A6  = A3 A5 <- A3 A7 <- A4 A6  = A4 A7 <-
%D    A5 A8 <- A6 A8 <- A7 A8 <-
%D ))
%D enddiagram
%
%D diagram cube-or*-1
%D 2Dx     100 +30 +30
%D 2D  100     A1
%D 2D  +25 A2  A3  A4
%D 2D  +25 A5  A6  A7
%D 2D  +25     A8
%D 2D
%D ren     A1      ==>            (P^*∨Q^*)^*
%D ren  A2 A3 A4   ==>  (P∨Q^*)^* P^*∨Q^*  (P^*∨Q)^*
%D ren  A5 A6 A7   ==>   P∨Q^*     (P∨Q)^*  P^*∨Q
%D ren     A8      ==>              P∨Q
%D
%D (( A1 A2  = A1 A3 <- A1 A4  =
%D    A2 A5 <- A2 A6  = A3 A5 <- A3 A7 <- A4 A6  = A4 A7 <-
%D    A5 A8 <- A6 A8 <- A7 A8 <-
%D ))
%D enddiagram
%
%D diagram cube-imp*-1
%D 2Dx     100 +30 +30
%D 2D  100     A1
%D 2D  +25 A2  A3  A4
%D 2D  +25 A5  A6  A7
%D 2D  +25     A8
%D 2D
%D ren     A1      ==>            (P→Q^*)^*
%D ren  A2 A3 A4   ==>  (P^*→Q^*)^*   P→Q^*  (P→Q)^*
%D ren  A5 A6 A7   ==>   P^*→Q^*   (P^*→Q)^*  P→Q
%D ren     A8      ==>              P^*→Q
%D
%D (( A1 A2  = A1 A3  = A1 A4 <-
%D    A2 A5  = A2 A6 <- A3 A5  = A3 A7 <- A4 A6 <- A4 A7 <-
%D    A5 A8 <- A6 A8 <- A7 A8 <-
%D ))
%D enddiagram
%


%:
%:
%:    [P→Q]^1  (P→Q)→P             [Q]^2
%:    ------------------             -----3
%:            P           [P→Q]^1    P→Q    (P→Q)→P
%:            --------------------    ----------------
%:                     Q                 P
%:                 ---------1          ----2
%:                 (P→Q)→Q            Q→P
%:                 ------------------------
%:                    ((P→Q)→Q)∧(Q→P)
%:
%:                        ^foo
%:
$$\pu
  \def→{{\to}}
  \ded{foo}
$$


% (phap 39)
% (phap 46)





\end{document}

% Local Variables:
% coding: utf-8-unix
% ee-anchor-format: "«%s»"
% End: