% This file: (find-LATEX "2019J-ops-slashings.tex")
%       See: (find-LATEX "2020J-ops-new.tex")
% (defun c () (interactive) (find-LATEXsh "lualatex -record 2019J-ops-slashings.tex" :end))
% (defun d () (interactive) (find-pdf-page "~/LATEX/2019J-ops-slashings.pdf"))
% (defun e () (interactive) (find-LATEX "2019J-ops-slashings.tex"))
% (defun u () (interactive) (find-latex-upload-links "2019J-ops-slashings"))
% (find-pdf-page   "~/LATEX/2019J-ops-slashings.pdf")
% (find-sh0 "cp -v  ~/LATEX/2019J-ops-slashings.pdf /tmp/")
% (find-sh0 "cp -v  ~/LATEX/2019J-ops-slashings.pdf /tmp/pen/")
%   file:///home/edrx/LATEX/2019J-ops-slashings.pdf
%               file:///tmp/2019J-ops-slashings.pdf
%           file:///tmp/pen/2019J-ops-slashings.pdf
% http://angg.twu.net/LATEX/2019J-ops-slashings.pdf
% (find-LATEX "2019.mk")

% «.basic-definitions»		(to "basic-definitions")
% «.qms-and-slashings»		(to "qms-and-slashings")
% «.piccs-and-slashings»	(to "piccs-and-slashings")
% «.slash-ops»			(to "slash-ops")
% «.converting»			(to "converting")


\directlua{tf_push("2019J-ops-slashings.tex")}


%  ____            _            _       __     
% | __ )  __ _ ___(_) ___    __| | ___ / _|___ 
% |  _ \ / _` / __| |/ __|  / _` |/ _ \ |_/ __|
% | |_) | (_| \__ \ | (__  | (_| |  __/  _\__ \
% |____/ \__,_|___/_|\___|  \__,_|\___|_| |___/
%                                              
% «basic-definitions»  (to ".basic-definitions")
% (jonp 3 "basic-definitions")
% (jos    "basic-definitions")

%\section{Question marks and slashings}
\section{Basic definitions}
\label  {basic-definitions}



One of the main constructions of \cite{OchsPH1} is a correspondence
between 2-column graphs (``2CGs'') and Planar Heyting Algebras
(``ZHAs''), as in this example:
%
% (oxap 7 "fig:2CGs-ZHA")
% (oxa    "fig:2CGs-ZHA")
% (oxa    "fig:2CGs-ZHA" "\\tcg{(P,A)}")
% 
%L tdims = TCGDims {qrh=5, q=15, crh=12, h=60, v=25, crv=7}   -- with v arrows
%L tspec_PA  = TCGSpec.new("46; 11 22 34 45, 25")
%L tspec_PAQ = TCGSpec.new("46; 11 22 34 45, 25", ".???", "???.?.")
%L tspec_PA :mp  ({zdef="O_A(P)"})  :addlrs():print()            :output()
%L tspec_PAQ:mp  ({zdef="O_A(P),J"}):addlrs():print()            :output()
%L tspec_PA :tcgq({tdef="(P,A)",   meta="1pt p"}, "lr q h v ap") :output()
%L tspec_PAQ:tcgq({tdef="(P,A),Q", meta="1pt p"}, "lr q h v ap") :output()
%L
%L tspec_PAC = TCGSpec.new("46; 11 22 34 45, 25", "?...", "???...")
%L tspec_PAC:mp  ({zdef="closed-op"}) :addlrs():print()            :output()
%L tspec_PAC:tcgq({tdef="closed-op", meta="1pt p"}, "lr q h v ap") :output()
%L 
\pu
$$\tcg{(P,A)} \;\; \squigbij \;\;\; \zha{O_A(P)}$$

The arrows in the 2CG $(P,A)$ (mnemonic: ``points'' and ``arrows'')
are interpreted as conditions that subsets of $P$ must obey to the
open: for example, the arrow $(4\_,\_5)∈A$ means that if an open set
$U⊆A$ contains the point $4\_$ then it also has to contain $\_5$.
This generates an {\sl order topology} on $P$, that we denote by
$\Opens_A(P)$, and the ZHA $H$ at the right of the squiggly arrow in
the figure is this $\Opens_A(P)$ drawn in a very compact way --- by
using the operation ``$\pile$'', and abbreviating it.

We write $\pile(ab)$ for the subset of $P$ formed by pile of $a$
elements at the left and a pile of $b$ elements at the right, as in:
%
$$25 ≡ \pile(25) = \{2▁,1▁, \;\; ▁1,▁2,▁3,▁4,▁5\},$$
%
The `$≡$' in ``$25 ≡ \pile(2,5)$'' means a change of notation --- it
means that sometimes `$ab$' will be an abbreviation for
``$\pile(ab)$''. With this abreviation it is easy to check that the
$H$ above is exactly the topology $\Opens_A(P)$. Note that, for
example, $21\not∈H$; this is because $\pile(21) = \{2▁,1▁, \;\; ▁1\}$,
and this set does not obey all the conditions associated to the arrows
in $A$: we have $(2\_,\_2)∈A$ but $2\_∈\pile(21)$ and
$\_2\not∈\pile(21)$.

Let's now introduce some new ideas.


%   ___                                  _       _     
%  / _ \ _ __ ___  ___    __ _ _ __   __| |  ___| |___ 
% | | | | '_ ` _ \/ __|  / _` | '_ \ / _` | / __| / __|
% | |_| | | | | | \__ \ | (_| | | | | (_| | \__ \ \__ \
%  \__\_\_| |_| |_|___/  \__,_|_| |_|\__,_| |___/_|___/
%                                                      
% «qms-and-slashings»  (to ".qms-and-slashings")
% (jonp 3 "qms-and-slashings")
% (jos    "qms-and-slashings")
\subsection{Question marks and slashings}
\label    {qms-and-slashings}

A {\sl set of question marks} on a 2CG $(P,A)$ is a subset $Q⊆P$. We
write a 2CG with question marks as $((P,A),Q)$, and we represent this
$Q$ graphically by writing a `?' close to each element of $P$ that
belongs to $Q$, as in the figure below. The intended meaning of these
question marks is that we want to forget the information on them and
then see which elements of $\Opens_A(P)$ become indistinguishable
after this forgetting: two elements $ab,cd∈H$ are {\sl
$Q$-equivalent}, written as $ab \eqQ cd$, iff $\pile(ab)∖Q =
\pile(cd)∖Q$. In the $((P,A),Q)$ of the figure below we have $23 \eqQ
13 \not\eqQ 14$.

A {\sl slashing} $S$ on a ZHA $H$ is a set of diagonal cuts on $H$
``that do not stop midway''. These cuts are interpreted as fences that
divide $H$ in separate regions, and two elements $ab,cd∈H$ are {\sl
$S$-equivalent}, written as $ab \eqS cd$, if they belong to the same
region. In the slashing at the right in the figure below we have $11
\eqS 23 \not\eqS 14$.
%
$$\tcg{(P,A),Q} \;\; \squigbij \;\;\; \zha{O_A(P),J}$$

In \cite{OchsPH1} we used the notation $(P,A) \; \squigbijbody \; H$
to say that $H$ is the ZHA associated to the 2CG $(P,A)$; this ``is
associated to'' was interpreted formally as $\Opens_A(P) = H$. We are
now extending this to $((P,A),Q) \; \squigbijbody \; (H,S)$ --- a 2CG
with question marks $((P,A),Q)$ is associated to the ZHA with slashing
$(H,S)$ when we have $\Opens_A(P) = H$ and the equivalence relations
$\eqQ,\eqS⊆H×H$ coincide. Note that the two `$\squigbijbody$'s are
both pronounced as ``is associated to'', but they have different
formal meanings.



%  ____  _                                _       _     _         
% |  _ \(_) ___ ___ ___    __ _ _ __   __| |  ___| |___| |__  ___ 
% | |_) | |/ __/ __/ __|  / _` | '_ \ / _` | / __| / __| '_ \/ __|
% |  __/| | (_| (__\__ \ | (_| | | | | (_| | \__ \ \__ \ | | \__ \
% |_|   |_|\___\___|___/  \__,_|_| |_|\__,_| |___/_|___/_| |_|___/
%                                                                 
% «piccs-and-slashings»  (to ".piccs-and-slashings")
% (jonp 4 "piccs-and-slashings")
% (jos    "piccs-and-slashings")
% (ph2p 4 "piccs-and-slashings")
% (ph2    "piccs-and-slashings")
\subsection{Piccs and slashings}
\label     {piccs-and-slashings}

A picc (``partition into contiguous classes'') of a ``discrete
interval'' $I=\{0,\ldots,n\}$ is a partition $P$ of $I$ that obeys
this condition (``picc-ness''):
%
$$∀a,b,c∈\{0,\ldots,n\}.\; (a<b<c ∧ a \eqP c) → (a \eqP b ∧ b \eqP c).$$
%
So $P = \{\{0\},\{1,2,3\},\{4,5\}\}$ is a picc of $\{0,\ldots,5\}$,
and $P' = \{\{0\},\{1,2,4,5\},\{3\}\}$ is a partition of
$\{0,\ldots,5\}$ that is not a picc.

A short notation for piccs is this:
%
$$0|123|45 \equiv \{\{0\},\{1,2,3\},\{4,5\}\}$$
%
we list all digits in the (discrete) interval in order, and we put
bars to indicate where we change from one equivalence class to
another.

\msk

We will represent a slashing $S$ formally as pairs of piccs, one for
the left digit and one for the right digit. Our notation for slashings
as pairs will be based on this figure:
%
%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
  \VCuts
  \qquad
  % \ZQuot
  % \qquad
  \ZQuotients
$$

The slashing $S$ that we are using in our examples will be represented
as:
%
$$\begin{array}{rcl}
  S &=& (L,R) \\
    &=& (\{\{0\},\{1,2,3,4\}\}, \, \{\{0,1,2,3\},\{4,5\},\{6\}\}) \\
    &=& (0|1234, 0123|45|6) \\
    &=& (4321/0,\, 0123∖45∖6) \\
  \end{array}
$$
%
We use `$/$'s and `$∖$'s instead of `$|$'s to remind us of the
direction of the cuts: the `$/$'s correspond to cuts that go northeast
and the `$∖$'s to cuts that go northwest.

We can now define the equivalence relation $\eqS$ formally: if
$S=(L,R)$ then $ab \eqS cd$ iff $a \eqL c$ and $c \eqR d$.

\msk

The expression ``$S=(L,R)$ is a slashing on $H$'' will mean: $H$ is a
ZHA, $L$ is a picc on $\{0,\ldots,l\}$, and $R$ a picc on
$\{0,\ldots,r\}$, where $lr$ is the top element of $H$. The domain of
the equivalence relation $\eqS$ will be considered to be $H$, not
$\{0,\ldots,l\} × \{0,\ldots,r\}$.

% Note that $\eqS$ is an equivalence relation on $H$, not on
% $\{0,\ldots,a\} × \{0,\ldots,b\}$.



%  ____  _           _                           
% / ___|| | __ _ ___| |__         ___  _ __  ___ 
% \___ \| |/ _` / __| '_ \ _____ / _ \| '_ \/ __|
%  ___) | | (_| \__ \ | | |_____| (_) | |_) \__ \
% |____/|_|\__,_|___/_| |_|      \___/| .__/|___/
%                                     |_|        
%
% «slash-ops»  (to ".slash-ops")
% (jonp 5 "slash-ops")
% (jos    "slash-ops")
\subsection{Slash-operators}
\label    {slash-ops}

When $S=(L,R)$ is a slashing on $H$ we will use the notations $[·]^L$,
$[·]^R$, $[·]^S$ for the equivalence classes of $L$, $R$, $S$ and the
notations $·^L$, $·^R$, $·^S$ for the highest element in those
equivalence class. In our example we have $[2]^L = \{1,2,3,4\}$,
$[2]^R = \{0,1,2,3\}$, $[22]^S = \{11,12,13,22,23\}$, $2^L = 4$, $2^R
= 4$, $2^S = 23$. Note that $[·]^S$ and $·^S$ depend on the ZHA.

A {\sl slash-operator} on a ZHA $H$ is a function $f:H→H$ that is
equal to some $·^S$.

\msk

Take any function $f:H→H$ on a ZHA. Let:
%
$$\begin{array}{rcl}
  S_0 &=& \setofst{(ab,f(ab))}{ab∈H} \\
  L_0 &=& \setofst{(a,c)}{(ab,cd)∈S_0} \\
  R_0 &=& \setofst{(b,d)}{(ab,cd)∈S_0} \\
  L   &=& {L_0}^* \\
  R   &=& {R_0}^* \\
  S   &=& (L,R) \\
  \end{array}
$$
%
The function $f$ is a slash-operator if and only if these $L$ and $R$
are piccs and $f = ·^S$.



%   ____                          _   _             
%  / ___|___  _ ____   _____ _ __| |_(_)_ __   __ _ 
% | |   / _ \| '_ \ \ / / _ \ '__| __| | '_ \ / _` |
% | |__| (_) | | | \ V /  __/ |  | |_| | | | | (_| |
%  \____\___/|_| |_|\_/ \___|_|   \__|_|_| |_|\__, |
%                                             |___/ 
%
% «converting»  (to ".converting")
% (jonp 6 "converting")
% (jos    "converting")

\subsection{From slashings to question marks and vice-versa}

Choose any path from the bottom element of the ZHA to its top element
that is made of one unit steps northwest or northeast --- for example,
this one:
%
$$(a_0b_0, a_1b_1, \ldots a_{10}b_{10}) = (00, 01, 02, 03, 04, 14, 24, 34, 35, 36, 46)$$

If we apply `$\pile$' to each element of that path we get a sequence
of sets,
%
$$(\pile(a_0b_0), \pile(a_1b_1), \ldots, \pile(a_{10}b_{10}))$$
%
that is actually a sequence of open sets in $\Opens_A(P)$ in which the
first set is $\pile(a_0b_0) = \pile(00) = ∅$, the last set is $P$, and
the difference between each set and the next one is exactly one
element --- for example:
%
$$\begin{array}{rcl}
  \pile(34)∖\pile(24) &=& \{3▁\} \\
  \pile(35)∖\pile(34) &=& \{▁5\} \\
  \end{array}
$$

{

\def\aibi   {a_ib_i}
\def\aiibii {a_{i+1}b_{i+1}}
\def\paibi  {\pile(\aibi)}
\def\paiibii{\pile(\aiibii)}

Note that we have two different cases: 1) the step from $\aibi$ to
$\aiibii$ is a movement {\sl northwest} in the ZHA, as in from 24 to
34; in this case $a_{i+1}b_{i+1} = (a_i+1)b_i$, and the difference
$\pile(a_{i+1}b_{i+1})∖\pile(a_ib_i)$ is $\{a_{i+1}▁\}$, an element of
the left column of $P$; 2) the step from $\aibi$ to $\aiibii$ is a
movement {\sl northeast} in the ZHA, as in from 34 to 35; here
$a_{i+1}b_{i+1} = a_i(b_i+1)$, and the difference
$\pile(a_{i+1}b_{i+1})∖\pile(a_ib_i)$ is $\{▁b_{i+1}\}$, an element of
the right column of $P$.

The easiest way to see how to convert from a set of question marks to
its associated slashing and vice-versa is by looking at an example.
Let's take the structure $((P,A),Q) \; \squigbijbody \; (H,S)$ on
which we've been working and build a table that shows how each step of
the path $(a_0b_0, a_1b_1, \ldots a_{10}b_{10})$ is ``seen'' by the
set $Q$, by the equivalence relations $\eqQ$, $\eqS$, $\eqL$, $\eqR$,
and by the slashing $S$ written in short form. We get:
%
\def\Diffl#1#2#3#4#5#6#7#8{
  \pile(#3#4)∖\pile(#1#2)=\{#3▁\} &
  #3▁  #5\in Q &
  #1#2 #6\eqQ #3#4 &
  #1   #7\eqL #3   & &
  #3   #8     #1   & \\
  }
\def\Diffr#1#2#3#4#5#6#7#8{
  \pile(#3#4)∖\pile(#1#2)=\{▁#4\} &
  ▁#4  #5\in Q &
  #1#2 #6\eqQ #3#4 &
  & #2 #7\eqR   #4 &
  & #2 #8       #4 \\
  }
\def\Diffrsame #1#2#3#4{\Diffr #1#2 #3#4 {}   {}   {}     {}}
\def\Diffrother#1#2#3#4{\Diffr #1#2 #3#4 \not \not {\not} {∖}}
\def\Difflsame #1#2#3#4{\Diffl #1#2 #3#4 {}   {}   {}     {}}
\def\Difflother#1#2#3#4{\Diffl #1#2 #3#4 \not \not {\not} {/}}
%
$$\begin{array}{c}
  \tcg{(P,A),Q} \;\; \squigbij \;\;\; \zha{O_A(P),J}
  \\
  \\
  (a_0b_0, \ldots a_{10}b_{10}) = (00, 01, 02, 03, 04, 14, 24, 34, 35, 36, 46)
  \\
  \\
  \begin{array}{llllllll}
  \Difflsame  36 46 
  \Diffrother 35 36
  \Diffrsame  34 35
  \Difflsame  24 34
  \Difflsame  14 24
  \Difflother 04 14
  \Diffrother 03 04
  \Diffrsame  02 03
  \Diffrsame  01 02
  \Diffrsame  00 01
  \end{array}
  \end{array}
$$

There is an obvious correspondence between the elements of $P$ that
are {\sl not} in $Q$ and the `$/$'s and `$∖$' in $S$ that indicate
changes of equivalence class: $P∖Q = \{1▁, \; ▁4, ▁5\}$ corresponds to
$1/0$, $3∖4$, $5∖6$.


}


\directlua{tf_pop()}




% Local Variables:
% coding: utf-8-unix
% ee-tla: "jos"
% End:
