Warning: this is an htmlized version!
The original is here, and
the conversion rules are here.
% (find-angg "dednat6/extra-modules.tex")
% (defun c () (interactive) (find-dednat6sh "lualatex -record extra-modules.tex"))
% (defun d () (interactive) (find-pdf-page "~/dednat6/extra-modules.pdf"))
% (defun e () (interactive) (find-dednat6 "extra-modules.tex"))
% (defun u () (interactive) (find-latex-upload-links "extra-modules"))
% (find-pdf-page "~/dednat6/extra-modules.pdf")
% (find-sh0 "cp -v  ~/dednat6/extra-modules.pdf /tmp/")
% (find-sh0 "cp -v  ~/dednat6/extra-modules.pdf /tmp/pen/")
%   file:///home/edrx/dednat6/extra-modules.pdf
%               file:///tmp/extra-modules.pdf
%           file:///tmp/pen/extra-modules.pdf
% http://angg.twu.net/dednat6/extra-modules.pdf
%
% «.defs-co»			(to "defs-co")
% «.defs-zha-tcg-ub»		(to "defs-zha-tcg-ub")
% «.defs-squigbij»		(to "defs-squigbij")
%
% «.LPicture»			(to "LPicture")
% «.zfunctions»			(to "zfunctions")
% «.ZHAs»			(to "ZHAs")
% «.cuts»			(to "cuts")
% «.TCGs»			(to "TCGs")
% «.underbrace2d»		(to "underbrace2d")
% «.luarects»			(to "luarects")
%
\documentclass[oneside]{article}
\usepackage[colorlinks,urlcolor=DarkRed,citecolor=DarkRed]{hyperref} % (find-es "tex" "hyperref")
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{pict2e}
\usepackage{graphicx}
\usepackage[x11names,svgnames]{xcolor} % (find-es "tex" "xcolor")
%
% (find-dn6 "preamble6.lua" "preamble0")
\usepackage{proof}   % For derivation trees ("%:" lines)
\input diagxy        % For 2D diagrams ("%D" lines)
\xyoption{curve}     % For the ".curve=" feature in 2D diagrams
%
\begin{document}

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




% «defs-co»  (to ".defs-co")
% \co: a low-level way to typeset code; a poor man's "\verb".
\def\co#1{{%
  \def\%{\char37}%
  \def\\{\char92}%
  \def\^{\char94}%
  \def\~{\char126}%
  \tt#1%
  }}
\def\qco#1{`\co{#1}'}
\def\qqco#1{``\co{#1}''}

\def\bsk{\bigskip}
\def\msk{\medskip}
\def\ssk{\smallskip}

% «defs-zha-tcg-ub»  (to ".defs-zha-tcg-ub")
% From: (find-LATEX "2017planar-has-defs.tex" "defzha-and-deftcg")
\def\defzha#1#2{\expandafter\def\csname zha-#1\endcsname{#2}}
\def\ifzhaundefined#1{\expandafter\ifx\csname zha-#1\endcsname\relax}
\def\zha#1{\ifzhaundefined{#1}
    \errmessage{UNDEFINED ZHA: #1}
  \else
    \csname zha-#1\endcsname
  \fi
}
\def\deftcg#1#2{\expandafter\def\csname tcg-#1\endcsname{#2}}
\def\iftcgundefined#1{\expandafter\ifx\csname tcg-#1\endcsname\relax}
\def\tcg#1{\iftcgundefined{#1}
    \errmessage{UNDEFINED TCG: #1}
  \else
    \csname tcg-#1\endcsname
  \fi
}
\def\defub#1#2{\expandafter\def\csname ub-#1\endcsname{#2}}
\def\ifubundefined#1{\expandafter\ifx\csname ub-#1\endcsname\relax}
\def\ub#1{\ifubundefined{#1}
    \errmessage{UNDEFINED UB: #1}
  \else
    \csname ub-#1\endcsname
  \fi
}
\def\und#1#2{\underbrace{#1}_{#2}}

% «defs-squigbij»  (to ".defs-squigbij")
% \squigbij: a nice "<--/\/\/\/-->" arrow drawn with pict2e.
% From: (find-LATEX "2017planar-has-defs.tex" "squigbij")
%
\def\squigbij{\newsquigbij}
\def\newsquigbij{\;\; \squigbijbody \;\;}
\def\squigbijy{-1.2}
\def\squigbijbody{\squigbijbodywithparams{1.5pt}{0.3pt}{1.0}}
\def\squigbijtriangle(#1,#2)#3{\polygon*(#1,0)(#2,#3)(#2,-#3)}
\def\squigbijbodywithparams#1#2#3{{%
  \unitlength=#1
  \linethickness{#2}
  \begin{picture}(22.4,2.4)(-5.2,\squigbijy)%
    \polyline(-3,0)(0,0)(1,1)(3,-1)(5,1)(7,-1)(9,1)(11,-1)(12,0)(14,0)
    \squigbijtriangle(-5,-2){#3}
    \squigbijtriangle(17,14){#3}
  \end{picture}%
  }}




%  _____ _ _   _      
% |_   _(_) |_| | ___ 
%   | | | | __| |/ _ \
%   | | | | |_| |  __/
%   |_| |_|\__|_|\___|
%                     
\title{Dednat6: extra modules}

\author{Eduardo Ochs}

\maketitle


% See:
% http://angg.twu.net/dednat6/extra-modules.txt.html
% http://angg.twu.net/dednat6/extra-modules.txt
%              (find-dednat6 "extra-modules.txt")




% (find-dn6 "dednat6.lua")
% (find-dn6 "dednat6.lua" "requires" "picture")
% (find-dn6 "picture.lua")
% (find-dn6 "zhas.lua")
% (find-dn6 "zhas.lua" "MixedPicture")

The code of Dednat6 --- inside the directory \co{dednat6/} --- is made
of several \co{.lua} files that are {\sl all} loaded by
\co{dednat6.lua}; there is no provision yet for loading only the
modules that are used in a given \co{.tex} file. This means that some
modules that are only useful to the author of Dednat6 (Eduardo Ochs,
a.k.a. ``me'') are always loaded. Here is the part of the code of
\co{dednat6/dednat6.lua} that loads them:

\begin{verbatim}
  -- Code for handling and drawing ZHAs:
  require "picture"       -- (find-dn6 "picture.lua")
  require "zhas"          -- (find-dn6 "zhas.lua")
  require "zhaspecs"      -- (find-dn6 "zhaspecs.lua")
  require "tcgs"          -- (find-dn6 "tcgs.lua")
  require "luarects"      -- (find-dn6 "luarects.lua")
\end{verbatim}

Most of these extra modules were written to handle the objects
described in my series of papers about ``Planar Heyting Algebras for
Children'', at:

\msk

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

\msk

Even though these modules are not useful to other people some ideas
and techniques in them may be. I am preparing a video to explain them
--- it will be based on the ``executable notes'' here:

\msk

\url{http://angg.twu.net/dednat6/extra-modules.txt}

\msk

I am preparing the ``script'' and rehearsing the video but I haven't
started recording yet. This PDF {\sl complements} the notes and the
video.




\msk


%  _     ____  _      _                  
% | |   |  _ \(_) ___| |_ _   _ _ __ ___ 
% | |   | |_) | |/ __| __| | | | '__/ _ \
% | |___|  __/| | (__| |_| |_| | | |  __/
% |_____|_|   |_|\___|\__|\__,_|_|  \___|
%                                        
% «LPicture»  (to ".LPicture")
% (find-dednat6 "dednat6/picture.lua" "makepicture")
% (find-dednat6 "dednat6/picture.lua" "LPicture")





%  _________       _           __________                 _   _                 
% |__  / ___|  ___| |_ ___    |__  /  ___|   _ _ __   ___| |_(_) ___  _ __  ___ 
%   / /\___ \ / _ \ __/ __|     / /| |_ | | | | '_ \ / __| __| |/ _ \| '_ \/ __|
%  / /_ ___) |  __/ |_\__ \_   / /_|  _|| |_| | | | | (__| |_| | (_) | | | \__ \
% /____|____/ \___|\__|___( ) /____|_|   \__,_|_| |_|\___|\__|_|\___/|_| |_|___/
%                         |/                                                    
%
% «zfunctions»  (to ".zfunctions")
% (find-LATEX "2017planar-has-1.tex" "positional")
% (find-LATEX "2017planar-has-1.tex" "positional" "house =")

\section{ZSets and ZFunctions}


%  ______   _    _        
% |__  / | | |  / \   ___ 
%   / /| |_| | / _ \ / __|
%  / /_|  _  |/ ___ \\__ \
% /____|_| |_/_/   \_\___/
%                         
% «ZHAs»  (to ".ZHAs")
% (dnep 1 "ZHAs")
% (dne    "ZHAs")
% (find-dednat6 "dednat6/zhas.lua" "ZHA-tests")

\section{ZHAs}



%   ____      _       
%  / ___|   _| |_ ___ 
% | |  | | | | __/ __|
% | |__| |_| | |_\__ \
%  \____\__,_|\__|___/
%                     
% «cuts»  (to ".cuts")
% (find-dednat6 "dednat6/zhas.lua" "Cuts-tests")

\section{Cuts}


%  _____ ____ ____     
% |_   _/ ___/ ___|___ 
%   | || |  | |  _/ __|
%   | || |__| |_| \__ \
%   |_| \____\____|___/
%                      
% «TCGs»  (to ".TCGs")
% (dnep 1 "TCGs")
% (dne    "TCGs")
% (find-dednat6 "dednat6/tcgs.lua")

\section{TCGs}

The file \co{tcgs.lua} defines classes for drawing the 2-column graphs
of [PH1] and [PH2] with or without question marks, and for converting
these 2CGs and 2CGQs into ZHAs and ZHAs with cuts. Here's an example
of what they produce:
%
%L tdims = TCGDims {qrh=5, q=15, crh=12, h=60, v=25, crv=7}
%L tspec_PA  = TCGSpec.new("46; 11 22 34 45, 25")
%L tspec_PAQ = TCGSpec.new("46; 11 22 34 45, 25", ".???", "???.?.")
%L
%L -- Define $\tcg{(P,A)}$
%L -- and    $\tcg{(P,A),Q}$.
%L -- The :tcgq() method uses the global variable tdims.
%L --
%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 -- Define $\zha{O_A(P)}$
%L -- and    $\zha{O_A(P),J}$.
%L -- The :mp() method returns a MixedPicture object.
%L --
%L tspec_PA :mp  ({zdef="O_A(P)"})  :addlrs():print()            :output()
%L tspec_PAQ:mp  ({zdef="O_A(P),J"}):addlrs():print()            :output()
%L 
\pu
$$
 \begin{array}{ccc}
   \tcg{(P,A)}   &\squigbij& \zha{O_A(P)}   \\ \\
   \tcg{(P,A),Q} &\squigbij& \zha{O_A(P),J} \\
 \end{array}
$$

Here's a figure showing how the dimension parameters in a TCGDims
object work.

\newpage

%L tspec = TCGSpec.new("23; 21, 13",    "?.","..?")
%L
%L f = function (dims, name, actions)
%L     tdims = TCGDims(dims)
%L     TCGQ.newdsoa(tdims, tspec, {tdef=name, meta="1pt p"}, actions):output()
%L   end
%L
%L f({h=20, v=20, q=20,  crh=5,  crv=5,  qrh=5}, "A1", "B QB v h")
%L f({h=40, v=20, q=20,  crh=5,  crv=5,  qrh=5}, "A2", "B QB v h")
%L f({h=40, v=20, q=40,  crh=5,  crv=5,  qrh=5}, "A3", "B QB v h")
%L f({h=40, v=20, q=40, crh=10,  crv=5,  qrh=5}, "A4", "B QB v h")
%L f({h=40, v=20, q=40, crh=10,  crv=5, qrh=10}, "A5", "B QB v h")
%L f({h=40, v=40, q=40, crh=10,  crv=5, qrh=10}, "A6", "B QB v h")
%L f({h=40, v=40, q=40, crh=10, crv=10, qrh=10}, "A7", "B QB v h")
%L
%L tspec = TCGSpec.new("23; 21, 13")
%L f({h=40, v=40, q=40, crh=10, crv=10, qrh=10}, "A8", "B    v h")
\pu

$$\def\T#1#2{
    \begin{tabular}{l}
      \{    #1,  \\
      \;\;\;#2\} \\
    \end{tabular}
  }
  \scalebox{0.8}{$
  \begin{array}{ccc}
  \T{h=20, v=20, q=20} { crh=5,  crv=5,  qrh=5} &⇒& \tcg{A1} \\ \\
  \T{h=40, v=20, q=20} { crh=5,  crv=5,  qrh=5} &⇒& \tcg{A2} \\ \\
  \T{h=40, v=20, q=40} { crh=5,  crv=5,  qrh=5} &⇒& \tcg{A3} \\ \\
  \T{h=40, v=20, q=40} {crh=10,  crv=5,  qrh=5} &⇒& \tcg{A4} \\ \\
  \T{h=40, v=20, q=40} {crh=10,  crv=5, qrh=10} &⇒& \tcg{A5} \\ \\
  \T{h=40, v=40, q=40} {crh=10,  crv=5, qrh=10} &⇒& \tcg{A6} \\ \\
  \T{h=40, v=40, q=40} {crh=10, crv=10, qrh=10} &⇒& \tcg{A7} \\ \\
  \T{h=40, v=40, q=40} {crh=10, crv=10, qrh=10} &⇒& \tcg{A8} \\
  \end{array}
  $}
$$








%  _   _           _           _                        
% | | | |_ __   __| | ___ _ __| |__  _ __ __ _  ___ ___ 
% | | | | '_ \ / _` |/ _ \ '__| '_ \| '__/ _` |/ __/ _ \
% | |_| | | | | (_| |  __/ |  | |_) | | | (_| | (_|  __/
%  \___/|_| |_|\__,_|\___|_|  |_.__/|_|  \__,_|\___\___|
%                                                       
% «underbrace2d»  (to ".underbrace2d")
% (find-LATEX "2019seminario-hermann.tex" "values-of-subexpressions-S4")
% Moved to: (find-dednat6 "demo-underbrace.tex")

\section{Underbrace2d}

%UB  P \lor Q \to P \land Q
%UB  -      -     -       -
%UB  0      1     0       1
%UB  --------     ---------
%UB      1            0
%UB  ---------------------
%UB            0
%L
%L defub "PvQ -> PaQ"
$$\pu \ub{PvQ -> PaQ}
$$



%  _                              _       
% | |   _   _  __ _ _ __ ___  ___| |_ ___ 
% | |  | | | |/ _` | '__/ _ \/ __| __/ __|
% | |__| |_| | (_| | | |  __/ (__| |_\__ \
% |_____\__,_|\__,_|_|  \___|\___|\__|___/
%                                         
% «luarects»  (to ".luarects")
% (find-LATEX "2019seminario-hermann.tex" "lattice-non-planar")

\section{Luarects}


% (find-dn6 "luarects.lua")





\end{document}

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