Warning: this is an htmlized version! The original is here, and the conversion rules are here.
% (find-angg "LATEX/2019barr2.tex")
% (defun c () (interactive) (find-LATEXsh "lualatex -record 2019barr2.tex"))
% (defun d () (interactive) (find-xpdfpage "~/LATEX/2019barr2.pdf"))
% (defun e () (interactive) (find-LATEX "2019barr2.tex"))
%   (find-xpdfpage "~/LATEX/2019barr2.pdf")
%   file:///home/edrx/LATEX/2019barr2.pdf
% http://angg.twu.net/LATEX/2019barr2.pdf

% «.HAFAGAKA»	(to "HAFAGAKA")
% «.XCX»	(to "XCX")
% «.TAC»	(to "TAC")

\documentclass[oneside]{book}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
%
\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

% «HAFAGAKA»  (to ".HAFAGAKA")
%
%D diagram HAFAGAKA
%D 2Dx     100    +30 +15 +15   +30
%D 2D  100            A
%D 2D               / | \
%D 2D              v  v  v
%D 2D  +25 HA --> FA --> GA --> KA
%D 2D
%D (( A HA -> A FA |-> A GA |-> A KA ->
%D    HA FA -> FA GA -> .plabel= b TA GA KA ->
%D    A FA GA midpoint -->
%D ))
%D enddiagram
%D
$$\pu \diag{HAFAGAKA}$$

% «XCX»  (to ".XCX")
%
%D diagram XCX
%D 2Dx     100   +30   +30
%D 2D  100 A --> X --> C
%D 2D       \   | ^   ^
%D 2D        \  | |  /
%D 2D         v v | /
%D 2D  +30       Y
%D 2D
%D ren A ==> C
%D
%D (( A X -> .plabel= a f  X C -> .plabel= a g
%D    A Y -> .plabel= l kf Y C -> .plabel= r g\ell
%D    X Y -> sl_ .plabel= l k
%D    X Y <- sl^ .plabel= r \ell
%D ))
%D enddiagram
%D
$$\pu \diag{XCX}$$

% «TAC»  (to ".TAC")
%
%D diagram TAC
%D 2Dx     100  +60  +60
%D 2D  100      Y
%D 2D         ^   \
%D 2D        /     v
%D 2D  +45 X ------> Z
%D 2D
%D (( X Y -> .curve= ^15pt sl^                   .plabel= a f
%D    X Y ->                                     .plabel= b g
%D    Y Z -> .curve= ^15pt sl^                   .plabel= a h
%D    Y Z ->                                     .plabel= b i
%D    X Z -> .curve= ^15pt                       .plabel= a k
%D    X Z ->                                     .plabel= m j
%D    X Z ->               .slide= -15pt         .plabel= m hf
%D    X Z -> .curve= _15pt .slide= -15pt         .plabel= m ig
%D
%D    X Y harrownodes nil 15 15  ->              .plabel= a \beta
%D    Y Z harrownodes 15  15 nil <-              .plabel= a \delta
%D
%D    X Z varrownodes 12 30 nil <- .slide= -15pt .plabel= l t
%D    X Z varrownodes 12 15 nil <- .slide=  15pt .plabel= r s
%D
%D ))
%D enddiagram
%D
$$\pu \text{Edrx:} \quad \diag{TAC}$$

$$\text{Barr:} \quad \bfig \node 1(1000,800)[Y] \node 21(0,0)[X] \node 22(2000,0)[Z] \node aa(300,400)[] \node ab(450,400)[] \node ba(1550,400)[] \node bb(1700,400)[] \arrow|a|/{@{>}@/^20pt/}/[211;f] \arrow|b|[211;g] \arrow[aaab;\beta] \arrow[bbba;\delta] \arrow|b|[122;i] \arrow|a|/{@{>}@/^20pt/}/[122;h] \arrow/{@{>}@/^15pt/@<5pt>^(.4)k}/[2122;] \arrow/{@{>}@/^15pt/@<5pt>^(.4)k}/[2122;] \arrow/{@{>}@<5pt>|(.4)j|(.5)\hole}/[2122;] \arrow/{@{>}@<-10pt>|(.4){hf}|-\hole}/[2122;] \arrow/{@{>}@/_15pt/@<-10pt>_(0.4){ig}}/[2122;] \node c(1000,150)[] \node f(1000,-200)[] \arrow|l|[fc;t] \node d(1100,25)[] \node e(1100,-75)[] \arrow|r|[ed;s] \efig$$

\end{document}

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