Warning: this is an htmlized version!
The original is here, and
the conversion rules are here.
% (find-LATEX "2020cwm.tex")
% (defun c () (interactive) (find-LATEXsh "lualatex -record 2020cwm.tex" :end))
% (defun C () (interactive) (find-LATEXSH "lualatex 2020cwm.tex" "Success!!!"))
% (defun D () (interactive) (find-pdf-page      "~/LATEX/2020cwm.pdf"))
% (defun d () (interactive) (find-pdftools-page "~/LATEX/2020cwm.pdf"))
% (defun e () (interactive) (find-LATEX "2020cwm.tex"))
% (defun u () (interactive) (find-latex-upload-links "2020cwm"))
% (defun v () (interactive) (find-2a '(e) '(d)))
% (defun cv () (interactive) (C) (ee-kill-this-buffer) (v) (g))
% (defun d0 () (interactive) (find-ebuffer "2020cwm.pdf"))
%          (code-eec-LATEX "2020cwm")
% (find-pdf-page   "~/LATEX/2020cwm.pdf")
% (find-sh0 "cp -v  ~/LATEX/2020cwm.pdf /tmp/")
% (find-sh0 "cp -v  ~/LATEX/2020cwm.pdf /tmp/pen/")
%   file:///home/edrx/LATEX/2020cwm.pdf
%               file:///tmp/2020cwm.pdf
%           file:///tmp/pen/2020cwm.pdf
% http://angg.twu.net/LATEX/2020cwm.pdf
% (find-LATEX "2019.mk")

% «.title»			(to "title")
% «.diag:universal»		(to "diag:universal")
%   «.universal-arrow»		(to "universal-arrow")
%   «.universal-element»	(to "universal-element")
% «.comma-categories»		(to "comma-categories")
% «.universal-arrows»		(to "universal-arrows")
% «.universal-elements»		(to "universal-elements")
% «.ue-quotient-set»		(to "ue-quotient-set")
% «.yoneda-lemma»		(to "yoneda-lemma")
%
% «.original-univ-arrows»	(to "original-univ-arrows")
% «.cwm-page-55»		(to "cwm-page-55")
% «.cwm-page-57»		(to "cwm-page-57")
% «.cwm-page-58»		(to "cwm-page-58")
% «.cwm-page-59»		(to "cwm-page-59")
%
% «.creation-of-limits»		(to "creation-of-limits")
% «.adjoints-on-limits»		(to "adjoints-on-limits")
% «.kan-extensions»		(to "kan-extensions")
% «.cwm-page-236»		(to "cwm-page-236")
%
% «.elisp»			(to "elisp")


\documentclass[oneside,12pt]{article}
\usepackage[colorlinks,citecolor=DarkRed,urlcolor=DarkRed]{hyperref} % (find-es "tex" "hyperref")
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{pict2e}
\usepackage{stmaryrd}
\usepackage{indentfirst}
\usepackage[x11names,svgnames]{xcolor} % (find-es "tex" "xcolor")
%\usepackage{colorweb}                 % (find-es "tex" "colorweb")
%\usepackage{tikz}
%
% (find-dn6 "preamble6.lua" "preamble0")
\usepackage{proof}   % For derivation trees ("%:" lines)
\input diagxy        % For 2D diagrams ("%D" lines)
\xyoption{curve}     % For the ".curve=" feature in 2D diagrams
%
\usepackage{edrx21}               % (find-LATEX "edrx21.sty")
\input edrxaccents.tex            % (find-LATEX "edrxaccents.tex")
\input edrxchars.tex              % (find-LATEX "edrxchars.tex")
\input edrxheadfoot.tex           % (find-LATEX "edrxheadfoot.tex")
\input edrxgac2.tex               % (find-LATEX "edrxgac2.tex")
%\input 2017planar-has-defs.tex    % (find-LATEX "2017planar-has-defs.tex")
%
% (find-es "tex" "geometry")
\begin{document}

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

\long\def\ColorRed   #1{{\color{Red1}#1}}
\long\def\ColorViolet#1{{\color{MagentaVioletLight}#1}}
\long\def\ColorViolet#1{{\color{Violet!50!black}#1}}
\long\def\ColorGreen #1{{\color{SpringDarkHard}#1}}
\long\def\ColorGreen #1{{\color{SpringGreen4}#1}}
\long\def\ColorGreen #1{{\color{SpringGreenDark}#1}}
\long\def\ColorGray  #1{{\color{GrayLight}#1}}
\long\def\ColorGray  #1{{\color{black!30!white}#1}}

\def\nameof#1{\ulcorner#1\urcorner}
\def\univ    {\mathrm{univ}}
\def\Ran     {\mathrm{Ran}}
\def\Nat     {\mathrm{Nat}}

\def\CoLim {\mathrm{Colim}}
\def\Lim   {\mathrm{Lim}}
\def\Liml  {\underset{\longleftarrow}{\Lim}}
\def\Limr  {\underset{\longrightarrow}{\Lim}}
\def\Cone  {\mathrm{Cone}}

\def\Vct   {\textbf{Vct}}
\def\Fld   {\textbf{Fld}}
\def\Dom   {\textbf{Dom}}
\def\Met   {\textbf{Met}}
\def\CMet  {\textbf{CMet}}



% %L -- From: (find-es "dednat" "at:")
% %L 
% %L Node = Class {
% %L   type       = "Node",
% %L   __tostring = function (node) return mytostring(node) end,
% %L   __index    = {
% %L     v    = function (node) return v(node.x,node.y) end,
% %L     setv = function (node,v) node.x=v[1]; node.y=v[2]; return node end,
% %L   },
% %L }
% %L storenode = function (node)
% %L     node = Node(node)
% %L     table.insert(nodes, node)
% %L     node.noden = #nodes         -- nodes[node.noden] == node
% %L     if node.tag then            -- was: "and not nodes[node.tag]"...
% %L       nodes[node.tag] = node    -- nodes[node.tag] == node
% %L     end
% %L     return node
% %L   end
% %L 
% %L tow = function (vv, ww, a, b)
% %L     local diff = ww-vv
% %L     local diffrot90 = v(diff[2], -diff[1])
% %L     return vv + (a or 0.5)*diff + (b or 0)*diffrot90
% %L   end
% %L ats_to_vs = function (str)
% %L     return (str:gsub("@(%w+)", "nodes[\"%1\"]:v()"))
% %L   end
% %L forths["newnode:"] = function ()
% %L     local tag = getword()
% %L     ds:push(storenode({tag=tag, TeX=phantomnode}))
% %L   end
% %L forths["at:"] = function ()
% %L     local node = ds:pick(0)
% %L     local vexpr = getword()
% %L     node:setv(expr(ats_to_vs(vexpr)))
% %L   end



% «title»  (to ".title")

{\setlength{\parindent}{0em}
\footnotesize

Notes on Saunders MacLane's [CWM], a.k.a.:

``Categories for the Working Mathematician (2nd ed.)'' (Springer, 1998)

\url{https://link.springer.com/book/10.1007/978-1-4612-9839-7}

\url{https://en.wikipedia.org/wiki/Categories_for_the_Working_Mathematician}

\url{https://ncatlab.org/nlab/show/Categories+Work}


\ssk

These notes are at:

\url{http://angg.twu.net/LATEX/2020cwm.pdf}

\ssk

See:

\url{http://angg.twu.net/LATEX/2020favorite-conventions.pdf}

\url{http://angg.twu.net/math-b.html\#favorite-conventions}

I wrote these notes mostly to test if the conventions above
are good enough.


}


%D diagram comma-obj-0
%D 2Dx     100    +20
%D 2D  100        \A
%D 2D             |
%D 2D             | \f
%D 2D             v
%D 2D  +20 \B |-> \FB
%D 2D
%D (( \A \FB -> .plabel= r \f
%D    \B \FB |->
%D ))
%D enddiagram
%D
\pu
\def\commaobj#1#2#3#4{{
  \left(
               \def\A{#1}
                \def\f{#4}
    \def\B{#2} \def\FB{#3}
    \diag{comma-obj-0}
  \right)
  }}

% %D diagram commaobj-demo
% %D 2Dx     100
% %D 2D  100 A
% %D 2D
% %D 2D  +45 B
% %D 2D
% %D (( A .tex= \commaobj{A}{B}{FB}{g} BOX
% %D    B .tex= \commaobj{A}{B}{FB}{?} BOX
% %D    A B ->
% %D ))
% %D enddiagram
% %D
% $$\pu
%   \diag{commaobj-demo}
% $$


\newpage




% (find-cwm2page (+ 13  55) "III. Universals and Limits")
% (find-cwm2page (+ 13  55)   "1. Universal Arrows")



%      _ _                           _                          _ 
%   __| (_) __ _  __ _ _ _   _ _ __ (_)_   _____ _ __ ___  __ _| |
%  / _` | |/ _` |/ _` (_) | | | '_ \| \ \ / / _ \ '__/ __|/ _` | |
% | (_| | | (_| | (_| |_| |_| | | | | |\ V /  __/ |  \__ \ (_| | |
%  \__,_|_|\__,_|\__, (_)\__,_|_| |_|_| \_/ \___|_|  |___/\__,_|_|
%                |___/                                            
%
% «diag:universal»  (to ".diag:universal")
%
%D diagram diag:universal
%D 2Dx     100 +25   +40
%D 2D  100     A1
%D 2D
%D 2D  +20 A2  A3    C0
%D 2D
%D 2D  +20 A4  A5    C1
%D 2D
%D 2D  +15 B0  B1    C2
%D 2D
%D ren    A1     ==>          \ga{A1}
%D ren A2 A3  C0 ==>  \ga{A2} \ga{A3} 〈\ga{A2},\ga{u}〉
%D ren A4 A5  C1 ==> ∀\ga{A4} \ga{A5} 〈\ga{A4},\ga{f}〉
%D ren B0 B1  C2 ==>  \ga{B0} \ga{B1} \ga{C2}
%D
%D (( A1 A3  -> .plabel= r       \ga{u}
%D    A2 A3 |->
%D    A2 A4  -> .plabel= l     ∃!\ga{f'}
%D    A3 A5  -> .plabel= r      \ga{Uf'}
%D    A2 A5 harrownodes nil 20 nil |->
%D    A4 A5 |->
%D    A1 A5  -> .slide= 20pt .plabel= r ∀\ga{f}
%D    B0 B1  -> .plabel= a   \ga{U}
%D    C0 C1  -> .plabel= l ∃!\ga{f'}
%D    C2 place
%D ))
%D enddiagram
%D
\pu

% «universal-arrow»  (to ".universal-arrow")
% (cwmp 2 "universal-arrow")
% (cwma   "universal-arrow")

% (find-cwm2page (+ 13 55) "1. Universal Arrows")
%
Universal arrow --- definition:
%
$${            \sa{A1}{c}                 \sa{u}{u}
    \sa{A2}{r} \sa{A3}{Sr}                \sa{f}{f}
    \sa{A4}{d} \sa{A5}{Sd}  \sa{f'}{f'} \sa{Uf'}{Sf'}
    \sa{B0}{D} \sa{B1}{C}         \sa{U}{S}             \sa{C2}{(c↓S)}
    \diag{diag:universal}
  }
$$

% (find-cwm2page (+ 13 56) "Bases of vector spaces")
% (find-cwm2page (+ 13 56) "Fields of quotients")
%
Bases of vector spaces,

Fields of quotients:
%
$${              \sa{A1}{X}                     \sa{u}{j}
    \sa{A2}{V_X} \sa{A3}{U(V_X)}                \sa{f}{f}
    \sa{A4}{W}   \sa{A5}{U(W)}    \sa{f'}{f'} \sa{Uf'}{Sf'}
    \sa{B0}{\Vct_K} \sa{B1}{\Set}         \sa{U}{U}             \sa{C2}{(X↓U)}
    \diag{diag:universal}
  }
  \qquad
  {               \sa{A1}{D}                   \sa{u}{j}
    \sa{A2}{Q(D)} \sa{A3}{Q(D)}                \sa{f}{f}
    \sa{A4}{K}    \sa{A5}{K}     \sa{f'}{f'} \sa{Uf'}{f'}
    \sa{B0}{\Fld} \sa{B1}{\Dom}         \sa{U}{U}             \sa{C2}{(D↓U)}
    \diag{diag:universal}
  }
$$

% (find-cwm2page (+ 13 56) "Complete metric spaces")
%
Complete metric spaces:
%
$${                  \sa{A1}{X}                      \sa{u}{j}
    \sa{A2}{\ovl{X}} \sa{A3}{\ovl{X}}                \sa{f}{f}
    \sa{A4}{Y}       \sa{A5}{Y}        \sa{f'}{f'} \sa{Uf'}{f'}
    \sa{B0}{\CMet} \sa{B1}{\Met}         \sa{U}{U}             \sa{C2}{(X↓U)}
    \diag{diag:universal}
  }
$$

\newpage

% «universal-element»  (to ".universal-element")
% (cwmp 3 "universal-element")
% (cwma   "universal-element")

% (find-cwm2page (+ 13 57) "universal elements")
%
Universal element --- definition:
%
$${            \sa{A1}{1}                 \sa{u}{e}
    \sa{A2}{r} \sa{A3}{Hr}                \sa{f}{x}
    \sa{A4}{d} \sa{A5}{Hd}   \sa{f'}{f} \sa{Uf'}{Hf}
    \sa{B0}{D} \sa{B1}{\Set}         \sa{U}{H}          \sa{C2}{}
    \diag{diag:universal}
  }
$$





% \GenericWarning{Success:}{Success!!!}  % Used by `M-x cv'

% \end{document}


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




\newpage


% «comma-categories»  (to ".comma-categories")
% (find-books "__cats/__cats.el" "maclane")
% (find-cwm2page (+ 13  31) "II. Constructions on Categories")
% (find-cwm2page (+ 13  45)   "6. Comma Categories")
% (find-cwm2text (+ 13  45)   "6. Comma Categories")

\section*{II. Constructions on Categories}
\subsection*{6. Comma Categories}

(Page 45):

If $b∈C$, the category of objects under $b$ is the category $(b↓C)$...

If $a∈C$, the category $(C↓a)$ of objects over $a$...

%D diagram ??
%D 2Dx         100 +30       +50 +30
%D 2D  100 A0  A1        D0  D1  F0    
%D 2D  +20 A2  A3  C0    D2  D3  F1
%D 2D  +20 A4  A5  C1    D4  D5  
%D 2D  +15 B0  B1  C2    E0  E1  F2
%D 2D
%D ren A1 A3 A5 B1 ==> b c c' C
%D ren C0 C1 C2 ==> 〈f,c〉 〈f',c'〉 (b↓C)
%D ren D1 D3 D5 E1 ==> c c' a C
%D ren F0 F1 F2 ==> 〈c,f〉 〈c',f'〉 (C↓a)
%D
%D ((  A1 A3 -> .plabel= r f
%D     A3 A5 -> .plabel= r h
%D     A1 A5 -> .slide= 15pt .plabel= r f'
%D     B1 place
%D     C0 C1 -> .plabel= l h
%D     C2 place
%D ))
%D ((  D1 D3 -> .plabel= r f'
%D     D3 D5 -> .plabel= r h
%D     D1 D5 -> .slide= 15pt .plabel= r f
%D     E1 place
%D     F0 F1 -> .plabel= l h
%D     F2 place
%D ))
%D enddiagram
%D
$$\pu
  \diag{??}
$$

(Page 46):

% (find-cwm2page (+ 13 46) "objects S-under b")
% (find-cwm2text (+ 13 46) "objects S-under b")
% (find-cwm2page (+ 13 46) "objects T-over a")
% (find-cwm2text (+ 13 46) "objects T-over a")

If $b∈C$ and $S:D→C$, the category $(b↓S)$ of objects
$S$-under $b$...

Again, if $a∈C$ and $T:E→C$, ...a category $(T↓a)$ of objects $T$-over
$a$.

%D diagram ??
%D 2Dx     100 +20 +30   +50 +20 +30
%D 2D  100 A0  A1        D0  D1  F0    
%D 2D  +20 A2  A3  C0    D2  D3  F1
%D 2D  +20 A4  A5  C1    D4  D5  
%D 2D  +15 B0  B1  C2    E0  E1  F2
%D 2D
%D ren A1 A2 A3 A4 A5 C0 C1 ==> b d Sd d' Sd'   D C
%D ren C0 C1 C2 ==> 〈f,d〉 〈f',d'〉 (b↓S)
%D ren D0 D1 D2 D3 D5 E0 E1 ==> e Te e' Te' a   E C
%D ren F0 F1 F2 ==> 〈c,f〉 〈c',f'〉 (T↓a)
%D
%D ((  A1 A3  -> .plabel= r f
%D     A2 A3 |->
%D     A2 A4  -> .plabel= l ?
%D     A3 A5  -> .plabel= r h
%D     A2 A5 harrownodes nil 20 nil |->
%D     A4 A5 |->
%D     A1 A5  -> .slide= 15pt .plabel= r f'
%D     B0 B1  -> .plabel= a S
%D     C0 C1  -> .plabel= l h
%D     C2 place
%D ))
%D ((  D0 D1 |->
%D     D0 D2  -> .plabel= l ?
%D     D1 D3  -> .plabel= r ?
%D     D0 D3 harrownodes nil 20 nil |->
%D     D2 D3 |->
%D     D3 D5 -> .plabel= r h
%D     D1 D5 -> .slide= 15pt .plabel= r f
%D     E0 E1 -> .plabel= a T
%D     F0 F1 -> .plabel= l h
%D     F2 place
%D ))
%D enddiagram
%D
$$\pu
  \diag{??}
$$

% (find-cwm2page (+ 13 46) "Here is the general construction.")
% (find-cwm2text (+ 13 46) "Here is the general construction.")

Here is the general construction. The comma category $(T↓S)$...

%D diagram ??
%D 2Dx     100 +15 +20 +15   +40
%D 2D  100 A0      A1
%D 2D  +10     A2      A3    C0
%D 2D  +20
%D 2D  +10 A4      A5
%D 2D  +10     A6      A7    C1
%D 2D  +15 B0
%D 2D  +10     B1      B2    C2
%D 2D
%D 2D
%D ren A0  A1    ==> e   Te
%D ren   A2  A3  ==>   d    Sd
%D ren A4  A5    ==> e'  Te'
%D ren   A6  A7  ==>   d'   Sd'
%D ren B0        ==> E
%D ren   B1  B2  ==>   D C
%D
%D ren C0 C1 C2  ==> 〈e,d,f〉 〈e',d',f'〉 (T↓S)
%D
%D (( A0 A1 |->
%D    A1 A3  -> .plabel= a f
%D    A2 A3 |->
%D    A4 A5 |->
%D    A5 A7  -> .plabel= a f'
%D    A6 A7 |->
%D    A0 A4  -> .plabel= l  k
%D    A1 A5  -> .plabel= r Tk
%D    A2 A6  -> .plabel= l  h
%D    A3 A7  -> .plabel= r Sh
%D    A0 A5 harrownodes nil 20 nil |->
%D    A2 A7 harrownodes nil 20 nil |->
%D   
%D    B2 xy+= -7 -5
%D    B0 B2  -> .plabel= a T
%D    B1 B2  -> .plabel= b S
%D
%D    C0 xy+= 0 -5
%D    C1 xy+= 0 -5
%D    C2 xy+= 0 -5
%D    C0 C1 -> .plabel= r 〈k,h〉
%D    C2 place
%D ))
%D enddiagram
%D
$$\pu
  \diag{??}
$$






\newpage



% (find-cwm2page (+ 13  55) "III. Universals and Limits")
% (find-cwm2page (+ 13  55)   "1. Universal Arrows")
% (find-cwm2page (+ 13  57)      "universal\nelements")
% (find-cwm2text (+ 13  57)      "universal\nelements")
% (find-cwm2text (+ 13  55)   "1. Universal Arrows")
% (find-cwm2page (+ 13  59)   "2. The Yoneda Lemma")
% (find-cwm2page (+ 13  62)   "3. Coproducts and Colimits")
% (find-cwm2page (+ 13  68)   "4. Products and Limits")
% (find-cwm2page (+ 13  72)   "5. Categories with Finite Products")
% (find-cwm2page (+ 13  75)   "6. Groups in Categories")
% (find-cwm2page (+ 13  76)   "7. Colimits of Representable Functors")

% «universal-arrows»  (to ".universal-arrows")
% (cwmp 1 "universal-arrows")
% (cwm    "universal-arrows")

\section*{III. Universals and Limits}

\subsection*{1. Universal Arrows}

Definition. If $S:D→C$ is a functor and $c$ an object of $C$, a
universal arrow from $c$ to $S$ is pair $〈r,u〉$ such that... (see the
diagram at the left below; formally and minus the types,
$∀d.∀f.∃!f'.sf'∘u=f$).

Equivalently, $u:c→Sr$ is universal from $c$ to $S$ when the pair
$〈r,u〉$ is an initial object in the comma category $(c↓S)$... (diagram
at the right below).
%
%D diagram universal-arrows
%D 2Dx     100 +20
%D 2D  100     A1
%D 2D
%D 2D  +20 A2  A3
%D 2D
%D 2D  +20 A4  A5
%D 2D
%D 2D  +20 B0  B1
%D 2D
%D ren    A1 ==>     c
%D ren A2 A3 ==>  r Sr
%D ren A4 A5 ==> ∀d Sd
%D ren B0 B1 ==>  D  C
%D
%D (( A1 A3  -> .plabel= r u
%D    A2 A3 |->
%D    A2 A4  -> .plabel= l ∃!f'
%D    A3 A5  -> .plabel= r Sf'
%D    A4 A5 |->
%D    B0 B1  -> .plabel= a S
%D
%D    A1 A5  -> .slide= 20pt .plabel= r ∀f
%D ))
%D enddiagram
%D
%D diagram universal-arrows-comma
%D 2Dx     100
%D 2D  100 A0
%D 2D  +45 A1
%D 2D  +30 B0
%D 2D
%D ren B0 ==> (c↓S)
%D
%D (( A0 .tex=  \commaobj{c}{r}{Sr}{u} BOX
%D    A1 .tex= ∀\commaobj{c}{d}{Sd}{f} BOX
%D    A0 A1 -> .plabel= r ∃!f'
%D    B0 place
%D ))
%D enddiagram
%D
$$\pu
  \diag{universal-arrows}
  \qquad
  \diag{universal-arrows-comma}
$$

\newpage

% «universal-elements»  (to ".universal-elements")
% (cwmp 2 "universal-elements")
% (cwm    "universal-elements")

(p.57):

The idea of universality is sometimes expressed in terms of
``universal elements''. If $D$ is a category and $H:D→\Set$ a functor,
a {\sl universal element} of the functor $H$ is a pair $〈r,e〉$
consisting of an object $r∈D$ and an element $e∈Hr$ such that for
every pair $〈d,x〉$ with $x∈Hd$ there is a unique arrow $f:r→d$ of $D$
with $(Hf)e=x$.
%
%D diagram universal-element
%D 2Dx     100 +20
%D 2D  100     A1
%D 2D
%D 2D  +20 A2  A3
%D 2D
%D 2D  +20 A4  A5
%D 2D
%D 2D  +20 B0  B1
%D 2D
%D ren    A1 ==>     *
%D ren A2 A3 ==>  r Hr
%D ren A4 A5 ==> ∀d Hd
%D ren B0 B1 ==>  D \Set
%D
%D (( A1 A3  -> .plabel= r \nameof{e}
%D    A2 A3 |->
%D    A2 A4  -> .plabel= l ∃!f
%D    A3 A5  -> .plabel= r  Hf
%D    A4 A5 |->
%D    B0 B1  -> .plabel= a H
%D
%D    A1 A5  -> .slide= 20pt .plabel= r ∀\nameof{x}
%D ))
%D enddiagram
%D
%D diagram universal-element-comma
%D 2Dx     100
%D 2D  100 A0
%D 2D  +45 A1
%D 2D  +30 B0
%D 2D
%D ren B0 ==> (c↓S)
%D
%D (( A0 .tex=  \commaobj{*}{r}{Hr}{\nameof{e}} BOX
%D    A1 .tex= ∀\commaobj{*}{d}{Hd}{\nameof{x}} BOX
%D    A0 A1 -> .plabel= r ∃!f'
%D    B0 place
%D ))
%D enddiagram
%D
$$\pu
  \diag{universal-element}
  \qquad
  \diag{universal-element-comma}
$$

\newpage

% «ue-quotient-set»  (to ".ue-quotient-set")
% (cwmp 2 "ue-quotient-set")
% (cwm    "ue-quotient-set")
% (find-cwm2page (+ 13  57)      "universal\nelements")
% (find-cwm2text (+ 13  57)      "universal\nelements")
% (find-cwm2page (+ 13 57) "quotient set")
% (find-cwm2text (+ 13 57) "quotient set")

(p.57):

Many familiar constructions (...) consider an equivalence relation
$E$ on a set $S$, the corresponding quotient set $S/E$ (...) and the
projection $p:S→S/E$. (...)

Definitions (mine): if $E⊆S×S$ then we say that

$f:S→X$ respects $E$ iff $∀s,s'∈E. sEs'→fs=fs'$, and

$H(X) := \setofst{f:S→X}{f \text{ respects } E}$.

%D diagram S/E
%D 2Dx     100  +40 +30   
%D 2D  100 C0       A1    
%D 2D                     
%D 2D  +20 C1   A2  A3    
%D 2D                     
%D 2D  +20 C2   A4  A5    
%D 2D                     
%D 2D  +20      B0  B1    
%D 2D
%D ren    A1 ==>     *
%D ren A2 A3 ==> S/E H(S/E)
%D ren A4 A5 ==>  ∀X H(X)
%D ren B0 B1 ==> \Set \Set
%D ren C0 C1 C2 ==> S S/E ∀X
%D
%D (( A1 A3  -> .plabel= r \nameof{p}
%D    A2 A3 |->
%D    A2 A4  -> .plabel= l ∃!f'
%D    A3 A5  -> .plabel= r  Hf'
%D    A4 A5 |->
%D    B0 B1  -> .plabel= a H
%D
%D    A1 A5  -> .slide= 25pt .plabel= r ∀\nameof{f}
%D
%D    C0 C1  -> .plabel= l p
%D    C1 C2  -> .plabel= l ∃!f'
%D    C0 C2  -> .slide= 15pt .plabel= r \sm{∀f\\\text{resp.}E}
%D ))
%D enddiagram
%D
%D diagram S/E-comma
%D 2Dx     100
%D 2D  100 A0
%D 2D  +45 A1
%D 2D  +30 B0
%D 2D
%D ren B0 ==> (*↓H)
%D
%D (( A0 .tex=  \commaobj{*}{S/E}{H(S/E)}{\nameof{p}} BOX
%D    A1 .tex= ∀\commaobj{*}{X}{H(X)}{\nameof{f}} BOX
%D    A0 A1 -> .plabel= r ∃!f'
%D    B0 place
%D ))
%D enddiagram
%D
$$\pu
  \diag{S/E}
  \qquad
  \diag{S/E-comma}
$$




(p.58):

The notion ``universal element'' is a special case of the notion
``universal arrow''. Indeed, if $*$ is the set with one point...
Indeed if $S:D→C$ is a functor and $c∈C$ is an object, then
$〈r,u:c→Sr〉$ is a universal arrow from $c$ to $S$ is and only if the
pair $〈r,u∈C(c,Sr)〉$ is a universal element of the functor
$H=C(c,S-)$. This is the functor which acts on objects $d$ and arrows
$h$ of $D$ by:
%
$$d \mapsto C(c,Sd) \; , \qquad h \mapsto C(c,Sh) \; .$$

% (find-cwm2page (+ 13 58) "The dual concept is also useful")
% (find-cwm2text (+ 13 58) "The dual concept is also useful")

\newpage



% «yoneda-lemma»  (to ".yoneda-lemma")
% (cwmp 4 "yoneda-lemma")
% (cwm    "yoneda-lemma")

\subsection*{2. The Yoneda Lemma}

% (find-cwm2page (+ 13  59) "2. The Yoneda Lemma")
% (find-cwm2text (+ 13  59) "2. The Yoneda Lemma")
% (find-cwm2page (+ 13  59) "Proposition 1.")
% (find-cwm2text (+ 13  59) "Proposition 1.")

Proposition 1:
%
%D diagram yoneda-phi-1
%D 2Dx     100    +35
%D 2D  100        A1
%D 2D              |
%D 2D  +20 A2 |-> A3
%D 2D      |       |
%D 2D  +20 A4 |-> A5
%D 2D      |       |
%D 2D  +20 A6 |-> A7
%D 2D
%D 2D  +20 B0 --> B1
%D 2D
%D 2D  +20 C0 --> C1
%D 2D          \   |
%D 2D  +20        C2
%D 2D
%D ren    A1 ==>      c
%D ren A2 A3 ==>  r  Sr
%D ren A4 A5 ==>  d  Sd
%D ren A6 A7 ==>  d' Sd
%D ren B0 B1 ==>  D   C
%D ren C0 C1 C2 ==> D(r,-) C(c,S-) ?
%D
%D (( A1 A3  -> .plabel= r  u
%D    A2 A3 |->
%D    A2 A4  -> .plabel= l  f'
%D    A3 A5  -> .plabel= r Sf'
%D  # A1 A5  -> .slide= 20pt .plabel= r \sm{K(f')∘u=\\\nameof{K(f')(u(*))}}
%D    A4 A5 |->
%D    A4 A6  -> .plabel= l  g'
%D    A5 A7  -> .plabel= r Sg'
%D    A6 A7 |->
%D
%D    B0 B1  -> .plabel= a S
%D
%D    C0 C1 -> .plabel= a φ
%D  # C0 C2 -> .plabel= l \sm{ψ\\\text{(iso)}}
%D  # C1 C2 <->
%D ))
%D enddiagram
%D
%D diagram yoneda-phi-NT-1
%D 2Dx     100 +20 +35 +30 +40
%D 2D  100 A0  B0  B1  D0  D1
%D 2D  +17                 D3'
%D 2D   +8 A1  B2  B3  D2  D3
%D 2D
%D 2D  +20     C0  C1
%D 2D
%D ren A0 A1 ==> d d'
%D ren B0 B1 B2 B3 ==> D(r,d) C(c,Sd) D(r,d') C(c,Sd')
%D ren C0 C1 ==> D(r,-) C(c,S-)
%D ren D0 D1 D3' ==> f' Sf'∘u Sg'∘(Sf'∘u)
%D ren    D2 D3  ==> g'∘f' S(g∘f)∘u
%D
%D (( A0 A1 -> .plabel= l f'
%D    B0 B1 -> .plabel= a φ_r
%D    B0 B2 -> .plabel= l D(r,f')
%D    B1 B3 -> .plabel= r C(c,Sf')
%D    B2 B3 -> .plabel= a φ_d
%D    C0 C1 -> .plabel= a φ
%D    D0 D1  |->
%D    D0 D2  |->
%D    D1 D3' |->
%D    D2 D3  |->
%D ))
%D enddiagram
%D
$$\pu
  \diag{yoneda-phi-1}
  \quad
  \diag{yoneda-phi-NT-1}
$$


Definition. Let $D$ have small hom-sets. A representation of a functor
$K:D→\Set$ is....

Proposition 2:
%
% (find-cwm2page (+ 13 60) "Proposition 2.")
% (find-cwm2text (+ 13 60) "Proposition 2.")
%
%D diagram yoneda-proposition-2
%D 2Dx     100    +40
%D 2D  100        A1
%D 2D              |
%D 2D  +20 A2 |-> A3
%D 2D      |       |
%D 2D  +20 A4 |-> A5
%D 2D      |       |
%D 2D  +20 A6 |-> A7
%D 2D
%D 2D  +20 B0 --> B1
%D 2D
%D 2D  +20 C0 --> C1
%D 2D          \   |
%D 2D  +20        C2
%D 2D
%D ren    A1 ==>      *
%D ren A2 A3 ==>  r  Kr
%D ren A4 A5 ==>  d  Kd
%D ren A6 A7 ==>  d' Kd;
%D ren B0 B1 ==>  D \Set
%D ren C0 C1 C2 ==> D(r,-) \Set(*,K-) K
%D
%D (( A1 A3  -> .plabel= r  u
%D    A2 A3 |->
%D    A2 A4  -> .plabel= l  f'
%D    A3 A5  -> .plabel= r Kf'
%D    A1 A5  -> .slide= 20pt .plabel= r \sm{K(f')∘u=\\\nameof{K(f')(u(*))}}
%D    A4 A5 |->
%D    A4 A6  ->
%D    A5 A7  ->
%D    A6 A7 |->
%D
%D    B0 B1  -> .plabel= a K
%D
%D    C0 C1 ->
%D    C0 C2 -> .plabel= l \sm{ψ\\\text{(iso)}}
%D    C1 C2 <->
%D ))
%D enddiagram
%D
$$\pu
  \diag{yoneda-proposition-2}
$$






\newpage

\noindent
(Original text + missing diagrams)

% «original-univ-arrows»  (to ".original-univ-arrows")
% (cwmp 5 "original-univ-arrows")
% (cwm    "original-univ-arrows")
% (find-cwm2page (+ 13  55) "III. Universals and Limits")
% (find-cwm2page (+ 13  55)   "1. Universal Arrows")
% (find-cwm2text (+ 13  55)   "1. Universal Arrows")
% (find-cwm2page (+ 13  59)   "2. The Yoneda Lemma")

\section*{III.1. Universal Arrows}

% «cwm-page-55»  (to ".cwm-page-55")
% (cwmp 5 "cwm-page-55")
% (cwm    "cwm-page-55")
% (find-cwm2page (+ 13  55) "III. Universals and Limits")
% (find-cwm2page (+ 13  55)   "1. Universal Arrows")
% (find-cwm2text (+ 13  55)   "1. Universal Arrows")

(Page 55):

1. Universal Arrows

Definition. if $S: D→C$ is a functor and $c$ an object of $C$, a
universal arrow from $c$ to $S$ is a pair $〈r, u〉$ consisting of an
object $r$ of $D$ and an arrow $u: c→Sr$ of $C$, such that to every
pair $〈d,f〉$ with $d$ an object of $D$ and $f: c→Sd$ an arrow of $C$,
there is a unique arrow $f': r→d$ of $D$ with $S f'∘u = f$. In other
words, every arrow $f$ to $S$ factors uniquely through the universal
arrow $u$, as in the commutative diagram

%D diagram universal-cwm-1
%D 2Dx     100 +20 +20
%D 2D  100 A0  A1  A2
%D 2D
%D 2D  +20 A3  A4  A5
%D 2D
%D ren A0 A1 A2 ==> c Sr r
%D ren A3 A4 A5 ==> c Sd d
%D
%D (( A0 A1 -> .plabel= a u
%D    A0 A3 =
%D    A1 A4 --> .plabel= r Sf'
%D    A3 A4 -> .plabel= a f
%D    A2 A5 -> .plabel= r f'
%D ))
%D enddiagram
%D
%D diagram universal-cwm-1-my
%D 2Dx     100 +20
%D 2D  100     A1
%D 2D
%D 2D  +20 A2  A3
%D 2D
%D 2D  +20 A4  A5
%D 2D
%D 2D  +15 B0  B1
%D 2D
%D ren    A1 ==>   c
%D ren A2 A3 ==> r Sr
%D ren A4 A5 ==> ∀d Sd
%D ren B0 B1 ==> D C
%D
%D (( A1 A3 -> .plabel= r  u
%D    A2 A3 |->
%D    A2 A4 -> .plabel= l ∃!f'
%D    A3 A5 -> .plabel= r Sf'
%D    A4 A5 |->
%D    A1 A5 -> .slide= 20pt .plabel= r ∀f
%D    A2 A5 harrownodes nil 20 nil |->
%D    B0 B1  -> .plabel= a S
%D  
%D ))
%D enddiagram
%D
$$\pu
  \diag{universal-cwm-1}
  \qquad
  \diag{universal-cwm-1-my}
  \quad
  \begin{tabular}[c]{l}
    $〈r,u:c→Sr〉$ is a \\
    universal arrow \\
    from $c$ to $S$ \\
  \end{tabular}
$$

% «cwm-page-57»  (to ".cwm-page-57")
% (cwmp 5 "cwm-page-57")
% (cwm    "cwm-page-57")
% (find-cwm2page (+ 13  57)      "universal\nelements")
% (find-cwm2text (+ 13  57)      "universal\nelements")

(Page 57):

The idea of universality is sometimes expressed in terms of
``universal elements''. If $D$ is a category and $H: D→\Set$ a
functor, a {\sl universal element} of the functor $H$ is a pair $〈r,
  e〉$ consisting of an object $r∈D$ and an element $e ∈ H r$ such that
for every pair $〈d, x〉$ with $x ∈ H d$ there is a unique arrow $f:r→d$
of $D$ with $(Hf)e=x$.

%D diagram universal-elt-cwm-1-my
%D 2Dx     100 +20
%D 2D  100     A1
%D 2D
%D 2D  +20 A2  A3
%D 2D
%D 2D  +20 A4  A5
%D 2D
%D 2D  +15 B0  B1
%D 2D
%D ren    A1 ==>   *
%D ren A2 A3 ==> r Hr
%D ren A4 A5 ==> ∀d Hd
%D ren B0 B1 ==> D \Set
%D
%D (( A1 A3 -> .plabel= r \nameof{e}
%D    A2 A3 |->
%D    A2 A4 -> .plabel= l ∃!f
%D    A3 A5 -> .plabel= r Hf
%D    A4 A5 |->
%D    A1 A5 -> .slide= 20pt .plabel= r ∀\nameof{x}
%D    A2 A5 harrownodes nil 20 nil |->
%D    B0 B1  -> .plabel= a H
%D  
%D ))
%D enddiagram
%D
$$\pu
  \diag{universal-elt-cwm-1-my}
  \quad
  \begin{tabular}[c]{l}
    $〈r,e∈Hr〉$ is a \\
    universal element \\
    of the functor $H$ \\
  \end{tabular}
$$

\newpage

% «cwm-page-58»  (to ".cwm-page-58")
% (cwmp 6 "cwm-page-58")
% (cwm    "cwm-page-58")
% (find-cwm2page (+ 13 58) "The notion \"universal element\"")
% (find-cwm2text (+ 13 58) "The notion \"universal element\"")

(Page 58, middle paragraph):


The notion ``universal element'' is a special case of the notion
``universal arrow''. Indeed, if $*$ is the set with one point, then
any element $e∈Hr$ can be regarded as an arrow $e: *→Hr$ in $𝐛{Ens}$.
Thus a universal element $〈r, e〉$ for $H$ is exactly a universal arrow
from $*$ to $H$.
%
%D diagram p58.1
%D 2Dx     100 +20
%D 2D  100     A1
%D 2D
%D 2D  +20 A2  A3
%D 2D
%D 2D  +20 A4  A5
%D 2D
%D 2D  +15 B0  B1
%D 2D
%D ren    A1 ==>   *
%D ren A2 A3 ==> r Hr
%D ren A4 A5 ==> ∀d Hd
%D ren B0 B1 ==> D \Set
%D
%D (( A1 A3 -> .plabel= r e
%D    A2 A3 |->
%D    A2 A4 -> .plabel= l ∃!g
%D    A3 A5 -> .plabel= r Hg
%D    A4 A5 |->
%D    A1 A5 -> .slide= 20pt .plabel= r ∀f
%D    A2 A5 harrownodes nil 20 nil |->
%D    B0 B1  -> .plabel= a H
%D ))
%D enddiagram
$$\pu
  \diag{p58.1}
  \quad
  \begin{tabular}[c]{l}
    $〈r,e∈Hr〉$ is a \\
    universal element \\
    of the functor $H$ \\
  \end{tabular}
  \;\;\;
  \Rightarrow
  \;\;\;
  \begin{tabular}[c]{l}
    $〈r,e:*→Hr〉$ is a \\
    universal arrow \\
    from $r$ to $H$ \\
  \end{tabular}
$$

% (find-cwm2page (+ 13 58) "The notion \"universal element\"")
% (find-cwm2text (+ 13 58) "The notion \"universal element\"")

(Page 58, middle paragraph, 2nd part):

Conversely, if $C$ has small hom-sets, the notion
``universal arrow'' is a special case of the notion ``universal
element''. Indeed, if $S: D→C$ is a functor and $c∈C$ is an object,
then $〈r, u:c→Sr〉$ is a universal arrow from $c$ to $S$ if and only if
the pair $〈r, u∈C(c,Sr)〉$ is a universal element of the functor $H =
C(c, S -)$.

%D diagram p58.2
%D 2Dx     100 +20
%D 2D  100     A1
%D 2D  +20 A2  A3
%D 2D  +20 A4  A5
%D 2D  +15 B0  B1
%D 2D
%D ren    A1 ==>    c
%D ren A2 A3 ==>  r Sr
%D ren A4 A5 ==> ∀d Sd
%D ren B0 B1 ==>  D C
%D
%D (( A1 A3  -> .plabel= r u
%D    A2 A3 |->
%D    A2 A4  -> .plabel= l ∃!g
%D    A3 A5  -> .plabel= r Sg
%D    A4 A5 |->
%D    A1 A5  -> .slide= 20pt .plabel= r ∀f
%D    A2 A5 harrownodes nil 20 nil |->
%D    B0 B1  -> .plabel= a S
%D ))
%D enddiagram
%D
%D diagram p58.3
%D 2Dx     100 +30
%D 2D  100     A1
%D 2D  +20 A2  A3
%D 2D  +20 A4  A5
%D 2D  +15 B0  B1
%D 2D
%D ren    A1 ==>    *
%D ren A2 A3 ==>  r C(c,Sr)
%D ren A4 A5 ==> ∀d C(c,Sd)
%D ren B0 B1 ==>  D \Set
%D
%D (( A1 A3  -> .plabel= r \nameof{u}
%D    A2 A3 |->
%D    A2 A4  -> .plabel= l ∃!g
%D    A3 A5  -> .plabel= r Sg
%D    A4 A5 |->
%D    A1 A5  -> .slide= 25pt .plabel= r ∀\nameof{f}
%D    A2 A5 harrownodes nil 20 nil |->
%D    B0 B1  -> .plabel= a C(c,S-)
%D ))
%D enddiagram
%D
$$\pu
  \diag{p58.2}
  \qquad
  \diag{p58.3}
$$

\newpage

(Page 58, middle paragraph, 3rd part):

This --- {\sl i.e., the functor $C(c,S-)$} --- is \ColorRed{the}
functor which acts on objects $d$ and arrows $h$ of $D$ by
%
$$d \mapsto C(c,Sd), \qquad h \mapsto C(c,Sh).$$

%D diagram C(c,S-)
%D 2Dx     100 +20   +40 +30 +30
%D 2D  100     A1
%D 2D  +20 A2  A3
%D 2D  +20 A4  A5    C0  C1  E0
%D 2D  +20 A6  A7    C2  C3  E1
%D 2D  +15 B0  B1    D0  D1
%D 2D
%D ren    A1 ==>    c
%D ren A2 A3 ==>  r Sr
%D ren A4 A5 ==>  d Sd
%D ren A6 A7 ==> d' Sd'
%D ren B0 B1 ==>  D C
%D
%D ren C0 C1 E0 ==> d  C(c,Sd)     f
%D ren C2 C3 E1 ==> d' C(c,Sd') Sh∘f
%D ren D0 D1    ==> D \Set
%D
%D (( A1 A3  -> # .plabel= r ?
%D    A2 A3 |->
%D    A2 A4  -> # .plabel= l ?
%D    A3 A5  -> # .plabel= r ??
%D    A4 A5 |->
%D    A1 A5  -> .slide= 10pt .plabel= r f
%D    A2 A5 harrownodes nil 20 nil |->
%D    A4 A6  -> .plabel= l h
%D    A5 A7  -> .plabel= r Sh
%D    A6 A7 |->
%D    A1 A7  -> .slide= 20pt .plabel= r Sh∘f
%D    A4 A7 harrownodes nil 20 nil |->
%D
%D    B0 B1  -> .plabel= a S
%D
%D    C0 C1 |->
%D    C0 C2  -> .plabel= l h
%D    C1 C3  -> .plabel= r C(c,Sh)
%D    C2 C3 |->
%D    D0 D1  -> .plabel= a C(c,S-)
%D    E0 E1 |->
%D ))
%D enddiagram
$$\pu
  \diag{C(c,S-)}
$$




\newpage

% «cwm-page-59»  (to ".cwm-page-59")

\subsection*{2. The Yoneda Lemma}

% (find-cwm2page (+ 13  59)   "2. The Yoneda Lemma")
% (find-cwm2text (+ 13  59)   "2. The Yoneda Lemma")

(Page 59):

Proposition 1. For a functor $S: D→C$ a pair $〈r, u: c→Sr〉$ is universal
from $c$ to $S$ if and only if the function sending each $f': r→d$ into
$Sf'∘u : c→Sd$ is a bijection of hom-sets
%
$$D(r, d) ≅ C(c, Sd).$$

%D diagram page59-1
%D 2Dx     100 +35
%D 2D  100     A1
%D 2D  +20 A2  A3
%D 2D  +20 A4  A5 
%D 2D  +20 A6  A7 
%D 2D  +15 B0  B1 
%D 2D  +15 C0  C1 
%D 2D  +15 D0  D1 
%D 2D  +8  D2  D3
%D 2D
%D ren    A1 ==>    c
%D ren A2 A3 ==>  r Sr
%D ren A4 A5 ==>  d Sd
%D ren A6 A7 ==> d' Sd'
%D ren B0 B1 ==>  D C
%D ren C0 C1 ==> D(r,d) C(c,Sd)
%D ren D0 D1 ==>  f' Sf'∘u
%D ren D2 D3 ==>  f'  f
%D
%D (( A1 A3  -> .plabel= r u
%D    A2 A3 |->
%D    A2 A4  -> .plabel= l ∃!f'
%D    A3 A5  -> .plabel= r Sf'
%D    A4 A5 |->
%D    A1 A5  -> .slide= 20pt .plabel= r ∀f
%D    A2 A5 harrownodes nil 20 nil |->
%D
%D    A4 A6  -> .plabel= l h
%D    A5 A7  -> .plabel= r Sh
%D    A6 A7 |->
%D  # A1 A7  -> .slide= 20pt .plabel= r Sh∘f
%D    A4 A7 harrownodes nil 20 nil |->
%D
%D    B0 B1  -> .plabel= a S
%D    C0 C1 <->
%D    D0 D1 |->
%D    D2 D3 <-|
%D ))
%D enddiagram
$$\pu
  \diag{page59-1}
$$

\newpage

(Page 59, Proposition 1, cont.)

This bijection is natural in $D$.

%D diagram page59-D(r,-)-is-functorial
%D 2Dx     100 +20  +20 +25 +30
%D 2D  100     A1
%D 2D  +20 A2  A3
%D 2D  +20 A4  A5   F0  F1  F6
%D 2D  +20 A6  A7   F2  F3  F7
%D 2D  +15 B0  B1   F4  F5
%D 2D
%D ren    A1 ==>    c
%D ren A2 A3 ==>  r Sr
%D ren A4 A5 ==>  d Sd
%D ren A6 A7 ==> d' Sd'
%D ren B0 B1 ==>  D C
%D ren F0 F1 ==> d  D(r,d)
%D ren F2 F3 ==> d' D(r,d')
%D ren F4 F5 ==> D \Set
%D ren F6 F7 ==> f' h∘f'
%D
%D (( A1 A3  -> .plabel= r u
%D    A2 A3 |->
%D    A2 A4  -> .plabel= l f'
%D    A3 A5  -> .plabel= r Sf'
%D    A4 A5 |->
%D  # A1 A5  -> .slide= 20pt .plabel= r ∀f
%D    A2 A5 harrownodes nil 20 nil |->
%D
%D    A4 A6  -> .plabel= l h
%D    A5 A7  -> .plabel= r Sh
%D    A6 A7 |->
%D  # A1 A7  -> .slide= 20pt .plabel= r Sh∘f
%D    A4 A7 harrownodes nil 20 nil |->
%D
%D    B0 B1  -> .plabel= a S
%D  # C0 C1 <->
%D  # D0 D1 |->
%D  # D2 D3 <-|
%D
%D    F0 F1 |->
%D    F0 F2  -> .plabel= l h
%D    F1 F3  -> .plabel= r D(r,h)
%D    F2 F3 |->
%D    F4 F5  -> .plabel= a D(r,-)
%D    F0 F3 harrownodes nil 20 nil |->
%D    F6 F7 |->
%D ))
%D enddiagram
$$\pu
  \diag{page59-D(r,-)-is-functorial}
$$

%D diagram page59-phi-is-natural
%D 2Dx     100 +20  +20 +20 +35 +30 +35
%D 2D  100     A1
%D 2D  +20 A2  A3
%D 2D  +20 A4  A5   F0  G0  G1  I0  I1
%D 2D  +17                          I3'
%D 2D  +8  A6  A7   F1  G2  G3  I2  I3
%D 2D  +15 B0  B1       H0  H1
%D 2D
%D ren    A1 ==>    c
%D ren A2 A3 ==>  r Sr
%D ren A4 A5 ==>  d Sd
%D ren A6 A7 ==> d' Sd'
%D ren B0 B1 ==>  D C
%D ren F0 F1 ==> d d'
%D ren G0 G1 G2 G3 ==> D(r,d) C(c,Sd) D(r,d') C(c,Sd')
%D ren H0 H1       ==> D(r,-) C(c,S-)
%D ren I0 I1 I3'   ==> f' Sf'∘u Sh∘(Sf'∘u)
%D ren    I2 I3    ==> h∘f' S(h∘f')∘u
%D
%D (( A1 A3  -> .plabel= r u
%D    A2 A3 |->
%D    A2 A4  -> .plabel= l f'
%D    A3 A5  -> .plabel= r Sf'
%D    A4 A5 |->
%D  # A1 A5  -> .slide= 20pt .plabel= r ∀f
%D    A2 A5 harrownodes nil 20 nil |->
%D
%D    A4 A6  -> .plabel= l h
%D    A5 A7  -> .plabel= r Sh
%D    A6 A7 |->
%D  # A1 A7  -> .slide= 20pt .plabel= r Sh∘f
%D    A4 A7 harrownodes nil 20 nil |->
%D
%D    B0 B1  -> .plabel= a S
%D  # C0 C1 <->
%D  # D0 D1 |->
%D  # D2 D3 <-|
%D
%D    F0 F1  -> .plabel= l h
%D    G0 G1  -> .plabel= a φ_d
%D    G0 G2  -> .plabel= l D(r,h)
%D    G1 G3  -> .plabel= r C(c,Sh)
%D    G2 G3  -> .plabel= a φ_{d'}
%D    H0 H1  -> .plabel= a φ
%D    I0 I1 |-> I1 I3' |->
%D    I0 I2 |-> I2 I3  |->
%D ))
%D enddiagram
$$\pu
  \diag{page59-phi-is-natural}
$$


\newpage

\subsection*{3. Coproducts and colimits}

% (find-books "__cats/__cats.el" "maclane")
% (find-cwm2page (+ 13  55) "III. Universals and Limits")
% (find-cwm2page (+ 13  62)   "3. Coproducts and Colimits")
% (find-cwm2page (+ 13  67) "cone")
% (find-cwm2text (+ 13  67) "cone")

(Page 67):

Cone and limiting cone:

We call $μ$ the {\sl limiting cone} or the {\sl universal cone} (from
$F$).

%D diagram p67
%D 2Dx     100 +35   +50 +30
%D 2D  100     A1
%D 2D  +20 A2  A3    C0  C1
%D 2D  +20 A4  A5    C2  C3
%D 2D  +15 B0  B1    D0  D1
%D 2D
%D ren    A1 ==>    F
%D ren A2 A3 ==> \Limr\,F Δ(\Limr\,F)
%D ren A4 A5 ==> ∀c Δc
%D ren B0 B1 ==> C  C^J
%D ren C0 C1 ==> \Colim\,F F
%D ren C2 C3 ==> c Δc
%D ren D0 D1 ==> C C^J
%D
%D (( A1 A3  -> .plabel= r μ
%D    A2 A3 |->
%D    A2 A4  -> .plabel= l ∃!t'
%D    A3 A5  -> .plabel= r Δt'
%D    A4 A5 |->
%D    A1 A5  -> .slide= 35pt .plabel= r ∀τ
%D    A2 A5 harrownodes nil 20 nil |->
%D    A2 relplace -30 0 \Colim\,F\;=
%D    B0 B1  -> .plabel= a Δ
%D ))
%D (( C0 C1 <-|
%D    C0 C2  ->
%D    C1 C3  ->
%D    C0 C3 harrownodes nil 20 nil <->
%D    C2 C3 |->
%D    D0 D1 <-  sl^ .plabel= a \Colim
%D    D0 D1  -> sl_ .plabel= b Δ
%D ))
%D enddiagram
%D
$$\pu
  \diag{p67}
$$

\subsection*{4. Products and limits}

(Page 68):

% (find-cwm2page (+ 13 68) "cone to the base F")
% (find-cwm2text (+ 13 68) "cone to the base F")

A {\sl limit} for a functor $F:J→C$ is a universal arrow $〈r,ν〉$ from
$Δ$ to $F$.

%D diagram p68-limits
%D 2Dx     100 +35   +50 +30
%D 2D  100 A0  A1
%D 2D  +20 A2  A3    C0  C1
%D 2D  +20 A4        C2  C3
%D 2D  +15 B0  B1    D0  D1
%D 2D
%D ren A0 A1 ==> Δc ∀c
%D ren A2 A3 ==> Δr r
%D ren A4    ==> F
%D ren B0 B1 ==> C^J  C
%D ren C0 C1 ==> Δc c
%D ren C2 C3 ==> F \Lim\,F
%D ren D0 D1 ==> C^J C
%D
%D (( A0 A1 <-|
%D    A0 A2  -> .plabel= l ∀?
%D    A1 A3  -> .plabel= r Δ?
%D    A0 A3 harrownodes nil 20 nil <-|
%D    A2 A3 |->
%D    A2 A4  -> .plabel= l ν
%D    A0 A4  -> .slide= -15pt .plabel= l τ
%D    A3 relplace 20 5 \mat{=\Lim\,F\\=\Liml\,F}
%D    B0 B1 <-  .plabel= a Δ
%D ))
%D (( C0 C1 <-|
%D    C0 C2  ->
%D    C1 C3  ->
%D    C0 C3 harrownodes nil 20 nil <->
%D    C2 C3 |->
%D    D0 D1 <-  sl^ .plabel= a Δ
%D    D0 D1  -> sl_ .plabel= b \Lim
%D ))
%D enddiagram
%D
$$\pu
  \diag{p68-limits}
$$

% (find-cwm2page (+ 13 69) "and its limiting cone")
% (find-cwm2text (+ 13 69) "and its limiting cone")

(Page 69):

...and its limiting cone $ν:\Lim\,F→ F$...

(or more precisely $ν:Δ(\Lim\,F)→ F$)



\newpage


\section*{V. Limits}

% «creation-of-limits»  (to ".creation-of-limits")
% (cwmp 14 "creation-of-limits")
% (cwm     "creation-of-limits")

\subsection*{1. Creation of Limits}

(Page 110):

% (find-books "__cats/__cats.el" "maclane")
% (find-cwm2page (+ 13 110) "Theorem 1 (Completeness of Set)")
% (find-cwm2text (+ 13 110) "Theorem 1 (Completeness of Set)")

{\bf Theorem 1 (Completeness of $\Set$).} If the category $J$ is
small, any functor $F: J→\Set$ has a limit which is the set
$\Cone(*,F)$ of all cones $σ:*→F$ from the one point set $*$ to $F$,
while the limiting cone $ν$, with
%
$$ν_j: \Cone(*,F) → F_j, \quad σ \mapsto σ_j,$$
%
is for each $j$ that function sending each cone $σ$ to the element
$σ_j∈Fj$.

% (excp 49 "guessing-nu-2-diag")
% (exc     "guessing-nu-2-diag")

%D diagram create-lims-thm-1
%D 2Dx     100 +20  +25 +65 +20  +30 +20 +20
%D 2D  100 A0  A1 - A2  C0  C1 - C2
%D 2D      |   |     |  |   |     |
%D 2D  +20 |   A4 - A5  |   C4 - C5
%D 2D      |   |        |   |      
%D 2D  +20 A6  A7       C6  C7     
%D 2D                              
%D 2D  +20 B0  B1 - B2  D0  D1 - D2
%D 2D
%D ren A0 A1 A2 ==> *   Δ* *
%D ren    A4 A5 ==>     ΔL L
%D ren A6 A7    ==> F_j F
%D ren B0 B1 B2 ==> \Set \Set^J \Set
%D
%D ren C0 C1 C2 ==>  X  ΔX ∀X
%D ren    C4 C5 ==>     ΔL  L
%D ren C6 C7    ==> F_j  F
%D ren D0 D1 D2 ==> \Set \Set^J \Set
%D
%D (( A0 A6 -> .plabel= l σ_j
%D    A1 A2 <-|
%D    A1 A7 -> .slide= -17pt .plabel= l ∀σ
%D    A1 A4 -> .plabel= l Δg
%D    A2 A5 -> .plabel= r \sm{∃!g\\:=λ*.σ}
%D    A1 A5 harrownodes nil 20 nil <-|
%D    A4 A5 <-|
%D       A5 relplace 27 0 :=\Hom(Δ*,F)
%D    A4 A7 -> .plabel= r ν:=λj.λσ.σ_j(*)
%D    B0 place
%D    B1 B2 <- sl^ .plabel= a Δ
%D    B1 B2 -> sl_ .plabel= b \Lim
%D
%D
%D    C0 C6 -> .plabel= l τ_j
%D    C1 C2 <-|
%D    C1 C7 -> .slide= -17pt .plabel= l ∀τ
%D    C1 C4 -> .plabel= l Δh
%D    C2 C5 -> .plabel= r \sm{∃!h\\:=λx.λj.λ*.τ_jx}
%D    C1 C5 harrownodes nil 20 nil <-|
%D    C4 C5 <-|
%D    C4 C7 -> .plabel= r \sm{ν:=λj.λσ.σ_j(*)\\(\univ)}
%D    D0 place
%D    D1 D2 <- sl^ .plabel= a Δ
%D    D1 D2 -> sl_ .plabel= b \Lim
%D ))
%D enddiagram
%D
$$\pu
  \diag{create-lims-thm-1}
$$


\newpage

(page 111):

% (find-cwm2page (+ 13 111) "Theorem 2")
% (find-cwm2text (+ 13 111) "Theorem 2")

{\bf Theorem 2.} Let $U: \Grp→\Set$ be the forgetful functor. If $H:
J→\Grp$ is such that the composite $UH$ has a limit $L$ and a limiting
cone $ν: L→UH$ in $Set$, then there is exactly one group structure on
the set $L$ for which each arrow $ν_j: L → UH_j$ of the cone $ν$ is a
morphism of groups; moreover, this group $L$ is a limit of $H$ with
$ν$ as limiting cone.

%D diagram create-lims-thm-2
%D 2Dx     100 +20  +25 +20 +20  +30 +20 +20
%D 2D  100 A0  A1 - A2  
%D 2D      |   |     |  
%D 2D  +20 |   A4 - A5  C0  C1 - C2
%D 2D      |   |        |   |     |
%D 2D  +20 A6  A7       |   C4 - C5
%D 2D                   |   |      
%D 2D  +20 B0  B1 - B2  C6  C7     
%D 2D                              
%D 2D  +20              D0  D1 - D2
%D 2D
%D 2D
%D ren A0 A1 A2 ==> G ΔG ∀G
%D ren    A4 A5 ==>   ΔK ∃!K
%D ren A6 A7    ==> H  H
%D ren B0 B1 B2 ==> \Grp \Grp^J \Grp
%D
%D ren C0 C1 C2 ==> UG ΔUG ∀UG
%D ren    C4 C5 ==>    ΔL  L
%D ren C6 C7    ==> UH UH
%D ren D0 D1 D2 ==> \Set \Set^J \Set
%D
%D (( A0 A6 -> .plabel= l λ
%D    A1 A2 <-|
%D    A1 A7 -> .slide= -15pt
%D    A1 A4 ->
%D    A2 A5 ->
%D    A1 A5 harrownodes nil 20 nil <-|
%D    A4 A5 <-|
%D    A4 A7 ->
%D    B0 place
%D    B1 B2 <- sl^ .plabel= a Δ
%D    B1 B2 -> sl_ .plabel= b \Lim
%D
%D    C0 C6 -> .plabel= l λ
%D    C1 C2 <-|
%D    C1 C7 -> .slide= -15pt
%D    C1 C4 ->
%D    C2 C5 ->
%D    C1 C5 harrownodes nil 20 nil <-|
%D    C4 C5 <-|
%D    C4 C7 -> .plabel= r \sm{ν\\(\univ)}
%D    D0 place
%D    D1 D2 <- sl^ .plabel= a Δ
%D    D1 D2 -> sl_ .plabel= b \Lim
%D ))
%D enddiagram
%D
$$\pu
  \diag{create-lims-thm-2}
$$



\bsk

(Page 112):

% (find-cwm2page (+ 13 112) "Definition. A functor" "creates limits")
% (find-cwm2text (+ 13 112) "Definition. A functor" "creates limits")

{\bf Def:} A functor $V: A → X$ creates limits for a functor $F: J →
A$ if

(i) To every limiting cone $τ: x→VF$ in $X$ there is exactly one pair
$〈a,σ〉$ consisting of an object $a∈A$ with $Va = x$ and a cone $σ:a→F$
with $Vσ=τ$, and if, moreover,

(ii) This cone $σ:a→F$ is a limiting cone in A.


%D diagram ??
%D 2Dx     100  +20  +20
%D 2D  100 A0 - A1
%D 2D      |  \    \
%D 2D  +20 A2   B0 - B1
%D 2D         \ |
%D 2D  +20      B2
%D 2D
%D 2D  +15 C0 - C1
%D 2D              \
%D 2D  +20      C2 - C3
%D 2D
%D ren A0 A1 A2 ==> Δa ∃!a F
%D ren B0 B1 B2 ==> Δx ∀x VF
%D ren C0 C1 C2 C3 ==> A^J A X^J X
%D
%D (( A0 A1 <-|
%D    A0 A2  -> .plabel= l \sm{\phantom{ooo}∃!σ\\(\univ)}
%D    B0 B1 <-|
%D    B0 B2  -> .plabel= r \sm{∀τ\;(=Vσ)\\\univ\phantom{ooooo}}
%D    newnode: B1' at: @B1+v(15,0) .TeX= ({=}Va) place
%D
%D    A0 B0 |->
%D    A1 B1 |->
%D    A2 B2 |->
%D
%D    C0 C1 <- sl^
%D    C0 C1 -> sl_
%D    C2 C3 <- sl^
%D    C2 C3 -> sl_
%D
%D    C1 C3 -> .plabel= r V
%D ))
%D enddiagram
%D
$$\pu
  \diag{??}
$$




\newpage

% «adjoints-on-limits»  (to ".adjoints-on-limits")
\subsection*{5. Adjoints on Limits}

% (find-books "__cats/__cats.el" "maclane")
% (find-cwm2page (+ 13 118) "5. Adjoints on Limits")
% (find-cwm2text (+ 13 118) "5. Adjoints on Limits")

(Page 118):

One of the most useful properties of adjoints is this: A functor which
is a right adjoint preserves all the limits which exist in its domain:

{\bf Theorem 1.} {\sl If the functor $G: A → X$ has a left adjoint,
  while the functor $T: J → A$ has a limiting cone $τ: a \tnto T$ in
  $A$, then $G T$ has the limiting cone $Gτ: Ga \tnto GT$ in $X$.}


% (favp 34 "comma-categories")
% (fav     "comma-categories")

$$\begin{array}{rl}
  \text{Take a limiting cone}
    & τ:a \tnto T \text{ in } A, \\
  \text{i.e.,}
    & τ:Δa→T \text{ in } A^J. \\
  \text{Suppose that $σ$ is a cone}
    & σ:x \tnto GT \text{ in } X, \\
  \text{i.e.,}
    & σ:Δx→GT \text{ in } X^J. \\
  \text{For every}
    & i∈J \\
  \text{we have}
    & Ti∈A, \\
    & GTi∈X, \\
    & (Δx)i=x∈X, \\
  \text{so}
    & σ_i:(Δx)i→GTi \text{ in } X, \\
  \text{or, equivalently,}
    & σ_i:x→GTi \text{ in } X. \\
  \text{So}
    & (σ_i)^♭:Fx→Ti \text{ in } A; \\
  \text{equivalently,}
    & (σ_i)^♭:(ΔFx)i→Ti \text{ in } A. \\
  \text{We can glue these `$(σ_i)^♭$'s to a}
    & σ^♭:ΔFx→T \text{ in } A^J; \\
  \text{it is a cone}
    & σ^♭:Fx→T \text{ in } A. \\
    \\
    \\
  \end{array}
$$




%D diagram ??
%D 2Dx     100 +25
%D 2D  100 A0  A1
%D 2D
%D 2D  +20 A2  A3
%D 2D
%D 2D  +15 B0  B1
%D 2D
%D ren A0 A1 ==> Δa ΔGa
%D ren A2 A3 ==> T  GT
%D ren B0 B1 ==> A  X
%D
%D (( A0 A1 |->
%D    A0 A2  -> .plabel= l \sm{τ\\(\univ)}
%D    A1 A3  -> .plabel= r \sm{Gτ\\(\univ)}
%D    A0 A3 harrownodes nil 20 nil |->
%D    A2 A3 |->
%D    B0 B1 <- sl^ .plabel= a F
%D    B0 B1 -> sl_ .plabel= b G
%D
%D ))
%D enddiagram
%D
$$\pu
  \diag{??}
$$


This proof can also be cast in a more sophisticated form by using the
fact that Lim is right adjoint to the diagonal functor .1. In fact,
given an adjunction...



% (riep 5 "4.5.2._RAPL")
% (rie    "4.5.2._RAPL")

%D diagram RAPL-2
%D 2Dx     100 +20 +40 +40 +40
%D 2D  100     A0 <--| A1
%D 2D  +20     A2 |--> A3
%D 2D  +10         A4 <--| A5
%D 2D  +20         A6  A7' A7
%D 2D
%D 2D  +20     B0 <==> B1
%D 2D  +30 B2'    B2 <==> B3
%D 2D
%D ren A0    A1     ==> ΔLA=L^\catIΔA ΔA
%D ren A2    A3     ==> D R^{\catI}D
%D ren    A4     A5 ==> LA A
%D ren    A6 A7' A7 ==> \lim\,D R(\lim\,D) \lim(R^\catI\,D)
%D ren B0    B1     ==> A^J X^J
%D ren B2    B3     ==>   A   X
%D ren B2'          ==> J
%D
%D (( A7' xy+= 5 0
%D
%D    # Horizontal arrows:
%D    A0 A1 <-|
%D    A2 A3 |->
%D    A4 A5 <-|
%D    A6 A7' |->
%D    B0 B1 <- sl^ .plabel= a F^J
%D    B0 B1 -> sl_ .plabel= b G^J
%D    B2 B3 <- sl^ .plabel= a F
%D    B2 B3 -> sl_ .plabel= b G
%D
%D    # Vertical arrows:
%D    A0 A2 ->
%D    A1 A3 ->
%D    A4 A6 ->
%D    A5 A7 ->
%D    A5 A7' ->
%D
%D    # Diagonal arrows:
%D    A0 A4 <-|
%D    A1 A5 <-|
%D    A2 A6 |->
%D    A3 A7 |->
%D
%D    B0 B2 <- sl^ .plabel= a Δ
%D    B0 B2 -> sl_ .plabel= b \Liml
%D    B1 B3 <- sl^ .plabel= a Δ
%D    B1 B3 -> sl_ .plabel= b \Liml
%D    B2' B2 -> .plabel= a T
%D ))
%D enddiagram
%D
$$\pu
  \diag{RAPL-2}
$$





\newpage




%  _  __           
% | |/ /__ _ _ __  
% | ' // _` | '_ \ 
% | . \ (_| | | | |
% |_|\_\__,_|_| |_|
%                  
% «kan-extensions»  (to ".kan-extensions")
\section*{X. Kan Extensions}
\subsection*{3. The Kan Extension}

% (find-books "__cats/__cats.el" "maclane")
% (find-cwm2page (+ 13 233) "X. Kan Extensions")
% (find-cwm2page (+ 13 236) "3. The Kan Extension")

\def\Dn#1{\Downarrow\scriptstyle #1}


% «cwm-page-236»  (to ".cwm-page-236")

% (favp 45 "kan-extensions")
% (fav     "kan-extensions")

%D diagram kan-1
%D 2Dx     100  +35
%D 2D  100 A0 - A1
%D 2D      |     |
%D 2D  +20 A2 - A3
%D 2D      |
%D 2D  +20 A4
%D 2D
%D 2D  +15 B0 = B1
%D 2D
%D 2D  +15 C0 - C1
%D 2D
%D ren A0 A1 ==> SK ∀S
%D ren A2 A3 ==> RK R{:=}\Ran_KT
%D ren A4    ==> T
%D ren B0 B1 ==> A^M A^C
%D ren C0 C1 ==>   M   C 
%D
%D (( A0 A1 <-|
%D    A0 A2  -> .plabel= l σK
%D    A1 A3  -> .plabel= r \sm{∃!σ.\\α=ε·σK}
%D    A0 A3 harrownodes nil 20 nil <-|
%D    A2 A3 <-|
%D    A2 A4  -> .plabel= l \sm{ε\\(\univ)}
%D    A0 A4  -> .slide= -30pt .plabel= l ∀α
%D    B0 B1 <-  sl^ .plabel= a A^K
%D    B0 B1  -> sl_ .plabel= b \Ran_K
%D    C0 C1  ->     .plabel= a K
%D ))
%D enddiagram
%D
%D diagram kan-2-cells-1
%D 2Dx     100 +25 +25
%D 2D  100     A1      
%D 2D        /   \     
%D 2D  +25 A0 ---- A2  
%D 2D
%D ren A0 A1 A2 ==> M C A
%D
%D (( A0 A1 ->                .plabel= a K
%D    A1 A2 -> .curve= _10pt  .plabel= m R
%D    A1 A2 -> .curve= ^20pt  .plabel= a ∀S
%D    A0 A2 ->                .plabel= b T
%D    A0 A2 midpoint relplace -4 -8 \Dn{ε}
%D    A1 A2 midpoint relplace  4 -2 \Dn{∃!σ}
%D ))
%D enddiagram
%D
$$\pu
  \diag{kan-1}
  \qquad
  \quad
  \diag{kan-2-cells-1}
$$

\msk

$$\begin{array}{rcl}
  \Nat(SK,T) & ≅ & \Nat(S,\Ran_KT) \\
        ε·σK & \mapsot & σ \\
  \end{array}
  \qquad
  \begin{array}{l}
  ∀S. \\
  ∀α: SK \to T. \\
  ∃!σ. \; α=ε·σK \\
  \end{array}
$$

\GenericWarning{Success:}{Success!!!}  % Used by `M-x cv'

\end{document}




% «elisp»  (to ".elisp")

(defun diagskel-univ () (interactive) (insert "
%D diagram p58.1
%D 2Dx     100 +20
%D 2D  100     A1
%D 2D  +20 A2  A3
%D 2D  +20 A4  A5
%D 2D  +15 B0  B1
%D 2D
%D ren    A1 ==>    ?
%D ren A2 A3 ==>  ? ?
%D ren A4 A5 ==> ∀? ?
%D ren B0 B1 ==>  ? ?
%D
%D (( A1 A3  -> .plabel= r ?
%D    A2 A3 |->
%D    A2 A4  -> .plabel= l ∃!?
%D    A3 A5  -> .plabel= r ??
%D    A4 A5 |->
%D    A1 A5  -> .slide= 20pt .plabel= r ∀?
%D    A2 A5 harrownodes nil 20 nil |->
%D    B0 B1  -> .plabel= a ?
%D ))
%D enddiagram
$$\\pu
  \\diag{??}
$$
"))


%  __  __       _        
% |  \/  | __ _| | _____ 
% | |\/| |/ _` | |/ / _ \
% | |  | | (_| |   <  __/
% |_|  |_|\__,_|_|\_\___|
%                        
% <make>

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# (find-LATEXfile "2019planar-has-1.mk")
make -f 2019.mk STEM=2020cwm veryclean
make -f 2019.mk STEM=2020cwm pdf

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