The Revised and Uniform Fundamental Groups \\ and Universal Covers of Geodesic Spaces
Jay Wilkins
Department of Mathematics
196 Auditorium Road
Unit 3009
Storrs
CT 06269-3009
Sormani and Wei proved in 2004 that a compact geodesic space has a categorical universal cover if and only if its covering/critical spectrum is finite. We add to this several equivalent conditions pertaining to the geometry and topology of the revised and uniform fundamental groups. We show that a compact geodesic space $X$ has a universal cover if and only if the following hold: 1) its revised and uniform fundamental groups are finitely presented, or, more generally, countable; 2) its revised fundamental group is discrete as a quotient of the topological fundamental group $\pi_1^{top}(X)$. In the process, we classify the topological singularities in $X$, and we show that the above conditions imply closed liftings of all sufficiently small path loops to all covers of $X$, generalizing the traditional semilocally simply connected property. A geodesic space $X$ with this new property is called semilocally $r$-simply connected, and $X$ has a universal cover if and only if it satisfies this condition. We then introduce a topology on $\pi_1(X)$ called the covering topology, which always makes $\pi_1(X)$ a topological group. We establish several connections between properties of the covering topology, the existence of simply connected and universal covers, and geometries on the fundamental group. Key words and phrases: geodesic space; critical spectrum; universal cover; revised fundamental group; uniform fundamental group; topological fundamental group. 2010 Mathematics Subject Classification: Primary 54E45; Secondary 57M10, 54H11, 20F38.
diagrams.sty.tex
% mangletex (24 Nov 1995) run at 14:58 BST Wednesday 11 May 2011
\message{==================================================================}%
\message{<Paul Taylor's commutative diagrams - version 3.94, April 2011>}%%
%%
%% This code runs the LaTeX \ProvidesPackage command iff it is defined.
%% included at the request of Michael Downes <mjd@ams.org> March 2002.
%% Put \listfiles in your LaTeX preamble to see what this is for.
\expandafter\ifx\csname ProvidesPackage\endcsname\relax\toks0=\expandafter{%
\fi\ProvidesPackage{diagrams}[2011/04/19 v3.94 Paul Taylor's commutative
diagrams]%%
\toks0=\bgroup}%%
%%======================================================================%
%%      TeX  macros for drawing category-theoretic diagrams             %
%%                                                                      %
%%                              Paul  Taylor                            %
%%                                                                      %
%%             		www.PaulTaylor.EU/diagrams			%
%%	www.ctan.org/tex-archive/macros/generic/diagrams/taylor/	%
%%			   diagrams@PaulTaylor.EU			%
%%                                                                      %
%%                           PLEASE READ THE MANUAL!                    %
%%                                                                      %
%%      Please ensure that you are registered with me as a user so that %
%%      you can be informed of future releases.  Any electronic mail    %
%%      message with "commutative" or "diagram" in the subject line     %
%%      (such as your request for the package, a question about it, or  %
%%      even an otherwise blank message) automatically registers you.   %
%%                                                                      %
%%                                                                      %
%% CONTENTS:                                                            %
%%  (O) corruption-sensitive hacks    (to approx line 331)              %
%%      Arrow components & commands - starts approx line 1247           %
%% (22) auxillary macros for adjustment of components                   %
%% (23) bits of arrows  (\rhvee etc)                                    %
%% (24) arrow commands  (\rTo etc)                                      %
%% (25) miscellaneous                                                   %
%% Apart from these five sections, the rest is intended to be totally   %
%% meaningless in the undocumented version, which is approximately      %
%% 1922  lines long. Please do not waste trees by printing it out.      %
%%                                                                      %
%% COPYRIGHT NOTICE:                                                    %
%%      This package may be copied and used freely for any academic     %
%%      (not commercial or military) purpose, on condition that it      %
%%      is not altered in any way, and that an acknowledgement is       %
%%      included in any published work making substantial use of it.    %
%%                                                                      %
%%      IT IS SUPPLIED "AS IS", WITHOUT WARRANTY, EXPRESS OR IMPLIED.   %
%%                                                                      %
%%      If you are doing something where mistakes cost money (or where  %
%%      success brings financial profit) then you must use commercial   %
%%      software, not this package. In any case, please remember to     %
%%      keep several backup copies of all files, and check everything   %
%%      visually before sending final copy to the publishers.           %
%%                                                                      %
%%      You may use this package as a (substantial) aid to writing an   %
%%      academic research or text book on condition that                %
%%       (i) you contact me at a suitable time to ensure that you have  %
%%           an up-to-date version (and any infelicities can be fixed), %
%%      (ii) you send me a copy of the book when it's published.        %
%%                                                                      %
%% HISTORY                                                              %
%% 3.94 Released 11 May 2011						%
%%	defined <= tail							%
%% 3.93 Released 9 June 2009						%
%%	Added support for XeTeX, with help from Apostolos Syropoulos.	%
%% 3.92 Released 31 December 2007                                       %
%% 3.91 Released 31 August 2006                                         %
%%	Renamed "noPostScript" option as "UglyObsolete".		%
%% 3.90 Released 11 April 2004                                          %
%%      use PostScript=Rokicki not pure DVI by default                  %
%% 3.89 Released 7 July 2002                                            %
%%      Added support for pdftex, which is recognised automatically.    %
%% 3.88 Released 1 September 2000                                       %
%%      Square hook tail: \newarrow{SquareInto}{sqhook}--->             %
%% 3.87 Released 1 September 1999                                       %
%%      This version was used for the final 1200dpi PS copy of my book  %
%%      ``Practical Foundations of Mathematics'' (Cambridge Univ Press) %
%%      see   http://www.PaulTaylor.EU/Practical_Foundations            %
%% 3.86 Released 1 September 1998                                       %
%%      New options hug and nohug in PostScript mode: [PS,nohug] uses   %
%%      PS for the arrows without rotating the labels, but the way of   %
%%      calculating the actual position of these horizontal labels on   %
%%      will remain subject to alteration for some period of time ---   %
%%      please send me examples if you feel that adjustment is needed.  %
%%                                                                      %
%%      midvshaft and snake for vertical arrows                         %
%%      New option [gap=width] (default=shortfall) to use instead of    %
%%      ~{\;} on horizontals and PS diagonals, as this caused ^ and _   %
%%      labels to be moved too far away from the shaft.                 %
%%      Added >-> and <-< heads and tails, same as >> and << but the    %
%%      shaft goes *through* the extra arrowhead.                       %
%% 3.85 Released 20 August 1997                                         %
%%      New option [crab=distance] shifts horizontals and PS diagonals  %
%%      transversally by the specified distance (positive=upward).      %
%%      New option [snake=distance] shifts midshaft horizontals and     %
%%      PS diagonals longitudinally by the specified distance.          %
%%      New option [leftflush], like [flushleft] but reckons alignment  %
%%      from multiple verticals, or from text if there's no vertical.   %
%%      Most of the history has been suppressed from the user version.  %
%% 3.83 Released 18 May 1995                                            %
%%      "dotted" option (set dot filler on maps)                        %
%%      Parallel maps (\pile) outside diagrams stretch correctly.       %
%%      Option "LaTeXeqno" uses LaTeX's equation number and style       %
%%      for "eqno";  LaTeX's \label command picks this up.              %
%%      Suppress warnings & 2nd pass errors with "silent" option.       %
%% 3.81 Second alpha release 18 July 1994                               %
%%      \overprint{text} sets text in maths and overprints it in the    %
%%      current cell, centered in the column irrespective of other stuff%
%%      "repositionpullbacks" option uses this for \SEpbk etc           %
%%      \newdiagramgrid declaration, grid option and pentagon grid.     %
%% 3.80 Alpha release for adjusted diagonals 15 July 1994.              %
%%      Introduced landscape and portrait options.                      %
%%      Diagonals adjusted to meet their endpoints, at last!!!!         %
%% 3.28 Released 30 November 1993                                       %
%%      Peter Freyd's \puncture symbol provided.                        %
%% 3.25 Released 30 January 1993                                        %
%%      LaTeX heads made default (unless \tenln undefined, when vee)    %
%%      Circle, cross, little vee, little black triangle heads.         %
%%      First-use warning when defaulted diagonal components are used.  %
%%      AMSTEX emulation - works at least when amstex not present.      %
%% 3.24 Release 7 Sept 1992 advertised to users.                        %
%%      PostScript option introduced:                                   %
%%      LaTeX, vee, curlyvee, triangle & blacktriangle heads & tails    %
%%      TPIC option introduced as an alternative to \LaTeX@make@line.   %
%%      Postscript arrows (basic code).                                 %
%%      Implemented \newarrow \newarrowhead etc.                        %
%%      Horizontal arrows outside diagram can stretch by wordspacing.   %
%%      Added < and > for labels on left and right of arrow;            %
%% 3.16 (20.7.90) as mass mailed; only have mangled version             %
%% -- all following version numbers are post-facto --                   %
%%  3   (Jan 90) stretching vertical arrows                             %
%%  2   (Sept 89) horizontals stretch to objects; "superscript" labels  %
%%  1   (1987) horizontal arrows stretch to edge of cell                %
%%  0   (1986) implementation of Knuth's TeXercise 18.46 for my thesis  %
%%======================================================================%

%%======================================================================%
%%                                                                      %
%%      (1) CORRUPTION-SENSITIVE HACKS                                  %
%%                                                                      %
%%======================================================================%

%%                      CORRUPTION & \catcode WARNING

%% BITNET (IBM) machines may corrupt certain important characters
%% in transmission by electronic mail:
%%        0123456789=digits, abcdefghijklmnopqrstuvwxyz=lowers,
%%        ABCDEFGHIJKLMNOPQRSTUVWXYZ=uppers, @=at (internal names),
%%        {}=curly braces (grouping), \=backslash (keywords),
%%        %=percent (comment), #=hash/sharp (argument), +=plus, -=minus,
%%        <>=angle brackets (relations \ifnum,\ifdim), ==equals,
%%        ,=comma, .=dot, :=colon, ;=semicolon,  =space
%% $=dollar (maths) is only used in the "bits of maps" section

%% The following characters are marked by a comment including the word "ASCII",
%% except in comments and messages:
%%        &=and (alignment), ~=tilde, |=vertical, []=square brackets,
%%        ^=caret (superscript), _=underline (subscript),
%%        "=double quote (hex), ()=round brackets,
%%        /=slash, ?=query, !=pling/bang, 
%% The following are no longer flagged:
%%        `=grave/backquote (catcodes), '=acute/single quote (octal),

%% The \catcode's marked * are assumed for reading this file:
%%          \=0* {=1* }=2* $=3 &=4 return=5* #=6 ^=7 _=8 ignored=9*
%%          space=10* letter=11* other=12 active=13 %=14* invalid=15
%% If you want to load this package inside Stallman's "texinfo", you must do
%%% @catcode`@\=0 \catcode`\%=14 \input diagrams \catcode`\%=12 \catcode`\\=13
%% and then use @diagram @rTo @\ @enddiagram etc. (braces {} stay the same).
%% Also need @catcode`@&=4.

%%*** You *MUST NOT* use the internal commands (with names beginning \CD@)****

%% don't load me twice!
\ifx\diagram\isundefined\else\message{WARNING: the \string\diagram\space
command is already defined and will not be loaded again}\expandafter\endinput
\fi

%% make @ letter, saving its old code to restore at the end of this file
%%% look for this on the last line of the file if you think something's missing!
%% the other \catcode assignments are to make it work with texinfo.
\edef\cdrestoreat{%%
\noexpand\catcode`\noexpand\@=\the\catcode`\@%%
\noexpand\catcode`\noexpand\#=\the\catcode`\#%%
\noexpand\catcode`\noexpand\$=\the\catcode`\$%%
\noexpand\catcode`\noexpand\<=\the\catcode`\<%%
\noexpand\catcode`\noexpand\>=\the\catcode`\>%%
\noexpand\catcode`\noexpand\:=\the\catcode`\:%% Johannes L. Braams's
\noexpand\catcode`\noexpand\;=\the\catcode`\;%% Babel languages package
\noexpand\catcode`\noexpand\!=\the\catcode`\!%% makes these \active.
\noexpand\catcode`\noexpand\?=\the\catcode`\?%%
\noexpand\catcode`\noexpand\+=\the\catcode'53%% texinfo @+ is @outer@active
}\catcode`\@=11 \catcode`\#=6 \catcode`\<=12 \catcode`\>=12 \catcode'53=12
\catcode`\:=12 \catcode`\;=12 \catcode`\!=12 \catcode`\?=12

%% Change y to n if pool_size in your implementation of TeX is small.
%% This is reasonable if you have a small ("personal") computer, but if you
%%% have a sun, dec, hp, ... workstation or a mainframe, complain to your local
%% system manager and get him/her to install a version of TeX with bigger
%% parameters. The "hash size" (number of command names) gets you next.
\ifx\diagram@help@messages\CD@qK\let\diagram@help@messages y\fi

%% The following macro is used to include literal PostScript commands in the
%% DVI file for rotation, etc.  Since this goes beyond standard TeX, it is
%%% dependent on the convention used by your local DVI-to-PostScript translator.
%% Choose whichever line applies to the program used at your site, or, if
%% yours is not listed, consult the manual, experiment with this macro and
%% (please) tell me what is needed to make it work.
%%
%%
%%% dvips (Tomas Rokicki, Radical Eye) labrea.stanford.edu /pub/dvips9999.tar.Z
%% CTAN: dviware/dvips
\def\cdps@Rokicki#1{\special{ps:#1}}\let\cdps@dvips\cdps@Rokicki\let
\cdps@RadicalEye\cdps@Rokicki\let\CD@HB\cdps@Rokicki\let\CD@IK\cdps@Rokicki
\let\CD@HB\cdps@Rokicki%%
%% I'm not sure that the rest work.
%%
%% dvitps (Stephan Bechtolsheim, Integrated Computer Systems)
%% arthur.cs.purdue.edu /pub/TeXPS-9.99.tar.Z
\def\cdps@Bechtolsheim#1{\special{dvitps: Literal "#1"}}%
%% ASCII two dbl quotes
\let\cdps@dvitps\cdps@Bechtolsheim\let\cdps@IntegratedComputerSystems
\cdps@Bechtolsheim%%
%% dvitops (James Clark)
%% CTAN: dviware/dvitops
\def\cdps@Clark#1{\special{dvitops: inline #1}}%%
\let\cdps@dvitops\cdps@Clark%%
%% OzTeX (Andrew Trevorrow) cannot be used
\let\cdps@OzTeX\empty\let\cdps@oztex\empty\let\cdps@Trevorrow\empty%%
%% dvi3ps (Kevin Coombes)
%% CTAN: dviware/dvi2ps/dvi3ps
\def\cdps@Coombes#1{\special{ps-string #1}}%%
%% psprint (Trevorrow) CTAN: dviware/psprint
%% dvi2ps (Senn) CTAN: dviware/dvi2ps
%% psdvi (Elwell) CTAN: dviware/dvi2ps/psdvi

\count@=\year\multiply\count@12 \advance\count@\month%%
\ifnum\count@>24180 %% (December 2014)
\message{***********************************************************}%%ascii
\message{! YOU HAVE AN OUT OF DATE VERSION OF COMMUTATIVE DIAGRAMS! *}%%
\message{! it expired in December 2014 and is time-bombed for April *}%%
\message{! You may get an up to date version of this package from *}%%ascii
\message{! either www.ctan.org or www.PaulTaylor.EU/diagrams/ *}%%
\message{***********************************************************}%%ascii
\ifnum\count@>24183 %% (March 2015)
\errhelp{You may press RETURN and carry on for the time being.}\message{! It
is embarrassing to see papers in conference proceedings}\message{! and
journals containing bugs which I had fixed years before.}\message{! It is easy
to obtain and install a new version, which will}\errmessage{! remain
compatible with your files. Please get it NOW.}\fi\fi

\def\CD@DE{\global\let}\def\CD@RH{\outer\def}

%% safe names for braces, tab (&) and maths ($), as commands and for messages
{\escapechar\m@ne\xdef\CD@o{\string\{}\xdef\CD@yC{\string\}}%%
%%
%% three ASCII ampersands (ands) (&&&) appear on the next line
\catcode`\&=4 \CD@DE\CD@Q=&\xdef\CD@S{\string\&}%%ascii three ands
%%
%% ASCII ^ and _ each appear twice on next line
%% six ASCII dollars ($$$$$$) appear on the next two lines.
\catcode`\$=3 \CD@DE\CD@k=$\CD@DE\CD@ND=$%%ascii three dollars
\xdef\CD@nC{\string\$}\gdef\CD@LG{$$}%%ascii three dollars
%%
%% two ASCII underlines (__) appear on the next line.
\catcode`\_=8 \CD@DE\CD@lJ=_%%ascii two underlines
%%
%% eight ASCII carets (^^^^^^^^) appear on the next three lines.
\obeylines\catcode`\^=7 \CD@DE\@super=^%%ascii two carets
\ifnum\newlinechar=10 \gdef\CD@uG{^^J}%%ascii two carets
\else\ifnum\newlinechar=13 \gdef\CD@uG{^^M}%%ascii two carets
\else\ifnum\newlinechar=-1 \gdef\CD@uG{^^J}%%ascii two carets
\else\CD@DE\CD@uG\space\expandafter\message{! input error: \noexpand
\newlinechar\space is ASCII \the\newlinechar, not LF=10 or CR=13.}%%
\fi\fi\fi}%%

%% avoid using <> (because I personally re-define them to mean \langle\rangle)
\mathchardef\lessthan='30474 \mathchardef\greaterthan='30476

%% LaTeX line and arrowhead font
%% the "hit return" comments show up if the font is missing.
\ifx\tenln\CD@qK%%
\font\tenln=line10\relax%% Hit return - who needs diagonals?
\fi\ifx\tenlnw\CD@qK\ifx\tenln\nullfont\let\tenlnw\nullfont\else%%
\font\tenlnw=linew10\relax%% Hit return - who needs diagonals?
\fi\fi%%

%% report line numbers in TeX3 only
\ifx\inputlineno\CD@qK\csname newcount\endcsname\inputlineno\inputlineno\m@ne
\message{***************************************************}\message{!
Obsolete TeX (version 2). You should upgrade to *}\message{! version 3, which
has been available since 1990. *}\message{***********************************%
****************}\fi

\def\cd@shouldnt#1{\CD@KB{* THIS (#1) SHOULD NEVER HAPPEN! *}}

%% turn round- and square-bracketed arguments into curly-bracketed
\def\get@round@pair#1(#2,#3){#1{#2}{#3}}%%ascii round brackets ()
\def\get@square@arg#1[#2]{#1{#2}}%%ascii square brackets []
\def\CD@AE#1{\CD@PK\let\CD@DH\CD@@E\CD@@E#1,],}%%ascii sq brackets
\def\CD@m{[}\def\CD@RD{]}\def\commdiag#1{{\let\enddiagram\relax\diagram[]#1%
\enddiagram}}

%% ASCII open square bracket occurs on next line
\def\CD@BF{{\ifx\CD@EH[\aftergroup\get@square@arg\aftergroup\CD@YH\else
\aftergroup\CD@JH\fi}}%%
\def\CD@CF#1#2{\def\CD@YH{#1}\def\CD@JH{#2}\futurelet\CD@EH\CD@BF}

%% ASCII vertical bar (|) occurs on the next line
\def\CD@KK{|}

\def\CD@PB{%% arguments to maps inside diagrams
\tokcase\CD@DD:\CD@y\break@args;\catcase\@super:\upper@label;\catcase\CD@lJ:%
\lower@label;\tokcase{~}:\middle@label;%%ascii tilde
\tokcase<:\CD@iF;%%ascii less-than
\tokcase>:\CD@iI;%%ascii greater-than
\tokcase(:\CD@BC;%%)%ascii open round bracket
\tokcase[:\optional@;%%]%ascii open square bracket
\tokcase.:\CD@JJ;%%ascii dot 12.7.94
\catcase\space:\eat@space;\catcase\bgroup:\positional@;\default:\CD@@A
\break@args;\endswitch}

\def\switch@arg{%% arguments to horizontal maps outside diagrams
\catcase\@super:\upper@label;\catcase\CD@lJ:\lower@label;\tokcase[:\optional@
;%%]%ascii open square bracket
\tokcase.:\CD@JJ;%%ascii dot 12.7.94 % ; was : before 15.6.97
\catcase\space:\eat@space;\catcase\bgroup:\positional@;\tokcase{~}:%
\middle@label;%%ascii tilde (questionable!)
\default:\CD@y\break@args;\endswitch}

%% That's as much as you get to read "in clear" - the rest is private!

\let\CD@tJ\relax\ifx\protect\CD@qK\let\protect\relax\fi\ifx\AtEndDocument
\CD@qK\def\CD@PG{\CD@gB}\def\CD@GF#1#2{}\else\def\CD@PG#1{\edef\CD@CH{#1}%
\expandafter\CD@oC\CD@CH\CD@OD}\def\CD@oC#1\CD@OD{\AtEndDocument{\typeout{%
\CD@tA: #1}}}\def\CD@GF#1#2{\gdef#1{#2}\AtEndDocument{#1}}\fi\def\CD@ZA#1#2{%
\def#1{\CD@PG{#2\CD@mD\CD@W}\CD@DE#1\relax}}\def\CD@uF#1\repeat{\def\CD@p{#1}%
\CD@OF}\def\CD@OF{\CD@p\relax\expandafter\CD@OF\fi}\def\CD@sF#1\repeat{\def
\CD@q{#1}\CD@PF}\def\CD@PF{\CD@q\relax\expandafter\CD@PF\fi}\def\CD@tF#1%
\repeat{\def\CD@r{#1}\CD@QF}\def\CD@QF{\CD@r\relax\expandafter\CD@QF\fi}\def
\CD@tG#1#2#3{\def#2{\let#1\iftrue}\def#3{\let#1\iffalse}#3}\if y%
\diagram@help@messages\def\CD@rG#1#2{\csname newtoks\endcsname#1#1=%
\expandafter{\csname#2\endcsname}}\else\csname newtoks\endcsname\no@cd@help
\no@cd@help{See the manual}\def\CD@rG#1#2{\let#1\no@cd@help}\fi\chardef\CD@lF
=1 \chardef\CD@lI=2 \chardef\CD@MH=5 \chardef\CD@tH=6 \chardef\CD@sH=7
\chardef\CD@PC=9 \dimendef\CD@hI=2 \dimendef\CD@hF=3 \dimendef\CD@mF=4
\dimendef\CD@mI=5 \dimendef\CD@wJ=6 \dimendef\CD@tI=8 \dimendef\CD@sI=9
\skipdef\CD@uB=1 \skipdef\CD@NF=2 \skipdef\CD@tB=3 \skipdef\CD@ZE=4 \skipdef
\CD@JK=5 \skipdef\CD@kI=6 \skipdef\CD@kF=7 \skipdef\CD@qI=8 \skipdef\CD@pI=9
\countdef\CD@JC=9 \countdef\CD@gD=8 \countdef\CD@A=7 \def\sdef#1#2{\def#1{#2}%
}\def\CD@L#1{\expandafter\aftergroup\csname#1\endcsname}\def\CD@RC#1{%
\expandafter\def\csname#1\endcsname}\def\CD@sD#1{\expandafter\gdef\csname#1%
\endcsname}\def\CD@vC#1{\expandafter\edef\csname#1\endcsname}\def\CD@nF#1#2{%
\expandafter\let\csname#1\expandafter\endcsname\csname#2\endcsname}\def\CD@EE
#1#2{\expandafter\CD@DE\csname#1\expandafter\endcsname\csname#2\endcsname}%
\def\CD@AK#1{\csname#1\endcsname}\def\CD@XJ#1{\expandafter\show\csname#1%
\endcsname}\def\CD@ZJ#1{\expandafter\showthe\csname#1\endcsname}\def\CD@WJ#1{%
\expandafter\showbox\csname#1\endcsname}\def\CD@tA{Commutative Diagram}\edef
\CD@kH{\string\par}\edef\CD@dC{\string\diagram}\edef\CD@HD{\string\enddiagram
}\edef\CD@EC{\string\\}\def\CD@eF{LaTeX}\ifx\@ignoretrue\CD@qK\expandafter
\CD@tG\csname if@ignore\endcsname\ignore@true\ignore@false\def\@ignoretrue{%
\global\ignore@true}\def\@ignorefalse{\global\ignore@false}\fi

\def\CD@g{{\ifnum0=`}\fi}\def\CD@wC{\ifnum0=`{\fi}}\def\catcase#1:{\ifcat
\noexpand\CD@EH#1\CD@tJ\expandafter\CD@kC\else\expandafter\CD@dJ\fi}\def
\tokcase#1:{\ifx\CD@EH#1\CD@tJ\expandafter\CD@kC\else\expandafter\CD@dJ\fi}%
\def\CD@kC#1;#2\endswitch{#1}\def\CD@dJ#1;{}\let\endswitch\relax\def\default:%
#1;#2\endswitch{#1}\ifx\at@\CD@qK\def\at@{@}\fi\edef\CD@P{\CD@o pt\CD@yC}%
\CD@RC{\CD@P>}#1>#2>{\CD@z\rTo\sp{#1}\sb{#2}\CD@z}\CD@RC{\CD@P<}#1<#2<{\CD@z
\lTo\sp{#1}\sb{#2}\CD@z}\CD@RC{\CD@P)}#1)#2){\CD@z\rTo\sp{#1}\sb{#2}\CD@z}%
%%ascii round
\CD@RC{\CD@P(}#1(#2({\CD@z\lTo\sp{#1}\sb{#2}\CD@z}%%ascii brack
\def\CD@O{\def\endCD{\enddiagram}\CD@RC{\CD@P A}##1A##2A{\uTo<{##1}>{##2}%
\CD@z\CD@z}\CD@RC{\CD@P V}##1V##2V{\dTo<{##1}>{##2}\CD@z\CD@z}\CD@RC{\CD@P=}{%
\CD@z\hEq\CD@z}\CD@RC{\CD@P\CD@KK}{\vEq\CD@z\CD@z}\CD@RC{\CD@P\string\vert}{%
\vEq\CD@z\CD@z}\CD@RC{\CD@P.}{\CD@z\CD@z}\let\CD@z\CD@Q}\def\CD@IE{\let\tmp
\CD@JE\ifcat A\noexpand\CD@CH\else\ifcat=\noexpand\CD@CH\else\ifcat\relax
\noexpand\CD@CH\else\let\tmp\at@\fi\fi\fi\tmp}\def\CD@JE#1{\CD@nF{tmp}{\CD@P
\string#1}\ifx\tmp\relax\def\tmp{\at@#1}\fi\tmp}\def\CD@z{}\begingroup
\aftergroup\def\aftergroup\CD@T\aftergroup{\aftergroup\def\catcode`\@\active
\aftergroup @\endgroup{\futurelet\CD@CH\CD@IE}}\newcount\CD@uA\newcount\CD@vA
\newcount\CD@wA\newcount\CD@xA\newdimen\CD@OA\newdimen\CD@PA\CD@tG\CD@gE
\CD@@A\CD@y\CD@tG\CD@hE\CD@EA\CD@BA\newdimen\CD@RA\newdimen\CD@SA\newcount
\CD@yA\newcount\CD@zA\newdimen\CD@QA\newbox\CD@DA\CD@tG\CD@lE\CD@dA\CD@bA
\newcount\CD@LH\newcount\CD@TC\def\CD@V#1#2{\ifdim#1<#2\relax#1=#2\relax\fi}%
\def\CD@X#1#2{\ifdim#1>#2\relax#1=#2\relax\fi}\newdimen\CD@XH\CD@XH=1sp
\newdimen\CD@zC\CD@zC\z@\def\CD@cJ{\ifdim\CD@zC=1em\else\CD@nJ\fi}\def\CD@nJ{%
\CD@zC1em\def\CD@NC{\fontdimen8\textfont3 }\CD@@J\CD@NJ\setbox0=\vbox{\CD@t
\noindent\CD@k\null\penalty-9993\null\CD@ND\null\endgraf\setbox0=\lastbox
\unskip\unpenalty\setbox1=\lastbox\global\setbox\CD@IG=\hbox{\unhbox0\unskip
\unskip\unpenalty\setbox0=\lastbox}\global\setbox\CD@KG=\hbox{\unhbox1\unskip
\unpenalty\setbox1=\lastbox}}}\newdimen\CD@@I\CD@@I=1true in \divide\CD@@I300
\def\CD@zH#1{\multiply#1\tw@\advance#1\ifnum#1<\z@-\else+\fi\CD@@I\divide#1%
\tw@\divide#1\CD@@I\multiply#1\CD@@I}\def\MapBreadth{\afterassignment\CD@gI
\CD@LF}\newdimen\CD@LF\newdimen\CD@oI\def\CD@gI{\CD@oI\CD@LF\CD@V\CD@@I{4%
\CD@XH}\CD@X\CD@@I\p@\CD@zH\CD@oI\ifdim\CD@LF>\z@\CD@V\CD@oI\CD@@I\fi\CD@cJ}%
\def\CD@RJ#1{\CD@zD\count@\CD@@I#1\ifnum\count@>\z@\divide\CD@@I\count@\fi
\CD@gI\CD@NJ}\def\CD@NJ{\dimen@\CD@QC\count@\dimen@\divide\count@5\divide
\count@\CD@@I\edef\CD@OC{\the\count@}}\def\CD@AJ{\CD@QJ\z@}\def\CD@QJ#1{%
\CD@tI\axisheight\advance\CD@tI#1\relax\advance\CD@tI-.5\CD@oI\CD@zH\CD@tI
\CD@sI-\CD@tI\advance\CD@tI\CD@LF}\newdimen\CD@DC\CD@DC\z@\newdimen\CD@eJ
\CD@eJ\z@\def\CD@CJ#1{\CD@sI#1\relax\CD@tI\CD@sI\advance\CD@tI\CD@LF\relax}%
\def\horizhtdp{height\CD@tI depth\CD@sI}\def\axisheight{\fontdimen22\the
\textfont\tw@}\def\script@axisheight{\fontdimen22\the\scriptfont\tw@}\def
\ss@axisheight{\fontdimen22\the\scriptscriptfont\tw@}\def\CD@NC{0.4pt}\def
\CD@VK{\fontdimen3\textfont\z@}\def\CD@UK{\fontdimen3\textfont\z@}\newdimen
\PileSpacing\newdimen\CD@nA\CD@nA\z@\def\CD@RG{\ifincommdiag1.3em\else2em\fi}%
\newdimen\CD@YB\def\CellSize{\afterassignment\CD@kB\DiagramCellHeight}%
\newdimen\DiagramCellHeight\DiagramCellHeight-\maxdimen\newdimen
\DiagramCellWidth\DiagramCellWidth-\maxdimen\def\CD@kB{\DiagramCellWidth
\DiagramCellHeight}\def\CD@QC{3em}\newdimen\MapShortFall\def\MapsAbut{%
\MapShortFall\z@\objectheight\z@\objectwidth\z@}\newdimen\CD@iA\CD@iA\z@
\CD@tG\CD@vE\CD@aB\CD@ZB\expandafter\ifx\expandafter\iftrue\csname
ifUglyObsoleteDiagrams\endcsname\CD@ZB\else\CD@aB\fi\CD@nF{%
ifUglyObsoleteDiagrams}{relax}\newif\ifUglyObsoleteDiagrams\def\CD@nK{\CD@aB
\UglyObsoleteDiagramsfalse}\def\CD@oK{\CD@ZB\UglyObsoleteDiagramstrue}\CD@vE
\CD@nK\else\CD@oK\fi\CD@tG\CD@hK\CD@dK\CD@cK\CD@cK\def\CD@sK{\ifx\pdfoutput
\CD@qK\else\ifx\pdfoutput\relax\else\ifnum\pdfoutput>\z@\CD@pK\fi\fi\fi} \def
\CD@pK{\global\CD@dK\global\CD@aB\global\UglyObsoleteDiagramsfalse\global\let
\CD@n\empty\global\let\CD@oK\relax\global\let\CD@pK\relax\global\let\CD@sK
\relax}\def\CD@tK#1{\special{pdf: literal #1}}\ifx\pdfliteral\CD@qK\else\ifx
\pdfliteral\relax\else\let\CD@tK\pdfliteral\fi\fi\ifx\XeTeXrevision\CD@qK
\else\ifx\XeTeXrevision\relax\else\ifdim\XeTeXrevision pt<.996pt \expandafter
\message{! XeTeX version \XeTeXrevision\space does not support PDF literals,
so diagonals will not work!}\else\expandafter\message{RUNNING UNDER XETEX
\XeTeXrevision}\CD@pK\fi\fi\fi\CD@sK\def\newarrowhead{\CD@mG h\CD@BG\CD@GG>}%
\def\newarrowtail{\CD@mG t\CD@BG\CD@GG>}\def\newarrowmiddle{\CD@mG m\CD@BG
\hbox@maths\empty}\def\newarrowfiller{\CD@mG f\CD@bE\CD@MK-}\def\CD@mG#1#2#3#%
4#5#6#7#8#9{\CD@RC{r#1:#5}{#2{#6}}\CD@RC{l#1:#5}{#2{#7}}\CD@RC{d#1:#5}{#3{#8}%
}\CD@RC{u#1:#5}{#3{#9}}\CD@vC{-#1:#5}{\expandafter\noexpand\csname-#1:#4%
\endcsname\noexpand\CD@MC}\CD@vC{+#1:#5}{\expandafter\noexpand\csname+#1:#4%
\endcsname\noexpand\CD@MC}}\CD@ZA\CD@MC{\CD@eF\space diagonals are used unless
PostScript is set}\def\defaultarrowhead#1{\edef\CD@sJ{#1}\CD@@J}\def\CD@@J{%
\CD@IJ\CD@sJ<>ht\CD@IJ\CD@sJ<>th}\def\CD@IJ#1#2#3#4#5{\CD@HJ{r#4}{#3}{l#5}{#2%
}{r#4:#1}\CD@HJ{r#5}{#2}{l#4}{#3}{l#4:#1}\CD@HJ{d#4}{#3}{u#5}{#2}{d#4:#1}%
\CD@HJ{d#5}{#2}{u#4}{#3}{u#4:#1}}\def\CD@HJ#1#2#3#4#5{\begingroup\aftergroup
\CD@GJ\CD@L{#1+:#2}\CD@L{#1:#2}\CD@L{#3:#4}\CD@L{#5}\endgroup}\def\CD@GJ#1#2#%
3#4{\csname newbox\endcsname#1\def#2{\copy#1}\def#3{\copy#1}\setbox#1=\box
\voidb@x}\def\CD@sJ{}\CD@@J\def\CD@GJ#1#2#3#4{\setbox#1=#4}\ifx\tenln
\nullfont\def\CD@sJ{vee}\else\let\CD@sJ\CD@eF\fi\def\CD@xF#1#2#3{\begingroup
\aftergroup\CD@wF\CD@L{#1#2:#3#3}\CD@L{#1#2:#3}\aftergroup\CD@yF\CD@L{#1#2:#3%
-#3}\CD@L{#1#2:#3}\endgroup}\def\CD@wF#1#2{\def#1{\hbox{\rlap{#2}\kern.4%
\CD@zC#2}}}\def\CD@yF#1#2{\def#1{\hbox{\rlap{#2}\kern.4\CD@zC#2\kern-.4\CD@zC
}}}\CD@xF lh>\CD@xF rt>\CD@xF rh<\CD@xF rt<\def\CD@yF#1#2{\def#1{\hbox{\kern-%
.4\CD@zC\rlap{#2}\kern.4\CD@zC#2}}}\CD@xF rh>\CD@xF lh<\CD@xF lt>\CD@xF lt<%
\def\CD@wF#1#2{\def#1{\vbox{\vbox to\z@{#2\vss}\nointerlineskip\kern.4\CD@zC#%
2}}}\def\CD@yF#1#2{\def#1{\vbox{\vbox to\z@{#2\vss}\nointerlineskip\kern.4%
\CD@zC#2\kern-.4\CD@zC}}}\CD@xF uh>\CD@xF dt>\CD@xF dh<\CD@xF dt<\def\CD@yF#1%
#2{\def#1{\vbox{\kern-.4\CD@zC\vbox to\z@{#2\vss}\nointerlineskip\kern.4%
\CD@zC#2}}}\CD@xF dh>\CD@xF ut>\CD@xF uh<\CD@xF ut<\def\CD@BG#1{\hbox{%
\mathsurround\z@\offinterlineskip\CD@k\mkern-1.5mu{#1}\mkern-1.5mu\CD@ND}}%
\def\hbox@maths#1{\hbox{\CD@k#1\CD@ND}}\def\CD@GG#1{\hbox to\CD@LF{\setbox0=%
\hbox{\offinterlineskip\mathsurround\z@\CD@k{#1}\CD@ND}\dimen0.5\wd0\advance
\dimen0-.5\CD@oI\CD@zH{\dimen0}\kern-\dimen0\unhbox0\hss}}\def\CD@sB#1{\hbox
to2\CD@LF{\hss\offinterlineskip\mathsurround\z@\CD@k{#1}\CD@ND\hss}}\def
\CD@vF#1{\hbox{\mathsurround\z@\CD@k{#1}\CD@ND}}\def\CD@bE#1{\hbox{\kern-.15%
\CD@zC\CD@k{#1}\CD@ND\kern-.15\CD@zC}}\def\CD@MK#1{\vbox{\offinterlineskip
\kern-.2ex\CD@GG{#1}\kern-.2ex}}\def\@fillh{\xleaders\vrule\horizhtdp}\def
\@fillv{\xleaders\hrule width\CD@LF}\CD@nF{rf:-}{@fillh}\CD@nF{lf:-}{@fillh}%
\CD@nF{df:-}{@fillv}\CD@nF{uf:-}{@fillv}\CD@nF{rh:}{null}\CD@nF{rm:}{null}%
\CD@nF{rt:}{null}\CD@nF{lh:}{null}\CD@nF{lm:}{null}\CD@nF{lt:}{null}\CD@nF{dh%
:}{null}\CD@nF{dm:}{null}\CD@nF{dt:}{null}\CD@nF{uh:}{null}\CD@nF{um:}{null}%
\CD@nF{ut:}{null}\CD@nF{+h:}{null}\CD@nF{+m:}{null}\CD@nF{+t:}{null}\CD@nF{-h%
:}{null}\CD@nF{-m:}{null}\CD@nF{-t:}{null}\def\CD@@D{\hbox{\vrule height 1pt
depth-1pt width 1pt}}\CD@RC{rf:}{\CD@@D}\CD@nF{lf:}{rf:}\CD@nF{+f:}{rf:}%
\CD@RC{df:}{\CD@@D}\CD@nF{uf:}{df:}\CD@nF{-f:}{df:}\def\CD@BD{\CD@U\null
\CD@@D\null\CD@@D\null}\edef\CD@lG{\string\newarrow}\def\newarrow#1#2#3#4#5#6%
{\begingroup\edef\@name{#1}\edef\CD@oJ{#2}\edef\CD@iD{#3}\edef\CD@QG{#4}\edef
\CD@jD{#5}\edef\CD@LE{#6}\let\CD@HE\CD@sG\let\CD@FK\CD@BH\let\@x\CD@AH\ifx
\CD@oJ\CD@iD\let\CD@oJ\empty\fi\ifx\CD@LE\CD@jD\let\CD@LE\empty\fi\def\CD@LI{%
r}\def\CD@SF{l}\def\CD@IC{d}\def\CD@yJ{u}\def\CD@gH{+}\def\@m{-}\ifx\CD@iD
\CD@jD\ifx\CD@QG\CD@iD\let\CD@QG\empty\fi\ifx\CD@LE\empty\ifx\CD@iD\CD@aE\let
\@x\CD@yG\else\let\@x\CD@zG\fi\fi\else\edef\CD@a{\CD@iD\CD@oJ}\ifx\CD@a\empty
\ifx\CD@QG\CD@jD\let\CD@QG\empty\fi\fi\fi\ifmmode\aftergroup\CD@kG\else\CD@@A
\CD@oB rh{head\space\space}\CD@LE\CD@oB rf{filler}\CD@iD\CD@oB rm{middle}%
\CD@QG\ifx\CD@jD\CD@iD\else\CD@oB rf{filler}\CD@jD\fi\CD@oB rt{tail\space
\space}\CD@oJ\CD@gE\CD@HE\CD@FK\@x\CD@nG l-2+2{lu}{nw}\NorthWest\CD@nG r+2+2{%
ru}{ne}\NorthEast\CD@nG l-2-2{ld}{sw}\SouthWest\CD@nG r+2-2{rd}{se}\SouthEast
\else\aftergroup\CD@b\CD@L{r\@name}\fi\fi\endgroup}\def\CD@sG{\CD@vG\CD@LI
\CD@SF rl\Horizontal@Map}\def\CD@BH{\CD@vG\CD@IC\CD@yJ du\Vertical@Map}\def
\CD@AH{\CD@vG\CD@gH\@m+-\Vector@Map}\def\CD@yG{\CD@vG\CD@gH\@m+-\Slant@Map}%
\def\CD@zG{\CD@vG\CD@gH\@m+-\Slope@Map}\catcode`\/=\active\def\CD@vG#1#2#3#4#%
5{\CD@jG#1#3#5t:\CD@oJ/f:\CD@iD/m:\CD@QG/f:\CD@jD/h:\CD@LE//\CD@jG#2#4#5h:%
\CD@LE/f:\CD@jD/m:\CD@QG/f:\CD@iD/t:\CD@oJ//}\def\CD@jG#1#2#3#4//{\edef\CD@fG
{#2}\aftergroup\sdef\CD@L{#1\@name}\aftergroup{\aftergroup#3\CD@M#4//%
\aftergroup}}\def\CD@M#1/{\edef\CD@EH{#1}\ifx\CD@EH\empty\else\CD@L{\CD@fG#1}%
\expandafter\CD@M\fi}\catcode`\/=12 \def\CD@nG#1#2#3#4#5#6#7#8{\aftergroup
\sdef\CD@L{#6\@name}\aftergroup{\CD@L{#2\@name}\if#2#4\aftergroup\CD@CI\else
\aftergroup\CD@BI\fi\CD@L{#1\@name}%
%% ASCII round brackets and comma (,) appear on the next line
\aftergroup(\aftergroup#3\aftergroup,\aftergroup#5\aftergroup)\aftergroup}}%
\def\CD@oB#1#2#3#4{\expandafter\ifx\csname#1#2:#4\endcsname\relax\CD@y\CD@gB{%
arrow#3 "#4" undefined}\fi}\CD@rG\CD@VE{All five components must be defined
before an arrow.}\CD@rG\CD@SE{\CD@lG, unlike \string\HorizontalMap, is a
declaration.}\def\CD@b#1{\CD@YA{Arrows \string#1 etc could not be defined}%
\CD@VE}\def\CD@kG{\CD@YA{misplaced \CD@lG}\CD@SE}\def\newdiagramgrid#1#2#3{%
\CD@RC{cdgh@#1}{#2,],}%% ASCII close square bracket
\CD@RC{cdgv@#1}{#3,],}}%% ASCII close square bracket
\CD@tG\ifincommdiag\incommdiagtrue\incommdiagfalse\CD@tG\CD@@F\CD@IF\CD@HF
\newcount\CD@VA\CD@VA=0 \def\CD@yH{\CD@VA6 }\def\CD@OB{\CD@VA1 \global\CD@yA1
\CD@DE\CD@YF\empty}\def\CD@YF{}\def\CD@nB#1{\relax\CD@MD\edef\CD@vJ{#1}%
\begingroup\CD@rE\else\ifcase\CD@VA\ifmmode\else\CD@YG\CD@E0\fi\or\CD@cE5\or
\CD@YG\CD@F5\or\CD@YG\CD@B5\or\CD@YG\CD@B5\or\CD@YG\CD@C5\or\CD@cE7\or\CD@YG
\CD@D7\fi\fi\endgroup\xdef\CD@YF{#1}}\def\CD@pB#1#2#3#4#5{\relax\CD@MD\xdef
\CD@vJ{#4}\begingroup\ifnum\CD@VA<#1 \expandafter\CD@cE\ifcase\CD@VA0\or#2\or
#3\else#2\fi\else\ifnum\CD@VA<6 \CD@tJ\CD@YG\CD@B#2\else\CD@YG\CD@G#2\fi\fi
\endgroup\CD@DE\CD@YF\CD@vJ\ifincommdiag\let\CD@ZD#5\else\let\CD@ZD\CD@LK\fi}%
\def\CD@yI{\global\CD@yA=\ifnum\CD@VA<5 1\else2\fi\relax}\def\CD@OI{\CD@VA
\CD@yA}\def\CD@cE#1{\aftergroup\CD@VA\aftergroup#1\aftergroup\relax}\def
\CD@HH{\def\CD@nB##1{\relax}\let\CD@pB\CD@FH\let\CD@yH\relax\let\CD@OB\relax
\let\CD@yI\relax\let\CD@OI\relax}\def\CD@FH#1#2#3#4#5{\ifincommdiag\let\CD@ZD
#5\else\xdef\CD@vJ{#4}\let\CD@ZD\CD@LK\fi}\def\CD@YG#1{\aftergroup#1%
\aftergroup\relax\CD@cE}\def\CD@B{\CD@YE\CD@S\CD@ME\CD@Q}\def\CD@G{\CD@YE{%
\CD@yC\CD@S}\CD@XE\CD@QD\CD@Q}\def\CD@F{\CD@YE{*\CD@S}\CD@RE\clubsuit\CD@Q}%
\def\CD@C{\CD@YE{\CD@S*\CD@S}\CD@RE\CD@Q\clubsuit\CD@Q}\def\CD@D{\CD@YE\CD@EC
\CD@TE\\}\def\CD@E{\CD@YE\CD@nC\CD@QE\CD@k}\def\CD@LK{\CD@YA{\CD@vJ\space
ignored \CD@dH}\CD@WE}\def\CD@FE{}\def\CD@d{\CD@YA{maps must never be enclosed
in braces}\CD@OE}\def\CD@dH{outside diagram}\def\CD@FC{\string\HonV, \string
\VonH\space and \string\HmeetV}\CD@rG\CD@ME{The way that horizontal and
vertical arrows are terminated implicitly means\CD@uG that they cannot be
mixed with each other or with \CD@FC.}\CD@rG\CD@XE{\string\pile\space is for
parallel horizontal arrows; verticals can just be put together in\CD@uG a cell%
. \CD@FC\space are not meaningful in a \string\pile.}\CD@rG\CD@RE{The
horizontal maps must point to an object, not each other (I've put in\CD@uG one
which you're unlikely to want). Use \string\pile\space if you want them
parallel.}\CD@rG\CD@TE{Parallel horizontal arrows must be in separate layers
of a \string\pile.}\CD@rG\CD@QE{Horizontal arrows may be used \CD@dH s, but
must still be in maths.}\CD@rG\CD@WE{Vertical arrows, \CD@FC\space\CD@dH s don%
't know where\CD@uG where to terminate.}\CD@rG\CD@OE{This prevents them from
stretching correctly.}\def\CD@YE#1{\CD@YA{"#1" inserted \ifx\CD@YF\empty
before \CD@vJ\else between \CD@YF\ifx\CD@YF\CD@vJ s\else\space and \CD@vJ\fi
\fi}}\count@=\year\multiply\count@12 \advance\count@\month\ifnum\count@>24187
\message{because this one expired in July 2015!}\expandafter\endinput\fi\def
\Horizontal@Map{\CD@nB{horizontal map}\CD@LC\CD@TJ\CD@qD}\def\CD@TJ{\CD@GB-%
9999 \let\CD@ZD\CD@XD\ifincommdiag\else\CD@cJ\ifinpile\else\skip2\z@ plus 1.5%
\CD@VK minus .5\CD@UK\skip4\skip2 \fi\fi\let\CD@kD\@fillh\CD@nF{fill@dot}{rf:%
.}}\def\Vector@Map{\CD@HK4}\def\Slant@Map{\CD@HK{\CD@EF255\else6\fi}}\def
\Slope@Map{\CD@HK\CD@OC}\def\CD@HK#1#2#3#4#5#6{\CD@LC\def\CD@WK{2}\def\CD@aK{%
2}\def\CD@ZK{1}\def\CD@bK{1}\let\Horizontal@Map\CD@nI\def\CD@OG{#1}\def\CD@NI
{\CD@U#2#3#4#5#6}}\def\CD@nI{\CD@TJ\CD@JB\let\CD@ZD\CD@TD\CD@qD}\CD@tG\CD@pE
\CD@rA\CD@qA\CD@rA\def\cds@missives{\CD@rA}\def\CD@TD{\CD@vE\let\CD@OG\CD@OC
\CD@x\CD@zE\CD@WF\fi\setbox0\hbox{\incommdiagfalse\CD@HI}\CD@pE\CD@aD\else
\global\CD@YC\CD@bD\fi\ifvoid6 \ifvoid7 \CD@eE\fi\fi\CD@zE\else\CD@BD\global
\CD@YC\let\CD@CG\CD@IH\CD@YD\fi\else\CD@NI\CD@MI\global\CD@YC\CD@YD\fi}\def
\CD@LC{\begingroup\dimen1=\MapShortFall\dimen2=\CD@RG\dimen5=\MapShortFall
\setbox3=\box\voidb@x\setbox6=\box\voidb@x\setbox7=\box\voidb@x\CD@pD
\mathsurround\z@\skip2\z@ plus1fill minus 1000pt\skip4\skip2 \CD@TB}\CD@tG
\CD@tE\CD@UB\CD@TB\def\CD@U#1#2#3#4#5{\let\CD@oJ#1\let\CD@iD#2\let\CD@QG#3%
\let\CD@jD#4\let\CD@LE#5\CD@TB\ifx\CD@iD\CD@jD\CD@UB\fi}\def\CD@qD#1#2#3#4#5{%
\CD@U#1#2#3#4#5\CD@tD}\def\Vertical@Map{\CD@pB433{vertical map}\CD@cD\CD@LC
\CD@GB-9995 \let\CD@kD\@fillv\CD@nF{fill@dot}{df:.}\CD@qD}\def\break@args{%
\def\CD@tD{\CD@ZD}\CD@ZD\endgroup\aftergroup\CD@FE}\def\CD@MJ{\setbox1=\CD@oJ
\setbox5=\CD@LE\ifvoid3 \ifx\CD@QG\null\else\setbox3=\CD@QG\fi\fi\CD@@G2%
\CD@iD\CD@@G4\CD@jD}\def\CD@pF#1{\ifvoid1\else\CD@oF1#1\fi\ifvoid2\else\CD@oF
2#1\fi\ifvoid3\else\CD@oF3#1\fi\ifvoid4\else\CD@oF4#1\fi\ifvoid5\else\CD@oF5#%
1\fi} \def\CD@oF#1#2{\setbox#1\vbox{\offinterlineskip\box#1\dimen@\prevdepth
\advance\dimen@-#2\relax\setbox0\null\dp0\dimen@\ht0-\dimen@\box0}}\def\CD@@G
#1#2{\ifx#2\CD@kD\setbox#1=\box\voidb@x\else\setbox#1=#2\def#2{\xleaders\box#%
1}\fi}\CD@ZA\CD@BK{\string\HorizontalMap, \string\VerticalMap\space and
\string\DiagonalMap\CD@uG are obsolete - use \CD@lG\space to pre-define maps}%
\def\HorizontalMap#1#2#3#4#5{\CD@BK\CD@nB{old horizontal map}\CD@LC\CD@TJ\def
\CD@oJ{\CD@UH{#1}}\CD@SH\CD@iD{#2}\def\CD@QG{\CD@UH{#3}}\CD@SH\CD@jD{#4}\def
\CD@LE{\CD@UH{#5}}\CD@tD}\def\VerticalMap#1#2#3#4#5{\CD@BK\CD@pB433{vertical
map}\CD@cD\CD@LC\CD@GB-9995 \let\CD@kD\@fillv\def\CD@oJ{\CD@GG{#1}}\CD@VH
\CD@iD{#2}\def\CD@QG{\CD@GG{#3}}\CD@VH\CD@jD{#4}\def\CD@LE{\CD@GG{#5}}\CD@tD}%
\def\DiagonalMap#1#2#3#4#5{\CD@BK\CD@LC\def\CD@OG{4}\let\CD@kD\CD@qK\let
\CD@ZD\CD@YD\def\CD@WK{2}\def\CD@aK{2}\def\CD@ZK{1}\def\CD@bK{1}\def\CD@QG{%
\CD@vF{#3}}\ifPositiveGradient\let\mv\raise\def\CD@oJ{\CD@vF{#5}}\def\CD@iD{%
\CD@vF{#4}}\def\CD@jD{\CD@vF{#2}}\def\CD@LE{\CD@vF{#1}}\else\let\mv\lower\def
\CD@oJ{\CD@vF{#1}}\def\CD@iD{\CD@vF{#2}}\def\CD@jD{\CD@vF{#4}}\def\CD@LE{%
\CD@vF{#5}}\fi\CD@tD}\def\CD@aE{-}\def\CD@AD{\empty}\def\CD@SH{\CD@EG\CD@bE
\CD@aE\@fillh}\def\CD@VH{\CD@EG\CD@MK\CD@KK\@fillv}\def\CD@EG#1#2#3#4#5{\def
\CD@CH{#5}\ifx\CD@CH#2\let#4#3\else\let#4\null\ifx\CD@CH\empty\else\ifx\CD@CH
\CD@AD\else\let#4\CD@CH\fi\fi\fi}\def\CD@UH#1{\hbox{\mathsurround\z@
\offinterlineskip\def\CD@CH{#1}\ifx\CD@CH\empty\else\ifx\CD@CH\CD@AD\else
\CD@k\mkern-1.5mu{\CD@CH}\mkern-1.5mu\CD@ND\fi\fi}}\def\CD@yD#1#2{\setbox#1=%
\hbox\bgroup\setbox0=\hbox{\CD@k\labelstyle()\CD@ND}%% ASCII round brackets
\setbox1=\null\ht1\ht0\dp1\dp0\box1 \kern.1\CD@zC\CD@k\bgroup\labelstyle
\aftergroup\CD@LD\CD@xD}\def\CD@LD{\CD@ND\kern.1\CD@zC\egroup\CD@tD}\def
\CD@xD{\futurelet\CD@EH\CD@mJ}\def\CD@mJ{%% qualifiers on label arguments
\catcase\bgroup:\CD@v;\catcase\egroup:\missing@label;\catcase\space:\CD@TF;%
\tokcase[:\CD@XF;%%]%ascii close square bracket 
\default:\CD@zJ;\endswitch}\def\CD@v{\let\CD@MD\CD@c\let\CD@CH}\def\CD@zJ#1{%
\let\CD@UF\egroup{\let\actually@braces@missing@around@macro@in@label\CD@ZH
\let\CD@MD\CD@xC\let\CD@UF\CD@VF#1%
\actually@braces@missing@around@macro@in@label}\CD@UF}\def
\actually@braces@missing@around@macro@in@label{\let\CD@CH=}\def\missing@label
{\egroup\CD@YA{missing label}\CD@PE}\def\CD@xC{\egroup\missing@label}\outer
\def\CD@ZH{}\def\CD@UF{}\def\CD@VF{\CD@wC\CD@UF}\def\CD@MD{}\def\CD@XF{\let
\CD@N\CD@xD\get@square@arg\CD@AE}\CD@rG\CD@PE{The text which has just been
read is not allowed within map labels.}\def\CD@c{\egroup\CD@YA{missing \CD@yC
\space inserted after label}\CD@PE}\def\upper@label{\CD@oD\CD@yD6}\def
\lower@label{\def\positional@{\CD@@A\break@args}\CD@yD7}\def\middle@label{%
\CD@yD3}\CD@tG\CD@yE\CD@pD\CD@oD\def\CD@iF{\ifPositiveGradient\CD@tJ
\expandafter\upper@label\else\expandafter\lower@label\fi}\def\CD@iI{%
\ifPositiveGradient\CD@tJ\expandafter\lower@label\else\expandafter
\upper@label\fi}\def\positional@{\CD@gB{labels as positional arguments are
obsolete}\CD@yE\CD@tJ\expandafter\upper@label\else\expandafter\lower@label\fi
-}\def\CD@tD{\futurelet\CD@EH\switch@arg}\def\eat@space{\afterassignment
\CD@tD\let\CD@EH= }\def\CD@TF{\afterassignment\CD@xD\let\CD@EH= }\def\CD@BC{%
\get@round@pair\CD@uD}\def\CD@uD#1#2{\def\CD@WK{#1}\def\CD@aK{#2}\CD@tD}\def
\optional@{\let\CD@N\CD@tD\get@square@arg\CD@AE}\def\CD@JJ.{\CD@sC\CD@tD}\def
\CD@sC{\let\CD@iD\fill@dot\let\CD@jD\fill@dot\def\CD@MI{\let\CD@iD\dfdot\let
\CD@jD\dfdot}}\def\CD@MI{}\def\CD@@E#1,{\CD@nH#1,\begingroup\ifx\@name\CD@RD
\CD@FF\aftergroup\CD@e\fi\aftergroup\CD@jC\else\expandafter\def\expandafter
\CD@RF\expandafter{\csname\@name\endcsname}\expandafter\CD@vD\CD@RF\CD@KD\ifx
\CD@RF\empty\aftergroup\CD@pC\expandafter\aftergroup\csname\CD@FB\@name
\endcsname\expandafter\aftergroup\csname\CD@FB @\@name\endcsname\else\gdef
\CD@GE{#1}\CD@gB{\string\relax\space inserted before `[\CD@GE'}\message{(I was
trying to read this as a \CD@tA\ option.)}\aftergroup\CD@H\fi\fi\endgroup}%
\def\CD@vD#1#2\CD@KD{\def\CD@RF{#2}}\def\CD@jC{\let\CD@CH\CD@N\let\CD@N\relax
\CD@CH}\def\CD@H#1],{%% ASCII close square bracket
\CD@jC\relax\def\CD@RF{#1}\ifx\CD@RF\empty\def\CD@RF{[\CD@GE]}%
%% ASCII open and close square bracket
\else\def\CD@RF{[\CD@GE,#1]}%% ASCII open and close square bracket
\fi\CD@RF}\def\CD@pC#1#2{\ifx#2\CD@qK\ifx#1\CD@qK\CD@gB{option `\@name'
undefined}\else#1\fi\else\CD@FF\expandafter#2\CD@GK\CD@PK\else\CD@QK\fi\fi
\CD@DH}\CD@tG\CD@FF\CD@QK\CD@PK\def\CD@nH#1,{\CD@FF\ifx\CD@GK\CD@qK\CD@e\else
\expandafter\CD@oH\CD@GK,#1,(,),(,)[]%
%%ASCII 5commas two pairs round, pair square
\fi\fi\CD@FF\else\CD@mH#1==,\fi}\def\CD@e{\CD@gB{option `\@name' needs (x,y)
value}\CD@PK\let\@name\empty}\def\CD@mH#1=#2=#3,{\def\@name{#1}\def\CD@GK{#2}%
\def\CD@RF{#3}\ifx\CD@RF\empty\let\CD@GK\CD@qK\fi}%
%% ASCII 2commas 2pair round, pair square on next line
\def\CD@oH#1(#2,#3)#4,(#5,#6)#7[]{\def\CD@GK{{#2}{#3}}\def\CD@RF{#1#4#5#6}%
\ifx\CD@RF\empty\def\CD@RF{#7}\ifx\CD@RF\empty\CD@e\fi\else\CD@e\fi}\def
\CD@FB{cds@}\let\CD@N\relax\def\CD@zD#1{\ifx\CD@GK\CD@qK\CD@gB{option `\@name
' needs a value}\else#1\CD@GK\relax\fi}\def\CD@BE#1#2{\ifx\CD@GK\CD@qK#1#2%
\relax\else#1\CD@GK\relax\fi}\def\cds@@showpair#1#2{\message{x=#1,y=#2}}\def
\cds@@diagonalbase#1#2{\edef\CD@ZK{#1}\edef\CD@bK{#2}}\def\CD@DI#1{\def\CD@CH
{#1}\CD@nF{@x}{cdps@#1}\ifx\CD@CH\empty\CD@f\CD@CH{cannot be used}\else\ifx
\CD@CH\relax\CD@f\CD@CH{unknown}\else\let\CD@IK\@x\fi\fi}\def\CD@f#1#2{\CD@gB
{PostScript translator `#1' #2}}\def\CD@PH{}\def\CD@PJ{\CD@fA\edef\CD@PH{%
\noexpand\CD@KB{\@name\space ignored within maths}}}\def\diagramstyle{\CD@cJ
\let\CD@N\relax\CD@CF\CD@AE\CD@AE}\let\diagramsstyle\diagramstyle\CD@tG\CD@sE
\CD@SB\CD@RB\CD@tG\CD@qE\CD@EB\CD@DB\CD@tG\CD@oE\CD@pA\CD@oA\CD@tG\CD@iE
\CD@HA\CD@GA\CD@HA\CD@tG\CD@jE\CD@JA\CD@IA\CD@tG\CD@kE\CD@LA\CD@KA\CD@tG
\CD@EF\CD@DK\CD@CK\CD@tG\CD@rE\CD@JB\CD@IB\CD@tG\CD@mE\CD@gA\CD@fA\CD@tG
\CD@nE\CD@kA\CD@jA\CD@tG\CD@AF\CD@iG\CD@hG\CD@RC{cds@ }{}\CD@RC{cds@}{}\CD@RC
{cds@1em}{\CellSize1\CD@zC}\CD@RC{cds@1.5em}{\CellSize1.5\CD@zC}\CD@RC{cds@2%
em}{\CellSize2\CD@zC}\CD@RC{cds@2.5em}{\CellSize2.5\CD@zC}\CD@RC{cds@3em}{%
\CellSize3\CD@zC}\CD@RC{cds@3.5em}{\CellSize3.5\CD@zC}\CD@RC{cds@4em}{%
\CellSize4\CD@zC}\CD@RC{cds@4.5em}{\CellSize4.5\CD@zC}\CD@RC{cds@5em}{%
\CellSize5\CD@zC}\CD@RC{cds@6em}{\CellSize6\CD@zC}\CD@RC{cds@7em}{\CellSize7%
\CD@zC}\CD@RC{cds@8em}{\CellSize8\CD@zC}\def\cds@abut{\MapsAbut\dimen1\z@
\dimen5\z@}\def\cds@alignlabels{\CD@IA\CD@KA}\def\cds@amstex{\ifincommdiag
\CD@O\else\def\CD{\diagram[amstex]}%%ascii square brackets []
\fi\CD@T\catcode`\@\active}\def\cds@b{\let\CD@dB\CD@bB}\def\cds@balance{\let
\CD@hA\CD@AA}\let\cds@bottom\cds@b\def\cds@center{\cds@vcentre\cds@nobalance}%
\let\cds@centre\cds@center\def\cds@centerdisplay{\CD@HA\CD@PJ\cds@balance}%
\let\cds@centredisplay\cds@centerdisplay\def\cds@crab{\CD@BE\CD@DC{.5%
\PileSpacing}}\CD@RC{cds@crab-}{\CD@DC-.5\PileSpacing}\CD@RC{cds@crab+}{%
\CD@DC.5\PileSpacing}\CD@RC{cds@crab++}{\CD@DC1.5\PileSpacing}\CD@RC{cds@crab%
--}{\CD@DC-1.5\PileSpacing}\def\cds@defaultsize{\CD@BE{\let\CD@QC}{3em}\CD@NJ
}\def\cds@displayoneliner{\CD@DB}\let\cds@dotted\CD@sC\def\cds@dpi{\CD@RJ{1%
truein}}\def\cds@dpm{\CD@RJ{100truecm}}\let\CD@XA\CD@qK\def\cds@eqno{\let
\CD@XA\CD@GK\let\CD@EJ\empty}\def\cds@fixed{\CD@qA}\CD@tG\CD@fE\CD@J\CD@I\def
\cds@flushleft{\CD@I\CD@GA\CD@PJ\cds@nobalance\CD@BE\CD@nA\CD@nA}\def\cds@gap
{\CD@AJ\setbox3=\null\ht3=\CD@tI\dp3=\CD@sI\CD@BE{\wd3=}\MapShortFall} \def
\cds@grid{\ifx\CD@GK\CD@qK\let\h@grid\relax\let\v@grid\relax\else\CD@nF{%
h@grid}{cdgh@\CD@GK}\CD@nF{v@grid}{cdgv@\CD@GK}\ifx\h@grid\relax\CD@gB{%
unknown grid `\CD@GK'}\else\CD@WB\fi\fi}\let\h@grid\relax\let\v@grid\relax
\def\cds@gridx{\ifx\CD@GK\CD@qK\else\cds@grid\fi\let\CD@CH\h@grid\let\h@grid
\v@grid\let\v@grid\CD@CH}\def\cds@h{\CD@zD\DiagramCellHeight}\def\cds@hcenter
{\let\CD@hA\CD@aA}\let\cds@hcentre\cds@hcenter\def\cds@heads{\CD@BE{\let
\CD@sJ}\CD@sJ\CD@@J\CD@vE\else\ifx\CD@sJ\CD@eF\else\CD@MC\fi\fi}\let
\cds@height\cds@h\let\cds@hmiddle\cds@balance\def\cds@htriangleheight{\CD@BE
\DiagramCellHeight\DiagramCellHeight\DiagramCellWidth1.73205%
\DiagramCellHeight}\def\cds@htrianglewidth{\CD@BE\DiagramCellWidth
\DiagramCellWidth\DiagramCellHeight.57735\DiagramCellWidth}\CD@tG\CD@zE\CD@eE
\CD@dE\CD@eE\def\cds@hug{\CD@eE} \def\cds@inline{\CD@gA\let\CD@PH\empty}\def
\cds@inlineoneliner{\CD@EB}\CD@RC{cds@l>}{\CD@zD{\let\CD@RG}\dimen2=\CD@RG}%
\def\cds@labelstyle{\CD@zD{\let\labelstyle}}\def\cds@landscape{\CD@kA}\def
\cds@large{\CellSize5\CD@zC}\let\CD@EJ\empty\def\CD@FJ{\refstepcounter{%
equation}\def\CD@XA{\hbox{\@eqnnum}}}\def\cds@LaTeXeqno{\let\CD@EJ\CD@FJ}\def
\cds@lefteqno{\CD@pA}\def\cds@leftflush{\cds@flushleft\CD@J}\def
\cds@leftshortfall{\CD@zD{\dimen1 }}\def\cds@lowershortfall{%
\ifPositiveGradient\cds@leftshortfall\else\cds@rightshortfall\fi}\def
\cds@loose{\CD@VB}\def\cds@midhshaft{\CD@JA}\def\cds@midshaft{\CD@JA}\def
\cds@midvshaft{\CD@LA}\def\cds@moreoptions{\CD@@A}\let\cds@nobalance
\cds@hcenter\def\cds@nohcheck{\CD@HH}\def\cds@nohug{\CD@dE} \def
\cds@nooptions{\def\CD@aC{\CD@WD}}\let\cds@noorigin\cds@nobalance\def
\cds@nopixel{\CD@@I4\CD@XH\CD@cJ}\def\cds@UO{\CD@oK\global\let\CD@n\empty}%
\def\cds@UglyObsolete{\cds@UO\let\cds@PS\empty}\def\CD@rK#1{\CD@gB{option `#1%
' renamed as `UglyObsolete'}}\def\cds@noPostScript{\CD@rK{noPostScript}}\def
\cds@noPS{\CD@rK{noPostScript}}\def\cds@notextflow{\CD@RB}\def\cds@noTPIC{%
\CD@CK}\def\cds@objectstyle{\CD@zD{\let\objectstyle}}\def\cds@origin{\let
\CD@hA\CD@iB}\def\cds@p{\CD@zD\PileSpacing}\let\cds@pilespacing\cds@p\def
\cds@pixelsize{\CD@zD\CD@@I\CD@gI}\def\cds@portrait{\CD@jA}\def
\cds@PostScript{\CD@nK\global\let\CD@n\empty\CD@BE\CD@DI\empty}\def\cds@PS{%
\CD@nK\global\let\CD@n\empty}\CD@GF\CD@n{\typeout{\CD@tA: try the PostScript
option for better results}}\def\cds@repositionpullbacks{\let\make@pbk\CD@fH
\let\CD@qH\CD@pH}\def\cds@righteqno{\CD@oA}\def\cds@rightshortfall{\CD@zD{%
\dimen5 }}\def\cds@ruleaxis{\CD@zD{\let\axisheight}}\def\cds@cmex{\let\CD@GG
\CD@sB\let\CD@QJ\CD@CJ}\def\cds@s{\cds@height\DiagramCellWidth
\DiagramCellHeight}\def\cds@scriptlabels{\let\labelstyle\scriptstyle}\def
\cds@shortfall{\CD@zD\MapShortFall\dimen1\MapShortFall\dimen5\MapShortFall}%
\def\cds@showfirstpass{\CD@BE{\let\CD@nD}\z@}\def\cds@silent{\def\CD@KB##1{}%
\def\CD@gB##1{}}\let\cds@size\cds@s\def\cds@small{\CellSize2\CD@zC}\def
\cds@snake{\CD@BE\CD@eJ\z@}\def\cds@t{\let\CD@dB\CD@fB}\def\cds@textflow{%
\CD@SB\CD@PJ}\def\cds@thick{\let\CD@rF\tenlnw\CD@LF\CD@NC\CD@BE\MapBreadth{2%
\CD@LF}\CD@@J}\def\cds@thin{\let\CD@rF\tenln\CD@BE\MapBreadth{\CD@NC}\CD@@J}%
\def\cds@tight{\CD@WB}\let\cds@top\cds@t\def\cds@TPIC{\CD@DK}\def
\cds@uppershortfall{\ifPositiveGradient\cds@rightshortfall\else
\cds@leftshortfall\fi}\def\cds@vcenter{\let\CD@dB\CD@cB}\let\cds@vcentre
\cds@vcenter\def\cds@vtriangleheight{\CD@BE\DiagramCellHeight
\DiagramCellHeight\DiagramCellWidth.577035\DiagramCellHeight}\def
\cds@vtrianglewidth{\CD@BE\DiagramCellWidth\DiagramCellWidth
\DiagramCellHeight1.73205\DiagramCellWidth}\def\cds@vmiddle{\let\CD@dB\CD@eB}%
\def\cds@w{\CD@zD\DiagramCellWidth}\let\cds@width\cds@w\def\diagram{\relax
\protect\CD@bC}\def\enddiagram{\protect\CD@SG}\def\diagraminline{\diagram[%
inline,moreoptions]}\def\enddiagraminline{\enddiagram}\def\CD@bC{\CD@g\CD@uI
\incommdiagtrue\edef\CD@wI{\the\CD@NB}\global\CD@NB\z@\boxmaxdepth\maxdimen
\everycr{}\CD@sK\everymath{}\everyhbox{}\ifx\pdfsyncstop\CD@qK\else
\pdfsyncstop\fi\CD@aC}\def\CD@aC{\CD@y\let\CD@N\CD@ZC\CD@CF\CD@AE\CD@WD}\def
\CD@ZC{\CD@gE\expandafter\CD@aC\else\expandafter\CD@WD\fi}\def\CD@WD{\let
\CD@EH\relax\CD@nE\CD@vE\else\CD@hK\else\CD@KB{landscape ignored without
PostScript}\CD@jA\fi\fi\fi\CD@EJ\setbox2=\vbox\bgroup\CD@JF\CD@VD}\def\CD@cH{%
\CD@nE\CD@fB\else\CD@dB\fi\CD@hA\nointerlineskip\setbox0=\null\ht0-\CD@pI\dp0%
\CD@pI\wd0\CD@kI\box0 \global\CD@QA\CD@kF\global\CD@yA\CD@XB\ifx\CD@NK\CD@qK
\global\CD@RA\CD@kF\else\global\CD@RA\CD@NK\fi\egroup\CD@zF\CD@nE\setbox2=%
\hbox to\dp2{\vrule height\wd2 depth\CD@QA width\z@\global\CD@QA\ht2\ht2\z@
\dp2\z@\wd2\z@\CD@hK\CD@tK{q 0 1 -1 0 0 0 cm}\else\global\CD@iG\CD@IK{0 1
bturn}\fi\box2\CD@gK\hss}\CD@DB\fi\ifnum\CD@yA=1 \else\CD@DB\fi\global
\@ignorefalse\CD@mE\leavevmode\fi\ifvmode\CD@TA\else\ifmmode\CD@PH\CD@GI\else
\CD@qE\CD@gA\fi\ifinner\CD@gA\fi\CD@mE\CD@GI\else\CD@sE\CD@QB\else\CD@TA\fi
\fi\fi\fi\CD@dD}\def\CD@dD{\global\CD@NB\CD@wI\relax\CD@xE\global\CD@ID\else
\aftergroup\CD@mC\fi\if@ignore\aftergroup\ignorespaces\fi\CD@wC\ignorespaces}%
\def\CD@fB{\advance\CD@pI\dimen1\relax}\def\CD@eB{\advance\CD@pI.5\dimen1%
\relax}\def\CD@bB{}\def\CD@cB{\CD@fB\advance\CD@pI\CD@YB\divide\CD@pI2
\advance\CD@pI-\axisheight\relax}\def\CD@aA{}\def\CD@iB{\CD@kF\z@}\def\CD@AA{%
\ifdim\dimen2>\CD@kF\CD@kF\dimen2 \else\dimen2\CD@kF\CD@kI\dimen0 \advance
\CD@kI\dimen2 \fi}\def\CD@QB{\skip0\z@\relax\loop\skip1\lastskip\ifdim\skip1>%
\z@\unskip\advance\skip0\skip1 \repeat\vadjust{\prevdepth\dp\strutbox\penalty
\predisplaypenalty\vskip\abovedisplayskip\CD@UA\penalty\postdisplaypenalty
\vskip\belowdisplayskip}\ifdim\skip0=\z@\else\hskip\skip0 \global\@ignoretrue
\fi}\def\CD@TA{\CD@LG\kern-\displayindent\CD@UA\CD@LG\global\@ignoretrue}\def
\CD@UA{\hbox to\hsize{\CD@fE\ifdim\CD@RA=\z@\else\advance\CD@QA-\CD@RA\setbox
2=\hbox{\kern\CD@RA\box2}\fi\fi\setbox1=\hbox{\ifx\CD@XA\CD@qK\else\CD@k
\CD@XA\CD@ND\fi}\CD@oE\CD@iE\else\advance\CD@QA\wd1 \fi\wd1\z@\box1 \fi\dimen
0\wd2 \advance\dimen0\wd1 \advance\dimen0-\hsize\ifdim\dimen0>-\CD@nA\CD@HA
\fi\advance\dimen0\CD@QA\ifdim\dimen0>\z@\CD@KB{wider than the page by \the
\dimen0 }\CD@HA\fi\CD@iE\hss\else\CD@V\CD@QA\CD@nA\fi\CD@GI\hss\kern-\wd1\box
1 }}\def\CD@GI{\CD@AF\CD@@F\else\CD@SC\global\CD@hG\fi\fi\kern\CD@QA\box2 }%
\CD@tG\CD@wE\CD@YC\CD@XC\def\CD@JF{\CD@cJ\ifdim\DiagramCellHeight=-\maxdimen
\DiagramCellHeight\CD@QC\fi\ifdim\DiagramCellWidth=-\maxdimen
\DiagramCellWidth\CD@QC\fi\global\CD@XC\CD@IF\let\CD@FE\empty\let\CD@z\CD@Q
\let\overprint\CD@eH\let\CD@s\CD@rJ\let\enddiagram\CD@ED\let\\\CD@cC\let\par
\CD@jH\let\CD@MD\empty\let\switch@arg\CD@PB\let\shift\CD@iA\baselineskip
\DiagramCellHeight\lineskip\z@\lineskiplimit\z@\mathsurround\z@\tabskip\z@
\CD@OB}\def\CD@VD{\penalty-123 \begingroup\CD@jA\aftergroup\CD@K\halign
\bgroup\global\advance\CD@NB1 \vadjust{\penalty1}\global\CD@FA\z@\CD@OB\CD@j#%
#\CD@DD\CD@Q\CD@Q\CD@OI\CD@j##\CD@DD\cr}\def\CD@ED{\CD@MD\CD@GD\crcr\egroup
\global\CD@JD\endgroup}\def\CD@j{\global\advance\CD@FA1 \futurelet\CD@EH\CD@i
}\def\CD@i{\ifx\CD@EH\CD@DD\CD@tJ\hskip1sp plus 1fil \relax\let\CD@DD\relax
\CD@vI\else\hfil\CD@k\objectstyle\let\CD@FE\CD@d\fi}\def\CD@DD{\CD@MD\relax
\CD@yI\CD@vI\global\CD@QA\CD@iA\penalty-9993 \CD@ND\hfil\null\kern-2\CD@QA
\null}\def\CD@cC{\cr}\def\across#1{\span\omit\mscount=#1 \global\advance
\CD@FA\mscount\global\advance\CD@FA\m@ne\CD@sF\ifnum\mscount>2 \CD@fJ\repeat
\ignorespaces}\def\CD@fJ{\relax\span\omit\advance\mscount\m@ne}\def\CD@qJ{%
\ifincommdiag\ifx\CD@iD\@fillh\ifx\CD@jD\@fillh\ifdim\dimen3>\z@\else\ifdim
\dimen2>93\CD@@I\ifdim\dimen2>18\p@\ifdim\CD@LF>\z@\count@\CD@bJ\advance
\count@\m@ne\ifnum\count@<\z@\count@20\let\CD@aJ\CD@uJ\fi\xdef\CD@bJ{\the
\count@}\fi\fi\fi\fi\fi\fi\fi}\def\CD@cG#1{\vrule\horizhtdp width#1\dimen@
\kern2\dimen@}\def\CD@uJ{\rlap{\dimen@\CD@@I\CD@V\dimen@{.182\p@}\CD@zH
\dimen@\advance\CD@tI\dimen@\CD@cG0\CD@cG0\CD@cG2\CD@cG6\CD@cG6\CD@cG2\CD@cG0%
\CD@cG0\CD@cG2\CD@cG6\CD@cG0\CD@cG0\CD@cG2\CD@cG2\CD@cG6\CD@cG0\CD@cG0\CD@cG2%
\CD@cG6\CD@cG2\CD@cG2\CD@cG0\CD@cG0}}\def\CD@bJ{10}\def\CD@aJ{}\def\CD@XD{%
\CD@gE\CD@TB\fi\CD@x\CD@WF\CD@HI}\def\CD@x{\CD@QJ\CD@DC\CD@MJ\ifdim\CD@DC=\z@
\else\CD@pF\CD@DC\fi\ifvoid3 \setbox3=\null\ht3\CD@tI\dp3\CD@sI\else\CD@V{\ht
3}\CD@tI\CD@V{\dp3}\CD@sI\fi\dimen3=.5\wd3 \ifdim\dimen3=\z@\CD@tE\else\dimen
3-\CD@XH\fi\else\CD@TB\fi\CD@V{\dimen2}{\wd7}\CD@V{\dimen2}{\wd6}\CD@qJ
\advance\dimen2-2\dimen3 \dimen4.5\dimen2 \dimen2\dimen4 \advance\dimen2%
\CD@eJ\advance\dimen4-\CD@eJ\advance\dimen2-\wd1 \advance\dimen4-\wd5 \ifvoid
2 \else\CD@V{\ht3}{\ht2}\CD@V{\dp3}{\dp2}\CD@V{\dimen2}{\wd2}\fi\ifvoid4 \else
\CD@V{\ht3}{\ht4}\CD@V{\dp3}{\dp4}\CD@V{\dimen4}{\wd4}\fi\advance\skip2\dimen
2 \advance\skip4\dimen4 \CD@tE\advance\skip2\skip4 \dimen0\dimen5 \advance
\dimen0\wd5 \skip3-\skip4 \advance\skip3-\dimen0 \let\CD@jD\empty\else\skip3%
\z@\relax\dimen0\z@\fi}\def\CD@WF{\offinterlineskip\lineskip.2\CD@zC\ifvoid6
\else\setbox3=\vbox{\hbox to2\dimen3{\hss\box6\hss}\box3}\fi\ifvoid7 \else
\setbox3=\vtop{\box3 \hbox to2\dimen3{\hss\box7\hss}}\fi}\def\CD@HI{\kern
\dimen1 \box1 \CD@aJ\CD@iD\hskip\skip2 \kern\dimen0 \ifincommdiag\CD@jE
\penalty1\fi\kern\dimen3 \penalty\CD@GB\hskip\skip3 \null\kern-\dimen3 \else
\hskip\skip3 \fi\box3 \CD@jD\hskip\skip4 \box5 \kern\dimen5}\def\CD@MF{\ifnum
\CD@LH>\CD@TC\CD@V{\dimen1}\objectheight\CD@V{\dimen5}\objectheight\else\CD@V
{\dimen1}\objectwidth\CD@V{\dimen5}\objectwidth\fi}\def\CD@Y{\begingroup
\ifdim\dimen7=\z@\kern\dimen8 \else\ifdim\dimen6=\z@\kern\dimen9 \else\dimen5%
\dimen6 \dimen6\dimen9 \CD@KJ\dimen4\dimen2 \CD@dG{\dimen4}\dimen6\dimen5
\dimen7\dimen8 \CD@KJ\CD@iC{\dimen2}\ifdim\dimen2<\dimen4 \kern\dimen2 \else
\kern\dimen4 \fi\fi\fi\endgroup}\def\CD@jJ{\CD@JI\setbox\z@\hbox{\lower
\axisheight\hbox to\dimen2{\CD@DF\ifPositiveGradient\dimen8\ht\CD@MH\dimen9%
\CD@mI\else\dimen8\dp3 \dimen9\dimen1 \fi\else\dimen8 \ifPositiveGradient
\objectheight\else\z@\fi\dimen9\objectwidth\fi\advance\dimen8
\ifPositiveGradient-\fi\axisheight\CD@Y\unhbox\z@\CD@DF\ifPositiveGradient
\dimen8\dp3 \dimen9\dimen0 \else\dimen8\ht\CD@MH\dimen9\CD@mF\fi\else\dimen8
\ifPositiveGradient\z@\else\objectheight\fi\dimen9\objectwidth\fi\advance
\dimen8 \ifPositiveGradient\else-\fi\axisheight\CD@Y}}}\def\CD@bD{\dimen6
\CD@aK\DiagramCellHeight\dimen7 \CD@WK\DiagramCellWidth\CD@jJ
\ifPositiveGradient\advance\dimen7-\CD@ZK\DiagramCellWidth\else\dimen7 \CD@ZK
\DiagramCellWidth\dimen6\z@\fi\advance\dimen6-\CD@bK\DiagramCellHeight\CD@mK
\setbox0=\rlap{\kern-\dimen7 \lower\dimen6\box\z@}\ht0\z@\dp0\z@\raise
\axisheight\box0 }\def\CD@mK{\setbox0\hbox{\ht\z@\z@\dp\z@\z@\wd\z@\z@\CD@hK
\expandafter\CD@tK{q \CD@eK\space\CD@lK\space\CD@kK\space\CD@eK\space0 0 cm}%
\else\global\CD@iG\CD@eD{\the\CD@TC\space\ifPositiveGradient\else-\fi\the
\CD@LH\space bturn}\fi\box\z@\CD@gK}}\def\CD@vB{\advance\CD@hF-\CD@mI\CD@wJ
\CD@hF\advance\CD@wJ\CD@hI\ifvoid\CD@sH\ifdim\CD@wJ<.1em\ifnum\CD@gD=\@m\else
\CD@aG h\CD@wJ<.1em:objects overprint:\CD@FA\CD@gD\fi\fi\else\ifhbox\CD@sH
\CD@SK\else\CD@TK\fi\advance\CD@wJ\CD@mI\CD@bH{-\CD@mI}{\box\CD@sH}{\CD@wJ}%
\z@\fi\CD@hF-\CD@mF\CD@gD\CD@FA\CD@hI\z@}\def\CD@SK{\setbox\CD@sH=\hbox{%
\unhbox\CD@sH\unskip\unpenalty}\setbox\CD@tH=\hbox{\unhbox\CD@tH\unskip
\unpenalty}\setbox\CD@sH=\hbox to\CD@wJ{\CD@OA\wd\CD@sH\unhbox\CD@sH\CD@PA
\lastkern\unkern\ifdim\CD@PA=\z@\CD@UB\advance\CD@OA-\wd\CD@tH\else\CD@TB\fi
\ifnum\lastpenalty=\z@\else\CD@JA\unpenalty\fi\kern\CD@PA\ifdim\CD@hF<\CD@OA
\CD@JA\fi\ifdim\CD@hI<\wd\CD@tH\CD@JA\fi\CD@jE\CD@hI\CD@wJ\advance\CD@hI-%
\CD@OA\advance\CD@hI\wd\CD@tH\ifdim\CD@hI<2\wd\CD@tH\CD@aG h\CD@hI<2\wd\CD@tH
:arrow too short:\CD@FA\CD@gD\fi\divide\CD@hI\tw@\CD@hF\CD@wJ\advance\CD@hF-%
\CD@hI\fi\CD@tE\kern-\CD@hI\fi\hbox to\CD@hI{\unhbox\CD@tH}\CD@HG}}\CD@tG
\ifinpile\inpiletrue\inpilefalse\inpilefalse\def\pile{\protect\CD@UJ\protect
\CD@uH}\def\CD@uH#1{\CD@l#1\CD@QD}\def\CD@UJ{\CD@nB{pile}\setbox0=\vtop
\bgroup\aftergroup\CD@lD\inpiletrue\let\CD@FE\empty\let\pile\CD@KF\let\CD@QD
\CD@PD\let\CD@GD\CD@FD\CD@yH\baselineskip.5\PileSpacing\lineskip.1\CD@zC
\relax\lineskiplimit\lineskip\mathsurround\z@\tabskip\z@\let\\\CD@wH}\def
\CD@l{\CD@DE\CD@YF\empty\halign\bgroup\hfil\CD@k\let\CD@FE\CD@d\let\\\CD@vH##%
\CD@MD\CD@ND\hfil\CD@Q\CD@R##\cr}\CD@rG\CD@NE{pile only allows one column.}%
\CD@rG\CD@UE{you left it out!}\def\CD@R{\CD@QD\CD@Q\relax\CD@YA{missing \CD@yC
\space inserted after \string\pile}\CD@NE}\def\CD@PD{\CD@MD\crcr\egroup
\egroup}\def\CD@GD{\CD@MD}\def\CD@FD{\CD@MD\relax\CD@QD\CD@YA{missing \CD@yC
\space inserted between \string\pile\space and \CD@HD}\CD@UE}\def\CD@QD{%
\CD@MD}\def\CD@lD{\vbox{\dimen1\dp0 \unvbox0 \setbox0=\lastbox\advance\dimen1%
\dp0 \nointerlineskip\box0 \nointerlineskip\setbox0=\null\dp0.5\dimen1\ht0-%
\dp0 \box0}\ifincommdiag\CD@tJ\penalty-9998 \fi\xdef\CD@YF{pile}}\def\CD@vH{%
\cr}\def\CD@wH{\noalign{\skip@\prevdepth\advance\skip@-\baselineskip
\prevdepth\skip@}}\def\CD@KF#1{#1}\def\CD@TK{\setbox\CD@sH=\vbox{\unvbox
\CD@sH\setbox1=\lastbox\setbox0=\box\voidb@x\CD@tF\setbox\CD@sH=\lastbox
\ifhbox\CD@sH\CD@rC\repeat\unvbox0 \global\CD@QA\CD@ZE}\CD@ZE\CD@QA}\def
\CD@rC{\CD@jE\setbox\CD@sH=\hbox{\unhbox\CD@sH\unskip\setbox\CD@sH=\lastbox
\unskip\unhbox\CD@sH}\ifdim\CD@wJ<\wd\CD@sH\CD@aG h\CD@wJ<\wd\CD@sH:arrow in
pile too short:\CD@FA\CD@gD\else\setbox\CD@sH=\hbox to\CD@wJ{\unhbox\CD@sH}%
\fi\else\CD@gJ\fi\setbox0=\vbox{\box\CD@sH\nointerlineskip\ifvoid0 \CD@tJ\box
1 \else\vskip\skip0 \unvbox0 \fi}\skip0=\lastskip\unskip}\def\CD@gJ{\penalty7
\noindent\unhbox\CD@sH\unskip\setbox\CD@sH=\lastbox\unskip\unhbox\CD@sH
\endgraf\setbox\CD@tH=\lastbox\unskip\setbox\CD@tH=\hbox{\CD@JG\unhbox\CD@tH
\unskip\unskip\unpenalty}\ifcase\prevgraf\cd@shouldnt P\or\ifdim\CD@wJ<\wd
\CD@tH\CD@aG h\CD@wJ<\wd\CD@sH:object in pile too wide:\CD@FA\CD@gD\setbox
\CD@sH=\hbox to\CD@wJ{\hss\unhbox\CD@tH\hss}\else\setbox\CD@sH=\hbox to\CD@wJ
{\hss\kern\CD@hF\unhbox\CD@tH\kern\CD@hI\hss}\fi\or\setbox\CD@sH=\lastbox
\unskip\CD@SK\else\cd@shouldnt Q\fi\unskip\unpenalty}\def\CD@cD{\CD@MJ\ifvoid
3 \setbox3=\null\ht3\axisheight\dp3-\ht3 \dimen3.5\CD@LF\else\dimen4\dp3
\dimen3.5\wd3 \setbox3=\CD@GG{\box3}\dp3\dimen4 \ifdim\ht3=-\dp3 \else\CD@TB
\fi\fi\dimen0\dimen3 \advance\dimen0-.5\CD@LF\setbox0\null\ht0\ht3\dp0\dp3\wd
0\wd3 \ifvoid6\else\setbox6\hbox{\unhbox6\kern\dimen0\kern2pt}\dimen0\wd6 \fi
\ifvoid7\else\setbox7\hbox{\kern2pt\kern\dimen3\unhbox7}\dimen3\wd7 \fi
\setbox3\hbox{\ifvoid6\else\kern-\dimen0\unhbox6\fi\unhbox3 \ifvoid7\else
\unhbox7\kern-\dimen3\fi}\ht3\ht0\dp3\dp0\wd3\wd0 \CD@tE\dimen4=\ht\CD@MH
\advance\dimen4\dp5 \advance\dimen4\dimen1 \let\CD@jD\empty\else\dimen4\ht3
\fi\setbox0\null\ht0\dimen4 \offinterlineskip\setbox8=\vbox spread2ex{\kern
\dimen5 \box1 \CD@iD\vfill\CD@tE\else\kern\CD@eJ\fi\box0}\ht8=\z@\setbox9=%
\vtop spread2ex{\kern-\ht3 \kern-\CD@eJ\box3 \CD@jD\vfill\box5 \kern\dimen1}%
\dp9=\z@\hskip\dimen0plus.0001fil \box9 \kern-\CD@LF\box8 \CD@kE\penalty2 \fi
\CD@tE\penalty1 \fi\kern\PileSpacing\kern-\PileSpacing\kern-.5\CD@LF\penalty
\CD@GB\null\kern\dimen3}\def\CD@cI{\ifhbox\CD@VA\CD@KB{clashing verticals}\ht
\CD@MH.5\dp\CD@VA\dp\CD@MH-\ht5 \CD@yB\ht\CD@MH\z@\dp\CD@MH\z@\fi\dimen1\dp
\CD@VA\CD@xA\prevgraf\unvbox\CD@VA\CD@wA\lastpenalty\unpenalty\setbox\CD@VA=%
\null\setbox\CD@lI=\hbox{\CD@JG\unhbox\CD@lI\unskip\unpenalty\dimen0\lastkern
\unkern\unkern\unkern\kern\dimen0 \CD@HG}\setbox\CD@lF=\hbox{\unhbox\CD@lF
\dimen0\lastkern\unkern\unkern\global\CD@QA\lastkern\unkern\kern\dimen0 }%
\CD@tF\ifnum\CD@xA>4 \CD@zI\repeat\unskip\unskip\advance\CD@mF.5\wd\CD@VA
\advance\CD@mF\wd\CD@lF\advance\CD@mI.5\wd\CD@VA\advance\CD@mI\wd\CD@lI\ifnum
\CD@FA=\CD@lA\CD@OA.5\wd\CD@VA\edef\CD@NK{\the\CD@OA}\fi\setbox\CD@VA=\hbox{%
\kern-\CD@mF\box\CD@lF\unhbox\CD@VA\box\CD@lI\kern-\CD@mI\penalty\CD@wA
\penalty\CD@NB}\ht\CD@VA\dimen1 \dp\CD@VA\z@\wd\CD@VA\CD@tB\CD@vB}\def\CD@zI{%
\ifdim\wd\CD@lF<\CD@QA\setbox\CD@lF=\hbox to\CD@QA{\CD@JG\unhbox\CD@lF}\fi
\advance\CD@xA\m@ne\setbox\CD@VA=\hbox{\box\CD@lF\unhbox\CD@VA}\unskip\setbox
\CD@lF=\lastbox\setbox\CD@lF=\hbox{\unhbox\CD@lF\unskip\unpenalty\dimen0%
\lastkern\unkern\unkern\global\CD@QA\lastkern\unkern\kern\dimen0 }}\def\CD@yB
{\dimen1\dp\CD@VA\ifhbox\CD@VA\CD@xB\else\CD@zB\fi\setbox\CD@VA=\vbox{%
\penalty\CD@NB}\dp\CD@VA-\dp\CD@MH\wd\CD@VA\CD@tB}\def\CD@zB{\unvbox\CD@VA
\CD@wA\lastpenalty\unpenalty\ifdim\dimen1<\ht\CD@MH\CD@aG v\dimen1<\ht\CD@MH:%
rows overprint:\CD@NB\CD@wA\fi}\def\CD@xB{\dimen0=\ht\CD@VA\setbox\CD@VA=%
\hbox\bgroup\advance\dimen1-\ht\CD@MH\unhbox\CD@VA\CD@xA\lastpenalty
\unpenalty\CD@wA\lastpenalty\unpenalty\global\CD@RA-\lastkern\unkern\setbox0=%
\lastbox\CD@tF\setbox\CD@VA=\hbox{\box0\unhbox\CD@VA}\setbox0=\lastbox\ifhbox
0 \CD@kJ\repeat\global\CD@SA-\lastkern\unkern\global\CD@QA\CD@JK\unhbox\CD@VA
\egroup\CD@JK\CD@QA\CD@bH{\CD@SA}{\box\CD@VA}{\CD@RA}{\dimen1}}\def\CD@kJ{%
\setbox0=\hbox to\wd0\bgroup\unhbox0 \unskip\unpenalty\dimen7\lastkern\unkern
\ifnum\lastpenalty=1 \unpenalty\CD@UB\else\CD@TB\fi\ifnum\lastpenalty=2
\unpenalty\dimen2.5\dimen0\advance\dimen2-.5\dimen1\advance\dimen2-%
\axisheight\else\dimen2\z@\fi\setbox0=\lastbox\dimen6\lastkern\unkern\setbox1%
=\lastbox\setbox0=\vbox{\unvbox0 \CD@tE\kern-\dimen1 \else\ifdim\dimen2=\z@
\else\kern\dimen2 \fi\fi}\ifdim\dimen0<\ht0 \CD@aG v\dimen0<\ht0:upper part of
vertical too short:{\CD@tE\CD@NB\else\CD@wA\fi}\CD@xA\else\setbox0=\vbox to%
\dimen0{\unvbox0}\fi\setbox1=\vtop{\unvbox1}\ifdim\dimen1<\dp1 \CD@aG v\dimen
1<\dp1:lower part of vertical too short:\CD@NB\CD@wA\else\setbox1=\vtop to%
\dimen1{\ifdim\dimen2=\z@\else\kern-\dimen2 \fi\unvbox1 }\fi\box1 \kern\dimen
6 \box0 \kern\dimen7 \CD@HG\global\CD@QA\CD@JK\egroup\CD@JK\CD@QA\relax}%
\countdef\CD@u=14 \newcount\CD@CA\newcount\CD@XB\newcount\CD@NB\let\CD@LB
\insc@unt\newcount\CD@FA\newcount\CD@lA\let\CD@mA\CD@XB\newcount\CD@MB\CD@tG
\CD@DF\CD@bI\CD@aI\CD@aI\def\CD@nD{-1}\def\CD@K{\ifnum\CD@nD<\z@\else
\begingroup\scrollmode\showboxdepth\CD@nD\showboxbreadth\maxdimen\showlists
\endgroup\fi\CD@bI\CD@zF\CD@CA=\CD@u\advance\CD@CA1 \CD@XB=\CD@CA\ifnum\CD@NB
=1 \CD@JA\fi\advance\CD@XB\CD@NB\dimen1\z@\skip0\z@\count@=\insc@unt\advance
\count@\CD@u\divide\count@2 \ifnum\CD@XB>\count@\CD@KB{The diagram has too
many rows! It can't be reformatted.}\else\CD@NG\CD@WI\fi\CD@cH}\def\CD@NG{%
\CD@NB\CD@CA\CD@uF\ifnum\CD@NB<\CD@XB\setbox\CD@NB\box\voidb@x\advance\CD@NB1%
\relax\repeat\CD@NB\CD@CA\skip\z@\z@\CD@uF\CD@GB\lastpenalty\unpenalty\ifnum
\CD@GB>\z@\CD@KE\repeat\ifnum\CD@GB=-123 \CD@tJ\unpenalty\else\cd@shouldnt D%
\fi\ifx\v@grid\relax\else\CD@NB\CD@XB\advance\CD@NB\m@ne\expandafter\CD@VJ
\v@grid\fi\CD@MB\CD@mA\CD@tB\z@\CD@XG\ifx\h@grid\relax\else\expandafter\CD@LJ
\h@grid\fi\count@\CD@XB\advance\count@\m@ne\CD@YB\ht\count@}\def\CD@KE{%
\ifcase\CD@GB\or\CD@MG\else\CD@uA-\lastpenalty\unpenalty\CD@vA\lastpenalty
\unpenalty\setbox0=\lastbox\CD@WG\fi\CD@wD}\def\CD@wD{\skip1\lastskip\unskip
\advance\skip0\skip1 \ifdim\skip1=\z@\else\expandafter\CD@wD\fi}\def\CD@MG{%
\setbox0=\lastbox\CD@pI\dp0 \advance\CD@pI\skip\z@\skip\z@\z@\advance\CD@NF
\CD@pI\CD@uE\ifnum\CD@NB>\CD@CA\CD@NF\DiagramCellHeight\CD@pI\CD@NF\advance
\CD@pI-\CD@qI\fi\fi\CD@qI\ht0 \CD@NF\CD@qI\setbox\CD@NB\hbox{\unhbox\CD@NB
\unhbox0}\dp\CD@NB\CD@pI\ht\CD@NB\CD@qI\advance\CD@NB1 }\def\CD@WG{\ifnum
\CD@uA<\z@\advance\CD@uA\CD@XB\ifnum\CD@uA<\CD@CA\CD@UG\else\CD@OA\dp\CD@uA
\CD@PA\ht\CD@uA\setbox\CD@uA\hbox{\box\z@\penalty\CD@vA\penalty\CD@GB\unhbox
\CD@uA}\dp\CD@uA\CD@OA\ht\CD@uA\CD@PA\fi\else\CD@UG\fi}\def\CD@UG{\CD@KB{%
diagonal goes outside diagram (lost)}}\def\CD@fI{\advance\CD@uA\CD@XB\ifnum
\CD@uA<\CD@CA\CD@UG\else\ifnum\CD@uA=\CD@NB\CD@VG\else\ifnum\CD@uA>\CD@NB
\cd@shouldnt M\else\CD@OA\dp\CD@uA\CD@PA\ht\CD@uA\setbox\CD@uA\hbox{\box\z@
\penalty\CD@vA\penalty\CD@GB\unhbox\CD@uA}\dp\CD@uA\CD@OA\ht\CD@uA\CD@PA\fi
\fi\fi}\def\CD@WI{\CD@t\CD@AJ\setbox\CD@PC=\hbox{\CD@k A\@super f\CD@lJ f%
\CD@ND}\CD@ZE\z@\CD@JK\z@\CD@kI\z@\CD@kF\z@\CD@NB=\CD@XB\CD@NF\z@\CD@uB\z@
\CD@uF\ifnum\CD@NB>\CD@CA\advance\CD@NB\m@ne\CD@qI\ht\CD@NB\CD@pI\dp\CD@NB
\advance\CD@NF\CD@qI\CD@rI\advance\CD@uB\CD@NF\CD@KC\CD@ZI\CD@w\ht\CD@NB
\CD@qI\dp\CD@NB\CD@pI\nointerlineskip\box\CD@NB\CD@NF\CD@pI\setbox\CD@NB\null
\ht\CD@NB\CD@uB\repeat\CD@wB\nointerlineskip\box\CD@NB\CD@gG\CD@ZE
\DiagramCellWidth{width}\CD@gG\CD@JK\DiagramCellHeight{height}\CD@VA\CD@LB
\advance\CD@VA-\CD@lA\advance\CD@VA\m@ne\advance\CD@VA\CD@mA\dimen0\wd\CD@VA
\CD@tI\axisheight\dimen1\CD@uB\advance\dimen1-\CD@YB\dimen2\CD@kI\advance
\dimen2-\dimen0 \advance\CD@XB-\CD@CA\advance\CD@LB-\CD@lA}\count@\year
\multiply\count@12 \advance\count@\month\ifnum\count@>24194 \loop\iftrue
\message{gone February 2016!}\repeat\fi\def\CD@wB{\CD@qI-\CD@NF\CD@pI\CD@NF
\setbox\CD@MH=\null\dp\CD@MH\CD@NF\ht\CD@MH-\CD@NF\CD@mF\z@\CD@mI\z@\CD@lA
\CD@LB\advance\CD@lA-\CD@MB\advance\CD@lA\CD@mA\CD@FA\CD@LB\CD@VA\CD@MB\CD@sF
\ifnum\CD@FA>\CD@lA\advance\CD@FA\m@ne\advance\CD@VA\m@ne\CD@tB\wd\CD@VA
\setbox\CD@FA=\box\voidb@x\CD@yB\repeat\CD@w\ht\CD@NB\CD@qI\dp\CD@NB\CD@pI}%
\def\CD@gG#1#2#3{\ifdim#1>.01\CD@zC\CD@PA#2\relax\advance\CD@PA#1\relax
\advance\CD@PA.99\CD@zC\count@\CD@PA\divide\count@\CD@zC\CD@KB{increase cell #%
3 to \the\count@ em}\fi}\def\CD@rI{\CD@FA=\CD@LB\penalty4 \noindent\unhbox
\CD@NB\CD@sF\unskip\setbox0=\lastbox\ifhbox0 \advance\CD@FA\m@ne\setbox\CD@FA
\hbox to\wd0{\null\penalty-9990\null\unhbox0}\repeat\CD@lA\CD@FA\advance
\CD@FA\CD@MB\advance\CD@FA-\CD@mA\ifnum\CD@FA<\CD@LB\count@\CD@FA\advance
\count@\m@ne\dimen0=\wd\count@\count@\CD@MB\advance\count@\m@ne\CD@tB\wd
\count@\CD@sF\ifnum\CD@FA<\CD@LB\CD@DJ\CD@XG\dimen0\wd\CD@FA\advance\CD@FA1
\repeat\fi\CD@sF\CD@GB\lastpenalty\unpenalty\ifnum\CD@GB>\z@\CD@vA
\lastpenalty\unpenalty\CD@VG\repeat\endgraf\unskip\ifnum\lastpenalty=4
\unpenalty\else\cd@shouldnt S\fi}\def\CD@VG{\advance\CD@vA\CD@lA\advance
\CD@vA\m@ne\setbox0=\lastbox\ifnum\CD@vA<\CD@LB\setbox\CD@vA\hbox{\box0%
\penalty\CD@GB\unhbox\CD@vA}\else\CD@UG\fi}\def\CD@bG{}\CD@tG\CD@uE\CD@WB
\CD@VB\def\CD@DJ{\advance\dimen0\wd\CD@FA\divide\dimen0\tw@\CD@uE\dimen0%
\DiagramCellWidth\else\CD@V{\dimen0}\DiagramCellWidth\CD@pJ\fi\advance\CD@tB
\dimen0 }\def\CD@XG{\setbox\CD@MB=\vbox{}\dp\CD@MB=\CD@uB\wd\CD@MB\CD@tB
\advance\CD@MB1 }\def\CD@LJ#1,{\def\CD@GK{#1}\ifx\CD@GK\CD@RD\else\advance
\CD@tB\CD@GK\DiagramCellWidth\CD@XG\expandafter\CD@LJ\fi}\def\CD@VJ#1,{\def
\CD@GK{#1}\ifx\CD@GK\CD@RD\else\ifnum\CD@NB>\CD@CA\CD@NF\CD@GK
\DiagramCellHeight\advance\CD@NF-\dp\CD@NB\advance\CD@NB\m@ne\ht\CD@NB\CD@NF
\fi\expandafter\CD@VJ\fi}\def\CD@pJ{\CD@wE\CD@OA\dimen0 \advance\CD@OA-%
\DiagramCellWidth\ifdim\CD@OA>2\MapShortFall\CD@KB{badly drawn diagonals (see
manual)}\let\CD@pJ\empty\fi\else\let\CD@pJ\empty\fi}\def\CD@KC{\CD@VA\CD@mA
\CD@sF\ifnum\CD@VA<\CD@MB\dimen0\dp\CD@VA\advance\dimen0\CD@NF\dp\CD@VA\dimen
0 \advance\CD@VA1 \repeat}\def\CD@bH#1#2#3#4{\ifnum\CD@FA<\CD@LB\CD@OA=#1%
\relax\setbox\CD@FA=\hbox{\setbox0=#2\dimen7=#4\relax\dimen8=#3\relax\ifhbox
\CD@FA\unhbox\CD@FA\advance\CD@OA-\lastkern\unkern\fi\ifdim\CD@OA=\z@\else
\kern-\CD@OA\fi\raise\dimen7\box0 \kern-\dimen8 }\ifnum\CD@FA=\CD@lA\CD@V
\CD@kF\CD@OA\fi\else\cd@shouldnt O\fi}\def\CD@w{\setbox\CD@NB=\hbox{\CD@FA
\CD@lA\CD@VA\CD@mA\CD@PA\z@\relax\CD@sF\ifnum\CD@FA<\CD@LB\CD@tB\wd\CD@VA
\relax\CD@eI\advance\CD@FA1 \advance\CD@VA1 \repeat}\CD@V\CD@kI{\wd\CD@NB}\wd
\CD@NB\z@}\def\CD@eI{\ifhbox\CD@FA\CD@OA\CD@tB\relax\advance\CD@OA-\CD@PA
\relax\ifdim\CD@OA=\z@\else\kern\CD@OA\fi\CD@PA\CD@tB\advance\CD@PA\wd\CD@FA
\relax\unhbox\CD@FA\advance\CD@PA-\lastkern\unkern\fi}\def\CD@ZI{\setbox
\CD@sH=\box\voidb@x\CD@VA=\CD@MB\CD@FA\CD@LB\CD@VA\CD@mA\advance\CD@VA\CD@FA
\advance\CD@VA-\CD@lA\advance\CD@VA\m@ne\CD@tB\wd\CD@VA\count@\CD@LB\advance
\count@\m@ne\CD@hF.5\wd\count@\advance\CD@hF\CD@tB\CD@A\m@ne\CD@gD\@m\CD@sF
\ifnum\CD@FA>\CD@lA\advance\CD@FA\m@ne\advance\CD@hF-\CD@tB\CD@PI\wd\CD@VA
\CD@tB\advance\CD@hF\CD@tB\advance\CD@VA\m@ne\CD@tB\wd\CD@VA\repeat\CD@mF
\CD@kF\CD@mI-\CD@mF\CD@vB}\newcount\CD@GB\def\CD@s{}\def\CD@t{\mathsurround
\z@\hsize\z@\rightskip\z@ plus1fil minus\maxdimen\parfillskip\z@\linepenalty
9000 \looseness0 \hfuzz\maxdimen\hbadness10000 \clubpenalty0 \widowpenalty0
\displaywidowpenalty0 \interlinepenalty0 \predisplaypenalty0
\postdisplaypenalty0 \interdisplaylinepenalty0 \interfootnotelinepenalty0
\floatingpenalty0 \brokenpenalty0 \everypar{}\leftskip\z@\parskip\z@
\parindent\z@\pretolerance10000 \tolerance10000 \hyphenpenalty10000
\exhyphenpenalty10000 \binoppenalty10000 \relpenalty10000 \adjdemerits0
\doublehyphendemerits0 \finalhyphendemerits0 \CD@IA\prevdepth\z@}\newbox
\CD@KG\newbox\CD@IG\def\CD@JG{\unhcopy\CD@KG}\def\CD@HG{\unhcopy\CD@IG}\def
\CD@iJ{\hbox{}\penalty1\nointerlineskip}\def\CD@PI{\penalty5 \noindent\setbox
\CD@MH=\null\CD@mF\z@\CD@mI\z@\ifnum\CD@FA<\CD@LB\ht\CD@MH\ht\CD@FA\dp\CD@MH
\dp\CD@FA\unhbox\CD@FA\skip0=\lastskip\unskip\else\CD@OK\skip0=\z@\fi\endgraf
\ifcase\prevgraf\cd@shouldnt Y \or\cd@shouldnt Z \or\CD@RI\or\CD@XI\else
\CD@QI\fi\unskip\setbox0=\lastbox\unskip\unskip\unpenalty\noindent\unhbox0%
\setbox0\lastbox\unpenalty\unskip\unskip\unpenalty\setbox0\lastbox\CD@tF
\CD@GB\lastpenalty\unpenalty\ifnum\CD@GB>\z@\setbox\z@\lastbox\CD@lB\repeat
\endgraf\unskip\unskip\unpenalty}\def\CD@YJ{\CD@uA\CD@XB\advance\CD@uA-\CD@NB
\CD@vA\CD@FA\advance\CD@vA-\CD@lA\advance\CD@vA1 \expandafter\message{%
prevgraf=\the\prevgraf at (\the\CD@uA,\the\CD@vA)}}\def\CD@XI{\CD@CE\setbox
\CD@lI=\lastbox\setbox\CD@lI=\hbox{\unhbox\CD@lI\unskip\unpenalty}\unskip
\ifdim\ht\CD@lI>\ht\CD@PC\setbox\CD@MH=\copy\CD@lI\else\ifdim\dp\CD@lI>\dp
\CD@PC\setbox\CD@MH=\copy\CD@lI\else\CD@FG\CD@lI\fi\fi\advance\CD@mF.5\wd
\CD@lI\advance\CD@mI.5\wd\CD@lI\setbox\CD@lI=\hbox{\unhbox\CD@lI\CD@HG}\CD@bH
\CD@mF{\box\CD@lI}\CD@mI\z@\CD@yB\CD@vB}\def\CD@CE{\ifnum\CD@A>0 \advance
\dimen0-\CD@tB\CD@iA-.5\dimen0 \CD@A-\CD@A\else\CD@A0 \CD@iA\z@\fi\setbox
\CD@MH=\lastbox\setbox\CD@MH=\hbox{\unhbox\CD@MH\unskip\unskip\unpenalty
\setbox0=\lastbox\global\CD@QA\lastkern\unkern}\advance\CD@iA-.5\CD@QA\unskip
\setbox\CD@MH=\null\CD@mI\CD@iA\CD@mF-\CD@iA}\def\CD@Z{\ht\CD@MH\CD@tI\dp
\CD@MH\CD@sI}\def\CD@FG#1{\setbox\CD@MH=\hbox{\CD@V{\ht\CD@MH}{\ht#1}\CD@V{%
\dp\CD@MH}{\dp#1}\CD@V{\wd\CD@MH}{\wd#1}\vrule height\ht\CD@MH depth\dp\CD@MH
width\wd\CD@MH}}\def\CD@QI{\CD@CE\CD@Z\setbox\CD@lI=\lastbox\unskip\setbox
\CD@lF=\lastbox\unskip\setbox\CD@lF=\hbox{\unhbox\CD@lF\unskip\global\CD@yA
\lastpenalty\unpenalty}\advance\CD@yA9999 \ifcase\CD@yA\CD@VI\or\CD@YI\or
\CD@TI\or\CD@dI\or\CD@cI\or\CD@SI\else\cd@shouldnt9\fi}\def\CD@VI{\CD@FG
\CD@lI\CD@UI\setbox\CD@sH=\box\CD@lF\setbox\CD@tH=\box\CD@lI}\def\CD@YI{%
\CD@FG\CD@lF\setbox\CD@lI\hbox{\penalty8 \unhbox\CD@lI\unskip\unpenalty\ifnum
\lastpenalty=8 \else\CD@xH\fi}\CD@UI\setbox\CD@lF=\hbox{\unhbox\CD@lF\unskip
\unpenalty\global\setbox\CD@DA=\lastbox}\ifdim\wd\CD@lF=\z@\else\CD@xH\fi
\setbox\CD@sH=\box\CD@DA}\def\CD@xH{\CD@KB{extra material in \string\pile
\space cell (lost)}}\def\CD@UI{\CD@yB\ifvoid\CD@sH\else\CD@KB{Clashing
horizontal arrows}\CD@mI.5\CD@hF\CD@mF-\CD@mI\CD@vB\CD@mI\z@\CD@mF\z@\fi
\CD@hI\CD@hF\advance\CD@hI-\CD@mI\CD@hF-\CD@mF\CD@JC\CD@FA}\def\CD@RI{\setbox
0\lastbox\unskip\CD@iA\z@\CD@Z\ifdim\skip0>\z@\CD@tJ\CD@A0 \else\ifnum\CD@A<1
\CD@A0 \dimen0\CD@tB\fi\advance\CD@A1 \fi}\def\VonH{\CD@MA46\VonH{.5\CD@LF}}%
\def\HonV{\CD@MA57\HonV{.5\CD@LF}}\def\HmeetV{\CD@MA44\HmeetV{-\MapShortFall}%
}\def\CD@MA#1#2#3#4{\CD@pB34#1{\string#3}\CD@SD\CD@GB-999#2 \dimen0=#4\CD@tI
\dimen0\advance\CD@tI\axisheight\CD@sI\dimen0\advance\CD@sI-\axisheight\CD@CF
\CD@HC\CD@ZD}\def\CD@HC#1{\setbox0=\hbox{\CD@k#1\CD@ND}\dimen0.5\wd0 \CD@tI
\ht0 \CD@sI\dp0 \CD@ZD}\def\CD@SD{\setbox0=\null\ht0=\CD@tI\dp0=\CD@sI\wd0=%
\dimen0 \copy0\penalty\CD@GB\box0 }\def\CD@TI{\CD@GC\CD@yB}\def\CD@dI{\CD@GC
\CD@vB}\def\CD@SI{\CD@GC\CD@yB\CD@vB}\def\CD@GC{\setbox\CD@lI=\hbox{\unhbox
\CD@lI}\setbox\CD@lF=\hbox{\unhbox\CD@lF\global\setbox\CD@DA=\lastbox}\ht
\CD@MH\ht\CD@DA\dp\CD@MH\dp\CD@DA\advance\CD@mF\wd\CD@DA\advance\CD@mI\wd
\CD@lI}\CD@tG\ifPositiveGradient\CD@CI\CD@BI\CD@CI\CD@tG\ifClimbing\CD@rB
\CD@qB\CD@rB\newcount\DiagonalChoice\DiagonalChoice\m@ne\ifx\tenln\nullfont
\CD@tJ\def\CD@qF{\CD@KH\ifPositiveGradient/\else\CD@k\backslash\CD@ND\fi}%
\else\def\CD@qF{\CD@rF\char\count@}\fi\let\CD@rF\tenln\def\Use@line@char#1{%
\hbox{#1\CD@rF\ifPositiveGradient\else\advance\count@64 \fi\char\count@}}\def
\CD@cF{\Use@line@char{\count@\CD@TC\multiply\count@8\advance\count@-9\advance
\count@\CD@LH}}\def\CD@ZF{\Use@line@char{\ifcase\DiagonalChoice\CD@gF\or
\CD@fF\or\CD@fF\else\CD@gF\fi}}\def\CD@gF{\ifnum\CD@TC=\z@\count@'33 \else
\count@\CD@TC\multiply\count@\sixt@@n\advance\count@-9\advance\count@\CD@LH
\advance\count@\CD@LH\fi}\def\CD@fF{\count@'\ifcase\CD@LH55\or\ifcase\CD@TC66%
\or22\or52\or61\or72\fi\or\ifcase\CD@TC66\or25\or22\or63\or52\fi\or\ifcase
\CD@TC66\or16\or36\or22\or76\fi\or\ifcase\CD@TC66\or27\or25\or67\or22\fi\fi
\relax}\def\CD@uC#1{\hbox{#1\setbox0=\Use@line@char{#1}\ifPositiveGradient
\else\raise.3\ht0\fi\copy0 \kern-.7\wd0 \ifPositiveGradient\raise.3\ht0\fi
\box0}}\def\CD@jF#1{\hbox{\setbox0=#1\kern-.75\wd0 \vbox to.25\ht0{%
\ifPositiveGradient\else\vss\fi\box0 \ifPositiveGradient\vss\fi}}}\def\CD@jI#%
1{\hbox{\setbox0=#1\dimen0=\wd0 \vbox to.25\ht0{\ifPositiveGradient\vss\fi
\box0 \ifPositiveGradient\else\vss\fi}\kern-.75\dimen0 }}\CD@RC{+h:>}{%
\Use@line@char\CD@fF}\CD@RC{-h:>}{\Use@line@char\CD@gF}\CD@nF{+t:<}{-h:>}%
\CD@nF{-t:<}{+h:>}\CD@RC{+t:>}{\CD@jF{\Use@line@char\CD@fF}}\CD@RC{-t:>}{%
\CD@jI{\Use@line@char\CD@gF}}\CD@nF{+h:<}{-t:>}\CD@nF{-h:<}{+t:>}\CD@RC{+h:>>%
}{\CD@uC\CD@fF}\CD@RC{-h:>>}{\CD@uC\CD@gF}\CD@nF{+t:<<}{-h:>>}\CD@nF{-t:<<}{+%
h:>>}\CD@nF{+h:>->}{+h:>>}\CD@nF{-h:>->}{-h:>>}\CD@nF{+t:<-<}{-h:>>}\CD@nF{-t%
:<-<}{+h:>>}\CD@RC{+t:>>}{\CD@jF{\CD@uC\CD@fF}}\CD@RC{-t:>>}{\CD@jI{\CD@uC
\CD@gF}}\CD@nF{+h:<<}{-t:>>}\CD@nF{-h:<<}{+t:>>}\CD@nF{+t:>->}{+t:>>}\CD@nF{-%
t:>->}{-t:>>}\CD@nF{+h:<-<}{-t:>>}\CD@nF{-h:<-<}{+t:>>}\CD@RC{+f:-}{\CD@EF
\null\else\CD@cF\fi}\CD@nF{-f:-}{+f:-}\def\CD@tC#1#2{\vbox to#1{\vss\hbox to#%
2{\hss.\hss}\vss}}\def\hfdot{\CD@tC{2\axisheight}{.5em}}%
%% % .7em until 29.7.98
\def\vfdot{\CD@tC{1ex}\z@}%% % 1.46ex until 29.7.98
\def\CD@bF{\hbox{\dimen0=.3\CD@zC\dimen1\dimen0 \ifnum\CD@LH>\CD@TC\CD@iC{%
\dimen1}\else\CD@dG{\dimen0}\fi\CD@tC{\dimen0}{\dimen1}}}\newarrowfiller{.}%
\hfdot\hfdot\vfdot\vfdot\def\dfdot{\CD@bF\CD@CK}\CD@RC{+f:.}{\dfdot}\CD@RC{-f%
:.}{\dfdot}\def\CD@@K#1{\hbox\bgroup\def\CD@CH{#1\egroup}\afterassignment
\CD@CH%%
\count@='}\def\lnchar{\CD@@K\CD@qF}\def\CD@dF#1{\setbox#1=\hbox{\dimen5\dimen
#1 \setbox8=\box#1 \dimen1\wd8 \count@\dimen5 \divide\count@\dimen1 \ifnum
\count@=0 \box8 \ifdim\dimen5<.95\dimen1 \CD@gB{diagonal line too short}\fi
\else\dimen3=\dimen5 \advance\dimen3-\dimen1 \divide\dimen3\count@\dimen4%
\dimen3 \CD@dG{\dimen4}\ifPositiveGradient\multiply\dimen4\m@ne\fi\dimen6%
\dimen1 \advance\dimen6-\dimen3 \loop\raise\count@\dimen4\copy8 \ifnum\count@
>0 \kern-\dimen6 \advance\count@\m@ne\repeat\fi}}\def\CD@CG#1{\CD@EF\CD@xJ{#1%
}\else\CD@dF{#1}\fi}\def\CD@IH#1{}\newdimen\objectheight\objectheight1.8ex
\newdimen\objectwidth\objectwidth1em \def\CD@YD{\dimen6=\CD@aK
\DiagramCellHeight\dimen7=\CD@WK\DiagramCellWidth\CD@KJ\ifnum\CD@LH>0 \ifnum
\CD@TC>0 \CD@aF\else\aftergroup\CD@VC\fi\else\aftergroup\CD@UC\fi}\def\CD@VC{%
\CD@YA{diagonal map is nearly vertical}\CD@NA}\def\CD@UC{\CD@YA{diagonal map
is nearly horizontal}\CD@NA}\CD@rG\CD@NA{Use an orthogonal map instead}\def
\CD@aF{\CD@MJ\dimen3\dimen7\dimen7\dimen6\CD@iC{\dimen7}\advance\dimen3-%
\dimen7 \CD@MF\ifnum\CD@LH>\CD@TC\advance\dimen6-\dimen1\advance\dimen6-%
\dimen5 \CD@iC{\dimen1}\CD@iC{\dimen5}\else\dimen0\dimen1\advance\dimen0%
\dimen5\CD@dG{\dimen0}\advance\dimen6-\dimen0 \fi\dimen2.5\dimen7\advance
\dimen2-\dimen1 \dimen4.5\dimen7\advance\dimen4-\dimen5 \ifPositiveGradient
\dimen0\dimen5 \advance\dimen1-\CD@WK\DiagramCellWidth\advance\dimen1 \CD@ZK
\DiagramCellWidth\setbox6=\llap{\unhbox6\kern.1\ht2}\setbox7=\rlap{\kern.1\ht
2\unhbox7}\else\dimen0\dimen1 \advance\dimen1-\CD@ZK\DiagramCellWidth\setbox7%
=\llap{\unhbox7\kern.1\ht2}\setbox6=\rlap{\kern.1\ht2\unhbox6}\fi\setbox6=%
\vbox{\box6\kern.1\wd2}\setbox7=\vtop{\kern.1\wd2\box7}\CD@dG{\dimen0}%
\advance\dimen0-\axisheight\advance\dimen0-\CD@bK\DiagramCellHeight\dimen5-%
\dimen0 \advance\dimen0\dimen6 \advance\dimen1.5\dimen3 \ifdim\wd3>\z@\ifdim
\ht3>-\dp3\CD@TB\fi\fi\dimen3\dimen2 \dimen7\dimen2\advance\dimen7\dimen4
\ifvoid3 \else\CD@tE\else\dimen8\ht3\advance\dimen8-\axisheight\CD@iC{\dimen8%
}\CD@X{\dimen8}{.5\wd3}\dimen9\dp3\advance\dimen9\axisheight\CD@iC{\dimen9}%
\CD@X{\dimen9}{.5\wd3}\ifPositiveGradient\advance\dimen2-\dimen9\advance
\dimen4-\dimen8 \else\advance\dimen4-\dimen9\advance\dimen2-\dimen8 \fi\fi
\advance\dimen3-.5\wd3 \fi\dimen9=\CD@aK\DiagramCellHeight\advance\dimen9-2%
\DiagramCellHeight\CD@tE\advance\dimen2\dimen4 \CD@CG{2}\dimen2-\dimen0%
\advance\dimen2\dp2 \else\CD@CG{2}\CD@CG{4}\ifPositiveGradient\dimen2-\dimen0%
\advance\dimen2\dp2 \dimen4\dimen5\advance\dimen4-\ht4 \else\dimen4-\dimen0%
\advance\dimen4\dp4 \dimen2\dimen5\advance\dimen2-\ht2 \fi\fi\setbox0=\hbox to%
\z@{\kern\dimen1 \ifvoid1 \else\ifPositiveGradient\advance\dimen0-\dp1 \lower
\dimen0 \else\advance\dimen5-\ht1 \raise\dimen5 \fi\rlap{\unhbox1}\fi\raise
\dimen2\rlap{\unhbox2}\ifvoid3 \else\lower.5\dimen9\rlap{\kern\dimen3\unhbox3%
}\fi\kern.5\dimen7 \lower.5\dimen9\box6 \lower.5\dimen9\box7 \kern.5\dimen7
\CD@tE\else\raise\dimen4\llap{\unhbox4}\fi\ifvoid5 \else\ifPositiveGradient
\advance\dimen5-\ht5 \raise\dimen5 \else\advance\dimen0-\dp5 \lower\dimen0 \fi
\llap{\unhbox5}\fi\hss}\ht0=\axisheight\dp0=-\ht0\box0 }\def\NorthWest{\CD@BI
\CD@rB\DiagonalChoice0 }\def\NorthEast{\CD@CI\CD@rB\DiagonalChoice1 }\def
\SouthWest{\CD@CI\CD@qB\DiagonalChoice3 }\def\SouthEast{\CD@BI\CD@qB
\DiagonalChoice2 }\def\CD@aD{\vadjust{\CD@uA\CD@FA\advance\CD@uA
\ifPositiveGradient\else-\fi\CD@ZK\relax\CD@vA\CD@NB\advance\CD@vA-\CD@bK
\relax\hbox{\advance\CD@uA\ifPositiveGradient-\fi\CD@WK\advance\CD@vA\CD@aK
\hbox{\box6 \kern\CD@DC\kern\CD@eJ\penalty1 \box7 \box\z@}\penalty\CD@uA
\penalty\CD@vA}\penalty\CD@uA\penalty\CD@vA\penalty104}}\def\CD@eH#1{\relax
\vadjust{\hbox@maths{#1}\penalty\CD@FA\penalty\CD@NB\penalty\tw@}}\def\CD@lB{%
\ifcase\CD@GB\or\or\CD@bH{.5\wd0}{\box0}{.5\wd0}\z@\or\unhbox\z@\setbox\z@
\lastbox\CD@bH{.5\wd0}{\box0}{.5\wd0}\z@\unpenalty\unpenalty\setbox\z@
\lastbox\or\CD@TG\else\advance\CD@GB-100 \ifnum\CD@GB<\z@\cd@shouldnt B\fi
\setbox\z@\hbox{\kern\CD@mF\copy\CD@MH\kern\CD@mI\CD@uA\CD@XB\advance\CD@uA-%
\CD@NB\penalty\CD@uA\CD@uA\CD@FA\advance\CD@uA-\CD@lA\penalty\CD@uA\unhbox\z@
\global\CD@yA\lastpenalty\unpenalty\global\CD@zA\lastpenalty\unpenalty}\CD@uA
-\CD@yA\CD@vA\CD@zA\CD@fI\fi}\def\CD@TG{\unhbox\z@\setbox\z@\lastbox\CD@uA
\lastpenalty\unpenalty\advance\CD@uA\CD@mA\CD@vA\CD@XB\advance\CD@vA-%
\lastpenalty\unpenalty\dimen1\lastkern\unkern\setbox3\lastbox\dimen0\lastkern
\unkern\setbox0=\hbox to\z@{\unhbox0\setbox0\lastbox\setbox7\lastbox
\unpenalty\CD@eJ\lastkern\unkern\CD@DC\lastkern\unkern\setbox6\lastbox\dimen7%
\CD@tB\advance\dimen7-\wd\CD@uA\ifdim\dimen7<\z@\CD@CI\multiply\dimen7\m@ne
\let\mv\empty\else\CD@BI\def\mv{\raise\ht1}\kern-\dimen7 \fi\ifnum\CD@vA>%
\CD@NB\dimen6\CD@uB\advance\dimen6-\ht\CD@vA\else\dimen6\z@\fi\CD@jJ\CD@mK
\setbox1\null\ht1\dimen6\wd1\dimen7 \dimen7\dimen2 \dimen6\wd1 \CD@KJ\CD@uA
\CD@LH\CD@vA\CD@TC\dimen6\ht1 \CD@KJ\setbox2\null\divide\dimen2\tw@\advance
\dimen2\CD@eJ\CD@eG{\dimen2}\wd2\dimen2 \dimen0.5\dimen7 \advance\dimen0%
\ifPositiveGradient\else-\fi\CD@eJ\CD@dG{\dimen0}\advance\dimen0-\axisheight
\ht2\dimen0 \dimen0\CD@DC\CD@eG{\dimen0}\advance\dimen0\ht2\ht2\dimen0 \dimen
0\ifPositiveGradient-\fi\CD@DC\CD@dG{\dimen0}\advance\dimen0\wd2\wd2\dimen0
\setbox4\null\dimen0 .6\CD@zC\CD@eG{\dimen0}\ht4\dimen0 \dimen0 .2\CD@zC
\CD@dG{\dimen0}\wd4\dimen0 \dimen0\wd2 \ifvoid6\else\dimen1\ht4 \advance
\dimen1\ht2 \CD@CC6+-\raise\dimen1\rlap{\ifPositiveGradient\advance\dimen0-%
\wd6\advance\dimen0-\wd4 \else\advance\dimen0\wd4 \fi\kern\dimen0\box6}\fi
\dimen0\wd2 \ifvoid7\else\dimen1\ht4 \advance\dimen1-\ht2 \CD@CC7-+\lower
\dimen1\rlap{\ifPositiveGradient\advance\dimen0\wd4 \else\advance\dimen0-\wd7%
\advance\dimen0-\wd4 \fi\kern\dimen0\box7}\fi\mv\box0\hss}\ht0\z@\dp0\z@
\CD@bH{\z@}{\box\z@}{\z@}{\axisheight}}\def\CD@CC#1#2#3{\dimen4.5\wd#1 \ifdim
\dimen4>.25\dimen7\dimen4=.25\dimen7\fi\ifdim\dimen4>\CD@zC\dimen4.4\dimen4
\advance\dimen4.6\CD@zC\fi\CD@eG{\dimen4}\dimen5\axisheight\CD@dG{\dimen5}%
\advance\dimen4-\dimen5 \dimen5\dimen4\CD@eG{\dimen5}\advance\dimen0%
\ifPositiveGradient#2\else#3\fi\dimen5 \CD@dG{\dimen4}\advance\dimen1\dimen4 }
\def\CD@eD#1{\expandafter\CD@IK{#1}}\CD@ZA\CD@EK{output is PostScript
dependent}\def\CD@SC{\CD@IK{/bturn {gsave currentpoint currentpoint translate
4 2 roll neg exch atan rotate neg exch neg exch translate } def /eturn {%
currentpoint grestore moveto} def}}\def\CD@gK{\relax\CD@hK\CD@tK{Q}\else
\CD@IK{eturn}\fi} \def\CD@OJ#1{\count@#1\relax\multiply\count@7\advance
\count@16577\divide\count@33154 }\def\CD@fD#1{\expandafter\special{#1}} \def
\CD@xJ#1{\setbox#1=\hbox{\dimen0\dimen#1\CD@dG{\dimen0}\CD@OJ{\dimen0}\setbox
0=\null\ifPositiveGradient\count@-\count@\ht0\dimen0 \else\dp0\dimen0 \fi\box
0 \CD@uA\count@\CD@OJ\CD@LF\CD@fD{pn \the\count@}\CD@fD{pa 0 0}\CD@OJ{\dimen#%
1}\CD@fD{pa \the\count@\space\the\CD@uA}\CD@fD{fp}\kern\dimen#1}}\def\CD@JI{%
\CD@KJ\begingroup\ifdim\dimen7<\dimen6 \dimen2=\dimen6 \dimen6=\dimen7 \dimen
7=\dimen2 \count@\CD@LH\CD@LH\CD@TC\CD@TC\count@\else\dimen2=\dimen7 \fi
\ifdim\dimen6>.01\p@\CD@KI\global\CD@QA\dimen0 \else\global\CD@QA\dimen7 \fi
\endgroup\dimen2\CD@QA\CD@iK\CD@lK{\ifPositiveGradient\else-\fi\dimen6}\CD@iK
\CD@kK{\ifPositiveGradient-\fi\dimen6}\CD@iK\CD@eK{\dimen7}}\def\CD@KI{\CD@hJ
\ifdim\dimen7>1.73\dimen6 \divide\dimen2 4 \multiply\CD@TC2 \else\dimen2=0.%
353553\dimen2 \advance\CD@LH-\CD@TC\multiply\CD@TC4 \fi\dimen0=4\dimen2 \CD@ZG
4\CD@ZG{-2}\CD@ZG2\CD@ZG{-2.5}}\def\CD@AI{\begingroup\count@\dimen0 \dimen2 45%
pt \divide\count@\dimen2 \ifdim\dimen0<\z@\advance\count@\m@ne\fi\ifodd
\count@\advance\count@1\CD@@A\else\CD@y\fi\advance\dimen0-\count@\dimen2
\CD@gE\multiply\dimen0\m@ne\fi\ifnum\count@<0 \multiply\count@-7 \fi\dimen3%
\dimen1 \dimen6\dimen0 \dimen7 3754936sp \ifdim\dimen0<6\p@\def\CD@OG{4000}%
\fi\CD@KJ\dimen2\dimen3\CD@dG{\dimen2}\CD@hJ\multiply\CD@TC-6 \dimen0\dimen2
\CD@ZG1\CD@ZG{0.3}\dimen1\dimen0 \dimen2\dimen3 \dimen0\dimen3 \CD@ZG3\CD@ZG{%
1.5}\CD@ZG{0.3}\divide\count@2 \CD@gE\multiply\dimen1\m@ne\fi\ifodd\count@
\dimen2\dimen1\dimen1\dimen0\dimen0-\dimen2 \fi\divide\count@2 \ifodd\count@
\multiply\dimen0\m@ne\multiply\dimen1\m@ne\fi\global\CD@QA\dimen0\global
\CD@RA\dimen1\endgroup\dimen6\CD@QA\dimen7\CD@RA}\def\CD@OC{255}\let\CD@OG
\CD@OC\def\CD@KJ{\begingroup\ifdim\dimen7<\dimen6 \dimen9\dimen7\dimen7\dimen
6\dimen6\dimen9\CD@@A\else\CD@y\fi\dimen2\z@\dimen3\CD@XH\dimen4\CD@XH\dimen0%
\z@\dimen8=\CD@OG\CD@XH\CD@lC\global\CD@yA\dimen\CD@gE0\else3\fi\global\CD@zA
\dimen\CD@gE3\else0\fi\endgroup\CD@LH\CD@yA\CD@TC\CD@zA}\def\CD@lC{\count@
\dimen6 \divide\count@\dimen7 \advance\dimen6-\count@\dimen7 \dimen9\dimen4
\advance\dimen9\count@\dimen0 \ifdim\dimen9>\dimen8 \CD@@C\else\CD@AC\ifdim
\dimen6>\z@\dimen9\dimen6 \dimen6\dimen7 \dimen7\dimen9 \expandafter
\expandafter\expandafter\CD@lC\fi\fi}\def\CD@@C{\ifdim\dimen0=\z@\ifdim\dimen
9<2\dimen8 \dimen0\dimen8 \fi\else\advance\dimen8-\dimen4 \divide\dimen8%
\dimen0 \ifdim\count@\CD@XH<2\dimen8 \count@\dimen8 \dimen9\dimen4 \advance
\dimen9\count@\dimen0 \CD@AC\fi\fi}\def\CD@AC{\dimen4\dimen0 \dimen0\dimen9
\advance\dimen2\count@\dimen3 \dimen9\dimen2 \dimen2\dimen3 \dimen3\dimen9 }%
\def\CD@ZG#1{\CD@dG{\dimen2}\advance\dimen0 #1\dimen2 }\def\CD@dG#1{\divide#1%
\CD@TC\multiply#1\CD@LH}\def\CD@eG#1{\divide#1\CD@vA\multiply#1\CD@uA}\def
\CD@iC#1{\divide#1\CD@LH\multiply#1\CD@TC}\def\CD@hJ{\dimen6\CD@LH\CD@XH
\multiply\dimen6\CD@LH\dimen7\CD@TC\CD@XH\multiply\dimen7\CD@TC\CD@KJ}\def
\CD@iK#1#2{\begingroup\dimen@#2\relax\loop\ifdim\dimen2<.4\maxdimen\multiply
\dimen2\tw@\multiply\dimen@\tw@\repeat\divide\dimen2\@cclvi\divide\dimen@
\dimen2\relax\multiply\dimen@\@cclvi\expandafter\CD@jK\the\dimen@\endgroup
\let#1\CD@fK}{\catcode`p=12 \catcode`0=12 \catcode`.=12 \catcode`t=12 \gdef
\CD@jK#1pt{\gdef\CD@fK{#1}}}\ifx\errorcontextlines\CD@qK\CD@tJ\let\CD@GH
\relax\else\def\CD@GH{\errorcontextlines\m@ne}\fi\ifnum\inputlineno<0 \let
\CD@CD\empty\let\CD@W\empty\let\CD@mD\relax\let\CD@uI\relax\let\CD@vI\relax
\let\CD@zF\relax\message{! Why not upgrade to TeX version 3? (available since
1990)}\else\def\CD@W{ at line \number\inputlineno}\def\CD@mD{ - first occurred%
}\def\CD@uI{\edef\CD@h{\the\inputlineno}\global\let\CD@jB\CD@h}\def\CD@h{9999%
}\def\CD@vI{\xdef\CD@jB{\the\inputlineno}}\def\CD@jB{\CD@h}\def\CD@zF{\ifnum
\CD@h<\inputlineno\edef\CD@CD{\space at lines \CD@h--\the\inputlineno}\else
\edef\CD@CD{\CD@W}\fi}\fi\let\CD@CD\empty\def\CD@YA#1#2{\CD@GH\errhelp=#2%
\expandafter\errmessage{\CD@tA: #1}}\def\CD@KB#1{\begingroup\expandafter
\message{! \CD@tA: #1\CD@CD}\ifnum\CD@XB>\CD@NB\ifnum\CD@CA>\CD@NB\else\ifnum
\CD@lA>\CD@FA\else\ifnum\CD@LB>\CD@FA\advance\CD@XB-\CD@NB\advance\CD@FA-%
\CD@lA\advance\CD@FA1\relax\expandafter\message{! (error detected at row \the
\CD@XB, column \the\CD@FA, but probably caused elsewhere)}\fi\fi\fi\fi
\endgroup}\def\CD@gB#1{{\expandafter\message{\CD@tA\space Warning: #1\CD@W}}}%
\def\CD@CB#1#2{\CD@gB{#1 \string#2 is obsolete\CD@mD}}\def\CD@AB#1{\CD@CB{%
Dimension}{#1}\CD@DE#1\CD@BB\CD@BB}\def\CD@BB{\CD@OA=}\def\CD@@B#1{\CD@CB{%
Count}{#1}\CD@DE#1\CD@OH\CD@OH}\def\CD@OH{\count@=}\def\HorizontalMapLength{%
\CD@AB\HorizontalMapLength}\def\VerticalMapHeight{\CD@AB\VerticalMapHeight}%
\def\VerticalMapDepth{\CD@AB\VerticalMapDepth}\def\VerticalMapExtraHeight{%
\CD@AB\VerticalMapExtraHeight}\def\VerticalMapExtraDepth{\CD@AB
\VerticalMapExtraDepth}\def\DiagonalLineSegments{\CD@@B\DiagonalLineSegments}%
\ifx\tenln\nullfont\CD@ZA\CD@KH{\CD@eF\space diagonal line and arrow font not
available}\else\let\CD@KH\relax\fi\def\CD@aG#1#2<#3:#4:#5#6{\begingroup\CD@PA
#3\relax\advance\CD@PA-#2\relax\ifdim.1em<\CD@PA\CD@uA#5\relax\CD@vA#6\relax
\ifnum\CD@uA<\CD@vA\count@\CD@vA\advance\count@-\CD@uA\CD@KB{#4 by \the\CD@PA
}\if#1v\let\CD@CH\CD@JK\edef\tmp{\the\CD@uA--\the\CD@vA,\the\CD@FA}\else
\advance\count@\count@\if#1l\advance\count@-\CD@A\else\if#1r\advance\count@
\CD@A\fi\fi\advance\CD@PA\CD@PA\let\CD@CH\CD@ZE\edef\tmp{\the\CD@NB,\the
\CD@uA--\the\CD@vA}\fi\divide\CD@PA\count@\ifdim\CD@CH<\CD@PA\global\CD@CH
\CD@PA\fi\fi\fi\endgroup}\CD@tG\CD@xE\CD@JD\CD@ID\CD@rG\CD@xI{See the message
above.}\CD@rG\CD@lH{Perhaps you've forgotten to end the diagram before
resuming the text, in\CD@uG which case some garbage may be added to the
diagram, but we should be ok now.\CD@uG Alternatively you've left a blank line
in the middle - TeX will now complain\CD@uG that the remaining \CD@S s are
misplaced - so please use comments for layout.}\CD@rG\CD@hD{You have already
closed too many brace pairs or environments; an \CD@HD\CD@uG command was (%
over)due.}\CD@rG\CD@hH{\CD@dC\space and \CD@HD\space commands must match.}%
\def\CD@jH{\ifnum\inputlineno=0 \else\expandafter\CD@iH\fi}\def\CD@iH{\CD@MD
\CD@GD\crcr\CD@YA{missing \CD@HD\space inserted before \CD@kH- type "h"}%
\CD@lH\enddiagram\CD@AG\CD@kH\par}\def\CD@AG#1{\edef\enddiagram{\noexpand
\CD@rD{#1\CD@W}}}\def\CD@rD#1{\CD@YA{\CD@HD\space(anticipated by #1) ignored}%
\CD@xI\let\enddiagram\CD@SG}\def\CD@SG{\CD@YA{misplaced \CD@HD\space ignored}%
\CD@hH}\def\CD@mC{\CD@YA{missing \CD@HD\space inserted.}\CD@hD\CD@AG{closing
group}}\ifx\DeclareOption\CD@qK\else\ifx\DeclareOption\@notprerr\else
\DeclareOption*{\let\CD@N\relax\let\CD@DH\relax\expandafter\CD@@E
\CurrentOption,}\fi\fi
%%======================================================================%
%%                                                                      %
%%      (22) AUXILLARY MACROS FOR ADJUSTMENT OF COMPONENTS              %
%%                                                                      %
%%======================================================================%

%% NOTE: The recommended way of defining arrow commands is now
%%      \newarrow{Name}{tail}{filler}{middle}{filler}{head}
%% which defines \rName, \lName, \dName and \uName using arrow parts which
%% have themselves previously been defined using the commands
%% \newarrowtail, \newarrowfiller, \newarrowmiddle and \newarrowhead.

%% The components \rhvee etc have been retained for the time being, as an
%% intermediate stage and to continue to support the old \HorizontalMap and
%% \VerticalMap commands, but you should not rely on the continued existence
%% of these macros.

%% The various components usually need some correction
%% - longitudinally, ie to prevent gaps and overprints with the shaft,
%% - transversally,  ie to prevent "steps" in the junction with the shaft.
%% The former can be done safely ad hoc, eg with \mkern1mu.
%% The latter are now done with the macros \scriptaxis, \boldscriptaxis,
%% \shifthook and \raisehook, which include pixel corrections.

%% Please note that these and the other auxillary macros which follow are
%% interim. When it becomes clear exactly what kinds of adjustments are
%% needed for characters, this job will be done by a suitable extension
%% to the language of \newarrowhead, etc. If you have any other ideas for
%% transformations of general use please tell me.

%% By all means experiment with other characters for arrowheads, but
%% please, in your own interests, do not rely on macros like \rhvee,
%% send me a copy of your definitions for distribution to other users
%% in this file, and keep track of where your efforts get copied so
%% that they can be replaced with the "official" version when it is
%% incorporated.

%% ***** DONT use macros with mangled names like \Cd@gH. *****

\catcode`\$=3 %% make sure that $ means maths-shift
\def\vboxtoz{\vbox to\z@}%% \z@ is in plain TeX and means 0pt

%% print #1 in \scriptstyle, adjusting for the maths axis height
\def\scriptaxis#1{\@scriptaxis{$\scriptstyle#1$}}%%
\def\ssaxis#1{\@ssaxis{$\scriptscriptstyle#1$}}%%
\def\@scriptaxis#1{\dimen0\axisheight\advance\dimen0-\ss@axisheight\raise
\dimen0\hbox{#1}}\def\@ssaxis#1{\dimen0\axisheight\advance\dimen0-%
\ss@axisheight\raise\dimen0\hbox{#1}}

%% Some of the characters would look better in bold since they're
%% taken from sub/superscript fonts; we use LaTeX's \boldmath to
%% do this, defining this to do nothing if it doesn't exist.
%% With the old LaTeX font selection at other than 10pt you may still
%% get nothing happenning.  Also, PK fonts may be missing.
%% If you have problems, DONT use boldhook or boldlittlevee.
\ifx\boldmath\CD@qK%%
\let\boldscriptaxis\scriptaxis%%
\def\boldscript#1{\hbox{$\scriptstyle#1$}}%%
\def\boldscriptscript#1{\hbox{$\scriptscriptstyle#1$}}%%
\else\def\boldscriptaxis#1{\@scriptaxis{\boldmath$\scriptstyle#1$}}%%
\def\boldscript#1{\hbox{\boldmath$\scriptstyle#1$}}%%
\def\boldscriptscript#1{\hbox{\boldmath$\scriptscriptstyle#1$}}%%
\fi

%%  #1= {} or \boldmath; #2= + or -; #3=\subset or \supset
\def\raisehook#1#2#3{\hbox{\setbox3=\hbox{#1$\scriptscriptstyle#3$}%
%% the character to use
\dimen0\ss@axisheight%% \scriptscriptstyle axis height
\dimen1\axisheight\advance\dimen1-\dimen0%% difference in axis heights
\dimen2\ht3\advance\dimen2-\dimen0%
%%  height of char above axis (half spread)
\advance\dimen2-0.021em\advance\dimen1 #2\dimen2%
%% shift = axis_difference +/- half_spread
\raise\dimen1\box3}}%% print the character
%% Mark Dawson suggested using the width
\def\shifthook#1#2#3{\setbox1=\hbox{#1$\scriptscriptstyle#3$}\dimen0\wd1%
\divide\dimen0 12\CD@zH{\dimen0}%%  "u"
\dimen1\wd1\advance\dimen1-2\dimen0 \advance\dimen1-2\CD@oI\CD@zH{\dimen1}%
\kern#2\dimen1\box1}%% print

%% use the extension font (cmex) for double vertical arrows
\def\@cmex{\mathchar"03}%%ascii double quote

%%      ************* P U L L B A C K S ************

%% These will probably be replaced by something less ad hoc
%% in a future version.

\def\make@pbk#1{\setbox\tw@\hbox to\z@{#1}\ht\tw@\z@\dp\tw@\z@\box\tw@}\def
\CD@fH#1{\overprint{\hbox to\z@{#1}}}\def\CD@qH{\kern0.11em}\def\CD@pH{\kern0%
.35em}

%% This is a hack for my book ``Practical Foundations of Mathematics''
%% and WILL NOT BE SUPPORTED --- DO NOT USE IT!
\def\dblvert{\def\CD@rH{\kern.5\PileSpacing}}\def\CD@rH{}

\def\SEpbk{\make@pbk{\CD@qH\CD@rH\vrule depth 2.87ex height -2.75ex width 0.%
95em \vrule height -0.66ex depth 2.87ex width 0.05em \hss}}

\def\SWpbk{\make@pbk{\hss\vrule height -0.66ex depth 2.87ex width 0.05em
\vrule depth 2.87ex height -2.75ex width 0.95em \CD@qH\CD@rH}}

\def\NEpbk{\make@pbk{\CD@qH\CD@rH\vrule depth -3.81ex height 4.00ex width 0.%
95em \vrule height 4.00ex depth -1.72ex width 0.05em \hss}}

\def\NWpbk{\make@pbk{\hss\vrule height 4.00ex depth -1.72ex width 0.05em
\vrule depth -3.81ex height 4.00ex width 0.95em \CD@qH\CD@rH}}

%%  Freyd & Scedrov puncture symbol for non-commuting polygon
\def\puncture{{\setbox0\hbox{A}\vrule height.53\ht0 depth-.47\ht0 width.35\ht
0 \kern.12\ht0 \vrule height\ht0 depth-.65\ht0 width.06\ht0 \kern-.06\ht0
\vrule height.35\ht0 depth0pt width.06\ht0 \kern.12\ht0 \vrule height.53\ht0
depth-.47\ht0 width.35\ht0 }}

%% 2-cells: (24.11.95)
%%% \NEclck puts a clockwise (ie southeast) arrow to the northwest of cell etc
\def\NEclck{\overprint{\raise2.5ex\rlap{ \CD@rH$\scriptstyle\searrow$}}}%%
\def\NEanti{\overprint{\raise2.5ex\rlap{ \CD@rH$\scriptstyle\nwarrow$}}}%%
\def\NWclck{\overprint{\raise2.5ex\llap{$\scriptstyle\nearrow$ \CD@rH}}}%%
\def\NWanti{\overprint{\raise2.5ex\llap{$\scriptstyle\swarrow$ \CD@rH}}}%%
\def\SEclck{\overprint{\lower1ex\rlap{ \CD@rH$\scriptstyle\swarrow$}}}%%
\def\SEanti{\overprint{\lower1ex\rlap{ \CD@rH$\scriptstyle\nearrow$}}}%%
\def\SWclck{\overprint{\lower1ex\llap{$\scriptstyle\nwarrow$ \CD@rH}}}%%
\def\SWanti{\overprint{\lower1ex\llap{$\scriptstyle\searrow$ \CD@rH}}}

%%======================================================================%
%%                                                                      %
%%      (23) BITS OF ARROWS                                             %
%%                                                                      %
%%======================================================================%

%%       **********  H E A D S ***********

%% \diagramstyle[heads=xxx] defines {>} as {xxx} where xxx
%% has been defined by \newarrowhead{xxx} and \newarrowtail{xxx}

%% vee head
\def\rhvee{\mkern-10mu\greaterthan}%%
\def\lhvee{\lessthan\mkern-10mu}%%
\def\dhvee{\vboxtoz{\vss\hbox{$\vee$}\kern0pt}}%%
\def\uhvee{\vboxtoz{\hbox{$\wedge$}\vss}}%%
\newarrowhead{vee}\rhvee\lhvee\dhvee\uhvee

%% little vee head
\def\dhlvee{\vboxtoz{\vss\hbox{$\scriptstyle\vee$}\kern0pt}}%%
\def\uhlvee{\vboxtoz{\hbox{$\scriptstyle\wedge$}\vss}}%%
\newarrowhead{littlevee}{\mkern1mu\scriptaxis\rhvee}{\scriptaxis\lhvee}%
\dhlvee\uhlvee\ifx\boldmath\CD@qK%%
\newarrowhead{boldlittlevee}{\mkern1mu\scriptaxis\rhvee}{\scriptaxis\lhvee}%
\dhlvee\uhlvee\else%%
\def\dhblvee{\vboxtoz{\vss\boldscript\vee\kern0pt}}%%
\def\uhblvee{\vboxtoz{\boldscript\wedge\vss}}%%
\newarrowhead{boldlittlevee}{\mkern1mu\boldscriptaxis\rhvee}{\boldscriptaxis
\lhvee}\dhblvee\uhblvee%%
\fi

%% curly vee head (uses AMS symbols fonts)
\def\rhcvee{\mkern-10mu\succ}%%
\def\lhcvee{\prec\mkern-10mu}%%
\def\dhcvee{\vboxtoz{\vss\hbox{$\curlyvee$}\kern0pt}}%%
\def\uhcvee{\vboxtoz{\hbox{$\curlywedge$}\vss}}%%
\newarrowhead{curlyvee}\rhcvee\lhcvee\dhcvee\uhcvee

%% double vee head %% will probably be withdrawn later
\def\rhvvee{\mkern-13mu\gg}%% 24.8.92 changed 10mu to 13mu
\def\lhvvee{\ll\mkern-13mu}%% to make rule go through
\def\dhvvee{\vboxtoz{\vss\hbox{$\vee$}\kern-.6ex\hbox{$\vee$}\kern0pt}}%%
\def\uhvvee{\vboxtoz{\hbox{$\wedge$}\kern-.6ex \hbox{$\wedge$}\vss}}%%
\newarrowhead{doublevee}\rhvvee\lhvvee\dhvvee\uhvvee

%% open and closed triangles (uses AMS symbols fonts)
\def\triangleup{{\scriptscriptstyle\bigtriangleup}}%%
\def\littletriangledown{{\scriptscriptstyle\triangledown}}%% AMS
\def\rhtriangle{\triangleright\mkern1.2mu}%% 29.1.93
\def\lhtriangle{\triangleleft\mkern.8mu}%%
\def\uhtriangle{\vbox{\kern-.2ex \hbox{$\scriptscriptstyle\bigtriangleup$}%
\kern-.25ex}}%%
%% Changed \scriptstyle\triangledown to \scriptscriptstyle\bigtriangledown
%% at the suggestion of Martin Hofmann (25.11.92) to avoid using AMS symbols
%% and also for compatibility with upward arrow.
\def\dhtriangle{\vbox{\kern-.28ex \hbox{$\scriptscriptstyle\bigtriangledown$}%
\kern-.1ex}}%% 15.1.93 from -.25ex
\def\dhblack{\vbox{\kern-.25ex\nointerlineskip\hbox{$\blacktriangledown$}}}%
%% AMS
\def\uhblack{\vbox{\kern-.25ex\nointerlineskip\hbox{$\blacktriangle$}}}%
%% AMS
\def\dhlblack{\vbox{\kern-.25ex\nointerlineskip\hbox{$\scriptstyle
\blacktriangledown$}}}%% AMS
\def\uhlblack{\vbox{\kern-.25ex\nointerlineskip\hbox{$\scriptstyle
\blacktriangle$}}}%% AMS
\newarrowhead{triangle}\rhtriangle\lhtriangle\dhtriangle\uhtriangle
\newarrowhead{blacktriangle}{\mkern-1mu\blacktriangleright\mkern.4mu}{%
\blacktriangleleft}\dhblack\uhblack\newarrowhead{littleblack}{\mkern-1mu%
\scriptaxis\blacktriangleright}{\scriptaxis\blacktriangleleft\mkern-2mu}%
\dhlblack\uhlblack

%% LaTeX arrowheads
\def\rhla{\hbox{\setbox0=\lnchar55\dimen0=\wd0\kern-.6\dimen0\ht0\z@\raise
\axisheight\box0\kern.1\dimen0}}%%
\def\lhla{\hbox{\setbox0=\lnchar33\dimen0=\wd0\kern.05\dimen0\ht0\z@\raise
\axisheight\box0\kern-.5\dimen0}}%%
\def\dhla{\vboxtoz{\vss\rlap{\lnchar77}}}%%
\def\uhla{\vboxtoz{\setbox0=\lnchar66 \wd0\z@\kern-.15\ht0\box0\vss}}%% 1/93
\newarrowhead{LaTeX}\rhla\lhla\dhla\uhla

%% double LaTeX arrowheads %% will probably be withdrawn later
\def\lhlala{\lhla\kern.3em\lhla}%%
\def\rhlala{\rhla\kern.3em\rhla}%%
\def\uhlala{\hbox{\uhla\raise-.6ex\uhla}}%%
\def\dhlala{\hbox{\dhla\lower-.6ex\dhla}}%%
\newarrowhead{doubleLaTeX}\rhlala\lhlala\dhlala\uhlala

%% circles % \rho is a Greek letter!
\def\hhO{\scriptaxis\bigcirc\mkern.4mu} \def\hho{{\circ}\mkern1.2mu}%
\newarrowhead{o}\hho\hho\circ\circ%%
\newarrowhead{O}\hhO\hhO{\scriptstyle\bigcirc}{\scriptstyle\bigcirc}%%

%% crosses
\def\rhtimes{\mkern-5mu{\times}\mkern-.8mu}\def\lhtimes{\mkern-.8mu{\times}%
\mkern-5mu}\def\uhtimes{\setbox0=\hbox{$\times$}\ht0\axisheight\dp0-\ht0%
\lower\ht0\box0 }\def\dhtimes{\setbox0=\hbox{$\times$}\ht0\axisheight\box0 }%
\newarrowhead{X}\rhtimes\lhtimes\dhtimes\uhtimes\newarrowhead+++++

%% empty head {} is also available

%% Y from stmaryrd (vertical ones still need large adjustment)
\newarrowhead{Y}{\mkern-3mu\Yright}{\Yleft\mkern-3mu}\Ydown\Yup

%%       **********  H E A D S  with  S H A F T S  ***********

%% little arrow with shaft
\newarrowhead{->}\rightarrow\leftarrow\downarrow\uparrow

%% arrow with double shaft
%%\newarrowhead{=>}\Rightarrow\Leftarrow\Downarrow\Uparrow
\newarrowhead{=>}\Rightarrow\Leftarrow{\@cmex7F}{\@cmex7E}

%% harpoon with shaft (trailing up/left can be changed to down/right)
\newarrowhead{harpoon}\rightharpoonup\leftharpoonup\downharpoonleft
\upharpoonleft

%% little double-headed arrow with shaft (uses AMS symbols fonts)
\def\twoheaddownarrow{\rlap{$\downarrow$}\raise-.5ex\hbox{$\downarrow$}}%%
\def\twoheaduparrow{\rlap{$\uparrow$}\raise.5ex\hbox{$\uparrow$}}%%
\newarrowhead{->>}\twoheadrightarrow\twoheadleftarrow\twoheaddownarrow
\twoheaduparrow

%%       **********  T A I L S ***********

%% vee tail
\def\rtvee{\greaterthan}%%
\def\ltvee{\mkern-1mu{\lessthan}\mkern.4mu}%% \mkern added 15.1.93
\def\dtvee{\vee}%%
\def\utvee{\wedge}%%
\newarrowtail{vee}\greaterthan\ltvee\vee\wedge

%% little vee tail
\newarrowtail{littlevee}{\scriptaxis\greaterthan}{\mkern-1mu\scriptaxis
\lessthan}{\scriptstyle\vee}{\scriptstyle\wedge}\ifx\boldmath\CD@qK
\newarrowtail{boldlittlevee}{\scriptaxis\greaterthan}{\mkern-1mu\scriptaxis
\lessthan}{\scriptstyle\vee}{\scriptstyle\wedge}\else\newarrowtail{%
boldlittlevee}{\boldscriptaxis\greaterthan}{\mkern-1mu\boldscriptaxis
\lessthan}{\boldscript\vee}{\boldscript\wedge}\fi

%% curly vee tail (uses AMS symbols fonts)
\newarrowtail{curlyvee}\succ{\mkern-1mu{\prec}\mkern.4mu}\curlyvee\curlywedge

%% open and closed triangle tails (uses AMS symbols fonts)
\def\rttriangle{\mkern1.2mu\triangleright}%% 29.1.93
\newarrowtail{triangle}\rttriangle\lhtriangle\dhtriangle\uhtriangle
\newarrowtail{blacktriangle}\blacktriangleright{\mkern-1mu\blacktriangleleft
\mkern.4mu}\dhblack\uhblack\newarrowtail{littleblack}{\scriptaxis
\blacktriangleright\mkern-2mu}{\mkern-1mu\scriptaxis\blacktriangleleft}%
\dhlblack\uhlblack

%% LaTeX tails
\def\rtla{\hbox{\setbox0=\lnchar55\dimen0=\wd0\kern-.5\dimen0\ht0\z@\raise
\axisheight\box0\kern-.2\dimen0}}%%
\def\ltla{\hbox{\setbox0=\lnchar33\dimen0=\wd0\kern-.15\dimen0\ht0\z@\raise
\axisheight\box0\kern-.5\dimen0}}%%
\def\dtla{\vbox{\setbox0=\rlap{\lnchar77}\dimen0=\ht0\kern-.7\dimen0\box0%
\kern-.1\dimen0}}%% 15.1.93 from -.6
\def\utla{\vbox{\setbox0=\rlap{\lnchar66}\dimen0=\ht0\kern-.1\dimen0\box0%
\kern-.6\dimen0}}%%
\newarrowtail{LaTeX}\rtla\ltla\dtla\utla

%% double vee tail %% will probably be withdrawn later
\def\rtvvee{\gg\mkern-3mu}%%
\def\ltvvee{\mkern-3mu\ll}%%
\def\dtvvee{\vbox{\hbox{$\vee$}\kern-.6ex \hbox{$\vee$}\vss}}%%
\def\utvvee{\vbox{\vss\hbox{$\wedge$}\kern-.6ex \hbox{$\wedge$}\kern\z@}}%%
\newarrowtail{doublevee}\rtvvee\ltvvee\dtvvee\utvvee

%% double LaTeX tails %% will probably be withdrawn later
\def\ltlala{\ltla\kern.3em\ltla}%%
\def\rtlala{\rtla\kern.3em\rtla}%%
\def\utlala{\hbox{\utla\raise-.6ex\utla}}%%
\def\dtlala{\hbox{\dtla\lower-.6ex\dtla}}%%
\newarrowtail{doubleLaTeX}\rtlala\ltlala\dtlala\utlala

%% bar (as in \mapsto)
\def\utbar{\vrule height 0.093ex depth0pt width 0.4em}%%
\let\dtbar\utbar%%
\def\rtbar{\mkern1.5mu\vrule height 1.1ex depth.06ex width .04em\mkern1.5mu}%
%%
\let\ltbar\rtbar%%
\newarrowtail{mapsto}\rtbar\ltbar\dtbar\utbar%%
\newarrowtail{|}\rtbar\ltbar\dtbar\utbar%%ascii vertical bar (|)

%% hooks (as in \into): choice of after/above and before/below

\def\rthooka{\raisehook{}+\subset\mkern-1mu}%%
\def\lthooka{\mkern-1mu\raisehook{}+\supset}%%
\def\rthookb{\raisehook{}-\subset\mkern-2mu}%%
\def\lthookb{\mkern-1mu\raisehook{}-\supset}%%

\def\dthooka{\shifthook{}+\cap}%%
\def\dthookb{\shifthook{}-\cap}%%
\def\uthooka{\shifthook{}+\cup}%%
\def\uthookb{\shifthook{}-\cup}%%

\newarrowtail{hooka}\rthooka\lthooka\dthooka\uthooka\newarrowtail{hookb}%
\rthookb\lthookb\dthookb\uthookb

\ifx\boldmath\CD@qK\newarrowtail{boldhooka}\rthooka\lthooka\dthooka\uthooka
\newarrowtail{boldhookb}\rthookb\lthookb\dthookb\uthookb\newarrowtail{%
boldhook}\rthooka\lthooka\dthookb\uthooka\else\def\rtbhooka{\raisehook
\boldmath+\subset\mkern-1mu}%%
\def\ltbhooka{\mkern-1mu\raisehook\boldmath+\supset}%%
\def\rtbhookb{\raisehook\boldmath-\subset\mkern-2mu}%%
\def\ltbhookb{\mkern-1mu\raisehook\boldmath-\supset}%%
\def\dtbhooka{\shifthook\boldmath+\cap}%%
\def\dtbhookb{\shifthook\boldmath-\cap}%%
\def\utbhooka{\shifthook\boldmath+\cup}%%
\def\utbhookb{\shifthook\boldmath-\cup}%%
\newarrowtail{boldhooka}\rtbhooka\ltbhooka\dtbhooka\utbhooka\newarrowtail{%
boldhookb}\rtbhookb\ltbhookb\dtbhookb\utbhookb\newarrowtail{boldhook}%
\rtbhooka\ltbhooka\dtbhooka\utbhooka\fi

%% square-ended hooks (used for closed subsets in ``lifting and gluing'')
\def\dtsqhooka{\shifthook{}+\sqcap}%%
\def\dtsqhookb{\shifthook{}-\sqcap}%%
\def\ltsqhooka{\mkern-1mu\raisehook{}+\sqsupset}%%
\def\ltsqhookb{\mkern-1mu\raisehook{}-\sqsupset}%%
\def\rtsqhooka{\raisehook{}+\sqsubset\mkern-1mu}%%
\def\rtsqhookb{\raisehook{}-\sqsubset\mkern-2mu}%%
\def\utsqhooka{\shifthook{}+\sqcup}%%
\def\utsqhookb{\shifthook{}-\sqcup}%%
\newarrowtail{sqhook}\rtsqhooka\ltsqhooka\dtsqhooka\utsqhooka

%% the following seem the better choices at 10pt & 300dpi
\newarrowtail{hook}\rthooka\lthookb\dthooka\uthooka\newarrowtail{C}\rthooka
\lthookb\dthooka\uthooka

%% circles
\newarrowtail{o}\hho\hho\circ\circ%%
\newarrowtail{O}\hhO\hhO{\scriptstyle\bigcirc}{\scriptstyle\bigcirc}%%

%% crosses
\newarrowtail{X}\lhtimes\rhtimes\uhtimes\dhtimes\newarrowtail+++++

%% empty tail {} is also available

%% Y from stmaryrd (vertical ones still need adjustment)
\newarrowtail{Y}\Yright\Yleft\Ydown\Yup

%% harpoon with shaft (trailing up/left can be changed to down/right)
\newarrowtail{harpoon}\leftharpoondown\rightharpoondown\upharpoonright
\downharpoonright

%% arrow with double shaft
%%\newarrowtail{<=}\Leftarrow\Rightarrow\Uparrow\Downarrow
\newarrowtail{<=}\Leftarrow\Rightarrow{\@cmex7E}{\@cmex7F}

%%      **********  F I L L E R S ***********

%% shortening is up to 0.15em=2.7mu horiz and 0.35ex vertically at each end.

%% dot {.}, single rule {-} and empty {} fillers are also available

%% double and triple lines
%%\newarrowfiller{=}==\Vert\Vert%%
\newarrowfiller{=}=={\@cmex77}{\@cmex77}%% 16.1.93
\def\vfthree{\mid\!\!\!\mid\!\!\!\mid}%%ascii
\newarrowfiller{3}\equiv\equiv\vfthree\vfthree

%% dashed line
\def\vfdashstrut{\vrule width0pt height1.3ex depth0.7ex}%%
\def\vfthedash{\vrule width\CD@LF height0.6ex depth 0pt}%%
\def\hfthedash{\CD@AJ\vrule\horizhtdp width 0.26em}%%
\def\hfdash{\mkern5.5mu\hfthedash\mkern5.5mu}%%
\def\vfdash{\vfdashstrut\vfthedash}%%
\newarrowfiller{dash}\hfdash\hfdash\vfdash\vfdash

%%      ************* M I D D L E S ************

%% plus
\newarrowmiddle+++++

%%      ************* D I A G O N A L S ************

%% simple arrow heads
%%\def\nwhTO{\nwarrow\mkern-1mu}%%
%%\def\nehTO{\mkern-.1mu\nearrow}%%
%%\def\sehTO{\searrow\mkern-.02mu}%%
%%\def\swhTO{\mkern-.8mu\swarrow}%%

%%======================================================================%
%%                                                                      %
%%      (24) ARROW COMMANDS                                             %
%%                                                                      %
%%======================================================================%

%% change to \iftrue to get mixed heads
\iffalse%%
\newarrow{To}----{vee}%%
\newarrow{Arr}----{LaTeX}%%
\newarrow{Dotsto}....{vee}%%
\newarrow{Dotsarr}....{LaTeX}%%
\newarrow{Dashto}{}{dash}{}{dash}{vee}%%
\newarrow{Dasharr}{}{dash}{}{dash}{LaTeX}%%
\newarrow{Mapsto}{mapsto}---{vee}%%
\newarrow{Mapsarr}{mapsto}---{LaTeX}%%
\newarrow{IntoA}{hooka}---{vee}%%
\newarrow{IntoB}{hookb}---{vee}%%
\newarrow{Embed}{vee}---{vee}%%
\newarrow{Emarr}{LaTeX}---{LaTeX}%%
\newarrow{Onto}----{doublevee}%%
\newarrow{Dotsonarr}....{doubleLaTeX}%%
\newarrow{Dotsonto}....{doublevee}%%
\newarrow{Dotsonarr}....{doubleLaTeX}%%
\else%%
\newarrow{To}---->%%
\newarrow{Arr}---->%%
\newarrow{Dotsto}....>%%
\newarrow{Dotsarr}....>%%
\newarrow{Dashto}{}{dash}{}{dash}>%%
\newarrow{Dasharr}{}{dash}{}{dash}>%%
\newarrow{Mapsto}{mapsto}--->%%
\newarrow{Mapsarr}{mapsto}--->%%
\newarrow{IntoA}{hooka}--->%%
\newarrow{IntoB}{hookb}--->%%
\newarrow{Embed}>--->%%
\newarrow{Emarr}>--->%%
\newarrow{Onto}----{>>}%%
\newarrow{Dotsonarr}....{>>}%%
\newarrow{Dotsonto}....{>>}%%
\newarrow{Dotsonarr}....{>>}%%
\fi%%

\newarrow{Implies}===={=>}%% minimum cell height 9.5pt
\newarrow{Project}----{triangle}%%
\newarrow{Pto}----{harpoon}%% partial function
\newarrow{Relto}{harpoon}---{harpoon}%% binary relation

\newarrow{Eq}=====%%
\newarrow{Line}-----%%
\newarrow{Dots}.....%%
\newarrow{Dashes}{}{dash}{}{dash}{}%%

%% square hooked arrow (used in my ``gluing and lifting'' paper)
\newarrow{SquareInto}{sqhook}--->

%% braces and parentheses
%% \newarrow gives inappropriate directions, so we change the names
%% the vertical filler is too far to the right; horizontal too high
%% the vertical middles are too low with midvshaft
%% maybe we'll add square brackets and the integral sign one day
\newarrowhead{cmexbra}{\@cmex7B}{\@cmex7C}{\@cmex3B}{\@cmex38}%%
\newarrowtail{cmexbra}{\@cmex7A}{\@cmex7D}{\@cmex39}{\@cmex3A}%%
\newarrowmiddle{cmexbra}{\braceru\bracelu}{\bracerd\braceld}{\vcenter{%
\hbox@maths{\@cmex3D\mkern-2mu}}}%% right
{\vcenter{\hbox@maths{\mkern2mu\@cmex3C}}}%% left
\newarrow{@brace}{cmexbra}-{cmexbra}-{cmexbra}%% braces
\newarrow{@parenth}{cmexbra}---{cmexbra}%% straight parentheses
\def\rightBrace{\d@brace[thick,cmex]}%%ASCII square brackets []
\def\leftBrace{\u@brace[thick,cmex]}%%ASCII square brackets []
\def\upperBrace{\r@brace[thick,cmex]}%%ASCII square brackets []
\def\lowerBrace{\l@brace[thick,cmex]}%%ASCII square brackets []
\def\rightParenth{\d@parenth[thick,cmex]}%%ASCII square brackets []
\def\leftParenth{\u@parenth[thick,cmex]}%%ASCII square brackets []
\def\upperParenth{\r@parenth[thick,cmex]}%%ASCII square brackets []
\def\lowerParenth{\l@parenth[thick,cmex]}%%ASCII square brackets []

%% synonyms for reverse compatibility

\let\uFrom\uTo%%
\let\lFrom\lTo%%
\let\uDotsfrom\uDotsto%%
\let\lDotsfrom\lDotsto%%
\let\uDashfrom\uDashto%%
\let\lDashfrom\lDashto%%
\let\uImpliedby\uImplies%%
\let\lImpliedby\lImplies%%
\let\uMapsfrom\uMapsto%%
\let\lMapsfrom\lMapsto%%
\let\lOnfrom\lOnto%%
\let\uOnfrom\uOnto%%
\let\lPfrom\lPto%%
\let\uPfrom\uPto%%

\let\uInfromA\uIntoA%%
\let\uInfromB\uIntoB%%
\let\lInfromA\lIntoA%%
\let\lInfromB\lIntoB%%
\let\rInto\rIntoA%%
\let\lInto\lIntoA%%
\let\dInto\dIntoB%%
\let\uInto\uIntoA%%
\let\ruInto\ruIntoA%%
\let\luInto\luIntoA%%
\let\rdInto\rdIntoA%%
\let\ldInto\ldIntoA%%
%%
\let\hEq\rEq%%
\let\vEq\uEq%%
\let\hLine\rLine%%
\let\vLine\uLine%%
\let\hDots\rDots%%
\let\vDots\uDots%%
\let\hDashes\rDashes%%
\let\vDashes\uDashes%%

%%=========================================================================%
%% The following are included for reverse compatibility only.
%%=========================================================================%
\let\NW\luTo\let\NE\ruTo\let\SW\ldTo\let\SE\rdTo\def\nNW{\luTo(2,3)}\def\nNE{%
\ruTo(2,3)}%%ascii
\def\sSW{\ldTo(2,3)}\def\sSE{\rdTo(2,3)}%%ascii
\def\wNW{\luTo(3,2)}\def\eNE{\ruTo(3,2)}%%ascii
\def\wSW{\ldTo(3,2)}\def\eSE{\rdTo(3,2)}%%ascii
\def\NNW{\luTo(2,4)}\def\NNE{\ruTo(2,4)}%%ascii
\def\SSW{\ldTo(2,4)}\def\SSE{\rdTo(2,4)}%%ascii
\def\WNW{\luTo(4,2)}\def\ENE{\ruTo(4,2)}%%ascii
\def\WSW{\ldTo(4,2)}\def\ESE{\rdTo(4,2)}%%ascii
\def\NNNW{\luTo(2,6)}\def\NNNE{\ruTo(2,6)}%%ascii
\def\SSSW{\ldTo(2,6)}\def\SSSE{\rdTo(2,6)}%%ascii
\def\WWNW{\luTo(6,2)}\def\EENE{\ruTo(6,2)}%%ascii
\def\WWSW{\ldTo(6,2)}\def\EESE{\rdTo(6,2)}%%ascii

\let\NWd\luDotsto\let\NEd\ruDotsto\let\SWd\ldDotsto\let\SEd\rdDotsto\def\nNWd
{\luDotsto(2,3)}\def\nNEd{\ruDotsto(2,3)}%%ascii
\def\sSWd{\ldDotsto(2,3)}\def\sSEd{\rdDotsto(2,3)}%%ascii
\def\wNWd{\luDotsto(3,2)}\def\eNEd{\ruDotsto(3,2)}%%ascii
\def\wSWd{\ldDotsto(3,2)}\def\eSEd{\rdDotsto(3,2)}%%ascii
\def\NNWd{\luDotsto(2,4)}\def\NNEd{\ruDotsto(2,4)}%%ascii
\def\SSWd{\ldDotsto(2,4)}\def\SSEd{\rdDotsto(2,4)}%%ascii
\def\WNWd{\luDotsto(4,2)}\def\ENEd{\ruDotsto(4,2)}%%ascii
\def\WSWd{\ldDotsto(4,2)}\def\ESEd{\rdDotsto(4,2)}%%ascii
\def\NNNWd{\luDotsto(2,6)}\def\NNNEd{\ruDotsto(2,6)}%%ascii
\def\SSSWd{\ldDotsto(2,6)}\def\SSSEd{\rdDotsto(2,6)}%%ascii
\def\WWNWd{\luDotsto(6,2)}\def\EENEd{\ruDotsto(6,2)}%%ascii
\def\WWSWd{\ldDotsto(6,2)}\def\EESEd{\rdDotsto(6,2)}%%ascii

\let\NWl\luLine\let\NEl\ruLine\let\SWl\ldLine\let\SEl\rdLine\def\nNWl{\luLine
(2,3)}\def\nNEl{\ruLine(2,3)}%%ascii
\def\sSWl{\ldLine(2,3)}\def\sSEl{\rdLine(2,3)}%%ascii
\def\wNWl{\luLine(3,2)}\def\eNEl{\ruLine(3,2)}%%ascii
\def\wSWl{\ldLine(3,2)}\def\eSEl{\rdLine(3,2)}%%ascii
\def\NNWl{\luLine(2,4)}\def\NNEl{\ruLine(2,4)}%%ascii
\def\SSWl{\ldLine(2,4)}\def\SSEl{\rdLine(2,4)}%%ascii
\def\WNWl{\luLine(4,2)}\def\ENEl{\ruLine(4,2)}%%ascii
\def\WSWl{\ldLine(4,2)}\def\ESEl{\rdLine(4,2)}%%ascii
\def\NNNWl{\luLine(2,6)}\def\NNNEl{\ruLine(2,6)}%%ascii
\def\SSSWl{\ldLine(2,6)}\def\SSSEl{\rdLine(2,6)}%%ascii
\def\WWNWl{\luLine(6,2)}\def\EENEl{\ruLine(6,2)}%%ascii
\def\WWSWl{\ldLine(6,2)}\def\EESEl{\rdLine(6,2)}%%ascii

\let\NWld\luDots\let\NEld\ruDots\let\SWld\ldDots\let\SEld\rdDots\def\nNWld{%
\luDots(2,3)}\def\nNEld{\ruDots(2,3)}%%ascii
\def\sSWld{\ldDots(2,3)}\def\sSEld{\rdDots(2,3)}%%ascii
\def\wNWld{\luDots(3,2)}\def\eNEld{\ruDots(3,2)}%%ascii
\def\wSWld{\ldDots(3,2)}\def\eSEld{\rdDots(3,2)}%%ascii
\def\NNWld{\luDots(2,4)}\def\NNEld{\ruDots(2,4)}%%ascii
\def\SSWld{\ldDots(2,4)}\def\SSEld{\rdDots(2,4)}%%ascii
\def\WNWld{\luDots(4,2)}\def\ENEld{\ruDots(4,2)}%%ascii
\def\WSWld{\ldDots(4,2)}\def\ESEld{\rdDots(4,2)}%%ascii
\def\NNNWld{\luDots(2,6)}\def\NNNEld{\ruDots(2,6)}%%ascii
\def\SSSWld{\ldDots(2,6)}\def\SSSEld{\rdDots(2,6)}%%ascii
\def\WWNWld{\luDots(6,2)}\def\EENEld{\ruDots(6,2)}%%ascii
\def\WWSWld{\ldDots(6,2)}\def\EESEld{\rdDots(6,2)}%%ascii

\let\NWe\luEmbed\let\NEe\ruEmbed\let\SWe\ldEmbed\let\SEe\rdEmbed\def\nNWe{%
\luEmbed(2,3)}\def\nNEe{\ruEmbed(2,3)}%%ascii
\def\sSWe{\ldEmbed(2,3)}\def\sSEe{\rdEmbed(2,3)}%%ascii
\def\wNWe{\luEmbed(3,2)}\def\eNEe{\ruEmbed(3,2)}%%ascii
\def\wSWe{\ldEmbed(3,2)}\def\eSEe{\rdEmbed(3,2)}%%ascii
\def\NNWe{\luEmbed(2,4)}\def\NNEe{\ruEmbed(2,4)}%%ascii
\def\SSWe{\ldEmbed(2,4)}\def\SSEe{\rdEmbed(2,4)}%%ascii
\def\WNWe{\luEmbed(4,2)}\def\ENEe{\ruEmbed(4,2)}%%ascii
\def\WSWe{\ldEmbed(4,2)}\def\ESEe{\rdEmbed(4,2)}%%ascii
\def\NNNWe{\luEmbed(2,6)}\def\NNNEe{\ruEmbed(2,6)}%%ascii
\def\SSSWe{\ldEmbed(2,6)}\def\SSSEe{\rdEmbed(2,6)}%%ascii
\def\WWNWe{\luEmbed(6,2)}\def\EENEe{\ruEmbed(6,2)}%%ascii
\def\WWSWe{\ldEmbed(6,2)}\def\EESEe{\rdEmbed(6,2)}%%ascii

\let\NWo\luOnto\let\NEo\ruOnto\let\SWo\ldOnto\let\SEo\rdOnto\def\nNWo{\luOnto
(2,3)}\def\nNEo{\ruOnto(2,3)}%%ascii
\def\sSWo{\ldOnto(2,3)}\def\sSEo{\rdOnto(2,3)}%%ascii
\def\wNWo{\luOnto(3,2)}\def\eNEo{\ruOnto(3,2)}%%ascii
\def\wSWo{\ldOnto(3,2)}\def\eSEo{\rdOnto(3,2)}%%ascii
\def\NNWo{\luOnto(2,4)}\def\NNEo{\ruOnto(2,4)}%%ascii
\def\SSWo{\ldOnto(2,4)}\def\SSEo{\rdOnto(2,4)}%%ascii
\def\WNWo{\luOnto(4,2)}\def\ENEo{\ruOnto(4,2)}%%ascii
\def\WSWo{\ldOnto(4,2)}\def\ESEo{\rdOnto(4,2)}%%ascii
\def\NNNWo{\luOnto(2,6)}\def\NNNEo{\ruOnto(2,6)}%%ascii
\def\SSSWo{\ldOnto(2,6)}\def\SSSEo{\rdOnto(2,6)}%%ascii
\def\WWNWo{\luOnto(6,2)}\def\EENEo{\ruOnto(6,2)}%%ascii
\def\WWSWo{\ldOnto(6,2)}\def\EESEo{\rdOnto(6,2)}%%ascii

\let\NWod\luDotsonto\let\NEod\ruDotsonto\let\SWod\ldDotsonto\let\SEod
\rdDotsonto\def\nNWod{\luDotsonto(2,3)}\def\nNEod{\ruDotsonto(2,3)}%%ascii
\def\sSWod{\ldDotsonto(2,3)}\def\sSEod{\rdDotsonto(2,3)}%%ascii
\def\wNWod{\luDotsonto(3,2)}\def\eNEod{\ruDotsonto(3,2)}%%ascii
\def\wSWod{\ldDotsonto(3,2)}\def\eSEod{\rdDotsonto(3,2)}%%ascii
\def\NNWod{\luDotsonto(2,4)}\def\NNEod{\ruDotsonto(2,4)}%%ascii
\def\SSWod{\ldDotsonto(2,4)}\def\SSEod{\rdDotsonto(2,4)}%%ascii
\def\WNWod{\luDotsonto(4,2)}\def\ENEod{\ruDotsonto(4,2)}%%ascii
\def\WSWod{\ldDotsonto(4,2)}\def\ESEod{\rdDotsonto(4,2)}%%ascii
\def\NNNWod{\luDotsonto(2,6)}\def\NNNEod{\ruDotsonto(2,6)}%%ascii
\def\SSSWod{\ldDotsonto(2,6)}\def\SSSEod{\rdDotsonto(2,6)}%%ascii
\def\WWNWod{\luDotsonto(6,2)}\def\EENEod{\ruDotsonto(6,2)}%%ascii
\def\WWSWod{\ldDotsonto(6,2)}\def\EESEod{\rdDotsonto(6,2)}%%ascii

%%======================================================================%
%%                                                                      %
%%      (25) MISCELLANEOUS                                              %
%%                                                                      %
%%======================================================================%

\def\labelstyle{%%
\ifincommdiag%%
\textstyle%%
\else%%
\scriptstyle%%
\fi}%%
\let\objectstyle\displaystyle

\newdiagramgrid{pentagon}{0.618034,0.618034,1,1,1,1,0.618034,0.618034}{1.%
17557,1.17557,1.902113,1.902113}

\newdiagramgrid{perspective}{0.75,0.75,1.1,1.1,0.9,0.9,0.95,0.95,0.75,0.75}{0%
.75,0.75,1.1,1.1,0.9,0.9}

\diagramstyle[%%ascii open square bracket
dpi=300,%%              office laserwriters are usually 300 dots per inch
vmiddle,nobalance,%%    vertical and horizontal positioning
loose,%%                allow rows and columns to stretch
thin,%%                 line10 arrows; default rule thickness (TeXbook p447)
pilespacing=10pt,%
%%     parallel vertical separation (horizontals: half this)
shortfall=4pt,%%        distance between arrowheads and their targets
%% The following are defaulted on entry to the diagram itself.
%% l>=2em               minimum length of horizontal arrow shafts in text
%% l>=1em               ditto in diagrams
%% size=3em             cell size
%% heads=LaTeX          arrowheads
]%%ascii close square bracket

%% process options to LaTeX2e's \usepackage[options]{diagrams}
\ifx\ProcessOptions\CD@qK\else\CD@PK\ProcessOptions\relax\CD@FF\CD@e\fi\fi

%%============================== THE END ====================================
\CD@vE\CD@hK\message{| running in pdf mode -- diagonal arrows will work
automatically |}\else\message{| >>>>>>>> POSTSCRIPT MODE (DVIPS) IS NOW THE
DEFAULT <<<<<<<<<<<<|}\message{|(DVI mode has not been supported since 1992
and produces inferior|}\message{|results which are completely unsuitable for
publication. However,|}\message{|if you really still need it, you can still
get it by loading the |}\message{|package using ``\string\usepackage[%
UglyObsolete]{diagrams}'' instead. ) |}\fi\else\message{| >>>>>>>> USING UGLY
OBSOLETE DVI CODE - PLEASE STOP <<<<<<<<<<<<|}\message{|(DVI mode has not been
supported since 1992 and produces inferior|}\message{|results which are
completely unsuitable for publication - Please |}\message{|use the PostScript
or PDF mode instead, for much better results.)|}\fi\cdrestoreat
%% restore old category code for @ etc
\message{===================================================================}%
%% This is the end of Paul Taylor's commutative diagrams package.


jwilkins_rfgufg_univ_covers.tex
%% The following tells LaTeX that we are using the 
%% style file amsart.cls (That is the AMS article style
%%
\documentclass{amsart}

%% This has a default type size 10pt.  Other options are 11pt and 12pt
%% This are set by replacing the command above by
%% \documentclass[11pt]{amsart}
%%
%% or
%%
%% \documentclass[12pt]{amsart}
%%






%%%%%  The package amsthm offers different style and command environments for writing, labeling, and numbering theorems, definitions, etc. 
%%%%%  The hyperref package makes the cites and theorem, lemma, etc. references into links, so the reader can click them and jump right to them.  The "colorlinks=true" option
%%%%%  removes the boxes from around the linked citations/references.  The linkcolor and citecolor commands tell it what color to make each kind of reference.
\usepackage{amsfonts}
\usepackage{amsmath}
\usepackage{amssymb}
%\usepackage{amsthm}
\usepackage{mathrsfs}
\usepackage{graphicx}
\usepackage{geometry}
\usepackage{diagrams}
\usepackage[hyperfootnotes=false]{hyperref}
\hypersetup{colorlinks=false, linkcolor=green, citecolor=red, hyperfootnotes=true}






%%
%% The following commands are used for importing various types of graphics.
%% 

%\usepackage{epsfig}  		% For postscript
%\usepackage{epic,eepic}       % For epic and eepic output from xfig







%%
%% The following is very useful in keeping track of labels while writing.  The variant   \usepackage[notcite]{showkeys} does not show the labels on the \cite commands.  If you use the
%%  the former, take it out before you submit the paper.  It's only used while typing to keep track of labels.
%% 

%\usepackage[notcite]{showkeys}





%%%%%  This sets up the margins.
\geometry{
    letterpaper,
    left=   1.1in,
    right=  1.1in,
    top=    1.0in,
    bottom= 1.15in
}






%%%% These commands create the "theorem" environments.  The AMS article style already has its own proof and endproof environments, so the proof and qed commands at %%%% the bottom are not needed.  I keep them here for times when I type outside the AMS style.
\newtheorem{theorem}{Theorem}[section]
\newtheorem{acknowledgement}[theorem]{Acknowledgement}
\newtheorem{algorithm}[theorem]{Algorithm}
\newtheorem{axiom}[theorem]{Axiom}
\newtheorem{case}[theorem]{Case}
\newtheorem{claim}[theorem]{Claim}
\newtheorem{conclusion}[theorem]{Conclusion}
\newtheorem{condition}[theorem]{Condition}
\newtheorem{conjecture}[theorem]{Conjecture}
\newtheorem{corollary}[theorem]{Corollary}
\newtheorem{criterion}[theorem]{Criterion}
\newtheorem{definition}[theorem]{Definition}
\newtheorem{example}[theorem]{Example}
\newtheorem{exercise}[theorem]{Exercise}
\newtheorem{lemma}[theorem]{Lemma}
\newtheorem{notation}[theorem]{Notation}
\newtheorem{problem}[theorem]{Problem}
\newtheorem{proposition}[theorem]{Proposition}
\newtheorem{remark}[theorem]{Remark}
\newtheorem{solution}[theorem]{Solution}
\newtheorem{summary}[theorem]{Summary}
%\newenvironment{proof}[1][Proof]{\noindent\textbf{#1.} }{\ \rule{0.5em}{0.5em}}
%\newcommand{\qed}{\nobreak \ifvmode \relax \else
%     \ifdim\lastskip<1.5em \hskip-\lastskip
%      \hskip1.5em plus0em minus0.5em \fi \nobreak
%      \vrule height0.75em width0.5em depth0.25em\fi}


%% An unnumbered theorem, remark, etc.:

\newtheorem*{xthm}{Theorem}



%%%%%  This next command tells LaTeX to number equations within the sections.  I don't care for it, but it's here if someone needs it.
%\numberwithin{equation}{section}





%%
%% This is the end of the preamble.
%% 


\begin{document}



%%%%%  For papers to math journals, this inserts the AMS classification and keywords as footnotes.
\renewcommand{\thefootnote}{}

%% Classification
%\footnote{2010 \emph{Mathematics Subject Classification}: Primary 54E45; Secondary 57M10, 54H11, 20F38.}

%% Key words
%\footnote{\emph{Key words and phrases}: geodesic space; critical spectrum; covering spectrum; universal cover; revised fundamental group; uniform fundamental group; topological fundamental group; closed lifting group.}

%\renewcommand{\thefootnote}{\arabic{footnote}}
%\setcounter{footnote}{0}

%%%%%%%%









%%%%% This creates the command "\defeq" which makes the colon-equals sign.  Without it, just typing ":=" doesn't line up properly.
\makeatletter 
\newcommand*{\defeq}{\mathrel{\rlap{% 
                     \raisebox{0.3ex}{$\m@th\cdot$}}% 
                     \raisebox{-0.3ex}{$\m@th\cdot$}}% 
                     =} 
\makeatother 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%






%%%%%%%% Sets spacing.
\baselineskip=13pt



%%
%% The title of the paper goes here.  Edit to your title.
%%

\title{The Revised and Uniform Fundamental Groups \\
 and Universal Covers of Geodesic Spaces}

%%
%% Now edit the following to give your name and address:
%% 

\author{Jay Wilkins \\
University of Connecticut \\
Department of Mathematics \\
196 Auditorium Road, Unit 3009 \\
Storrs, CT 06269-3009 \\
Email: leonard.wilkins@uconn.edu}
\address{Jay Wilkins \\ Department of Mathematics, University of Connecticut, Storrs, CT 06029}
\email{leonard.wilkins@uconn.edu}
%\urladdr{www.math.sc.edu/$\sim$howard} % Delete if not wanted.

%%
%% If there is another author uncomment and edit the following.
%%

%\author{Second Author}
%\address{Department of Mathematics, University of South Carolina,
%Columbia, SC 29208}
%\email{second@math.sc.edu}
%\urladdr{www.math.sc.edu/$\sim$second}

%%
%% If there are three of more authors they are added in the obvious
%% way. 
%%

%%%
%%% The following is for the abstract.  The abstract is optional and
%%% if not used just delete, or comment out, the following.
%%%

%%
%%  LaTeX will not make the title for the paper unless told to do so.
%% 




%% The abstract goes before the \maketitle command.

\begin{abstract}
Sormani and Wei proved in 2004 that a compact geodesic space has a categorical universal cover if and only if its covering/critical spectrum is finite.  We add to this several equivalent conditions pertaining to the geometry and topology of the revised and uniform fundamental groups.  We show that a compact geodesic space $X$ has a universal cover if and only if the following hold: 1) its revised and uniform fundamental groups are finitely presented, or, more generally, countable; 2) its revised fundamental group is discrete as a quotient of the topological fundamental group $\pi_1^{top}(X)$. In the process, we classify the topological singularities in $X$, and we show that the above conditions imply closed liftings of all sufficiently small path loops to all covers of $X$, generalizing the traditional semilocally simply connected property.  A geodesic space $X$ with this new property is called semilocally $r$-simply connected, and $X$ has a universal cover if and only if it satisfies this condition.  We then introduce a topology on $\pi_1(X)$ called the covering topology, which always makes $\pi_1(X)$ a topological group.  We establish several connections between properties of the covering topology, the existence of simply connected and universal covers, and geometries on the fundamental group.

\emph{Key words and phrases}: geodesic space; critical spectrum; universal cover; revised fundamental group; uniform fundamental group; topological fundamental group.

2010 \emph{Mathematics Subject Classification}: Primary 54E45; Secondary 57M10, 54H11, 20F38.
\end{abstract}












\maketitle

%%
%% LaTeX can automatically make a table of contents.  This is optional, of course.
%%

\tableofcontents






%%%%%  This inserts page headings, alternating every other page.  The first argument of the \markboth goes on pages 2, 4, etc., while the second argument goes on pages 3, 5, etc.
%%%%%  There is no heading on the first page.  The arguments are usually the author's name and the title (abbreviated or truncated if necessary).
\pagestyle{myheadings}
\markboth{J. Wilkins}{The Revised and Uniform Fundamental Groups and Universal Covers}














%********************** Body of Paper **************************************************


\section{Introduction and Main Results}

In \cite{SW2}, Sormani and Wei formally defined the covering spectrum of a compact geodesic space, a geometric invariant that detects one-dimensional holes of positive intrinsic diameter.  They showed (Theorem 3.4, \cite{SW2}) that a compact geodesic space $X$ has a universal cover if and only if its covering spectrum, $CovSpec(X)$, is finite.  When this holds, they defined the revised fundamental group of $X$ to be the deck group of the universal cover, and they showed that it is finitely generated (Proposition 6.4, \cite{SW2}).

In this paper, we extend the above results through an investigation of the geometry and topology of a slightly generalized revised fundamental group and another associated group called the uniform fundamental group.  To do so, we apply the generalized covering methods developed by Berestovskii-Plaut for uniform spaces (\cite{BPUU}) to the more restricted but important class of geodesic spaces.

In \cite{BPUU}, Berestovskii and Plaut defined the uniform universal covering and its deck group, the uniform fundamental group.  These are generalizations of the classical universal cover and fundamental group for uniform spaces - hence, metric spaces - that are not necessarily semilocally simply connected or even locally path connected.  Spaces for which the uniform universal cover exists are called coverable, and these include all geodesic spaces and, thus, Gromov-Hausdorff limits of Riemannian manifolds.  The foundation for \cite{BPUU} is discrete homotopy theory, an analog of classical path homotopy theory that uses discrete chains and chain homotopies instead of the continuous counterparts.  In \cite{W2}, and with Plaut et al. in \cite{PWetal}, the author used discrete homotopy theory to generalize the covering spectrum.  When the methods of \cite{BPUU} are applied to a metric space $X$, one obtains the $\mathbb R_+$-parameterized collection of $\varepsilon$-covers of $X$, $\{X_{\varepsilon}\}_{\varepsilon > 0}$.  These covers, in turn, determine the critical spectrum of $X$, the set of values, $Cr(X)$, at which the equivalence class of $X_{\varepsilon}$ changes as $\varepsilon$ decreases to $0$.  The uniform universal cover and uniform fundamental group are inverse limits of the $\varepsilon$-covers and their deck groups, respectively (see Section 2).

With the exception of the inverse limit formulations, this construction and spectral definition parallel those of Sormani-Wei in \cite{SW1} and \cite{SW2}.  The primary difference between the covering and critical spectra is the applicability.  The Sormani-Wei construction relies on a classical method of Spanier (\cite{S}) that requires local path connectivity of the underlying metric space $X$, which - if $X$ is compact and connected - is equivalent to being geodesic.  The Berestovskii-Plaut construction, however, can be carried out much more generally, allowing investigation of the critical spectra of more exotic and pathological metric spaces.  Like the covering spectrum, the critical spectrum detects fundamental group generators, but it also detects other metric structures in the general case that do not show up in geodesic spaces (cf. \cite{PWetal}).  Nevertheless, Plaut and the author showed in \cite{PW2} that when the underlying metric space is compact geodesic, the two spectra differ only by a constant multiple, namely $3Cr(X) = 2CovSpec(X)$.  Thus, the covering spectrum, appropriately rescaled, is a special case of the critical spectrum in the compact geodesic setting.  In particular, this fact and Sormani-Wei's theorem, together, show that a compact geodesic space has a universal cover if and only if its critical spectrum is finite.

Since we will be exploiting the methods of Berestovskii-Plaut and the uniform structure of the given geodesic space, our results will be presented in the language of discrete homotopy theory and the critical spectrum.  The relevant technical background is given in Section 2.  In this paper, a cover or covering space of $X$ will always imply a traditional, connected cover $f:Y \rightarrow X$ with the property that each $x \in X$ is contained in an evenly covered neighborhood with respect to $f$.  A \textit{universal cover} of $X$ will mean a traditional, categorical universal cover (not necessarily simply connected), or a cover $f:Y \rightarrow X$ so that, for any other cover $g:Z \rightarrow X$, there is a cover $h: Y \rightarrow Z$ such that $g \circ h = f$.  Except for the uniform universal cover, we will not need or use any of the recent, non-traditional generalizations of universal covers that relax the evenly covered property (cf.  \cite{Biss}, \cite{BS}, \cite{FZ}, \cite{PTM}).  When we use the uniform universal cover, it will always be explicitly referenced as such, so no confusion should result.

The fundamental observation that makes our results possible is that we can characterize local topology of a compact geodesic space, $X$, in terms of how path loops at a base point $* \in X$ lift not to a single $\varepsilon$-cover, $X_{\varepsilon}$, but to the $\varepsilon$-covers in the aggregate.  Thus, we begin Section 3 by slightly generalizing the revised fundamental group defined by Sormani-Wei in \cite{SW2}. The normal covering groups of the $\varepsilon$-covers, denoted by $K_{\varepsilon}$, intersect to form the \textit{closed lifting group}, the normal subgroup $\pi_{cl}(X) \unlhd \pi_1(X)$ representing all loops at $*$ that lift closed - that is, the lift is also a loop - to $X_{\varepsilon}$ for every $\varepsilon$.  The revised fundamental group, then, is $\bar{\pi}_1(X) \defeq \pi_1(X)/\pi_{cl}(X)$, and it isomorphically injects into the uniform fundamental group of $X$, denoted by $\Delta(X)$.  In fact, $\Delta(X)$ is isomorphic to $\breve{\pi}_1(X)$, the first shape group of $X$, showing that $\bar{\pi}_1(X)$ injects into $\breve{\pi}_1(X)$, as well.  When $X$ has a universal cover, $\bar{\pi}_1(X)$ agrees with the definition of Sormani-Wei, though they only define and discuss this group in that particular case.  Our approach shows that $\pi_{cl}(X)$ and $\bar{\pi}_1(X)$ are well-defined whether $X$ has a universal cover or not.  Indeed, it is a specific property of $\pi_{cl}(X)$ that determines when $X$ has a universal cover (Lemma \ref{univ cover first eq}).

Two obvious cases of interest occur when $\pi_{cl}(X)$ is trivial and when it is the whole fundamental group.  In the former case, $\bar{\pi}_1(X)$ is just the fundamental group, which, then, injects into $\Delta(X)$.  We prove (Lemma \ref{k0 trivial 1d}) that $\pi_{cl}(X)$ is always trivial for compact, one-dimensional geodesic spaces, and determining conditions under which $\pi_{cl}(X)$ is trivial in general is one of the goals of the final section (see Theorem \ref{sgtop thm2} below).  When $\pi_{cl}(X) = \pi_1(X)$, $X$ is its own universal cover and $Cr(X) = \emptyset$.  We show that these conditions are actually all equivalent (Corollary \ref{full clgroup}).

We define $X$ to be \textit{semilocally $r$-simply connected} if and only if each $x \in X$ has a neighborhood $U$ such that every path loop in $U$ based at $x$ lifts closed to $X_{\varepsilon}$ for all $\varepsilon > 0$ (Definition \ref{semi rconn}).  This generalization of the classical semilocally simply connected definition can be algebraically reformulated in a familiar way.  If $\bar{h}:\pi_1(X,x) \rightarrow \bar{\pi}_1(X,x)$ is the quotient map and $i:U \hookrightarrow X$ is the inclusion of a set $U\subset X$, then $X$ is semilocally $r$-simply connected at $x$ if and only if there is a neighborhood $U$ of $x$ such that the homomorphism $\bar{h} \circ i_{\ast}:\pi_1(U,x) \rightarrow \bar{\pi}_1(X,x)$ is trivial (Lemma \ref{equiv rconn}). There are other classical fundamental group results that have analogous statements in the revised case.  The classical functor $f \mapsto f_{\ast}$ has an analog for revised fundamental groups, and a homotopy equivalence $f:X \rightarrow Y$ induces a revised fundamental group isomorphism $f_{\sharp}:\bar{\pi}_1(X) \rightarrow \bar{\pi}_1(Y)$ (Lemma \ref{induced hom} and Corollary \ref{homotopy equiv}).



Proposition \ref{local lift property} gives sufficient conditions for $X$ to be semilocally $r$-simply connected, namely that $\bar{\pi}_1(X)$ be countable.  We then use lifting properties to classify the two types of topological singularities that obstruct semilocal simply connectedness (Definition \ref{regular singular point}).  A \textit{sequentially singular point} is one at which there is a sequence of path loops $\gamma_n$ with an associated, strictly decreasing sequence $r_n \searrow 0$ such that $\gamma_n$ lifts closed to $X_{r_n}$ but open to $X_{r_{n+1}}$.  These are ``Hawaiian earring-type'' topological singularities.  A point $x$ is \textit{degenerate} if every neighborhood of $x$ contains a nontrivial path loop that lifts closed to $X_{\varepsilon}$ for all $\varepsilon$; this is a generalization of ``not homotopically Hausdorff.'' Our first and primary theorem is

\begin{theorem}
\label{main theorem 1}
If $X$ is a compact geodesic space, then the following are equivalent.
\begin{enumerate}
\item[1)] $X$ has a universal cover.
\vspace{.025 in}
\item[2)] $Cr(X) = \frac{2}{3}CovSpec(X)$ is finite.
\vspace{.025 in}
\item[3)] The revised fundamental group, $\bar{\pi}_1(X)$, is any one of the following: \textbf{\textit{i)}} countable; \textbf{\textit{ii)}} finitely generated; \textbf{\textit{iii)}} finitely presented.
\vspace{.025 in}
\item[4)] The uniform fundamental group, $\Delta(X)$, is any one of the following: \textbf{\textit{i)}} countable; \textbf{\textit{ii)}} finitely generated; \textbf{\textit{iii)}} finitely presented.
\vspace{.025 in}
\item[5)] $X$ has no sequentially singular points.
\vspace{.025 in}
\item[6)] $X$ is semilocally $r$-simply connected.
\end{enumerate}
\noindent If these hold, then the universal cover $\hat{X}$ is $r$-simply connected \emph{(}i.e. $\bar{\pi}_1(\hat{X})$ is trivial\emph{)}, its deck and covering groups, respectively, are $\bar{\pi}_1(X)$ and $\pi_{cl}(X)$, and $\bar{\pi}_1(X)$ is isomorphic to $\Delta(X)$.
\end{theorem}

We have already noted that $1 \Leftrightarrow 2$ is known.  The proof of Theorem \ref{main theorem 1} will mostly show that the other statements are equivalent to $2$, but we include $1$ for both emphasis and reference.  Moreover, the implication $2 \Rightarrow 3iii$ follows directly from Lemma \ref{univ cover first eq} and a result of Plaut and the author in \cite{PW1}, which is recalled in Section 2.  The implications $3iii \Rightarrow 3ii \Rightarrow 3i$ are clear, and likewise for the parts of $4$.  The new and presently most important aspects of Theorem \ref{main theorem 1} are the sufficiency of $3i$ for $2$ to hold, the equivalence of $3$ - $6$, and the equivalence of $4$ - $6$ to $2$.  

The reader may want to compare Theorem \ref{main theorem 1} to Corollary 5.7 of \cite{CC}, where Cannon and Conner showed that a locally path connected, homotopically Hausdorff Peano continuum $X$ - or, equivalently, a homotopically Hausdorff compact geodesic space - has a simply connected cover if and only if $\pi_1(X)$ is any of the following: 1) countable, 2) finitely generated, 3) finitely presented.  We recharacterize Cannon-Conner's result via the critical spectrum, showing that $X$ has a simply connected cover if and only if $Cr(X)$ is finite \textit{and} $\pi_{cl}(X)$ is trivial (Proposition \ref{charac simply conn covers}).

In Section 5, we examine the relationship between universal covers and topologies on the fundamental group.  Recall that in \cite{Biss} Biss defined the \textit{topological fundamental group}, $\pi_1^{top}(X)$, to be $\pi_1(X)$ topologized as a quotient of the pointed loop space $\{f:[0,1] \rightarrow X \ | \ f(0) = f(1) = *\}$ with the compact-open topology, which is equivalent to the uniform topology when $X$ is geodesic.  Unfortunately, $\pi_1^{top}(X)$ is not always a topological group as was originally claimed in \cite{Biss}, even in the compact geodesic case; Fabel has shown that multiplication in the Hawaiian earring group with this topology is not continuous (\cite{Fabel2}).  However, Brazas has shown that $\pi_1^{top}(X)$ is a \textit{quasitopological group} (Lemma 1.8, \cite{BRAZ}), meaning that the inverse operation is continuous and multiplication is continuous in each variable, i.e. left and right translations are homeomorphisms (cf. \cite{AATM} for details on such groups).  Nevertheless, Biss' definition has still been effectively utilized.  For instance, Fabel also showed that a path connected, locally path connected metric space has a simply connected cover if and only if $\pi_1^{top}(X)$ is discrete (\cite{Fabel}).

The revised fundamental group inherits a natural quotient topology from $\pi_1^{top}(X)$, and we call the resulting group the \textit{topological revised fundamental group}, denoting it $\bar{\pi}_1^{top}(X)$.

\begin{theorem}
\label{uc cover eq discrete group}
If $X$ is compact geodesic, then $\bar{\pi}_1^{top}(X)$ is a $T_1$ quasitopological group, and $X$ has a universal cover if and only if $\bar{\pi}_1^{top}(X)$ is discrete.
\end{theorem}

We then introduce a new topology on $\pi_1(X)$ that is an example of a \textit{subgroup topology} as defined by Bogley and Sierdaski in their preprint \cite{BS}.  Specifically, the cosets of the $\varepsilon$-covering groups, $\{gK_{\varepsilon}: g \in \pi_1(X)\}$, form a basis for a topology we call the \textit{covering topology} on $\pi_1(X)$.  We denote the fundamental group with this topology by $\pi_1^{\mathcal C}(X)$, and we show that $\pi_1^{\mathcal C}(X)$ is always a topological group.  The revised fundamental group with the inherited quotient topology is denoted $\bar{\pi}_1^{\mathcal C}(X)$, and we call it the \textit{revised $\mathcal C$-fundamental group}.  This yields our final two theorems. Theorem \ref{sgtop thm1} shows that $\pi_1^{\mathcal C}(X)$ is just as effective as $\pi_1^{top}(X)$ with regard to detecting universal and simply connected covers.  Theorem \ref{sgtop thm2} gives conditions for $\pi_{cl}(X)$ to be trivial, and it provides a nice picture of the geometric connection between $\pi_1^{\mathcal C}(X)$ and $\bar{\pi}_1^{\mathcal C}(X)$.  Namely, $\bar{\pi}_1^{\mathcal C}(X)$ is in bijective correspondence with the connected components of $\pi_1^{\mathcal C}(X)$.

\begin{theorem}
\label{sgtop thm1}
If $X$ is a compact geodesic space, then $X$ has a universal cover \emph{(}respectively, simply connected cover\emph{)} if and only if $\bar{\pi}_1^{\mathcal C}(X)$ \emph{(}respectively, $\pi_1^{\mathcal C}(X)$\emph{)} is discrete.
\end{theorem}


\begin{theorem}
\label{sgtop thm2}
Let $X$ be a compact geodesic space.  Then the connected component of $\pi_1^{\mathcal C}(X)$ containing $g \in \pi_1^{\mathcal C}(X)$ is $g\pi_{cl}(X)$, and the following are equivalent.
\begin{enumerate}
\item[1)] $\pi_{cl}(X)$ is trivial.
\item[2)] $\pi_1^{\mathcal C}(X)$ is totally disconnected.
\item[3)] $\pi_1^{\mathcal C}(X)$ is Hausdorff.
\item[4)] $\pi_1^{\mathcal C}(X)$ is a geometric group over the semigroup $\mathbb R^{max}$, with geometry $\{K_{\varepsilon}\}_{\varepsilon > 0}$.
\item[5)] $\pi_1^{\mathcal C}(X)$ admits a compatible, left-invariant ultrametric.
\end{enumerate}
If these conditions hold, then $\pi_1(X)$ isomorphically injects into the first shape group of $X$, $\breve{\pi}_1(X)$.
\end{theorem}

\noindent The first statement of Theorem \ref{sgtop thm2} and the equivalence of $2$ and $3$ are part of a more general result on subgroup topologies proved by Bogley and Sierdaski in \cite{BS} (see Lemma \ref{BS lemma}).  The particular application, the last statement, and the equivalence of $1$, $4$, and $5$ to $2$ and $3$ are the new results here.

Conditions 2, 4, and 5 above are closely related.  A geometric group over an abelian, partially ordered semigroup, $S$, is a topological group, $G$, with a local basis $\{U_s\}_{s \in S}$ at the identity, $e$, such that the following hold for all $s$, $t \in S$: 1) $U_s \subset U_t$ if and only if $s \leq t$, and $\bigcup_{s \in S} U_s = G$; 2) $\bigcap_{s \in S} U_s = \{e\}$; 3) $U_s^{-1} = U_s$ and $U_s U_t = U_{s+t}$.  The collection $\{U_s\}$ is called a \textit{geometry} on $G$.  This notion was first defined by Berestovskii, Plaut, and Stallman in \cite{BPGG}, and the type of geometry that $G$ admits, if any, is strongly related to what types of metrics induce its given topology.  We show that the collection $\{K_{\varepsilon}\}_{\varepsilon > 0}$, indexed over $S=\mathbb R^{max}$ - the positive reals with their usual order but operation $a+b \defeq \max\{a,b\}$ - is always \textit{almost} a geometry on $\pi_1^{\mathcal C}(X)$, possibly lacking only one of the required conditions.  That condition is precisely part 2 of the definition, i.e. that $\pi_{cl}(X)=\bigcap_{\varepsilon > 0}K_{\varepsilon}$ is trivial.  Moreover, geometries over $\mathbb R^{max}$ correspond to ultrametrics (see Section 5), and ultrametric spaces are necessarily totally disconnected.
























\vspace{.1 in}
\section{Background: Discrete Homotopy Theory}
\label{appendix}

Recall that a metric space $X$ is a \textit{geodesic space} if any two points in $X$ are joined by a (minimal) \textit{geodesic}, or an arclength parameterized curve, $\gamma:[a,b] \rightarrow X$, having length equal to the distance between its endpoints.  This is slightly different from the Riemannian definition of a geodesic, which only requires that a curve $\gamma$ be locally minimizing. It is well-known that when $X$ is geodesic, $Y$ is a connected topological space, and $f:Y\rightarrow X$ is a covering map, the metric on $X$ can be lifted to a unique geodesic metric on $Y$ that makes $f$ a local isometry.  If $X$ is also compact, this lifted metric makes $f$ a \textit{metric covering map} - a traditional covering map that is also a \textit{uniform} local isometry.  Thus, there is no distinction between metric coverings and general connected coverings in the compact geodesic setting.  

All of the spaces we consider in Section 3 and beyond will be geodesic, and compactness will be assumed when necessary.  It should be noted, however, that the Bing-Moise Theorem (Theorem 8 in \cite{Bing}, Theorem 4 in \cite{Moise}) establishes for a compact, connected, metric space the equivalence of local connectedness, local path connectedness, and the existence of a compatible geodesic metric.  Thus, every \textit{Peano continuum} - or compact, connected, locally connected metric space - admits a compatible geodesic metric, and any topological result that holds for compact geodesic spaces holds for all Peano continua.

We will outline the discrete homotopy constructions of \cite{BPUU} as applied to metric spaces.  Readers familiar with the results and methods of discrete homotopy theory may want to skip this section and simply refer back to it as needed.  Further explanations, details, and proofs may be found in \cite{BPUU} in the context of uniform spaces, and in \cite{W2} and \cite{PWetal} for metric spaces.

Let $X$ be a connected metric space, and fix $\varepsilon >0$. An $\varepsilon $\textit{-chain} $\alpha $ in $X$ is a finite sequence $\alpha =\{x_{0},x_{1},\dots ,x_{n}\}$ such that $d(x_{i-1},x_{i})<\varepsilon $ for $i=1,\dots ,n$. A \textit{basic move} on an $\varepsilon $-chain is the addition or removal of a single point with the conditions that the endpoints remain fixed and the resulting chain is still an $\varepsilon $-chain. Two $\varepsilon $-chains $\alpha $ and $\beta $ are $\varepsilon $\textit{-homotopic} if there is a finite sequence of $\varepsilon$-chains, $H=\{\alpha =\gamma _{0},\gamma _{1},\dots ,\gamma _{k-1},\gamma _{k}=\beta \}$ - called an \textit{$\varepsilon $-homotopy} - such that each $\gamma _{i}$ differs from $\gamma _{i-1}$ by a basic move. The relation ``$\varepsilon$-homotopic'' is an equivalence relation on $\varepsilon$-chains in $X$, and it carries the same basic concatenation and algebraic or groupoid properties as traditional path homotopy equivalence.  

For a fixed base point $\ast \in X$, $X_{\varepsilon }$ is the set of all equivalence classes of $\varepsilon $-chains in $X$ beginning at $\ast$, $[\{\ast =x_{0},\dots,x_{n}\}]_{\varepsilon }$, and $\varphi _{\varepsilon }:X_{\varepsilon }\rightarrow X$ is the endpoint map taking $[\{\ast=x_{0},\dots ,x_{n}\}]_{\varepsilon }$ to $x_{n}$. There is a natural metric, $d_{\varepsilon}$, on $X_{\varepsilon}$ that makes $\varphi_{\varepsilon}$ a regular metric covering map (cf. \cite{PWetal}, \cite{PW1}, or \cite{W2}). We call $X_{\varepsilon}$ and its deck group, $\pi_{\varepsilon}(X)$, the \textit{$\varepsilon$-cover} and $\varepsilon$\textit{-group} of $X$, respectively.  The $\varepsilon$-group is naturally identified with the subset of $X_{\varepsilon}$ consisting of classes of $\varepsilon$\textit{-loops} at $*$, which is a group under concatenation.  If an $\varepsilon $-loop $\alpha =\{\ast=x_{0},\dots ,x_{n}=\ast \}$ is $\varepsilon $-homotopic to the trivial loop $\{\ast \}$ then we say $\alpha $ is $\varepsilon $-\textit{null}.  Clearly, the identity of $\pi_{\varepsilon}(X)$ is $[\{*\}]_{\varepsilon}$, and we take $\varphi_{\varepsilon}:(X_{\varepsilon},\tilde{*}) \rightarrow (X,*)$ to be a pointed map, where $\tilde{*}$ will always be a shorthand notation for the identity element $[\{*\}]_{\varepsilon}\in \pi_{\varepsilon}(X) \subset X_{\varepsilon}$.

The $\varepsilon$-group is uniformly discrete and left invariant as a metric subspace of $X_{\varepsilon}$.  It acts discretely by isometries on $X_{\varepsilon}$ via left concatenation. That is, $[\alpha]_{\varepsilon}([\beta]_{\varepsilon}) = [\alpha \beta]_{\varepsilon}$ for $[\alpha]_{\varepsilon} \in \pi_{\varepsilon}(X)$ and $[\beta]_{\varepsilon} \in X_{\varepsilon}$, and if $d_{\varepsilon}([\alpha]_{\varepsilon}[\beta]_{\varepsilon},[\beta]_{\varepsilon}) < \varepsilon$, then $[\alpha]_{\varepsilon}$ is trivial.  A discrete action is necessarily free and properly discontinuous.  The resulting metric quotient $X_{\varepsilon}/\pi_{\varepsilon}(X)$ is homeomorphic and uniformly locally isometric to $X$; the two are isometric when $X$ is geodesic.  When $X$ is compact geodesic, the $\varepsilon$-groups are finitely presented (Theorem 3, \cite{PW1}), with a set of generators $\{[\gamma_i]_{\varepsilon}\}_{i=1}^n$ and relations of the form $[\gamma_i]_{\varepsilon}[\gamma_j]_{\varepsilon}=[\gamma_k]_{\varepsilon}$.

The preceding construction is independent of the base point. If $*'$ is another base point and $\alpha$ is a fixed $\varepsilon$-chain from $*'$ to $*$, then the maps $[\beta]_{\varepsilon} \mapsto [\alpha \beta]_{\varepsilon}$ and $[\gamma]_{\varepsilon} \mapsto [\alpha \gamma \alpha^{-1}]_{\varepsilon}$ are, respectively, an isometric covering equivalence from $(X_{\varepsilon},\tilde{*})$ to $(X_{\varepsilon},\tilde{*}')$ and an isomorphism from $\pi_{\varepsilon}(X,*)$ to $\pi_{\varepsilon}(X,*')$. Thus, we usually just fix a base point $*$ in $X$ and use it to determine all $\varepsilon$-covers and groups.  This gives us collections $\{X_{\varepsilon}\}_{\varepsilon > 0}$ and $\{\pi_{\varepsilon}(X)\}_{\varepsilon > 0}$, which stratify the covering spaces and fundamental group of $X$.  Indeed, if $X$ is compact geodesic, every connected cover of $X$ is covered by $X_{\varepsilon}$ for small enough $\varepsilon$.

Now, we assume that $X$ is geodesic.  The natural metric on $X_{\varepsilon}$ mentioned above is equal to the lifted geodesic metric from $X$ (Proposition 24, \cite{PW1}).  Given $0<\delta <\varepsilon $, there is a well-defined, surjective bonding map $\varphi _{\varepsilon \delta}:X_{\delta }\rightarrow X_{\varepsilon }$ that simply treats a $\delta $-chain as an $\varepsilon $-chain, i.e. $\varphi _{\varepsilon \delta}([\alpha ]_{\delta })=[\alpha ]_{\varepsilon }$.  These maps are metric covering maps between geodesic spaces and, thus, isometries when they are injective.  They also satisfy the composition relation $\varphi_{\varepsilon \tau} = \varphi_{\varepsilon \delta} \circ \varphi_{\delta \tau}$ when $0 < \tau < \delta < \varepsilon$. The restriction of $\varphi_{\varepsilon \delta}$ to $\pi_{\delta}(X) \subset X_{\delta}$ is a homomorphism onto $\pi_{\varepsilon}(X)\subset X_{\varepsilon}$, which we denote by $\Phi_{\varepsilon \delta}:\pi_{\delta}(X) \rightarrow \pi_{\varepsilon}(X)$. For any $0 < \delta < \varepsilon$, $\Phi_{\varepsilon \delta}$ is injective if and only if $\varphi_{\varepsilon \delta}$ is injective, and these homomorphisms satisfy the obvious analog of the previously mentioned composition relation.

A positive number $\varepsilon$ is a \textit{critical value} of a compact geodesic space $X$ if there is a nontrivial $\varepsilon$-loop, $\gamma$, at $*$ that is $\delta$-null for all $\delta > \varepsilon$.  Equivalently, there is a nontrivial element $[\gamma]_{\varepsilon} \in \pi_{\varepsilon}(X)$ that is in $ker \ \Phi_{\delta \varepsilon}$ for all $\delta > \varepsilon$.    The set $Cr(X)$ of all critical values of $X$ is called the \textit{critical spectrum} of $X$. \textit{It should be noted that our present definition of a critical value relies on the assumption that $X$ is compact geodesic.}  As we mentioned in the introduction, critical values of metric spaces can be defined more generally, and the definition given here would not suffice to capture every value that should be critical for a non-compact or non-geodesic space.  See \cite{PWetal} for the general definition and a classification of the types of critical values.  For compact geodesic $X$, however, critical values occur only in this very specific way (Lemma 3.1.10, \cite{W2}), allowing for the present simpler definition.

The critical/covering spectrum of a compact geodesic space is closed, discrete, and bounded above by $diam(X)$ in $\mathbb R_+=(0,\infty)$, although $\inf Cr(X)$ may be $0$.  Thus, either $Cr(X)$ is finite, or it is a strictly decreasing sequence of isolated critical values converging to $0$. This was originally shown by Sormani-Wei for $CovSpec(X)$ in \cite{SW2}, and Plaut-Wilkins in \cite{PW1} constructed a different direct proof for $Cr(X)$ not using the equality $3Cr(X) = 2CovSpec(X)$.  We have noted that these spectra detect fundamental group generators.  The standard examples illustrating this involve circles (and not by coincidence - see \cite{PW1}).  For instance, if $X$ is the geodesic circle of circumference $r$, $X = S_r^1$, then $X_{\varepsilon} = X$ and $\pi_{\varepsilon}(X)$ is trivial for $\varepsilon > \frac{r}{3}$, while $X_{\varepsilon} = \mathbb R$ and $\pi_{\varepsilon}(X) \cong \mathbb Z$ for $0 < \varepsilon \leq \frac{r}{3}$ (Example 17, \cite{PWetal}).  Thus, $Cr(X) = \{\frac{r}{3}\}$.

There is a natural way to transfer properties between discrete chains and continuous paths.  The proofs of the statements leading up to Definition \ref{ehomomorph} may be found in \cite{W2}.

\begin{definition}
For a path $\gamma:[a,b] \rightarrow X$, a strong $\varepsilon$-chain along $\gamma$ is an $\varepsilon$-chain $\alpha = \{x_0,x_1,\dots,x_n\}$ with the following property: there exists a partition $a = t_0 < t_1 < \cdots < t_n = b$ of $[a,b]$ such that $\gamma(t_i) = x_i$ for each $i=0,1,\dots,n$ and $\gamma([t_{i-1},t_i]) \subset B_{\varepsilon}(\gamma(t_{i-1})) \cap B_{\varepsilon}(\gamma(t_i))$ for each $i=1,\dots,n$.
\end{definition}

\noindent Note that the reversal of a strong $\varepsilon$-chain along $\gamma$ is a strong $\varepsilon$-chain along $\gamma^{-1}$, and if $\alpha_1$ and $\alpha_2$ are strong $\varepsilon$-chains along paths $\gamma_1$ and $\gamma_2$, respectively, with the initial point of $\gamma_2$ equal to the terminal point of $\gamma_1$, then the concatenation $\alpha_1 \alpha_2$ is a strong $\varepsilon$-chain along $\gamma_1 \gamma_2$.  

A simple Lebesgue covering argument shows that there is a strong $\varepsilon$-chain along any path, and if $\gamma$ is any path, then any two strong $\varepsilon$-chains along $\gamma$ are $\varepsilon$-homotopic.  Moreover, if $\gamma$ and $\lambda$ are paths that are fixed endpoint path homotopic, then any strong $\varepsilon$-chain along $\gamma$ is $\varepsilon$-homotopic to any strong $\varepsilon$-chain along $\lambda$. These statements are not true for $\varepsilon$-chains along paths without the strong condition.  Taken together, these properties induce natural, well-defined, ``continuous to discrete'' homomorphisms from $\pi_1(X)$ to each $\varepsilon$-group, which are surjective when $X$ is geodesic.

\begin{definition}
\label{ehomomorph}
Fix a base point $* \in X$, and let $\pi_1(X,*)$ and $\pi_{\varepsilon}(X,*)$ be the fundamental and $\varepsilon$-groups, respectively, based at $*$.  For $\varepsilon > 0$, the $\varepsilon$-homomorphism is the map $h_{\varepsilon}:\pi_1(X,*) \rightarrow \pi_{\varepsilon}(X,*)$ taking $[\gamma] \in \pi_1(X,*)$ to the $\varepsilon$-equivalence class of strong $\varepsilon$-loops along $\gamma$.
\end{definition}

\noindent If $X$ is geodesic and $\alpha$ is an $\varepsilon$-loop at $*$, we can join each consecutive pair of points in $\alpha$ by a minimal geodesic, making $\alpha$ a strong $\varepsilon$-chain along the resulting broken geodesic path loop.  This is an \textit{$\varepsilon$-chording} of $\alpha$, and the homotopy class of the resulting path loop maps to $[\alpha]_{\varepsilon}$ under $h_{\varepsilon}$, making $h_{\varepsilon}$ surjective.  It is easy to see that the following commutes, where $\iota$ is the identity isomorphism.
\begin{equation}
\label{comm diagram 1}
\begin{diagram}
\pi_{\delta}(X,*) & \rTo_{\Phi_{\varepsilon \delta}} & \pi_{\varepsilon}(X,*) \\
\uTo^{h_{\delta}} & & \uTo_{h_{\varepsilon}} &  \\
\pi_1(X,*) & \rTo^{\iota} & \pi_1(X,*)
\end{diagram}
\end{equation}


The following definition and lemma (Definition 16 and Proposition 17 in \cite{PW1}) will be needed for some basic chain homotopy computations later on.
\begin{definition}
\label{chain gap def}
Let $X$ be a metric space and $\varepsilon > 0$.  Given an $\varepsilon$ chain in $X$, $\alpha=\{x_0,x_1,\dots,x_n\}$, define $E(\alpha)\defeq \min_{1 \leq i \leq n} \{\varepsilon - d(x_i,x_{i+1})\}$.  If $\alpha=\{x_0,x_1,\dots,x_n\}$ and $\beta=\{y_0,y_1,\dots,y_n\}$ are chains having the same number of points, define $\mathcal D(\alpha,\beta) \defeq \max_{0 \leq i \leq n} \{d(x_i,y_i)\}$.
\end{definition}

\begin{lemma}
\label{close chain lemma}
Let $\alpha$ be an $\varepsilon$-chain in a metric space $X$.  If $\beta$ is a chain with the same endpoints and same number of points as $\alpha$, and if $\mathcal D(\alpha,\beta) < \frac{1}{2}E(\alpha)$, then $\beta$ is an $\varepsilon$-chain that is $\varepsilon$-homotopic to $\alpha$.
\end{lemma}


The relations $\varphi_{\varepsilon \tau} = \varphi_{\varepsilon \delta}  \circ  \varphi_{\delta \tau}$ and $\Phi_{\varepsilon \tau} = \Phi_{\varepsilon \delta}  \circ  \Phi_{\delta \tau}$ for $\tau < \delta < \varepsilon$ imply that $\{X_{\varepsilon},\varphi_{\varepsilon \delta}\}$ and $\{\pi_{\varepsilon}(X),\Phi_{\varepsilon \delta}\}$ form inverse systems indexed by $\mathbb R_+$ with reverse order.  The \textit{uniform universal cover of $X$} (the \textit{UU-cover} for short) and \textit{uniform fundamental group of $X$} are the resultant inverse limits
\[\tilde{X}=\lim_{\leftarrow} X_{\varepsilon} \quad \text{and} \quad \Delta(X) = \lim_{\leftarrow} \pi_{\varepsilon}(X).\]
\noindent  The endpoint projection $\tilde{\varphi}:\tilde{X} \rightarrow X$ is surjective and continuous but is not typically a traditional cover; the fibers $\tilde{\varphi}^{-1}(x)$, for instance, are totally disconnected but not necessarily discrete.  However, $\tilde{X}$ is a generalized universal cover in the following senses: 1) (\textit{universality}) if $f:Y \rightarrow X$ is a cover then there is a unique, possibly generalized, cover $\tilde{f}:\tilde{X} \rightarrow Y$ such that $f \circ \tilde{f} = \tilde{\varphi}$; \ 2) (\textit{unique lifting}) paths and path homotopies lift uniquely into $\tilde{X}$; 3) (\textit{generalized regularity}) $\Delta(X)$ - which admits equivalent definitions as $\tilde{\varphi}^{-1}(*)$ and as the deck group of $\tilde{\varphi}:\tilde{X} \rightarrow X$ - acts prodiscretely on $\tilde{X}$, and $\tilde{X}/\Delta(X)$ is homeomorphic to $X$.  Thus, $\Delta(X)$ can be interpreted as a generalized fundamental group of $X$.

The following facts are in \cite{BPUU}. There is a canonical homomorphism $\Lambda:\pi_1(X) \rightarrow \Delta(X)$, mapping $[\gamma] \in \pi_1(X,*)$ to the endpoint of the lift of $\gamma$ at the identity in $\Delta(X) \subset \tilde{X}$.  While $\Lambda$ is surjective if and only if $\tilde{X}$ is path connected, $\Lambda(\pi_1(X))$ is always a dense, normal subgroup of $\Delta(X)$ when the latter is given the inverse limit topology, which is also the subspace topology it inherits from $\tilde{X}$. The kernel of $\Lambda$ contains those elements in $\pi_1(X)$ represented by loops that lift closed to $\tilde{X}$, or, equivalently, that lift closed to $X_{\varepsilon}$ for all $\varepsilon > 0$. That is, $ker \ \Lambda = \pi_{cl}(X)$; we will say more about this in Section 3. 

Now, if $X$ is compact and $Cr(X)$ is finite, then the covers $X_{\varepsilon}$ stabilize as $\varepsilon \searrow 0$.  Precisely, $\varphi_{\varepsilon \delta}:X_{\delta}\rightarrow X_{\varepsilon}$ and $\Phi_{\varepsilon \delta}:\pi_{\delta}(X) \rightarrow \pi_{\varepsilon}(X)$ are, respectively, covering equivalences and isomorphisms for all $0 < \delta < \varepsilon \leq \min Cr(X)$.  In this case, for each $0 < \varepsilon \leq \min Cr(X)$, $\tilde{X}$ is equivalent to the traditional cover $X_{\varepsilon}$ with deck group $\Delta(X) \cong \pi_{\varepsilon}(X)$.  The universality of $\tilde{X}$ thus implies that it - as well as each $X_{\varepsilon}$, $0 < \varepsilon \leq \min Cr(X)$ - is a traditional universal cover.  This is precisely the idea Sormani-Wei used to prove that $X$ has a universal cover when $CovSpec(X)=\frac{3}{2}Cr(X)$ is finite, though they did so without reference to the UU-cover or any generalized universal cover.  Of course, they also proved the converse; a universal cover requires that the spectra be finite, and the preceding scenario still holds.

\begin{remark}
We have changed notation slightly from \cite{BPUU}.  In \emph{\cite{BPUU}}, $\Lambda$ and the uniform fundamental group are denoted, respectively, by $\lambda$ and $\delta_1(X)$, but we will use $\lambda$ and $\delta$ differently.
\end{remark}

Finally, when $X$ is compact geodesic, Brodskiy, Dydak, Labuz, and Mitra showed (Corollary 6.5, \cite{BD1}) that the uniform fundamental group is isomorphic to \textit{the first shape group of $X$}, $\breve{\pi}_1(X)$.  We will suppress the formal and rather technical definition of $\breve{\pi}_1(X)$ (cf. \cite{Dydak}), since it will play no role in this paper.  Like $\Delta(X) = \lim_{\leftarrow} \pi_{\varepsilon}(X)$, $\breve{\pi}_1(X)$ is an inverse limit of coarse approximations to the fundamental group.  Very roughly, if $|N(\mathcal U)|$ is the geometric realization of the nerve of an open covering, $\mathcal U$, and if $\mathcal V$ is a refinement of $\mathcal U$, then there is a bonding homomorphism $\rho_{\mathcal U \mathcal V}:\pi_1(|N(\mathcal U)|) \rightarrow \pi_1(|N(\mathcal V)|)$.  Then $\breve{\pi}_1(X)$ is the resultant inverse limit $\lim_{\leftarrow} \pi_1(|N(\mathcal U)|)$, taken over a cofinal directed set consisting of open coverings admitting subordinated partitions of unity.  Like finding conditions under which $\pi_{cl}(X)$ is trivial in the geodesic case, determining when the fundamental group isomorphically injects into the first shape group is a broad area of interest in general topology (cf. \cite{FZ}, \cite{FZ2}).




























\vspace{.1 in}
\section{The Revised Fundamental Group}

Much of this section will hold for general geodesic spaces, since many of the results will not involve our compact-dependent definition of a critical value.  Recall that open metric balls of radius $r$ and center $x$ are denoted $B_r(x)$.  To distinguish discrete chains from continuous paths, we will exclusively use `path' (resp. `path loop') to denote continuous curves (resp. closed curves).  A path loop, $\gamma:[a,b] \rightarrow X$ is said to be \textit{based at $x$} if $\gamma(a)=\gamma(b)=x$.  We do not discuss free homotopies in the present work, so to say that two path loops based at a point $x$ are homotopic means that they are fixed endpoint path homotopic, or homotopic rel $x$.  If groups $G$ and $H$ are isomorphic, we will denote this by $G\cong H$.


Let $X$ be a geodesic space with base point $*$, and let $\{X_{\varepsilon}\}$ be the $\varepsilon$-covers determined by this base point.  Recalling Definition \ref{ehomomorph}, we denote the subgroup $ker \ h_{\varepsilon} \unlhd \pi_1(X,*)$ by $K_{\varepsilon}$, or $K_{\varepsilon}(*)$ when the base point needs to be emphasized.  Commutative diagram (\ref{comm diagram 1}) shows immediately that these kernels form a decreasing, nested set of normal subgroups of $\pi_1(X,*)$ in the following sense: if $0 < \delta < \varepsilon$, then $K_{\delta} \subseteq K_{\varepsilon}$.  We thus define the normal subgroup
\[\pi_{cl}(X,*) \defeq \bigcap_{\varepsilon > 0} K_{\varepsilon} \ \unlhd \ \pi_1(X,*),\]
\noindent and, for reasons which will soon become clear, we call $\pi_{cl}(X,*)$ the \textit{closed lifting group} of $X$ at $*$.  When $\pi_{cl}(X,*)$ is the trivial subgroup of $\pi_1(X,*)$ consisting of just the identity, we denote this by $\pi_{cl}(X,*) = 1$.

\begin{definition}
\label{revised fg}
The \textit{revised fundamental group} of $X$ at $*$ is defined to be the quotient group $\bar{\pi}_1(X,*) \defeq \pi_1(X,*)/\pi_{cl}(X,*)$, and we denote the standard quotient homomorphism by $\bar{h}:\pi_1(X,*) \rightarrow \bar{\pi}_1(X,*)$.
\end{definition}

\noindent We usually suppress the base point when it is clear, and we show below that it is, in fact, immaterial.  We will routinely express elements of $\bar{\pi}_1(X)$ as left cosets, $[\gamma]\pi_{cl}(X)$.  The only scenario where confusion might occur is when we need to distinguish the subset $[\gamma]\pi_{cl}(X) \subset \pi_1(X)$ from the corresponding element in $\bar{\pi}_1(X)$.  The context, however, should always make the usage clear.

We can connect the fundamental group, revised fundamental group, and $\varepsilon$-groups by a commutative diagram.  We use a standard generalization of the First Isomorphism Theorem, namely the following: if $f:G \rightarrow H$ is a homomorphism, not necessarily surjective, and if $ker \ f$ contains a normal subgroup, say $N$, then there is a unique homomorphism $h:G/N \rightarrow H$ such that $h \circ q = f$, where $q:G \rightarrow G/N$ is the quotient homomorphism. The map $h$ is defined by $h(gN) = f(g)$.  We will use this result several times.

For any $\varepsilon > 0$, $K_{\varepsilon}$ contains $\pi_{cl}(X)$.  Thus, there is a unique homomorphism $\bar{h}_{\varepsilon}:\bar{\pi}_1(X) \rightarrow \pi_{\varepsilon}(X)$ which takes $[\gamma]\pi_{cl}(X)$ to $h_{\varepsilon}([\gamma])$ and is such that the following diagram commutes.
\begin{equation}
\label{comm diagram 2}
\begin{diagram}
\pi_1(X) & \rTo_{h_{\varepsilon}} & \pi_{\varepsilon}(X) \\
\dTo_{\bar{h}} & \ruTo^{\bar{h}_{\varepsilon}} &  \\
 \bar{\pi}_1(X) &
\end{diagram}
\end{equation}
\noindent Note that $ker \ \bar{h}_{\varepsilon}=\bar{h}(K_{\varepsilon})$, and since $h_{\varepsilon}$ is surjective, $\bar{h}_{\varepsilon}$ is surjective, also.

Let $\gamma:[a,b] \rightarrow X$ be a path in $X$ beginning at $*$, and let $\tilde{\gamma}$ denote its unique lift to the identity $\tilde{*} \in \pi_{\varepsilon}(X) \subset X_{\varepsilon}$.  It follows from Proposition 21 in \cite{PW1} that the endpoint of $\tilde{\gamma}$ is the equivalence class of strong $\varepsilon$-chains along $\gamma$.  Thus, if $\gamma$ is a path loop then the endpoint of $\tilde{\gamma}$ is $h_{\varepsilon}([\gamma])$, which is trivial if and only if $[\gamma] \in K_{\varepsilon}$. Hence, we have

\begin{lemma}
\label{charac lifts}
Let $X$ be a geodesic space, and let $\varepsilon > 0$ be given.  If $\gamma:[a,b] \rightarrow X$ is a path loop at $* \in X$, then $\tilde{\gamma}$ is a path loop at $\tilde{*} \in X_{\varepsilon}$ if and only if some \emph{(}equivalently, every\emph{)} strong $\varepsilon$-chain along $\gamma$ is $\varepsilon$-null.  That is, $\gamma$ lifts closed to $\tilde{*} \in X_{\varepsilon}$ if and only if $[\gamma] \in K_{\varepsilon}$, and $K_{\varepsilon}$ is the covering group of $X_{\varepsilon}$.
\end{lemma}

\noindent It follows from the regularity of $\varphi_{\varepsilon}:X_{\varepsilon} \rightarrow X$ that the lifts to $X_{\varepsilon}$ of a path loop based at any point in $X$ are either all closed or all open, regardless of the point in the appropriate preimage to which it is lifted.  Hence, if $\gamma$ is a path loop based at $x$, there is no ambiguity in simply stating that $\gamma$ lifts closed or open to $X_{\varepsilon}$ without specifying the particular point in $\varphi_{\varepsilon}^{-1}(x)$ to which it is lifted.

Lemma \ref{charac lifts} also gives us another useful and familiar interpretation of a critical value.  Suppose $X$ is compact and $\varepsilon > 0$ is a critical value of $X$.  Then there is a nontrivial $\varepsilon$-loop, $\alpha$, at $*$ that is $\delta$-null for all $\delta > \varepsilon$.  Let $\gamma$ be an $\varepsilon$-chording of $\alpha$, and note that $\alpha$ is also a strong $\delta$-loop along $\gamma$ for all $\delta > \varepsilon$.  It follows, then, that $\gamma$ lifts open to $X_{\varepsilon}$ since $\alpha$ is $\varepsilon$-nontrivial, but closed to $X_{\delta}$ for all $\delta > \varepsilon$ since $\alpha$ is $\delta$-null.  That is, there is a path loop at $*$ that lifts open to $X_{\varepsilon}$ but closed to $X_{\delta}$ for all $\delta > \varepsilon$.  This is precisely how one characterizes elements of the covering spectrum of Sormani-Wei, and we see that it is a consequence of the more general discrete formulation.

\begin{corollary}
\label{loop in a ball}
Let $X$ be geodesic with base point $*$.  If $\gamma$ is a path loop based at $x \in X$ and lying in an open ball of radius $\varepsilon$ not necessarily centered at $x$, then $\gamma$ lifts closed to $X_{\varepsilon}$.
\end{corollary}

\begin{proof}
Suppose $\gamma$ lies in $B_{\varepsilon}(\bar{x})$. Choose a strong $\varepsilon$-loop along $\gamma$, say $\beta = \{x=x_0,x_1,\dots,x_n=x\}$, and let $\alpha$ be the 2-point $\varepsilon$-chain $\{\bar{x},x\}$.  Then $\alpha \beta \alpha^{-1}$ is an $\varepsilon$-loop, and note that $\beta$ is $\varepsilon$-null if and only if $\alpha \beta \alpha^{-1}$ is.  But, letting $\overset{\varepsilon}\sim$ denote the relation ``$\varepsilon$-homotopic,'' we have
\[\alpha \beta \alpha^{-1} \overset{\varepsilon}\sim \{\bar{x},x=x_0,x_1,\dots,x_{n-1},x_n=x,\bar{x}\}.\]
\noindent Since $x_i \in B_{\varepsilon}(\bar{x})$ for each $i=0,1,\dots,n$, we can successively remove $x_0$, then $x_1$, and so on, reducing $\alpha \beta \alpha^{-1}$ via $\varepsilon$-homotopy to the trivial chain $\{\bar{x},\bar{x}\}$. Thus, $\beta$ is $\varepsilon$-null.

Finally, let $\lambda$ be a path from $*$ to $x$, and choose a strong $\varepsilon$-chain, $\sigma$, along $\lambda$.  Then $\sigma \beta \sigma^{-1}$ is a strong $\varepsilon$-chain along $\lambda \gamma \lambda^{-1}$ that is $\varepsilon$-null.  By Lemma \ref{charac lifts}, this means that $\lambda \gamma \lambda^{-1}$ lifts closed to $\tilde{*} \in X_{\varepsilon}$, which, by uniqueness of path lifts, can only hold if $\gamma$ lifts closed, also.\end{proof}

\vspace{.1 in}
\noindent The author has shown that the previous corollary can be strengthened to path loops lying in balls of radius $\frac{3\varepsilon}{2}$ (\cite{W2}).  The proof is more technical, however, and we will not need that stronger result.

We include the next definition and lemma for convenient reference, since they will be used several times.  The lemma is an immediate consequence of Lemma \ref{charac lifts} and Corollary 52 in \cite{PW2}.

\begin{definition}
A lollipop at $x \in X$ is a path loop of the form $\alpha \beta \alpha^{-1}$, where $\alpha$ is a path from $x$ to a point $y$ and $\beta$ is a path loop at $y$.  If $\beta$ - which we call the head of the lollipop - lies in a ball of radius $\varepsilon$, then we call $\alpha \beta \alpha^{-1}$ an $\varepsilon$-lollipop.  If a path loop $\gamma$ is homotopic to a product of $\varepsilon$-lollipops, $\alpha_1 \beta_1 \alpha_1^{-1} \cdots \alpha_m \beta_m \alpha_m^{-1}$, we call this an $\varepsilon$-lollipop factorization of $[\gamma]$.
\end{definition}

\begin{lemma}
\label{geodesic loop reduction}
Let $X$ be a geodesic space.  If $[\gamma] \in \pi_1(X,*)$ is in $K_{\varepsilon}$, then $\gamma$ is homotopic to a finite product of $\frac{3\varepsilon}{2}$-lollipops.
\end{lemma}

\noindent It follows from the uniqueness of path lifts to covering spaces that a lollipop $\alpha \beta \alpha^{-1}$ lifts closed to a regular cover if and only if $\beta$ lifts closed.  Combining this with Corollary \ref{loop in a ball}, we obtain

\begin{corollary}
\label{lollipop products}
If $\gamma = \alpha_1 \beta_1 \alpha_1^{-1} \cdots \alpha_n \beta_n \alpha_n^{-1}$ is a product of $\varepsilon$-lollipops in a geodesic space $X$, then $\gamma$ lifts closed to $X_{\varepsilon}$.
\end{corollary}  

\begin{remark}
\label{SW connection}
Lemma \emph{\ref{geodesic loop reduction}} and the statement immediately following the proof of Corollary \emph{\ref{loop in a ball}} are the means by which one shows that $\frac{3}{2}Cr(X) = CovSpec(X)$.  In fact, those results, together, show that $K_{\varepsilon} = \pi^{3\varepsilon/2}(X,*)$, where $\pi^{\delta}(X,*) \subset \pi_1(X,*)$ is the subgroup generated by $\delta$-lollipops.  These are precisely the covering groups of the $\delta$-covers, $X^{\delta}$, used by Sormani and Wei to define their covering spectrum \emph{(}Definition 2.3, \cite{SW2}\emph{)}.  With this fact, it is straightforward to show that $X_{\varepsilon}$ is isometricaly equivalent to $X^{3\varepsilon/2}$, and the equality $\frac{3}{2}Cr(X) = CovSpec(X)$ then follows immediately.  See \cite{PW2} for details.
\end{remark}

\begin{proposition}
\label{characterize k0}
If $X$ is geodesic, then $[\gamma] \in \pi_{cl}(X,*)$ if and only if $\gamma$ lifts closed to $X_{\varepsilon}$ for all $\varepsilon > 0$.  If $X$ is also compact, then $[\gamma] \in \pi_{cl}(X,*)$ if and only if $\gamma$ lifts closed to all connected covers of $X$.
\end{proposition}

\begin{proof}
The first statement follows directly from Lemma \ref{charac lifts} and the definition of $\pi_{cl}(X)$.  The second statement follows from the first and the fact that, in the compact case, every connected cover of $X$ is covered by $X_{\varepsilon}$ for some sufficiently small $\varepsilon$.\end{proof}

\vspace{.1 in}
Thus, $\pi_{cl}(X)$ is precisely equal to the kernel of $\Lambda:\pi_1(X) \rightarrow \Delta(X)$, and we now see why $\pi_{cl}(X)$ is called the closed lifting group.  It is natural to wonder why $\pi_{cl}(X)$ is not simply defined as $ker \ \Lambda$.  While this would be more efficient, the homomorphisms $h_{\varepsilon}$ and the representation $\pi_{cl}(X) = \bigcap_{\varepsilon > 0} K_{\varepsilon}$ are useful by themselves (see Section 4), beyond the mere fact that $\pi_{cl}(X) = ker \ \Lambda$.  Therefore, it will be convenient to have both the algebraic and geometric interpretations of the closed lifting group.

We have carried out the above constuctions using the $\varepsilon$-covers determined by an arbitrarily chosen base point, $*$.  Since our definitions fundamentally rely upon the lifts of path loops to these covers, this raises the question of whether or not our results depend on that base point, particularly since another base point would technically induce different, albeit isometrically equivalent, covers.  This equivalence and the regularity of the $\varepsilon$-covers should make it evident that the lifts of path loops are independent of the point we choose to construct the $\varepsilon$-covers.  For the sake of completeness, however, we will formally clear up any questions about base points.  

The key result is one we already mentioned above:  if $*$ is our base point in $X$, and $\gamma$ is a path loop based at $x$, then $\gamma$ lifts closed to $X_{\varepsilon}$ if and only if every lollipop $\alpha \gamma \alpha^{-1}$ lifts closed to $X_{\varepsilon}$, where $\alpha$ is any path from $*$ to $x$.  Recall that we denote the base point of $X_{\varepsilon}$ by $\tilde{*}$, which we always take to be the identity in $\pi_{\varepsilon}(X,*) \subset X_{\varepsilon}$.  For the next two lemmas, we adopt the following notation, but we will not need it thereafter.  We denote the $\varepsilon$-covers determined by $*$ using the standard pointed notation, $(X_{\varepsilon},\tilde{*})$.

\begin{lemma}
\label{first bp indep}
Let $X$ be a geodesic space with base points $*_1$ and $*_2$.  A path loop $\gamma$ based at $x \in X$ lifts closed to $(X_{\varepsilon},\tilde{*}_1)$ if and only if $\gamma$ lifts closed to $(X_{\varepsilon},\tilde{*}_2)$.
\end{lemma}

\begin{proof}
This follows from repeated applications of the aforementioned key result regarding lollipops.  Let $\psi:(X_{\varepsilon},\tilde{*}_1) \rightarrow (X_{\varepsilon},\tilde{*}_2)$ be an isometric covering equivalence (see Section 2) satisfying $\varphi_{\varepsilon}^{2} \circ \psi = \varphi_{\varepsilon}^{1}$, where $\varphi_{\varepsilon}^{1}:(X_{\varepsilon},\tilde{*}_1) \rightarrow (X,*_1)$ and $\varphi_{\varepsilon}^{2}:(X_{\varepsilon},\tilde{*}_2) \rightarrow (X,*_2)$ are the respective covers.  If $\gamma$ lifts closed to $(X_{\varepsilon},\tilde{*}_1)$, then $\alpha \gamma \alpha^{-1}$ lifts closed to $(X_{\varepsilon},\tilde{*}_1)$, where $\alpha$ is any path from $*_1$ to $x$.  Let $\tilde{\lambda}$ denote the lift of $\alpha \gamma \alpha^{-1}$ to $\tilde{*}_1 \in (X_{\varepsilon},\tilde{*}_1)$.  Then $\psi \circ \tilde{\lambda}$ is a path loop in $(X_{\varepsilon},\tilde{*}_2)$, and it projects to $\alpha \gamma \alpha^{-1}$ under $\varphi_{\varepsilon}^2$, because of the equality $\varphi_{\varepsilon}^{2} \circ \psi = \varphi_{\varepsilon}^{1}$.  Thus, $\alpha \gamma \alpha^{-1}$ lifts closed to $(X_{\varepsilon},\tilde{*}_2)$, which further implies that $\beta \alpha \gamma \alpha^{-1} \beta^{-1} = (\beta \alpha)\gamma(\beta \alpha)^{-1}$ lifts closed to $(X_{\varepsilon},\tilde{*}_2)$, where $\beta$ is any path from $*_2$ to $*_1$.  But this implies that $\gamma$ lifts closed to $(X_{\varepsilon},\tilde{*}_2)$.\end{proof}

\vspace{.1 in}
\noindent In particular, there is no ambiguity in stating that a path loop lifts closed to $X_{\varepsilon}$ without referencing the base point used to determine the $\varepsilon$-covers.  We will use this result without comment going forward.

Continuing the notation of the previous lemma, let $\pi_{cl}(X,*_1)$ and $\pi_{cl}(X,*_2)$ denote the closed lifting groups at $*_1$ and $*_2$, respectively.  For $\varepsilon > 0$, let $K_{\varepsilon}(*_1)$ and $K_{\varepsilon}(*_2)$ denote the respective kernels of $h_{\varepsilon}^1:\pi_1(X,*_1) \rightarrow \pi_{\varepsilon}(X,*_1)$ and $h_{\varepsilon}^2:\pi_1(X,*_2) \rightarrow \pi_{\varepsilon}(X,*_2)$.  Fix a path, $\alpha$, from $*_2$ to $*_1$, and define $F:\pi_1(X,*_1) \rightarrow \pi_1(X,*_2)$ by $F([\gamma]) = [\alpha \gamma \alpha^{-1}]$. 

\begin{lemma}
\label{rfg indep bp}
For a geodesic space, $X$, the following hold.
\begin{enumerate}
\item[1)] The restriction of $F$ to $K_{\varepsilon}(*_1)$ is an isomorphism onto $K_{\varepsilon}(*_2)$.
\item[2)] The restriction of $F$ to $\pi_{cl}(X,*_1)$ is an isomorphism onto $\pi_{cl}(X,*_2)$.
\item[3)] $\bar{\pi}_1(X,*_1)=\pi_1(X,*_1)/\pi_{cl}(X,*_1) \cong \pi_1(X,*_2)/\pi_{cl}(X,*_2)=\bar{\pi}_1(X,*_2)$.
\end{enumerate}
\end{lemma}

\begin{proof}
We first note that $F$ is an isomorphism; this is standard in fundamental group arguments.  Suppose $[\gamma] \in K_{\varepsilon}(*_1)$, so that $\gamma$ is a path loop at $*_1$ that lifts closed to $(X_{\varepsilon},\tilde{*}_1)$.  By Lemma \ref{first bp indep}, $\gamma$ lifts closed to $(X_{\varepsilon},\tilde{*}_2)$, implying that $\alpha \gamma \alpha^{-1}$ lifts closed to $(X_{\varepsilon},\tilde{*}_2)$.  This shows that $F$ maps $K_{\varepsilon}(*_1)$ into $K_{\varepsilon}(*_2)$.  On the other hand, if $[\lambda] \in K_{\varepsilon}(*_2)$, let $\gamma = \alpha^{-1}\lambda \alpha$, so that $F([\gamma])=[\lambda]$.  By Lemma \ref{first bp indep}, $\lambda$ lifts closed to $(X_{\varepsilon},\tilde{*}_1)$, and it follows that $\gamma$ lifts closed to $(X_{\varepsilon},\tilde{*}_1)$. Thus, $F$ maps $K_{\varepsilon}(*_1)$ onto $K_{\varepsilon}(*_2)$, proving 1.

Next, suppose $[\gamma] \in \pi_{cl}(X,*_1)$, and let $\varepsilon > 0$ be given.  Since $[\gamma] \in K_{\varepsilon}(*_1)$, $F([\gamma]) \in K_{\varepsilon}(*_2)$ by part 1.  Since $\varepsilon$ was arbitrary, this shows that $F([\gamma]) \in \pi_{cl}(X,*_2)$, and $F$ maps $\pi_{cl}(X,*_1)$ into $\pi_{cl}(X,*_2)$.  By the same reasoning, if $[\lambda] \in \pi_{cl}(X,*_2)$, then $F^{-1}([\lambda]) \in K_{\varepsilon}(*_1)$ for all $\varepsilon > 0$.  Thus, $F^{-1}([\lambda]) \in \pi_{cl}(X,*_1)$, and $F$ maps $\pi_{cl}(X,*_1)$ onto $\pi_{cl}(X,*_2)$, proving part 2.

Finally, part 3 now follows from the homomorphism result we used earlier.  If $\bar{h}_1:\pi_1(X,*_1) \rightarrow \bar{\pi}_1(X,*_1)$ and $\bar{h}_2:\pi_1(X,*_2) \rightarrow \bar{\pi}_1(X,*_2)$ denote the respective quotient maps, then the kernel of $\bar{h}_2 \circ F: \pi_1(X,*_1) \rightarrow \bar{\pi}_1(X,*_2)$ is the subgroup $F^{-1}(\pi_{cl}(X,*_2))=\pi_{cl}(X,*_1)$.  Hence, there is a unique, surjective homomorphism $f:\bar{\pi}_1(X,*_1) \rightarrow \bar{\pi}_2(X,*_2)$ satisfying $f \circ \bar{h}_1 = \bar{h}_2 \circ F$ and defined by $f([\gamma]\pi_{cl}(X,*_1)) = \bar{h}_2(F([\gamma]))$.  If $f([\gamma]\pi_{cl}(X,*_1)) = \pi_{cl}(X,*_2) \in \bar{\pi}_1(X,*_2)$, then $F([\gamma]) \in \pi_{cl}(X,*_2)$, which means that $[\gamma] \in \pi_{cl}(X,*_1)$.  That is, $f$ is injective.\end{proof}

\vspace{.1 in}
\noindent Consequently, we will treat base points very informally.  We always technically need to choose one to determine the collection of $\varepsilon$-covers $\{X_{\varepsilon}\}$, but it will play no other significant role.

Proposition \ref{characterize k0} provides some useful intuition regarding the closed lifting and revised fundamental groups.  For instance, nontrivial elements of $\bar{\pi}_1(X)$ are obviously represented by classes of path loops at $*$ that eventually lift open to $X_{\varepsilon}$ for all sufficiently small $\varepsilon > 0$.  Going further, each distinct, nontrivial element of the revised fundamental group determines a critical value in the compact case.  Suppose $[\gamma]$, $[\lambda] \in \pi_1(X)\setminus \pi_{cl}(X)$ and $[\gamma]\pi_{cl}(X) = [\lambda]\pi_{cl}(X)$, so that there is a path loop, $\sigma$, at $*$ that lifts closed to $X_{\varepsilon}$ for all $\varepsilon$ and is such that $\gamma$ is homotopic to $\lambda \sigma$.  Since $\sigma$ always lifts closed, the endpoint of the lift of $\lambda \sigma$ will just be the endpoint of the lift of $\lambda$.  Thus, $[\gamma]=[\lambda \sigma]$ implies that $\gamma$ and $\lambda$ will both lift open or closed to any given $X_{\varepsilon}$.  So, if $\gamma$ lifts open to $X_{\varepsilon}$ but closed to $X_{\delta}$ for all $\delta > \varepsilon$, thus making $\varepsilon$ a critical value, it follows that $\lambda$ has the same property.  That is, each element of $[\gamma]\pi_{cl}(X)$ determines $\varepsilon$ as a critical value.  Formally, there is a surjective map $f:\bar{\pi}_1(X) \rightarrow Cr(X) \cup \{0\}$, taking $\pi_{cl}(X)$ to $0$ and each nontrivial element to the critical value determined by that coset.  Multiple distinct cosets, of course, can determine the same critical value, so $f$ need not be injective.

For another interpretation in light of Lemma \ref{geodesic loop reduction}, we can intuitively think of $\bar{\pi}_1(X)$ as a ``large scale fundamental group.'' By this, we mean that $\bar{\pi}_1(X)$ treats as nontrivial only those fundamental group elements $[\gamma]$ that have positive diameter in the sense that $\inf_{\lambda \in [\gamma]} diam(\lambda) > 0$.  To wit, suppose $[\gamma]\pi_{cl}(X)$ is not the identity in $\bar{\pi}_1(X)$, and let $\varepsilon$ be the largest value such that $\gamma$ lifts open to $X_{\varepsilon}$.  By Corollary \ref{lollipop products}, any lollipop factorization of $[\gamma]$ must contain at least one factor, $\alpha \beta \alpha^{-1}$, where $\beta$ is a path loop that is not homotopic to any path loop lying in a ball of radius $\varepsilon$.  In other words, there is a positive lower bound of $\varepsilon$ on the diameter of the image of any representative in $[\gamma]$.

On the other hand, obtaining a general geometric picture of the elements in $\pi_{cl}(X)$ is more difficult, but Lemma \ref{geodesic loop reduction} is useful here, also.  Suppose $[\gamma] \in \pi_{cl}(X)$ is nontrivial.  Then, by Lemma \ref{geodesic loop reduction}, $[\gamma]$ can be represented by an $\varepsilon$-lollipop factorization for any $\varepsilon > 0$.  The minimal number of lollipops in each factorization may increase as $\varepsilon$ decreases, but the heads of the lollipops become arbitrarily small.  This is a generalization of a formal \textit{small path loop}, or a path loop $\gamma$ based at a point $x$ such that every neighborhood of $x$ contains a path loop that is homotopic to $\gamma$.  Note that the word `small' here is part of the name and definition, not just an adjectival descriptor.  Nontrivial small path loops have long been known as one of the obstructions to semilocal simple connectivity, though they were formally defined in the investigation of \textit{small loop spaces} by Z. Virk in \cite{V}.  By definition, $X$ is not homotopically Hausdorff if there is at least one nontrivial small path loop in $X$.

\begin{lemma}
\label{k0 contains small loops}
If $X$ is geodesic, and if $\beta$ is a small path loop based at $x \in X$, with $\alpha$ any path from $*$ to $x$, then $[\alpha \beta \alpha^{-1}] \in \pi_{cl}(X,*)$. In particular, if $\pi_{cl}(X) =1$, then $X$ is homotopically Hausdorff.
\end{lemma}

\begin{proof}
The first statement follows immediately from Corollary \ref{loop in a ball} and Lemma \ref{lollipop products}, since, by definition, there is a representative of $\beta$ based at $x$ and lying in $B_{\varepsilon}(x)$ for any $\varepsilon > 0$. If $X$ is not homotopically Hausdorff, then there is a nontrivial small path loop based at some point in $X$.  But this produces a nontrivial element of $\pi_{cl}(X)$ by the first statement.\end{proof}

\vspace{.1 in}
\noindent In particular, $\pi_{cl}(X)$ contains what Pakdaman, Torabi, and Mashayekhy call in \cite{PTM} the \textit{SG-subgroup}. This is the subgroup $\pi_1^{sg}(X) \subset \pi_1(X)$ generated by all \textit{small loop lollipops}, or path loops of the form $\alpha \beta \alpha^{-1}$, where $\alpha$ is a path beginning at $*$ and $\beta$ is a small path loop based at $\alpha(1)$.  In many cases, $\pi_1^{sg}(X)$ actually equals $\pi_{cl}(X)$ (cf. Example \ref{K example}), but this is not true in general.  The space in Example \ref{gasket example} illustrates that $\pi_{cl}(X)$ may contain elements $[\gamma]$ such that $\gamma$ is not homotopic to any finite product of small loop lollipops. We postpone the example until Section 4, since it relies on the construction of another example we give there.  It is, however, still open whether or not the converse of the second part of Lemma \ref{k0 contains small loops} holds.  Informally, is the presence of at least one nontrivial small path loop the only way in which $\pi_{cl}(X)$ can be nontrivial when $X$ is compact?  In the non-compact case, it is easy to find examples - even complete Riemannian manifolds - where $\pi_{cl}(X)$ is nontrivial while $X$ is homotopically Hausdorff.  The surface of revolution formed by rotating the graph of $f(x) = e^{-x}$ around the $x$-axis is such a space.

There is one important case, however, where these two necessarily coincide.  Cannon and Conner showed that one-dimensional spaces are automatically homotopically Hausdorff (Corollary 5.4, \cite{CC}).  Berestovskii-Plaut proved (Theorem 93, \cite{BPUU}) that when $X$ has uniform dimension at most $1$, $\Lambda$ is injective.  Since $ker \ \Lambda = \pi_{cl}(X)$, we have

\begin{lemma}
\label{k0 trivial 1d}
If $X$ is a uniformly one-dimensional geodesic space \emph{(}e.g. if $X$ is compact with topological dimension $1$\emph{)}, then $\pi_{cl}(X) = 1$ and $\bar{\pi}_1(X) = \pi_1(X)$.
\end{lemma}

There is also a metric characterization of the closed lifting group when $X$ is compact and has a universal cover, and this characterization establishes yet another connection to the work of Sormani and Wei.  In \cite{SW4}, they defined the \textit{slipping group} of a geodesic space, $X$, with a universal cover, $\hat{X}$.  This is the subgroup $\pi_{slip}(X) \subset \pi_1(X)$ generated by elements $g \in \pi_1(X)$ satisfying $\inf \{\hat{d}(x,gx) : x \in \hat{X}\} = 0$, where $\hat{d}$ is the lifted geodesic metric on $\hat{X}$ and the notation $gx$ refers to the action on $\hat{X}$ by the deck transformation corresponding to $g$.  While the definition of $\pi_{cl}(X)$ does not require a universal cover, we can show that $\pi_{cl}(X) = \pi_{slip}(X)$ when $X$ is compact geodesic and has a universal cover.

\begin{lemma}
\label{slipping lemma}
If $X$ is a compact geodesic space with a universal cover, then $\pi_{slip}(X) = \pi_{cl}(X)$.
\end{lemma}

\begin{proof}
Since a universal cover exists, $Cr(X)$ is finite.  Thus, we can choose $\varepsilon$ small enough - less than $\min Cr(X)$ - so that $X_{\varepsilon}$ is our universal cover and its deck group is $\pi_{\varepsilon}(X) \cong \pi_1(X)/K_{\varepsilon}$.  In fact, the homomorphism $h_{\varepsilon}:\pi_1(X) \rightarrow \pi_{\varepsilon}(X)$ is precisely the map that takes $[\gamma] \in \pi_1(X)$ to its corresponding deck transformation.  Moreover, Lemma \ref{univ cover first eq} will show that $\pi_{cl}(X) = K_{\varepsilon}$ in this case.

Let $[\gamma] \in \pi_1(X)$ be given, and let $[\alpha]_{\varepsilon} = h_{\varepsilon}([\gamma])$.  Suppose $[\gamma] \in \pi_{cl}(X) = K_{\varepsilon}$, so that $[\alpha]_{\varepsilon}$ is trivial.  Then $[\gamma]$ corresponds to the identity map of $X_{\varepsilon}$ and is, therefore, in $\pi_{slip}(X)$.  On the other hand, suppose $[\gamma] \in \pi_{slip}(X)$.  If $[\gamma]$ were not in $\pi_{cl}(X) = K_{\varepsilon}$, then $[\alpha]_{\varepsilon}$ would be nontrivial in $\pi_{\varepsilon}(X)$.  But the fact that $\pi_{\varepsilon}(X)$ acts discretely on $X_{\varepsilon}$ would then imply that $\hat{d}([\alpha]_{\varepsilon}[\beta]_{\varepsilon},[\beta]_{\varepsilon}) \geq \varepsilon$ for all $[\beta]_{\varepsilon} \in X_{\varepsilon}$.  This would contradict that $[\gamma] \in \pi_{slip}(X)$.\end{proof}


Next, we determine the relationship between $\bar{\pi}_1(X)$ and $\Delta(X)$.   Applying the same homomorphism theorem we used to define $\bar{h}_{\varepsilon}$, we see that there is a unique homomorphism $\bar{h}_{\Delta}:\bar{\pi}_1(X) \rightarrow \Delta(X)$ such that the following diagram commutes.
\begin{equation}
\label{comm diagram delta}
\begin{diagram}
\pi_1(X) & \rTo_{\Lambda} & \Delta(X) \\
\dTo_{\bar{h}} & \ruTo^{\bar{h}_{\Delta}} &  \\
 \bar{\pi}_1(X) &
\end{diagram}
\end{equation}
\noindent In this case, $\bar{h}_{\Delta}$ need not be surjective, because $\Lambda$ may not be. However, since $ker \ \Lambda = \pi_{cl}(X)$ instead of just containing it, $\bar{h}_{\Delta}$ is injective.  Thus, $\bar{h}_{\Delta}$ is an isomorphism if and only if it is surjective, which holds if and only if $\Lambda$ is surjective.  Recalling that $\Lambda(\pi_1(X))$ is a dense normal subgroup of $\Delta(X)$ with the inverse limit topology and that $\Delta(X) \cong \breve{\pi}_1(X)$, we have the following.

\begin{corollary}
\label{rfg embeds ufg}
If $X$ is a geodesic space, then the revised fundamental group isomorphically injects into the uniform fundamental group as a dense normal subgroup. Furthermore, $\bar{\pi}_1(X)$ isomorphically injects into $\breve{\pi}_1(X)$.
\end{corollary}

We next use the characterization of $\pi_{cl}(X)$ to establish analogs in the revised case of certain classical properties related to the fundamental group, starting with the semilocally simply connected definition.  Recall that a path connected, locally path connected space $X$ is semilocally simply connected at $x \in X$ if and only if there is some neighborhood $U$ of $x$ such that the homomorphism $i_{\ast}:\pi_1(U,x) \rightarrow \pi_1(X,x)$ induced by the inclusion $i:U \hookrightarrow X$ is trivial.  If $X$ has a simply connected universal cover, this is equivalent to saying that every path loop based at $x$ and contained in $U$ lifts closed to the universal cover and, thus, to every other cover of $X$.  With this motivation, we define the following.

\begin{definition}
\label{semi rconn}
Let $X$ be a geodesic space with base point $*$, and let $\{X_{\varepsilon}\}$ be the $\varepsilon$-covers determined by $*$.  $X$ is semilocally $r$-simply connected at $x \in X$ - or semilocally simply connected with respect to the revised fundamental group at $x$ - if there is an open ball $U$ centered at $x$ such that every path loop contained in $U$ and based at $x$ lifts closed to $X_{\varepsilon}$ for all $\varepsilon$.  $X$ is semilocally $r$-simply connected if this property holds at each $x \in X$.  If $\bar{\pi}_1(X)$ is trivial for some \emph{(}hence, every\emph{)} base point $* \in X$, we say that $X$ is $r$-simply connected.
\end{definition}

\noindent  The algebraic formulation of semilocal simple connectivity carries over to this definition, as well.

\begin{lemma}
\label{equiv rconn}
Let $X$ be a geodesic space.  For any $x \in X$, let $\pi_{cl}(X,x)$ denote the closed lifting group in $\pi_1(X,x)$, and let $i:U \hookrightarrow X$ denote the inclusion map of a subset $U \subset X$.  The following are equivalent.
\begin{enumerate}
\item[1)] $X$ is semilocally $r$-simply connected at $x$.
\item[2)] There is an open ball $U$ centered at $x$ such that the homomorphism $i_{\ast}:\pi_1(U,x) \rightarrow \pi_1(X,x)$ has image in $\pi_{cl}(X,x)$.
\item[3)] There is an open ball $U$ centered at $x$ such that $\bar{h} \circ i_{\ast}:\pi_1(U,x) \rightarrow \bar{\pi}_1(X,x)$ is trivial.
\end{enumerate}
\noindent Moreover, if $\{X_{\varepsilon}\}_{\varepsilon > 0}$ are the $\varepsilon$-covers determined by any fixed base point, $* \in X$, then $X$ is $r$-simply connected if and only if every path loop in $X$ lifts closed to $X_{\varepsilon}$ for all $\varepsilon$.
\end{lemma}

\begin{proof}
That $1$, $2$, and $3$ are equivalent follows clearly from the definitions and Lemma \ref{first bp indep}.  If every path loop in $X$ lifts closed to $X_{\varepsilon}$ for all $\varepsilon$, then we immediately have that $\pi_1(X,*) = \pi_{cl}(X,*)$ and $\bar{\pi}_1(X,*)$ is trivial.  Conversely, if $\bar{\pi}_1(X,*)$ is trivial, then every path loop at $*$ lifts closed to $X_{\varepsilon}$ for all $\varepsilon > 0$.  If $\gamma$ is a path loop based at $x \neq *$, then the path loop $\alpha \gamma \alpha^{-1}$ - where $\alpha$ is a fixed path from $*$ to $x$ - will lift closed to $X_{\varepsilon}$ for all $\varepsilon$.  Thus, $\gamma$ will also.\end{proof}

\vspace{.1 in}
\noindent In the next section, we show that a universal cover of a compact geodesic space $X$ is $r$-simply connected and that for such a cover to exist it is necesary and sufficient that $X$ be semilocally $r$-simply connected.

Next, let $X$ and $Y$ be geodesic spaces, and let $f:(X,x) \rightarrow (Y,y)$ be a pointed, \emph{uniformly} continuous function.  For this particular group of results, we avoid using $*$ as the base point, since it will have another usage.  Given that the Berestovskii-Plaut construction exploits the uniform structure of a metric space, it is necessary to work with uniformly continuous functions.  If $X$ is compact, then this condition, of course, follows without assumption.  There is an induced homomorphism $f_{\ast}:\pi_1(X,x) \rightarrow \pi_1(Y,y)$ defined by $[\gamma] \mapsto [f \circ \gamma]$.  Let $\bar{h}_X:\pi_1(X,x) \rightarrow \bar{\pi}_1(X,x)$ and $\bar{h}_Y:\pi_1(Y,y) \rightarrow \bar{\pi}_1(Y,y)$ denote the corresponding quotient maps.

Now, suppose $[\gamma] \in \pi_{cl}(X,x)$, and let $\varepsilon > 0$ be given.  Since $f$ is uniformly continuous, there is some $\delta > 0$ such that $d(x_1,x_2) < \delta \Rightarrow d(f(x_1),f(x_2)) < \varepsilon$.  Moreover, $\gamma$ lifts closed to $X_{\delta/3}$ by assumption.  Thus, there is a representative of $[\gamma]$, say $\gamma'$, that is a product of $\frac{\delta}{2}$-lollipops, $\alpha_1 \beta_1 \alpha_1^{-1} \cdots \alpha_k \beta_k \alpha_k^{-1}$.  Let $\lambda = f \circ \gamma' = \omega_1 \sigma_1 \omega_1^{-1} \cdots \omega_k \sigma_k \omega_k^{-1}$, where $\omega_i = f \circ \alpha_i$ and $\sigma_i = f \circ \beta_i$ for $i=1,\dots,k$.  Then $\lambda$ is a lollipop factorization of $[\lambda] = [f \circ \gamma] \in \pi_1(Y,y)$.  Fix any $i=1,\dots,k$, and let $\sigma_i(t)$ be any point on $\sigma_i$.  Since $\beta_i$ lies in a ball of radius $\frac{\delta}{2}$, we have
\[d(\beta_i(0),\beta_i(t)) < \delta \ \Rightarrow \ d(\sigma_i(0),\sigma_i(t)) = d\Bigl(f\bigl(\beta_i(0)\bigr),f\bigl(\beta_i(t)\bigr)\Bigr) < \varepsilon. \]
\noindent So, each $\sigma_i$ lies in $B_{\varepsilon}(\sigma_i(0))$, and $\omega_1\sigma_1\omega_1^{-1}\cdots\omega_k \sigma_k \omega_k^{-1}$ is an $\varepsilon$-lollipop factorization of $[f\circ \gamma]$.  By Corollary \ref{lollipop products}, $\lambda$ lifts closed to $Y_{\varepsilon}$.  Finally, since $\varepsilon$ was arbitrary, we can conclude that $[\lambda] = [f \circ \gamma] \in \pi_{cl}(Y,y)$.  In other words, we have shown that $f_{\ast}$ takes $\pi_{cl}(X,x)$ into $\pi_{cl}(Y,y)$, or that $\pi_{cl}(X,x) \subseteq ker \ (\bar{h}_Y \circ f_{\ast})$.  Applying our usual homomorphism result, we have shown the following.

\begin{lemma}
\label{induced hom}
Let $f:(X,x) \rightarrow (Y,y)$ be a uniformly continuous function between geodesic spaces \emph{(}e.g. $X$ compact and $f$ continuous\emph{)}.  Then there is a unique induced homomorphism $f_{\sharp}:\bar{\pi}_1(X,x) \rightarrow \bar{\pi}_1(Y,y)$ that is defined by 
\[f_{\sharp}([\gamma]\pi_{cl}(X,x))= \bigl( f_{\sharp} \circ \bar{h}_X\bigr)([\gamma]) \defeq \bigl(\bar{h}_Y \circ f_{\ast}\bigr)([\gamma]) =[f \circ \gamma]\pi_{cl}(Y,y)\]
\noindent and is such that the following diagram commutes.
\begin{equation}
\label{induced}
\begin{diagram}
\pi_{1}(X,x) & \rTo_{f_{\ast}} & \pi_{1}(Y,y) \\
\dTo^{\bar{h}_X} & & \dTo_{\bar{h}_Y} &  \\
\bar{\pi}_1(X,x) & \rTo^{f_{\sharp}} & \bar{\pi}_1(Y,y)
\end{diagram}
\end{equation}
\end{lemma}

\vspace{.1 in}
\begin{corollary}
\label{homotopy equiv}
Assume the hypotheses of the preceding lemma.  If $f$ is also a homotopy equivalence with a uniformly continuous homotopy inverse $g:Y \rightarrow X$, then $f_{\sharp}$ is an isomorphism.  That is, uniformly homotopy equivalent geodesic spaces - in particular, homotopy equivalent, compact geodesic spaces - have isomorphic revised fundamental groups.
\end{corollary}

\begin{proof}
If $f$ is a homotopy equivalence, then $f_{\ast}$ is an isomorphism, and the above diagram immediately shows that $f_{\sharp}$ is surjective.  If $g(y)=x'$ and $g_{\ast}:\pi_1(Y,y) \rightarrow \pi_1(X,x')$ is the induced isomorphism, it follows that there is a path $\alpha$ from $x'$ to $x$ such that $(g_{\ast} \circ f_{\ast})([\gamma]) = [\alpha \gamma \alpha^{-1}]$ for any $[\gamma] \in \pi_1(X,x)$.  This is just a consequence of the classical proof that homotopy equivalence induces an isomorphism of fundamental groups.  Next, let $\bar{h}_X:\pi_1(X,x) \rightarrow \bar{\pi}_1(X,x)$ and $\bar{h}'_X:\pi_1(X,x') \rightarrow \bar{\pi}_1(X,x')$ denote the quotient maps at the respective base points in $X$, and let $g_{\sharp}:\bar{\pi}_1(Y,y) \rightarrow \bar{\pi}_1(X,x')$ be the homomorphism induced by $g$. Note that $\bar{h}'_X \circ g_{\ast} \circ f_{\ast} = g_{\sharp} \circ f_{\sharp} \circ \bar{h}_X$, since
\[(g_{\sharp} \circ f_{\sharp} \circ \bar{h}_X)([\gamma])=g_{\sharp}([f\circ \gamma]\pi_{cl}(Y,y)) =[g\circ f \circ \gamma]\pi_{cl}(X,x')  \]
\[(\bar{h}'_X \circ g_{\ast} \circ f_{\ast})([\gamma]) = \bar{h}'_X([g \circ f \circ \gamma])=[g \circ f \circ \gamma]\pi_{cl}(X,x').\]
\noindent  Finally, suppose $[\gamma] \in \pi_1(X,x)$ and $f_{\sharp}([\gamma]\pi_{cl}(X,x)) = (f_{\sharp} \circ \bar{h}_X)([\gamma]) = \pi_{cl}(Y,y) \in \bar{\pi}_1(Y,y)$.  Then $(g_{\sharp} \circ f_{\sharp} \circ \bar{h}_X)([\gamma]) = \pi_{cl}(X,x') \in \bar{\pi}_1(X,x')$, implying that $(\bar{h}'_X \circ g_{\ast} \circ f_{\ast})([\gamma]) = \pi_{cl}(X,x')$.  But this implies that $g_{\ast}(f_{\ast}([\gamma])) \in \pi_{cl}(X,x')\subset \pi_1(X,x')$, from which we have $[\alpha \gamma \alpha^{-1}] \in \pi_{cl}(X,x')$.  By Lemma \ref{rfg indep bp}, it follows that $[\gamma] \in \pi_{cl}(X,x)$, or $[\gamma]\pi_{cl}(X,x) = \pi_{cl}(X,x)$. Hence, $f_{\sharp}$ is injective.\end{proof}





















\vspace{.1 in}
\section{Universal Covers and Group Geometry}

Since $\{K_{\varepsilon}\}_{\varepsilon > 0}$ is a nested decreasing set, there is a well-defined notion of $K_{\varepsilon}$ being \textit{eventually constant}. This just means there is a $\delta$ so that $K_{\varepsilon} = K_{\varepsilon'}$ for all $\varepsilon$, $\varepsilon' \leq \delta$.  Equivalently, there is some $\delta > 0$ such that $\pi_{cl}(X) = \bigcap_{\varepsilon > 0} K_{\varepsilon} = K_{\delta}$.  This turns out to be an equivalent way of saying that the critical spectrum is finite.

\begin{lemma}
\label{univ cover first eq}
If $X$ is a compact geodesic space, then the following are equivalent.
\begin{enumerate}
\item[1)] $Cr(X)$ is finite.
\item[2)] $\{K_{\varepsilon}\}_{\varepsilon > 0}$ is eventually constant. Specifically, $\pi_{cl}(X) = K_{\varepsilon}$ for $0 < \varepsilon \leq \min Cr(X)$.
\item[3)] $\bar{h}_{\varepsilon}:\bar{\pi}_1(X) \rightarrow \pi_{\varepsilon}(X)$ is an isomorphism for all $0<\varepsilon \leq \min Cr(X)$.
\item[4)] $\bar{h}_{\varepsilon}:\bar{\pi}_1(X) \rightarrow \pi_{\varepsilon}(X)$ is an isomorphism for some $\varepsilon$.
\end{enumerate}
\end{lemma}

\begin{proof}
$(1 \Rightarrow 2)$ Let $\varepsilon'= \min Cr(X)$. Lemma 21 in \cite{PWetal} shows that if $\Phi_{\varepsilon \delta}$ is non-injective for $\delta < \varepsilon$, then there is a critical value in $[\delta,\varepsilon)$. So, if $\delta < \varepsilon \leq \varepsilon'$, and if we had $K_{\delta} \subsetneq K_{\varepsilon}$, it would follow from commutative diagram (\ref{comm diagram 1}) that $\Phi_{\varepsilon \delta}$ is non-injective, giving a critical value below $\varepsilon'$.  This is a contradiction.

$(2 \Rightarrow 3)$ Fix $0 < \varepsilon \leq \min Cr(X)$, and suppose $\bar{h}_{\varepsilon}([\gamma]\pi_{cl}(X)) = \bar{h}_{\varepsilon}([\gamma]K_{\varepsilon}) = \tilde{*} \in \pi_{\varepsilon}(X)$.  Then $h_{\varepsilon}([\gamma]) = \tilde{*}$, and $[\gamma]\in K_{\varepsilon}=\pi_{cl}(X)$. So, $ker \ \bar{h}_{\varepsilon}$ is trivial.  The fact that $3$ implies $4$ is obvious.

$(4 \Rightarrow 1)$ Suppose $\bar{h}_{\varepsilon}$ is an isomorphism for some $\varepsilon$, and let $0 < \delta <\varepsilon$ be given. As with diagram (\ref{comm diagram 1}), the following also commutes.
\begin{diagram}
\pi_{\delta}(X) & \rTo_{\Phi_{\varepsilon \delta}} & \pi_{\varepsilon}(X) \\
\uTo^{\bar{h}_{\delta}} & & \uTo_{\bar{h}_{\varepsilon}} &  \\
\bar{\pi}_1(X) & \rTo^{\iota} & \bar{\pi}_1(X)
\end{diagram}
\noindent Since $\bar{h}_{\varepsilon} \circ \iota$ is an isomorphism and $\bar{h}_{\delta}$ and $\Phi_{\varepsilon \delta}$ are surjective, this forces each of the latter maps to be injective, also.  Finally, if $0 < \tau < \delta \leq \varepsilon$, then $\Phi_{\varepsilon \tau} =\Phi_{\varepsilon \delta} \circ \Phi_{\delta \tau} \Rightarrow \Phi_{\delta \tau} = \Phi_{\varepsilon \delta}^{-1} \circ \Phi_{\varepsilon \tau}$, and the right hand side is an isomorphism.  Thus, $\Phi_{\delta \tau}$ is an isomorphism for all $0 < \tau < \delta \leq \varepsilon$, showing that there are no critical values below $\varepsilon$.\end{proof}

\vspace{.1 in}
To prove Theorem \ref{main theorem 1}, we need a technical result giving sufficient conditions for $X$ to be semilocally $r$-simply connected.  The lemma relies on a result of Cannon and Conner regarding an Artinian property of fundamental groups.  For reference purposes, we state the portion of that theorem that is needed here as a lemma, specializing it to metric spaces.

\begin{lemma}[\textbf{Theorem 4.4, \cite{CC}}]
\label{cc lemma}
Let $X$ be a metric space, $x$ a base point, and $f:\pi_1(X,x) \rightarrow L$ a homomorphism to a group, $L$.  For $n=1,2,\dots$, let $B_n$ be the open ball $B_{1/n}(x)$, and let $G_n$ be the image of the natural map $\pi_1(B_n,x) \rightarrow \pi_1(X,x)$.  If $L$ is countable, then the sequence $f(G_1) \supseteq f(G_2) \supseteq \cdots$ is eventually constant.
\end{lemma}


\begin{proposition}
\label{local lift property}
Let $X$ be a geodesic space, and suppose $\bar{\pi}_1(X)$ is countable.  Then for each $x \in X$ there is an open ball centered at $x$, $B_{r_x}(x)$, with the following property: if $\gamma$ is a path loop in $B_{r_x}(x)$, not necessarily based at $x$, then it lifts closed to $X_{\varepsilon}$ for all $\varepsilon > 0$.  In particular, if $\bar{\pi}_1(X)$ is countable, then $X$ is semilocally $r$-simply connected.
\end{proposition}

\begin{proof}
In keeping with our notation, we will denote the base point by $*$ instead of $x$.  The countability of $\bar{\pi}_1(X)$ is independent of the base point by Lemma \ref{rfg indep bp}.  We apply Lemma \ref{cc lemma} with $L=\bar{\pi}_1(X,*)$, $f = \bar{h}:\pi_1(X,*) \rightarrow \bar{\pi}_1(X,*)$, and $G_n$ the image of $\pi_1(B_n,*) \rightarrow \pi_1(X,*)$, from which it follows that $\bar{h}(G_1) \supseteq \bar{h}(G_2) \supseteq \cdots$ is eventually constant.

We first show that $\bar{h}(G_n) = \{g\pi_{cl}(X) \: : \: g \ \text{has a representative in }B_n \ \text{based at }*\}$ for each $n$.  If $g \in \pi_1(X,*)$ and has a representative in $B_n$ based at $*$, then $g$ is in the image of the map $\pi_1(B_n,*) \rightarrow \pi_1(X,*)$.  That is, $g \in G_n$, implying that $g\pi_{cl}(X)=\bar{h}(g) \in \bar{h}(G_n)$.  Conversely, let $g\pi_{cl}(X) \in \bar{h}(G_n)$ be given, so that $g\pi_{cl}(X) = \bar{h}(g')$ for some $g' \in G_n$.  Then $g\pi_{cl}(X) = g'\pi_{cl}(X)$, and $g'$ has a representative in $B_n$ based at $*$, proving the equality.

Now, since the nested sequence $\{\bar{h}(G_n)\}$ is eventually constant, we can choose $m \in \mathbb N$ large enough so that $\bar{h}(G_m) = \bigcap_n \bar{h}(G_n)$.  We claim that $B_m = B_{1/m}(*)$ is the desired ball.

First, suppose $\gamma$ is a path loop based at $*$ and lying in $B_m$, and let $g = [\gamma] \in \pi_1(X,*)$.  Then $\bar{h}(g) = g\pi_{cl}(X) \in \bar{h}(G_m)$.  Let $n$ be fixed but arbitrary, so that $\bar{h}(g) \in \bar{h}(G_n)$. This implies that $g\pi_{cl}(X) = g'\pi_{cl}(X)$, where $g'$ has a representative in $B_n$ based at $*$, and this further implies that $g=g'l$ for some $l \in \pi_{cl}(X)$.  This means that $\gamma$ is homotopic to a product $\alpha \beta$, where $\alpha$ is a representative of $g'$ in $B_n$ based at $*$ and $\beta \in l$.  But $\beta$ lifts closed to $X_{\varepsilon}$ for all $\varepsilon > 0$.  Moreover, since $\alpha$ is a path loop at $*$ lying in $B_{1/n}(*)$, $\alpha$ will lift closed to $X_{1/n}$ by Lemma \ref{loop in a ball}.  Hence, $\gamma$ lifts closed to $X_{1/n}$, and this holds for all $n$.  Since the $\varepsilon$-covers are monotone (i.e. $\delta < \varepsilon$ implies $X_{\delta}$ covers $X_{\varepsilon}$), we see that $\gamma$ lifts closed to $X_{\varepsilon}$ for all $\varepsilon > 0$.

This proves the result for path loops based at $*$ in $B_m$.  To finish the proof, let $\gamma$ be any path loop in $B_m$, not necessarily based at $*$.  Let $\lambda$ be a minimal geodesic from $*$ to the initial/terminal point of $\gamma$, and consider the $\frac{1}{m}$-lollipop $\lambda \gamma \lambda^{-1}$.  The geodesic $\lambda$ must lie in $B_m(*)$, so the whole path loop $\lambda \gamma \lambda^{-1}$ does, as well.  By the previous conclusion, $\lambda \gamma \lambda^{-1}$ lifts closed to $X_{\varepsilon}$ for each $\varepsilon > 0$, which implies that $\gamma$ does, also.  Finally, $*$ was arbitrary, so, letting $*$ range over all of $X$, we obtain the desired result.\end{proof}

\begin{corollary}
\label{local lift property2}
If $X$ is a compact geodesic space with a countable revised fundamental group, $\bar{\pi}_1(X)$, then there is a positive real number $r$ such that the following property holds:  if $\gamma$ is any path loop in $X$ that is contained in an open ball of radius $r$, then $\gamma$ lifts closed to $X_{\varepsilon}$ for all $\varepsilon > 0$.  In particular, if $X$ is compact and $\bar{\pi}_1(X)$ is countable, then $X$ is uniformly semilocally $r$-simply connected.
\end{corollary}

\begin{proof}
For each $x \in X$, let $r_x > 0$ be as in the previous proposition, so that any path loop lying in $B_{r_x}(x)$ lifts closed to $X_{\varepsilon}$ for all $\varepsilon > 0$.  Choose a positive number $r$ so that $2r$ is less than a Lebesgue number for the covering $\{B_{r_x}(x)\}$.  Then any ball of radius $r$ lies inside some element of this covering.  Thus, if $\gamma$ is any path loop in $X$ that lies in a ball of radius $r$, it will lift closed to $X_{\varepsilon}$ for all $\varepsilon > 0$.\end{proof}

\vspace{.1 in} Building on the theme of characterizing local properties of $X$ in terms of lifts of path loops, we can use this idea to classify the topological singularities in a compact geodesic space.

\begin{definition}
\label{regular singular point}
A point $x$ in a geodesic space $X$ is regular if $X$ is semilocally simply connected at $x$, in the traditional sense.  A point that is not regular is called singular.  A singular point $x$ is degenerate if every neighborhood of $x$ contains a nontrivial path loop based at $x$ that lifts closed to $X_{\varepsilon}$ for all $\varepsilon > 0$.  A singular point will be called sequentially singular if there is a sequence of path loops based at $x$, say $\gamma_n$, and a strictly decreasing sequence of positive numbers, $r_n \searrow 0$, such that for each $n$ $\gamma_n$ lies in $B_{r_n}(x)$ \emph{(}hence, lifts closed to $X_{r_n}$\emph{)} but lifts open to $X_{r_{n+1}}$.
\end{definition}

\noindent This definition does, indeed, capture all singularities of $X$.

\begin{lemma}
If $X$ is geodesic and $x \in X$ is singular, then it is either degenerate or sequentially singular.
\end{lemma}

\begin{proof}
If $x$ is degenerate, then we are done.  So, we assume that $x$ is not degenerate, and we will show that it is sequentially singular.  Since $x$ is not degenerate, there is some $r_1 > 0$ such that every nontrivial path loop based at $x$ and lying in $B_{r_1}(x)$ - and there is at least one, since $x$ is singular - eventually lifts open to $X_{\varepsilon}$ for some $\varepsilon$.  We may assume without loss of generality that $r_1 < 1$.  Choose any such path loop, label it $\gamma_1$, and let $\varepsilon_1$ be the largest value such that $\gamma_1$ lifts open to $X_{\varepsilon_1}$.  Note that we must have $\varepsilon_1 < r_1$, since the fact that $\gamma_1$ lies in $B_{r_1}(x)$ implies that it lifts closed to $X_{r_1}$.

Next, choose $r_2$ such that $0 < r_2 < \min \bigl\{\frac{1}{2},\varepsilon_1\bigr\} < r_1$.  There is a nontrivial path loop, $\gamma_2$, based at $x$ and lying in $B_{r_2}(x)$, and we let $\varepsilon_2$ be the largest value such that $\gamma_2$ lifts open to $X_{\varepsilon_2}$.  As before, we must have $\varepsilon_2 < r_2$, and note that $\gamma_1$ lifts open to $X_{r_2}$.  We continue  this process, inductively, choosing $0 < r_n < \min \bigl\{\frac{1}{n},\varepsilon_{n-1}\bigr\} < r_{n-1}$ at each step.  Then $\gamma_n$ will lie in $B_{r_n}(x)$ but lift open to $X_{r_{n+1}}$, and $r_n \searrow 0$ since $r_n < \frac{1}{n}$.  Thus, $x$ is sequentially singular.\end{proof}

Of course, a point may be both degenerate and sequentially singular.  Note that if $x$ is a point at which $X$ is not homotopically Hausdorff, so that there is a nontrivial small path loop based at $x$, then $x$ is degenerate by Corollary \ref{loop in a ball}. The reason for the name `sequentially singular' is that such points produce a sequence of critical values converging to $0$.  They can be thought of as topological singularities of the type in the Hawaiian earring, but only with regard to the lift properties of the path loops making up the sequence $\{\gamma_n\}$. It is not necessarily true, for instance, that the presence of a sequentially singular point implies that the Hawaiian earring fundamental group isomorphically embeds into $\pi_1(X)$; see Example \ref{infinite torus}.  The correct comparison is made more precise in the following lemma.

\begin{lemma}
\label{sequentially singular}
If $X$ is geodesic and $x\in X$ is a sequentially singular point, then $Cr(X)$ is infinite and $\inf Cr(X) = 0$.  Conversely, if $X$ is compact geodesic and $Cr(X)$ is infinite, then there is a sequentially singular point in $X$.
\end{lemma}

\begin{proof}
The first statement simply follows from the definition of sequentially singular.  There is a critical value in the interval $[r_2,r_1)$, detecting where $\gamma_1$ is unraveled.  Likewise, there is a critical value in $[r_3,r_2)$, detecting where $\gamma_2$ is unraveled.  Continuing, since $r_n \searrow 0$, we obtain a strictly decreasing sequence of critical values converging to $0$.

For the second statement, assume $X$ is compact.  Since $Cr(X)$ is closed, discrete, and bounded above in $\mathbb R_+$, the fact that it is infinite means that it must be a sequence of critical values strictly decreasing to $0$.  Let $\varepsilon_n$ be this sequence.  Using the fact that critical values detect where path loops are unraveled, by successively applying Lemma \ref{geodesic loop reduction}, we can inductively construct a sequence of path loops, $\beta_n$, based at points, $x_n$, such that each $\beta_n$ lies in a ball of radius $2\varepsilon_n$ but lifts open to $X_{\varepsilon_n}$.  Since $X$ is compact, we can choose a convergent subsequence of $\{x_n\}$ so that $d(x_n,x)$ is strictly decreasing and satisfies $d(x_n,x) < \frac{1}{n}$.  By reindexing if necessary, we will simply assume that $x_n \rightarrow x$ and has this property.  For each $n$, let $\alpha_n$ be a minimal geodesic from $x$ to $x_n$, and let $\gamma_n = \alpha_n \beta_n \alpha_n^{-1}$.  Then $\gamma_n$ lies in $B_{4\varepsilon_n + 1/n}(x)$ but lifts open to $X_{\varepsilon_n}$.  Choose a subsequence $\{n_k\} \subset \mathbb N$ so that 
\[4\varepsilon_{n_1} + \frac{1}{n_1} > \varepsilon_{n_1} > 4\varepsilon_{n_2} + \frac{1}{n_2} > \varepsilon_{n_2} > 4\varepsilon_{n_3} + \frac{1}{n_3} > \varepsilon_{n_3} > \cdots,\]
\noindent and let $r_k = 4\varepsilon_{n_k} + \frac{1}{n_k}$. Then $\gamma_{n_k}$ lies in $B_{r_k}(x)$ but lifts open to $X_{r_{k+1}}$.\end{proof}

\vspace{.1 in} 
\noindent In light of the fact that a compact geodesic space has a finite critical spectrum if and only if it has a universal cover, the previous result tells us that if $X$ has a universal cover, then its singular points, if any, are all degenerate and non-sequentially singular.  Thus, the degenerate points, in this case, are the only obstructions to $X$ being semilocally simply connected.

\begin{lemma}
\label{cover properties}
If a compact geodesic space, $X$, has a universal cover, $\hat{X}$, then the following hold: \emph{1)} $\hat{X}$ is $r$-simply connected; \emph{2)} its covering group is $\pi_{cl}(X)$; \emph{3)} its deck group is $\bar{\pi}_1(X)$; \emph{4)} and its singular points, if any, are degenerate and non-sequentially singular.
\end{lemma}

\begin{proof}
We fix a base point $*$.  Since $X$ has a universal cover, $Cr(X)$ is finite, and we can take $\hat{X}$ to be $X_{\varepsilon}$ for any $0 < \varepsilon \leq \min Cr(X)$.  The covering group of $X_{\varepsilon}$ is $K_{\varepsilon}$, which equals $\pi_{cl}(X)$ by Lemma \ref{univ cover first eq}.  The deck group of $X_{\varepsilon}$ is $\pi_{\varepsilon}(X)$, and recall that the groups $\pi_{\delta}(X)$ are all isomorphic for $0 < \delta \leq \min Cr(X)$.  Since $\bar{\pi}_1(X) = \pi_1(X)/\pi_{cl}(X) = \pi_1(X)/K_{\varepsilon} \cong \pi_{\varepsilon}(X)$, $\bar{\pi}_1(X)$ is the deck group of the universal cover.

For parts 1 and 4, we take, as usual, $\tilde{*} \in X_{\varepsilon}$ as our base point in the universal cover.  To prove that $X_{\varepsilon}$ is $r$-simply connected, we only need to show that $\pi_1(X_{\varepsilon},\tilde{*}) \subset \pi_{cl}(X_{\varepsilon},\tilde{*})$, where $\pi_{cl}(X_{\varepsilon})$ is the closed lifting group of the universal cover at $\tilde{*}$.  Recall that none of the fundamental constructions in Section 3 required compactness, so they apply equally well to the universal cover.  Suppose there is a path loop $\tilde{\gamma}$ at $\tilde{*} \in X_{\varepsilon}$ that lifts closed to $(X_{\varepsilon})_{\delta}$ but open to $(X_{\varepsilon})_{\tau}$ for some $0 < \tau < \delta$.  Let $\gamma = \varphi_{\varepsilon}(\tilde{\gamma})$, so that $[\gamma] \in \pi_{cl}(X)$.  Choose $\eta < \min \{\tau, \varepsilon/2\}$.  Since $\gamma$ lifts closed to $X_{2\eta/3}$, it is homotopic to a product of $\eta$-lollipops, $\alpha_1 \beta_1 \alpha_1^{-1} \cdots \alpha_k \beta_k \alpha_k^{-1}$, with each $\beta_i$ lying in a ball of radius $\eta$.  Let $\tilde{\gamma}'$ denote the lift of this product to $\tilde{*}$, so that $\tilde{\gamma}$ and $\tilde{\gamma}'$ are homotopic.  The cover $\varphi_{\varepsilon}:X_{\varepsilon} \rightarrow X$ is an isometry on $\frac{\varepsilon}{2}$-balls (Theorem 2.2.5, \cite{W2}), so $\tilde{\gamma}'$ is not only closed but the lift of each $\beta_i$ lies in a ball of radius $\eta < \tau$.  In other words, $\tilde{\gamma}$ is homotopic to a product of $\tau$-lollipops, which, by Corollary \ref{lollipop products}, contradicts that $\tilde{\gamma}$ lifts open to $(X_{\varepsilon})_{\tau}$.  Hence, every path loop at $\tilde{*}$ lifts closed to $(X_{\varepsilon})_{\delta}$ for all $\delta >0$, which means that $\pi_1(X_{\varepsilon},\tilde{*}) = \pi_{cl}(X_{\varepsilon}, \tilde{*})$ and that $X_{\varepsilon}$ has no sequentially singular points.\end{proof}

\vspace{.1 in}
We can now prove our primary theorem.

\begin{proof}[\textbf{Proof of Theorem \emph{\ref{main theorem 1}}}]
We have already remarked in the introduction that $1 \Leftrightarrow 2$. That $2 \Rightarrow 3iii$ follows from Lemma \ref{univ cover first eq} and the fact (see Section 2) that the $\varepsilon$-groups are always finitely presented.  The equivalence of $2$ and $5$ follows from Lemma \ref{sequentially singular}.  

To see that $3i$ implies $2$, assume $\bar{\pi}_1(X)$ is countable, and suppose, toward a contradiction, that $Cr(X)$ is not finite.  Let $r>0$ be as in the conclusion of Corollary \ref{local lift property2}, so that any path loop lying in a ball of radius $r$ lifts closed to every $X_{\varepsilon}$.  If $Cr(X)$ is not finite, then there is a critical value, $\varepsilon$, such that $\varepsilon < \frac{2r}{3}$.  This means that we can find a path loop at $*$ that lifts open to $X_{\varepsilon}$ but closed to $X_{\delta}$ for all $\delta > \varepsilon$.  Choose $\delta$ so that $\varepsilon < \delta < \frac{2r}{3}$.  Then Lemma \ref{geodesic loop reduction} shows that $\gamma$ is path homotopic to a product of $\frac{3\delta}{2}$-lollipops based at $*$, say $\alpha_1 \beta_1 \alpha_1^{-1} \alpha_2 \beta_2 \alpha_2^{-1} \cdots \alpha_n \beta_n \alpha_n^{-1}$. Since $\frac{3\delta}{2} < r$, each such $\beta_i$ lifts closed to $X_{\tau}$ for all $\tau > 0$, which means that $\gamma$ lifts closed to $X_{\varepsilon}$, a contradiction.  Hence, $Cr(X)$ is finite.  This shows the equivalence of $1$, $2$, $3i$, $3ii$, $3iii$, and $5$.

The implication $3i \Rightarrow 6$ follows from Corollary \ref{local lift property2}.  On the other hand, if $X$ is semilocally $r$-simply connected, then we can use compactness and the fact that geodesic balls are path connected to find a uniform positive radius, $r$, so that any path loop lying in a ball of radius $r$ lifts closed to $X_{\varepsilon}$ for all $\varepsilon$.  Then the argument in the previous paragraph goes through without change to show that $X$ has no critical values less than $\frac{2r}{3}$.  Thus, $6$ implies $2$.

Next, note that $4i$ implies $3i$, since $\bar{h}_{\Delta}:\bar{\pi}_1(X) \rightarrow \Delta(X)$ is injective.  Hence, $4i$ implies $2$. Conversely, suppose $2$ holds, so that, in particular, $\bar{\pi}_1(X)$ is finitely presented.  The finiteness of $Cr(X)$ implies that the $\varepsilon$-covers stabilize and that the UU-cover is homeomorphic to $X_{\varepsilon}$ for sufficiently small $\varepsilon$.  Hence, the UU-cover is path connected.  This means that $\Lambda:\pi_1(X) \rightarrow \Delta(X)$ is surjective, and, thus, $\bar{h}_{\Delta}$ is an isomorphism.  So $\Delta(X)$ is finitely presented, and $2 \Rightarrow 4iii \Rightarrow 4ii \Rightarrow 4i$.  

Finally, we showed $\bar{\pi}_1(X) \cong \Delta(X)$ in preceding argument.  The previous lemma establishes the rest of the conclusions in the last statement of Theorem \ref{main theorem 1}.\end{proof}

\begin{corollary}
\label{full clgroup}
If $X$ is a compact geodesic space, then the following are equivalent.
\begin{enumerate}
\item[1)] $X$ is its own universal cover.
\item[2)] $\pi_{cl}(X) = \pi_1(X)$.
\item[3)] $Cr(X) = \emptyset$.
\end{enumerate}
\end{corollary}

\begin{proof}
Suppose $X$ is its own universal cover, and let $\gamma$ be any path loop at $*$.  Then, since $\gamma$ obviously lifts closed to the universal cover, it lifts closed to $X_{\varepsilon}$ for every $\varepsilon > 0$ by the universal covering property.  Hence, $[\gamma] \in \pi_{cl}(X)$, and this shows that $1 \Rightarrow 2$.  If $2$ holds, then every path loop at $*$ lifts closed to every $X_{\varepsilon}$.  A critical value would indicate that some path loop, however, eventually lifts open to some $X_{\varepsilon}$.  Thus, $2$ implies $3$.  Finally, suppose
$3$ holds.  Then, not only does $X$ have a universal cover by Theorem \ref{main theorem 1}, but the $\varepsilon$-covers never change as $\varepsilon$ decreases and are, thus, all equivalent.  Since $X_{\varepsilon} = X$ for $\varepsilon > diam(X)$, it follows that the universal cover, which is just $X_{\varepsilon}$ for small enough $\varepsilon$, is simply $X$.\end{proof}

\begin{proposition}
\label{charac simply conn covers}
Let $X$ be a compact geodesic space.  Then $X$ has a simply connected cover if and only if $Cr(X)$ is finite and $\pi_{cl}(X) = 1$.  Moreover, for these conditions to hold it is necessary that $\pi_1(X)$, $\bar{\pi}_1(X)$, and $\Delta(X)$ be mutually isomorphic.
\end{proposition}

\begin{proof}
In our present language, Plaut and the author showed (Theorem 27, \cite{PW1}) that if $X$ has a simply connected cover then $h_{\varepsilon}:\pi_1(X) \rightarrow \pi_{\varepsilon}(X)$ is an isomorphism for some - equivalently, all - sufficiently small $\varepsilon$.  So, if $X$ has a simply connected cover, then $Cr(X)$ is finite by Theorem \ref{main theorem 1}, and $\{K_{\varepsilon}\}_{\varepsilon > 0}$ is not only eventually constant but eventually trivial.  If $Cr(X)$ is finite and $\pi_{cl}(X) = 1$, then the covering groups $K_{\varepsilon}$ are eventually trivial, meaning that $X_{\varepsilon}$ is simply connected for all sufficiently small $\varepsilon$.

If the conditions in the first statement hold, then we have already noted that the UU-cover is path connected.  Since $ker \ \Lambda = \pi_{cl}(X)$, it follows that $\Lambda$ is an isomorphism, implying that $\bar{h}_{\Delta}$ is, as well.  The fact that $\bar{h}$ is injective follows because $\pi_{cl}(X) = 1$.\end{proof}

\vspace{.1 in}
Since we have shown that $\pi_{cl}(X) = 1$ for every compact, one-dimensional geodesic space, the previous result implies the following.

\begin{corollary}
\label{1d covers}
Let $X$ be a compact, one-dimensional geodesic space.  Then $X$ has a universal cover if and only if it has a simply connected cover.
\end{corollary}

The following examples illustrate some local topological conditions that can prevent or allow the existence of a universal cover.  In particular, we point out that the isomorphism condition $\pi_1(X) \cong \bar{\pi}_1(X) \cong \Delta(X)$ that is necessary in Proposition \ref{charac simply conn covers} is not sufficient.  Example \ref{infinite torus} will show that these groups can be isomorphic even when the space has no simply connected or even universal cover.

\begin{example}
\label{HE example}
Let $H$ denote the geodesic Hawaiian earring.  This is an example of a space for which $\pi_1(H) \cong \bar{\pi}_1(H) \ncong \Delta(H)$, so that the necessary conditions at the end of Theorem \emph{\ref{main theorem 1}} are not satisfied.  Note that $H$ has no degenerate points, but the singular point where the circles are joined is sequentially singular.  Berestovskii-Plaut showed in \emph{\cite{BPUU}} that
\[\Delta(H) \cong \lim_{\leftarrow} F_n,\]
\noindent where $F_n$ is the rank $n$ free group and the groups form an inverse system via bonding homomorphisms $p_{nm}:F_m \rightarrow F_n$, $m > n$, that collapse the last $m-n$ generators to the identity and map the others to themselves.  Morgan and Morrison showed in \cite{MM} that $\pi_1(H)$ isomorphically embeds into this inverse limit of free groups, but its image is not the whole group \emph{(}de Smit, \cite{deS}\emph{)}.  In fact, an element of the inverse limit that is not be represented by a path loop in $H$ can be formed by a sequence of the commutators $[C_1,C_n]$, $n =1,2,\dots$  Thus, the UU-cover of the Hawaiian earring is not path connected and $\pi_1(H) \ncong \Delta(H)$.  On the other hand, since $H$ is one-dimensional, we have $\pi_{cl}(H) = 1$ and $\bar{\pi}_1(H) = \pi_1(H)$. $\blacksquare$
\end{example}


\begin{example}
\label{K example}
This space is a variant of one that is commonly used as a non-locally path connected example in more general topological settings (cf. \cite{FRVZ}).  The modification we use was introduced in \cite{SW1} by Sormani and Wei, and details may be found there. Define the following subsets of $\mathbb R^3$.
\[Z_1 = \bigl\{\bigl(x,y,\sin(1/y)\bigr) \ : \ 0 < y \leq 1/\pi, \ y \geq |x|\bigr\}\]  
\[Z_2 = \bigl\{(x,y,z) \ : \ y = |x|, \ -1/\pi \leq x \leq 1/\pi, \ -1 \leq z \leq 1\bigr\}\]
\noindent We then let $Z = Z_1 \cup Z_2$.  $Z$ is a topologist's sine curve ``wedge'' - or sine surface - with planar sides that come together at a vertical line segment at the apex of the wedge, namely $A \defeq \{(0,0,z) \ : \ -1 \leq z \leq 1\}$. With the subspace metric from $\mathbb R^3$, $Z$ is compact, connected, and locally path connected.  Obviously, any two points in $Z$ can be joined by a curve in $Z$ that is rectifiable with respect to the subspace metric, so we endow $Z$ with the corresponding induced geodesic metric.  With this geodesic metric, $Z$ is bi-Lipschitz equivalent to $Z$ with the subspace metric.  We call $A$ the \textit{apex of $Z$}.  Note that $Z \setminus A$ is semilocally simply connected, though not uniformly so.  We take as our base point $*$ the origin, which is the midpoint of $A$.

It is shown in \cite{SW1} that $Z$ is not homotopically Hausdorff - so $\pi_{cl}(Z)$ is not trivial -  and that $Z$ can be expressed as the Gromov-Hausdorff limit of a sequence of simply connected spaces, $Z_n$.  The latter property means that $Cr(Z) = \emptyset$, since a critical value of $Z$ would have to be a limit of critical values of the sequence spaces $Z_n$ (Theorem 8.4 in \cite{SW2}).  So, $Z$ is its own universal cover, and $\pi_1(Z) \ncong \bar{\pi}_1(Z) \cong \Delta(Z)$.  Note that $Z$ has no sequentially singular points, but it contains a continuum of degenerate points.

To obtain a similar example but with nontrivial covers, we can simply glue a circle of circumference $1$ - or any compact, semi-locally simply connected, non-simply connected space - to $Z$ at the base point $*$.  Let $Y=S^1 \vee Z$ be this wedge space.  Then the universal cover \emph{(}and the UU-cover\emph{)} of $Y$ is the real line with copies of $Z$ attached at the integers.  This space is path connected, so $\Lambda$ is surjective and $\bar{h}_{\Delta}:\bar{\pi}_1(Y) \rightarrow \Delta(Y)$ is an isomorphism.  The closed lifting group of $Y$ is still clearly nontrivial, but now it is not the whole group $\pi_1(Y)$.  Any nontrivial path loop at $*$ that stays in and traverses the circle in either direction will be unraveled at $\varepsilon = \frac{1}{3}$.  Thus, $\pi_1(Y) \ncong \bar{\pi}_1(Y)$.  Note that $Y$, like $Z$, has degenerate points but no sequentially singular points. $\blacksquare$\end{example}

The next example is of a space that has no simply connected or even universal cover but is such that all three groups $\pi_1(X)$, $\bar{\pi}_1(X)$, and $\Delta(X)$ are isomorphic and \textit{every} point is a sequentially singular point.  The space in this example is compact but infinite dimensional.

\begin{example}
\label{infinite torus}
Let $T^{\infty}$ be the infinite torus, metrized as a compact geodesic space.  Specifically, we let $T^{\infty}$ be the standard metric product \emph{(}i.e. $d = \sqrt{\sum_{n=1}^{\infty} d_n^2}$\emph{)} of the geodesic circles $S_n^1$, where $S_n^1$ has circumference $\frac{3}{2^n}$.  We fix base points $*_n \in S_n^1$ and choose $(*_1,*_2,\dots)$ as our base point in $T^{\infty}$.  Then $Cr(T^{\infty}) = \bigl\{\frac{1}{2^n}\bigr\}_{n=1}^{\infty}$, so it has no universal cover.  In fact, by the homogeneity of the space, every point in $T^{\infty}$ is a sequentially singular point.

It is straightforward to see that $\pi_{cl}(X) = 1$.  Indeed, every circle $S_n^1$ in the product eventually lifts open to $T_{\varepsilon}^{\infty}$ for small enough $\varepsilon$, and any nontrivial path loop in $T^{\infty}$ will have some nonzero power of such a circle as at least one of its factors.  Thus, $\Pi_{n=1}^{\infty} \mathbb Z \cong \pi_1(T^{\infty}) \cong \bar{\pi}_1(T^{\infty})$.  Note that $\Pi_{n=1}^{\infty} \mathbb Z$ is the direct product, not the direct sum.

It remains to compute $\Delta(T^{\infty})$, but this is straightforward.  Let $\varepsilon_n = \frac{1}{2^n}$, $n = 1, 2, \dots$  For any $\varepsilon_{n+1} < \varepsilon \leq \varepsilon_n$, the cover $T_{\varepsilon}^{\infty}$ simply unravels the first $n$ circles in the product, leaving the others unchanged.  Intuitively, the other circles are too small to be noticed by this $\varepsilon$-cover, and it views the space - in a coarse or large scale sense - as simply an $n$-dimensional torus.  Consequently, the $\varepsilon$-groups are easy to determine, also.  For $\varepsilon_{n+1} < \varepsilon \leq \varepsilon_n$, $\pi_{\varepsilon}(T^{\infty})$ is the rank $n$ free abelian group, $\mathbb Z^n$.  As $\varepsilon$ decreases and reaches a new critical value, the $\varepsilon$-groups simply pick up a new generator.  In other words, the bonding homomorphism $\Phi_{\varepsilon_n \varepsilon_{m}}:T_{\varepsilon_{m}}^{\infty} \rightarrow T_{\varepsilon_n}^{\infty}$, for $m > n$, are just the projection homomorphisms $\mathbb Z^m \rightarrow \mathbb Z^n$ that take the first $n$ generators to themselves and collapse the last $m-n$ generators to the identity.


Thus, $\Delta(T^{\infty})$ is isomorphic to the inverse limit of finite rank free abelian groups, $\lim_{\leftarrow} \mathbb Z^m$, with the bonding maps as just described.  This inverse limit, however, satisfies
\[\lim_{\leftarrow} \mathbb Z^m \cong \prod_{m=1}^{\infty} \mathbb Z.\]
\noindent So, we see that all three groups $\pi_1(T^{\infty})$, $\bar{\pi}_1(T^{\infty})$, and $\Delta(T^{\infty})$ are isomorphic. $\blacksquare$  
\end{example}


\begin{example}
\label{gasket example}
In this example, we show that $\pi_{cl}(X)$ need not equal $\pi_1^{sg}(X)$.  While the construction is technical, the basic idea is simple.  We take the standard Sierpinski gasket formed by an equilateral triangle, and we fill in the holes of the gasket with spaces similar to the space $Z$ from Example \ref{K example}.  Then the path loop that traverses the outer triangle of the gasket represents an element of $\pi_{cl}(X)$, but it cannot be expressed as a finite product of small loop lollipops.  We construct $X$ as a Hausdorff limit of compact subspaces of $\mathbb R^3$. The limit is a Peano continuum, yielding an equivalent geodesic metric by the Bing-Moise Theorem. Details on Gromov-Hausdorff limits may be found in \cite{BBI}.

To begin, we modify the space $Z$ from from Example \ref{K example} by reducing the diameter in the $y$-direction and expanding the angle between the rectangular sides from $90$ degrees to $120$.  Define $Z'$ to be the subset of $\mathbb R^3$ formed by the union of the following sets.
\[Z'_1 = \bigl\{\bigl(x,y,\sin(1/y)\bigr) : 0 < y \leq 1/3\pi, \ y \geq |x|/\sqrt{3}\bigr\}\]
\[Z'_2=\bigl\{(x,y,z) : y = |x|/\sqrt{3}, \ -1/\pi\sqrt{3} \leq x \leq 1/\pi\sqrt{3}, \ -1 \leq z \leq 1\bigr\}\]
\noindent Now, glue together three isometric copies of $Z'$ along their planar sides, so that the apexes of the copies are identified with each other.  This forms a subspace of $\mathbb R^3$ with an outer boundary curve given by an equilateral triangle of side length $\frac{2}{\pi\sqrt{3}} < \frac{1}{2}$ and with a vertical segment of height $2$ at the center that mimics the behavior of the apex in $Z$.

Next, attach a flat, equilateral triangular annulus to the outer boundary curve of this space, expanding the outer boundary curve to an equilateral triangle of side length $\frac{1}{2}$.  Call the resulting space $Z''$.  Let $S_2$ be the second stage graph approximation of the standard Sierpinski gasket formed from an equilateral triangle of side length $1$. That is, we let $T$ be the equilateral triangle of side length $1$, take a homothetic copy $T' = \frac{1}{2}T$, and then attach $T'$ to $T$ so that the vertices of $T'$ are at the midpoints of the sides of $T$.  Finally, we insert $Z''$ into the copy of $T'$ within $S_2$, identifying the outer boundary of $Z''$ with $T'$.  We will denote the resulting space by $X_1$, since it will be the first stage in a Gromov-Hausdorff sequence.

We endow $X_1$ with the subspace metric from $\mathbb R^3$.  Since the central vertical segment resulting from the sine surface portions has height $2$ - but height $1$ above and below the plane in which the outer boundary triangle lies - it is easy to verify that every point on the attached copy of $Z''$ is within a distance $\frac{\sqrt{13}}{2\sqrt{3}}$ of a point on the outermost triangular edge of $X_1$.  The rest of the construction now follows as in the standard gasket construction.  Let $p_1$, $p_2$, $p_3$ be the outer three vertices of $X_1$, starting with the lower left and moving  around counterclockwise.  Define contraction mappings $f_i(u) = \frac{1}{2}(u - p_i) + p_i$.  We set 
\[X_2  = X_1 \cup \Biggl(\bigcup_{i=1,2,3} f_i(X_1)\Biggr).\] 
\noindent That is, $X_2$ is constructed by taking three homothetic copies of $X_1$, rescaled by $\frac{1}{2}$, and attaching them to the holes of $X_1$, so that the boundaries of the contracted copies are identified with the boundaries of the holes.  This also rescales the height of the original, central vertical segment in $X_1$ by $\frac{1}{2}$, giving it a height of $1$.  Giving $X_2$ the Euclidean subspace metric, we see that $X_1$ isometrically embeds into $X_2$, since $X_1$ is not metrically altered by adding in the new pieces.  On the other hand, by simply rescaling by half the distance computations from $X_1$, we see that every point on $X_2$ is within a distance $\frac{\sqrt{13}}{2^2 \sqrt{3}}$ of a point of $X_1$.  Thus, $d_{GH}(X_1,X_2) < \frac{\sqrt{13}}{2^2 \sqrt{3}}$.

Continuing, we let $X_3 = X_2 \cup \bigl(\bigcup_{i,j=1,2,3} (f_i \circ f_j)(X_1)\bigr)$, which attaches homothetic copies of $X_1$, rescaled by $\frac{1}{4}$, to the holes in $X_2$.  The central vertical segments of the attached copies now have height $\frac{1}{2}$, so that every point of $X_3$ is within a distance $\frac{\sqrt{13}}{2^3 \sqrt{3}}$ of a point of $X_2$.  Since $X_2$ isometrically embeds into $X_3$, we have $d_{GH}(X_2,X_3) < \frac{\sqrt{13}}{2^3 \sqrt{3}}$.

Obviously, we can continue this process inductively, obtaining a sequence of compact metric spaces $\{X_n\}$ such that $d_{GH}(X_{n-1},X_n) < \frac{\sqrt{13}}{2^n \sqrt{3}}$ for $n \geq 2$.  This means that the resulting sequence is Cauchy, and since all of the spaces are metric subspaces of $\mathbb R^3$, $\{X_n\}$ is actually just a Cauchy sequence in the space of compact subsets of $\mathbb R^3$ with the Hausdorff metric.  That space is complete, which means $X_n$ converges to a compact metric space $X$.  It is evident that this limit space is simply the Sierpinski gasket with the holes filled in with appropriately rescaled copies of $Z''$.  Consequently, it admits a compatible geodesic metric by the Bing-Moise Theorem.  Moreover, like the original gasket, $X$ has a self-similarity property, namely that $X = \bigcup_{1\leq i \leq 3} f_i(X)$.  Note, also, that $Cr(X) = \emptyset$, since - by filling in the holes - the maximum critical value of $X_n$ converges to $0$ as $n \rightarrow \infty$.  Thus, $X$ is its own universal cover.

Choose the lower left vertex $p_1$ as the base point, and let $\gamma$ be the simple path loop that traverses the outer triangular boundary of $X$ one time in the counterclockwise direction.  Note that $\gamma$ is not a small path loop.  We claim that $[\gamma] \in \pi_{cl}(X)$ but is not in $\pi_1^{sg}(X)$.  This is intuitively evident, since $\gamma$ ``surrounds'' infinitely many separated degenerate points; the only formal obstacle is the bookkeeping.  Thus, for this example only, we will adopt the following simplified notation.  When a path loop $\sigma$ can be expressed as a product of lollipops,  $[\sigma] = [\alpha_1 \beta_1 \alpha_1^{-1} \cdots \alpha_k \beta_k \alpha_k^{-1}]$, we will ignore the adjoing paths, since they will not be essential in this particular example, and simply write $\sigma \sim \beta_1 \cdots \beta_k$.

We will denote a word of length $n$ in the set of symbols $\Sigma(3)\defeq \{1,2,3\}$ by $\omega = \{\omega_1,\dots,\omega_n\}$, where $\omega_i \in \Sigma(3)$ for each $i$.  For each such word $\omega = \{\omega_1,\dots,\omega_n\}$, define $\beta_{\omega}^{(n)} \defeq f_{\omega} \circ \gamma$, where $f_{\omega}$ is shorthand for $f_{\omega_1} \circ \cdots \circ f_{\omega_n}$.  For words of small length, we will often suppress the brace notation for $\omega=\{\omega_1,\dots,\omega_n\}$ when it is written as a subscript; thus, $f_{1,2}$ will denote $f_1 \circ f_2$, and so on.  Note that $\beta_{1}^{(1)} \defeq f_1 \circ \gamma$, $\beta_2^{(1)} \defeq f_2 \circ \gamma$, and $\beta_3^{(1)} \defeq f_3 \circ \gamma$ are just the three outer triangular path loops of $S_2$ considered as curves in $X$, starting with the lower left triangle and moving counterclockwise around $X$.  Now, let $\lambda^{(0)}$ denote the counterclockwise, triangular path loop determined by $T'$ in $S_2$, again considered as a path loop in $X$.  Then define $\lambda_{\omega}^{(n)} = f_{\omega} \circ \lambda^{(0)}$ for any $n \geq 1$ and word $\omega$ of length $n$.

It is known and easy to verify that, for the gasket, $\gamma$ is homotopic to a product of four lollipops, $\gamma \sim \beta_1^{(1)} \beta_2^{(1)} \lambda^{(0)} \beta_3^{(1)}$.  The same result holds for $X$, since the homotopy between $\gamma$ and this product of lollipops lies in $S_2$ and, thus, is not affected by inserting $Z''$ into the central hole of $S_2$.  By construction, the lollipop with head $\lambda^{(0)}$ is a small loop lollipop.  The other three are not, since $\beta_1^{(1)}$, $\beta_2^{(1)}$, and $\beta_3^{(1)}$ are images of $\gamma$ under $f_1$, $f_2$, and $f_3$ and, therefore, enclose homothetic copies of $X$.  For these other three, however, we can use the self-similarity and inductively apply the same homotopy decomposition we applied to $\gamma$, breaking up each $\beta_i^{(1)}$, $i=1,2,3$, into a product of four more smaller lollipops that mimic the original decomposition.  That is, one will be a small loop lollipop, and the other three that are not small can be further decomposed, yielding an inductive process.  

Consider $\beta_1^{(1)}$, for instance.  The homotopy used to decompose $\gamma$ can be transferred via $f_1$ to a homotopy in $f_1(X)$ that decomposes $\beta_1^{(1)}$ into a product of four lollipops
\[\beta_1^{(1)} \sim \beta_{1,1}^{(2)} \beta_{1,2}^{(2)} \lambda_1^{(1)} \beta_{1,3}^{(2)} =(f_1 \circ f_1 \circ \gamma) (f_1 \circ f_2 \circ \gamma) (f_1 \circ \lambda^{(0)}) (f_1 \circ f_3 \circ \gamma) .\]
\noindent Likewise, we have
\[\beta_2^{(1)} \sim \beta_{2,1}^{(2)} \beta_{2,2}^{(2)} \lambda_2^{(1)} \beta_{2,3}^{(2)} =(f_2 \circ f_1 \circ \gamma) (f_2 \circ f_2 \circ \gamma) (f_2 \circ \lambda^{(0)}) (f_2 \circ f_3 \circ \gamma)\]
\[\beta_3^{(1)} \sim \beta_{3,1}^{(2)} \beta_{3,2}^{(2)} \lambda_3^{(1)} \beta_{3,3}^{(2)} =(f_3 \circ f_1 \circ \gamma) (f_3 \circ f_2 \circ \gamma) (f_3 \circ \lambda^{(0)}) (f_3 \circ f_3 \circ \gamma) .\]
\noindent Note that the small loop lollipops, $\lambda_j^{(1)}$, are indexed differently, since they originate from $T'$ and not from $\gamma$.  We see, then, that
\[\gamma \sim \Bigl(\beta_{1,1}^{(2)} \beta_{1,2}^{(2)} \lambda_1^{(1)} \beta_{1,3}^{(2)}\Bigr)\Bigl(\beta_{2,1}^{(2)} \beta_{2,2}^{(2)} \lambda_2^{(1)} \beta_{2,3}^{(2)}\Bigr)\lambda^{(0)} \Bigl(\beta_{3,1}^{(2)} \beta_{3,2}^{(2)} \lambda_3^{(1)} \beta_{3,3}^{(2)}\Bigr).\]
\noindent Then, we continue the decomposition process inductively at the next level.  We leave the small loop lollipops as they are.  Each $\beta_{i,j}^{(2)}$, however, is decomposed into a product $\beta_{i,j,1}^{(3)} \beta_{i,j,2}^{(3)} \lambda_{i,j}^{(2)} \beta_{i,j,3}^{(3)}$, where $\lambda_{i,j}^{(2)}$ is small and the other three path loops can be further decomposed.

Since the triangles making up the heads of the lollipops are either small path loops or become arbitrarily small in diameter as $n \rightarrow \infty$, the end result of the above decomposition process is that $\gamma$ can be expressed as a product of $\varepsilon$-lollipops for any $\varepsilon > 0$.  Thus, $[\gamma] \in \pi_{cl}(X)$.  However, $\gamma$ cannot be expressed as a finite product of small loop lollipops.  In fact, as the decomposition process above shows, any finite product of lollipops representing $[\gamma]$ will contain at least one that is not small but can be further decomposed using the self-similarity of $X$.  Hence, $[\gamma]$ is not in $\pi_1^{sg}(X)$.$\blacksquare$
\end{example}





























\vspace{.1 in}
\section{Universal Covers and Group Topology}

If $I=[0,1] \subset \mathbb R$, the pointed, continuous mapping space 
\[Hom\bigl((I,\{0,1\}),(X,*)\bigr)=\{f:I \rightarrow X \ | \ f \ cts., \ f(0)=f(1)=*\}\]
\noindent is given the uniform topology, and the \textit{topological fundamental group} is $\pi_1(X,*)$ topologized as the quotient of that space under the homotopy equivalence relation.  It is denoted by $\pi_1^{top}(X,*)$, and we refer to its topology as the \textit{uniform quotient topology}.  We will let $\bar{\pi}_1^{top}(X,*)$ denote the revised fundamental group with the quotient topology inherited from $\pi_1^{top}(X,*)$, and we call this the \textit{topological revised fundamental group}.  As usual, we often suppress the base point $*$.

We first show that path loops that are sufficiently uniformly close, in terms of a given $\varepsilon > 0$, represent the same element of $\pi_1(X)/K_{\varepsilon}$.

\begin{lemma}
\label{close path lifts}
Let $X$ be a geodesic space with base point $*$, and suppose $\gamma$ and $\lambda$ are path loops at $*$.  If $\sup_{0\leq t \leq 1} d(\gamma(t),\lambda(t)) < \frac{\varepsilon}{3}$, then the lifts of $\gamma$ and $\lambda$ to $X_{\varepsilon}$ are either both closed or both open, and $[\gamma]K_{\varepsilon} = [\lambda]K_{\varepsilon}$.
\end{lemma}

\begin{proof}
Choose a strong $\frac{\varepsilon}{3}$-loop along $\gamma$, say $\alpha = \{*=\gamma(0),\gamma(t_1),\dots,\gamma(t_n)=*\}$.  Define a chain loop $\beta =\{*=\lambda(0),\lambda(t_1),\dots,\lambda(t_n)=*\}$ along $\lambda$.  Then $\mathcal D(\alpha,\beta) < \frac{\varepsilon}{3}$, and $E(\alpha) > \frac{2\varepsilon}{3}$.  It follows that $\mathcal D(\alpha,\beta) < \frac{1}{2}E(\alpha)$, and, by Lemma \ref{close chain lemma}, $\beta$ is an $\varepsilon$-loop that is $\varepsilon$-homotopic to $\alpha$.  Furthermore, $\beta$ is a strong $\varepsilon$-loop along $\lambda$.
In fact, if $i\in \{1,\dots,n\}$ and $t_{i-1} \leq t \leq t_i$, then
\[d(\lambda(t_{i-1}),\lambda(t))\leq d(\lambda(t),\gamma(t)) + d(\gamma(t),\gamma(t_{i-1})) + d(\gamma(t_{i-1}),\lambda(t_{i-1})) < \varepsilon\]
\[d(\lambda(t_{i}),\lambda(t))\leq d(\lambda(t),\gamma(t)) + d(\gamma(t),\gamma(t_{i})) + d(\gamma(t_{i}),\lambda(t_{i})) < \varepsilon.\]
\noindent So, if $\gamma$ lifts closed to $X_{\varepsilon}$, then $\alpha$ is $\varepsilon$-null.  This implies that $\beta$ is also $\varepsilon$-null, and $\lambda$ lifts closed to $X_{\varepsilon}$.  If $\gamma$ lifts open to $X_{\varepsilon}$, then $\alpha$ is $\varepsilon$-nontrivial.  Hence, $\beta$ is also $\varepsilon$-nontrivial, and $\lambda$ lifts open. For the last part, consider the strong $\varepsilon$-loop $\alpha \beta^{-1}$ along $\gamma \lambda^{-1}$.  Since $\alpha \beta^{-1}$ is $\varepsilon$-null, $[\gamma] [\lambda]^{-1}=[\gamma \lambda^{-1}] \in K_{\varepsilon}$.\end{proof}


\begin{corollary}
\label{kernels clopen}
If $X$ is a geodesic space, then $K_{\varepsilon} \subset \pi_1(X)$ is both open and closed in $\pi_1^{top}(X)$.
\end{corollary}

\begin{proof}
Let $p:Hom\bigl((I,\partial I),(X,*)\bigr) \rightarrow \pi_1^{top}(X)$ be the quotient map.  To show that $K_{\varepsilon}$ is open, we need to show that $p^{-1}(K_{\varepsilon})$ is open in $Hom\bigl((I,\partial I),(X,*)\bigr)$.  But an element of $p^{-1}(K_{\varepsilon})$ is a path loop at $*$ that lifts closed to $X_{\varepsilon}$, and - by Lemma \ref{close path lifts} - any path loop at $*$ that is uniformly within $\frac{\varepsilon}{3}$ of such a loop will also lift closed to $X_{\varepsilon}$.  In other words, if $\gamma \in p^{-1}(K_{\varepsilon})$, then the open uniform ball $B_{\varepsilon/3}(\gamma)$ is also in $p^{-1}(K_{\varepsilon})$, showing that $p^{-1}(K_{\varepsilon})$ is open.  Finally, the complement of $K_{\varepsilon}$ is $\bigcup_{g \notin K_{\varepsilon}} gK_{\varepsilon}$.  The cosets $gK_{\varepsilon}$ are open, because left translations are homeomorphisms in the quasitopological group $\pi_1^{top}(X)$.\end{proof}

\vspace{.1 in}
\noindent It follows, then, that $\pi_{cl}(X) = \bigcap_{\varepsilon > 0} K_{\varepsilon}$ is closed in $\pi_1^{top}(X)$.

\begin{lemma}
\label{ss point not discrete}
If a geodesic space $X$ has a sequentially singular point, then $\bar{\pi}_1^{top}(X)$ is not discrete.
\end{lemma}

\begin{proof}
We may assume without loss of generality that the base point $*$ is a sequentially singular point, and it suffices to show that $\pi_{cl}(X,*) = \bar{h}^{-1}(1_{\bar{\pi}})$ is not open, where $1_{\bar{\pi}}=\pi_{cl}(X)$ is the identity in $\bar{\pi}_1^{top}(X)$.  Let $r_n \searrow 0$ and $\gamma_n$ be sequences of positive real numbers and path loops at $*$ as in the definition of sequentially singular, and let $p:Hom((I,\partial I),(X,*)) \rightarrow \pi_1^{top}(X)$ be the quotient map.  If $V$ is any open set in $\pi_1^{top}(X)$ containing the identity $1_{\pi} \in \pi_1^{top}(X)$, then $p^{-1}(V)$ is an open set containing the constant path $*$, which means that it contains a uniform open ball of some radius $\tau$ centered at the constant path $*$.  We can choose $N \in \mathbb N$ so that $n \geq N \Rightarrow r_n < \tau$.  For such $n$, $\gamma_n$ lies in $B_{\tau}(*) \subset p^{-1}(V)$, and, thus,  $[\gamma_n]=p(\gamma_n) \in V$.  But each $\gamma_n$, by definition, eventually lifts open to $X_{\varepsilon}$ for sufficiently small $\varepsilon$, showing that every open set containing $1_{\pi}$ will contain elements not in $\pi_{cl}(X)$.  Therefore, $\pi_{cl}(X)$ is not open.\end{proof}

\begin{proof}[\textbf{Proof of Theorem \emph{\ref{uc cover eq discrete group}}}]
We have already noted that $\pi_{cl}(X)$ is closed, and the quotient of a quasitopological group by a closed, normal subgroup is a $T_1$ quasitopological group (cf. Theorems 1.5.1 and 1.5.3, \cite{AATM}).  If $\bar{\pi}_1^{top}(X)$ is discrete, then $X$ cannot have any sequentially singular points by Lemma \ref{ss point not discrete}.  Thus, it has a universal cover by Theorem \ref{main theorem 1}.  If $X$ has a universal cover, then there is some $\varepsilon > 0$ such that $\pi_{cl}(X) = K_{\varepsilon}$.  This means that for any element $g\pi_{cl}(X) \in \bar{\pi}_1^{top}(X)$, $\bar{h}^{-1}(g\pi_{cl}(X))$ equals the open set $gK_{\varepsilon}$.  Hence, each point in $\bar{\pi}_1^{top}(X)$ is open, and the revised fundamental group is discrete.\end{proof}

\vspace{.1 in}
Next, we introduce another topology on the fundamental group and examine its relationship to the existence of universal and simply connected covers. The \textit{subgroup topology} on a group $G$ determined by a collection, $\Sigma$, of subgroups of $G$ is defined as follows (see Section 2.5 of \cite{BS}).  The collection $\Sigma$ is a \textit{neighborhood family} if for any $H_1$, $H_2 \in \Sigma$, there is a subgroup $H_3 \in \Sigma$ such that $H_3 \subset H_1 \cap H_2$.  As a neighborhood family, the collection of all left cosets of subgroups in $\Sigma$ forms a basis for a topology on $G$, called the \textit{subgroup topology determined by $\Sigma$}.  This follows because the intersection of left cosets of subgroups $H_1$ and $H_2$ is a left coset of the intersection $H_1 \cap H_2$.  Thus, if $g \in g_1H_1 \cap g_2 H_2$, then there is some $g'$ such that $g \in g_1H_1 \cap g_2H_2 = g'(H_1 \cap H_2)$, which means that we can take $g' = g$.  Taking $H_3 \subset H_1 \cap H_2$, we then see that $g \in gH_3 \subset g(H_1 \cap H_2) = g_1H_1 \cap g_2H_2$.  

It is pointed out in \cite{BS} that $G$ with this topology need not be a topological group, in general.  We will show, however, that it is a topological group when the subgroups in $\Sigma$ are normal.

\begin{lemma}
\label{sg top group}
Let $G$ be a group endowed with the subgroup topology $\mathcal T_{\Sigma}$ determined by a neighborhood family of subgroups $\Sigma$.  If the subgroups in $\Sigma$ are normal, then $(G,\mathcal T_{\Sigma})$ is a topological group.
\end{lemma}

\begin{proof}
We first show that multiplication is continuous.  Let $g_1$, $g_2 \in G$ be given.  If $U$ is open and $g_1g_2 \in U$, then there is a basis element, $gH$, $H \in \Sigma$, such that $g_1g_2 \in gH \subset U$.  This means we can take $g = g_1 g_2$.  Suppose $(h_1,h_2) \in g_1H \times g_2H$.  By normality, we have $g_1H = Hg_1$. Thus, $(h_1,h_2) \in Hg_1 \times g_2H$, and we can find $k_1$, $k_2 \in H$ such that $h_1 = k_1g_1$ and $h_2 = g_2 k_2$.  It follows that $h_1h_2 = k_1g_1g_2k_2$.  But, again using normality, $k_1g_1g_2k_2 \in Hg_1g_2k_2 = g_1g_2k_2H = g_1g_2H$, so $h_1 h_2 \in g_1g_2H \subset U$.

Next, let $g \in G$ be given.  If $U$ is open and contains $g^{-1}$, then there is some $H\in \Sigma$ such that $g^{-1} \in g^{-1}H \subset U$.  So, if $h \in gH=Hg$, there is $k \in H$ so that $h=kg$.  But then $h^{-1} = g^{-1}k^{-1} \in g^{-1}H$.\end{proof}

\vspace{.1 in}
\noindent We will also need the following result, which is part of a general subgroup topology theorem proved by Bogley and Sierdaski in \cite{BS}.  For reference purposes, we state the needed portion here as a lemma.


\begin{lemma}[\textbf{Theorem 2.9, \cite{BS}}]
\label{BS lemma}
Let $G$ be a group with the subgroup topology determined by a neighborhood family of subgroups, $\Sigma$, and let $H_{\Sigma} = \bigcap_{H \in \Sigma} H$.  Then the connected component containing $g \in G$ is $gH_{\Sigma}$, and $G$ is discrete if and only if $\Sigma$ contains the trivial subgroup.  Moreover, the following are equivalent.  \emph{1)} $G$ is $T_0$; \emph{2)} $G$ is Hausdorff; \emph{3)} $H_{\Sigma}$ is trivial; \emph{4)} $G$ is totally disconnected.
\end{lemma}

Now, we assume that $X$ is a compact geodesic space, and we consider the collection $\Sigma_{\kappa} = \{K_{\varepsilon}\}_{\varepsilon > 0}$.  This collection is a particularly simple neighborhood family, since it is actually a countable, directed set: $\delta < \varepsilon$ implies that $K_{\delta} \subset K_{\varepsilon}$, and the only changes occur at a discrete, strictly decreasing set of values, namely the critical values.  In fact, given $K_{\varepsilon_1}$, $K_{\varepsilon_2} \in \Sigma_{\kappa}$, we may assume without loss of generality that $\varepsilon_1 \leq \varepsilon_2$, in which case $K_{\varepsilon_1} \cap K_{\varepsilon_2} = K_{\varepsilon_1}$.  Note that $H_{\Sigma_{\kappa}} = \bigcap_{\varepsilon > 0}K_{\varepsilon} = \pi_{cl}(X)$.

\begin{definition}
\label{ctfg}
Let $\pi_1^{\mathcal C}(X)$ denote the fundamental group of $X$ with the subgroup topology determined by $\Sigma_{\kappa}$.  We call this topology the covering topology on $\pi_1(X)$, and we call $\pi_1^{\mathcal C}(X)$ the $\mathcal C$-fundamental group.  The quotient group $\bar{\pi}_1^{\mathcal C}(X) \defeq \pi_1^{\mathcal C}(X)/\pi_{cl}(X)$ with the quotient topology from $\pi_1^{\mathcal C}(X)$ is the revised $\mathcal C$-fundamental group.
\end{definition}

By Lemma \ref{sg top group}, $\pi_1^{\mathcal C}(X)$ is a topological group, and, by Lemma \ref{BS lemma}, it is Hausdorff if and only if $\pi_{cl}(X) = 1$.  As basis elements, the subgroups $K_{\varepsilon}$ are obviously open and, thus, also closed in $\pi_1^{\mathcal C}(X)$.  Hence, $\pi_{cl}(X)$ is closed in $\pi_1^{\mathcal C}(X)$.  Moreover, we see from Lemma \ref{BS lemma} that the connected component in $\pi_1^{\mathcal C}(X)$ containing $g$ is the coset $g\pi_{cl}(X)$.  These statements, along with the topological group structure of $\pi_1^{\mathcal C}(X)$, immediately imply the following.

\begin{lemma}
\label{sg quotient tg}
If $X$ is a compact geodesic space, then $\bar{\pi}_1^{\mathcal C}(X)$ is a Hausdorff topological group, and its elements are in bijective correspondence with the connected components of $\pi_1^{\mathcal C}(X)$.
\end{lemma}

Note, also, that the topological group structure of $\pi_1^{\mathcal C}(X)$ shows that the covering and uniform quotient topologies on $\pi_1(X)$ need not coincide in general.  As we mentioned in the introduction, there are examples of compact geodesic spaces for which $\pi_1^{top}(X)$ is not a topological group, while $\pi_1^{\mathcal C}(X)$ always is.  However, since every $gK_{\varepsilon} \subset \pi_1(X)$ is a basis element in the covering topology and open in the uniform quotient topology, every open set in the former topology is also open in the latter.  Thus, the uniform quotient topology is always at least finer than the covering topology on $\pi_1(X)$.  Furthermore, we have the following.

\begin{lemma}
\label{topologies equal}
If $X$ is a compact geodesic space with a universal cover, and if $\pi_{cl}(X) = \pi_1^{sg}(X)$, then the covering and uniform quotient topologies on $\pi_1(X)$ are equal.
\end{lemma}

\begin{proof}
We need to show that every open set in $\pi_1^{top}(X)$ is open in $\pi_1^{\mathcal C}(X)$.  Let $U \subset \pi_1(X)$ be open in the uniform quotient topology, and let $g=[\gamma] \in U$ be given.  We need to find $\varepsilon > 0$ such that $g \in gK_{\varepsilon} \subset U$.

Since $X$ has a universal cover, $Cr(X)$ is finite, and we choose $\varepsilon < \min Cr(X)$.  Then $K_{\varepsilon}=\pi_{cl}(X)=\pi_1^{sg}(X)$.  Let $[\lambda]$ be any element in $gK_{\varepsilon}$. Then there is a finite product of small path loops, say $\alpha_1 \beta_1 \alpha_1^{-1} \cdots \alpha_n \beta_n \alpha_n^{-1}$, such that $[\lambda] = [\gamma \alpha_1 \beta_1 \alpha_1^{-1} \cdots \alpha_n \beta_n \alpha_n^{-1}]$.  We assume that $\gamma \alpha_1 \beta_1 \alpha_1^{-1} \cdots \alpha_n \beta_n \alpha_n^{-1}$ is parameterized on $[0,1]$ so that $\gamma$ is parameterized on $[0,1/2]$, $\alpha_i$ is parameterized on $\bigl[\frac{1}{2}+\frac{3(i-1)}{6n},\frac{1}{2}+\frac{3i-2}{6n}\bigr]$, $\beta_i$ is parameterized on $\bigl[\frac{1}{2} + \frac{3i-2}{6n},\frac{1}{2}+\frac{3i-1}{6n}\bigr]$, and $\alpha_i^{-1}$ is parameterized on $\bigl[ \frac{1}{2} + \frac{3i-1}{6n},\frac{1}{2} + \frac{3i}{6n}\bigr]$, for $i=1,\dots,n$.

Now, let $\gamma'$ denote the path loop $\gamma \alpha_1 \sigma_1 \alpha_1^{-1} \cdots \alpha_n \sigma_n \alpha_n^{-1}$, where $\sigma_i$ is the constant path at the endpoint of $\alpha_i$.  We asssume that $\gamma'$ is parameterized in the same way as $\gamma \alpha_1 \beta_1 \alpha_1^{-1} \cdots \alpha_n \beta_n \alpha_n^{-1}$, just with $\sigma_i$ replacing $\beta_i$. Clearly $\gamma'$ is homotopic to $\gamma$, so that $\gamma' \in p^{-1}(U) \subset Hom((I,\partial I),(X,*))$.  Thus, there is some $\delta > 0$ such that the open uniform ball $B_{\delta}(\gamma')$ is contained in $p^{-1}(U)$.  Since each $\beta_i$ is a small path loop, we can contract each one so that it lies in the open ball of radius $\delta$ centered at the endpoint of $\alpha_i$.  Doing so while leaving $\gamma$ and each $\alpha_i$ fixed, and maintaining the parameterization of described above, we obtain a representative of $[\lambda]= [\gamma \alpha_1 \beta_1 \alpha_1^{-1} \cdots \alpha_n \beta_n \alpha_n^{-1}]$ that is uniformly within $\delta$ of $\gamma'$.  Thus, there is a path loop $\lambda' \in [\lambda]$ that lies in $p^{-1}(U)$, which means that $[\lambda] \in U$.  This shows that $gK_{\varepsilon} \subset U$, and $U$ is open in the covering topology.\end{proof}

\begin{example}
For the spaces in Example \ref{K example}, the critical and uniform quotient topologies agree.  By Proposition \ref{charac simply conn covers}, the topologies also agree when $X$ is compact and semilocally simply connected.
\end{example}

We can now prove Theorem \ref{sgtop thm1}.

\begin{proof}[\textbf{Proof of Theorem \ref{sgtop thm1}}]
By Lemma \ref{BS lemma}, $\pi_1^{\mathcal C}(X)$ is discrete if and only if $\Sigma_{\kappa}$ contains the trivial subgroup.  If $\pi_1^{\mathcal C}(X)$ is discrete, this means that $K_{\varepsilon} = 1$ for some $\varepsilon$, which further means that $K_{\tau} = 1$ for all $0 < \tau \leq \varepsilon$.  Hence, $Cr(X)$ is finite and $\pi_{cl}(X) = 1$, and the result follows from Proposition \ref{charac simply conn covers}.  On the other hand, if $X$ has a simply connected cover, then $K_{\varepsilon}$ is eventually trivial for small enough $\varepsilon$, also by Proposition \ref{charac simply conn covers}.  But this implies that $\Sigma_{\kappa}$ contains the trivial group, and $\pi_1^{\mathcal C}(X)$ is discrete.  This proves the simply connected covering portion of the theorem.

Suppose $X$ has a universal cover. Then $\pi_{cl}(X) = K_{\varepsilon}$ for small enough $\varepsilon$.  But this means that $\bar{h}^{-1}(1_{\bar{\pi}}) = \pi_{cl}(X)$ is open in $\pi_1^{\mathcal C}(X)$, and $\bar{\pi}_1^{\mathcal C}(X)$ is discrete.

Lastly, suppose $X$ does not have a universal cover.  Then it has a sequentially singular point, which we can assume is the base point $*$.  Let $U$ be any neighborhood of the identity $1_{\pi} \in \pi_1^{\mathcal C}(X)$ with $1_{\pi} \in K_{\varepsilon} \subset U$.  If $\gamma_n$ and $r_n \searrow 0$ are as in the definition of sequentially singular, then, once $r_n < \varepsilon$, each $\gamma_n$ lifts closed to $X_{\varepsilon}$.  Thus, $[\gamma_n] \in K_{\varepsilon} \subset U$ for all but finitely many $n$, showing that any neighborhood of the identity $1_{\pi} \in \pi_1^{\mathcal C}(X)$ will contain elements not in $\pi_{cl}(X)$. But, similarly to the proof of Lemma \ref{ss point not discrete}, this means that $\pi_{cl}(X)=\bar{h}^{-1}(1_{\bar{\pi}})$ is not open.  Hence, $\bar{\pi}_1^{\mathcal C}(X)$ is not discrete.\end{proof}

\vspace{.1 in}
It is useful to further compare and contrast the covering and uniform quotient topologies on $\pi_1(X)$.  We have already noted that the covering topology has the advantage of always making $\pi_1(X)$ a topological group.  Comparing Theorem \ref{sgtop thm1} to Theorem \ref{uc cover eq discrete group} and the aforementioned result of Fabel that $X$ has a simply connected cover if and only if $\pi_1^{top}(X)$ is discrete, we see that the topologies are equally effective in determining when $X$ has a universal or simply connected cover.  Consequently, there is also no difference between the topologies in detecting the presence of singular points.  For example, if $X$ has a sequentially singular point, then $X$ has no universal cover, and all four groups $\pi_1^{top}(X)$, $\bar{\pi}_1^{top}(X)$, $\pi_1^{\mathcal C}(X)$, and $\bar{\pi}_1^{\mathcal C}(X)$ are non-discrete.  Conversely, if either $\bar{\pi}_1^{top}(X)$ or $\bar{\pi}_1^{\mathcal C}(X)$ is non-discrete, then $X$ has a sequentially singular point.  If either $\pi_1^{top}(X)$ or $\pi_1^{\mathcal C}(X)$ is non-discrete, then $X$ has no simply connected cover, which - by Proposition \ref{charac simply conn covers} - implies one of two mutually exclusive possibilities:  either $Cr(X)$ is infinite and $X$ has a sequentially singular point, or $X$ has a non-simply connected universal cover and, thus, a degenerate point but no sequentially singular points. 

There is, however, one important advantage offered by the covering topology, in addition to the topological group structure.  Namely, this topology provides a useful geometric picture of $\pi_1^{\mathcal C}(X)$ and its relationship to $\bar{\pi}_1^{\mathcal C}(X)$, which further leads to conditions under which $\pi_{cl}(X)$ is trivial.  This brings us to Theorem \ref{sgtop thm2}.  The first statement of Theorem \ref{sgtop thm2} and the equivalence of $1$, $2$, and $3$ follow directly from Lemma \ref{BS lemma}.  The last statement of Theorem \ref{sgtop thm2} follows from part 1 and our result that $\bar{\pi}_1(X)$ injects into the first shape group.  All that remains is to prove the equivalence of $4$ and $5$ to the other conditions.  Before proceeding, some further remarks on geometric groups are in order.

As we mentioned in the introduction, the existence of a geometry on a topological group $G$ dictates certain topological conditions that must hold for $G$, and the particular semigroup $S$ indexing the geometry determines what kind of metrics induce the given topology.  For example, assume $G$ is a first countable, Hausdorff topological group.  If $G$ is also complete, then it admits a geometry $\{U_s\}$ over $S=\mathbb R_+$ - the positive reals with usual addition as the semigroup operation - if and only if it is path connected and locally path connected and admits a length metric that is compatible with the original topology (Proposition 3.1, remarks following Example 1.8 in \cite{BPGG}).  On the other hand, $G$ admits a geometry over $\mathbb R^{max}$ if and only if it admits a left-invariant \textit{ultrametric} compatible with the original topology, and this holds if and only if $G$ is totally disconnected (Example 1.6 and Section 3 in \cite{BPGG}).  Recall that an ultrametric satisfies the stronger triangle inequality $d(x,z) \leq \max\{d(x,y),d(y,z)\}$ for all $x,y,z$, and ultrametric spaces are necessarily totally disconnected.

Now, consider $\pi_1^{\mathcal C}(X)$ and the collection of open subgroups $\Sigma_{\kappa} = \{K_{\varepsilon}\}_{\varepsilon > 0}$.  We take $\Sigma_{\kappa}$ indexed over $\mathbb R^{max}$.  Clearly this collection is a local basis at the identity, simply by definition.  We already know that $\delta < \varepsilon$ if and only if $K_{\delta} \subseteq K_{\varepsilon}$, since the kernels form a nested, decreasing collection.  Likewise, we have $K_{\delta}K_{\varepsilon} = K_{\max\{\delta,\varepsilon\}}$, since $\delta \leq \varepsilon$ would imply that $K_{\delta} \subseteq K_{\varepsilon} \Rightarrow K_{\delta}K_{\varepsilon} = K_{\varepsilon}$, and similarly if $\varepsilon < \delta$.  When $X$ is compact, $K_{\varepsilon} = \pi_1(X)$ for any $\varepsilon > diam(X)$, since $X_{\varepsilon}$ is the trivial cover in that case.  Thus, $\bigcup_{\varepsilon > 0} K_{\varepsilon} = \pi_1(X)$.  Finally, each $K_{\varepsilon}$ is symmetric since it is a subgroup.

Thus, we see that $\Sigma_{\kappa}$ satisfies all of the conditions for a geometry over $\mathbb R^{max}$, except, perhaps, the condition $\pi_{cl}(X) = \bigcap_{\varepsilon > 0} K_{\varepsilon} = 1$.

\begin{proof}[\textbf{Proof of Theorem \ref{sgtop thm2}}]
We first note that $\pi_1^{\mathcal C}(X)$ is first countable.  In fact, $\Sigma_{\kappa}$ is a countable collection, for if $Cr(X) = \{\varepsilon_n\}$, with $\{\varepsilon_n\}$ either finite or strictly decreasing to $0$, then the only distinct elements of $\Sigma_{\kappa}$ are $K_{\varepsilon_n}$.  So, if $g$ is any element in $\pi_1^{\mathcal C}(X)$ and $U$ is any open set containing $g$, then there is $\varepsilon > 0$ such that $g \in gK_{\varepsilon} \subset U$.  But there is some $n$ such that $K_{\varepsilon} = K_{\varepsilon_n}$.  Hence, the collection $\{gK_{\varepsilon_n}\}$ forms a countable local basis at $g$.

We only need to prove that $1 \Leftrightarrow 4 \Rightarrow 5 \Rightarrow 2$.  That $1$ and $4$ are equivalent follows from the previous discussion and the definition of a geometry. If $4$ holds, then $\pi_1^{\mathcal C}(X)$ is a Hausdorff, first countable topological group admitting a geometry over $\mathbb R^{max}$, which means that $5$ holds by the results of Berestovskii-Plaut-Stallman cited above.  Finally, if $5$ holds, then $\pi_1^{\mathcal C}(X)$ is totally disconnected.\end{proof}

\begin{example}
\label{1d example}
Any one-dimensional, compact geodesic space, $X$, satisfies $\pi_{cl}(X) = 1$.  Thus, for such a space, $\pi_1^{\mathcal C}(X)$ is a totally disconnected, ultrametrizable, geometric group.  In particular, this holds for the Hawaiian earring and fractals like the Sierpinski carpet and gasket. $\blacksquare$
\end{example}

It is natural to wonder whether or not the covering topology may be generalized by considering other subgroup topologies on $\pi_1(X)$ determined by normal subgroups.  For example, one possibility is to consider the general \textit{Spanier groups} of $X$.  The Spanier subgroup determined by an open covering $\mathcal U$ of $X$ is the normal subgroup $\pi_1^{\mathcal U}(X) \subset \pi_1(X)$ generated by lollipops $\alpha \beta \alpha^{-1}$ where $\beta$ is a path loop lying in an element of $\mathcal U$.  The subgroups $K_{\varepsilon}$, for example, are Spanier subgroups.  In fact, we pointed out in Remark \ref{SW connection} that $K_{\varepsilon}$ equals the Spanier subgroup determined by the open covering of $\frac{3\varepsilon}{2}$-balls.  

In the more general topological setting, the Spanier subgroups may provide a means of determining topologies on $\pi_1(X)$ alternative to the compact-open quotient topology.  In the case of the covering topology on a compact geodesic case, however - where every open cover is refined by a uniform open cover of metric balls - this particular level of generalization turns out to be redundant, as the following shows.  From another point of view, though, this result also shows that the covering topology is determined by a deeper structure than just a geodesic metric and the critical spectrum; it is a more general topology that derives from a very natural construction.

\begin{lemma}
Let $X$ be compact geodesic, and let $\Omega(X)$ be the collection of open coverings of $X$.  Let $\Sigma_{\Omega}$ be the collection of Spanier subgroups of $X$ determined by the open coverings in $\Omega(X)$.  Then $\Sigma_{\Omega}$ is a neighborhood family, and the topology on $\pi_1(X)$ determined by $\Sigma_{\Omega}$ is equivalent to the covering topology.
\end{lemma}

\begin{proof}
We first note that if $\mathcal U$, $\mathcal V \in \Omega(X)$ and $\mathcal V$ is a refinement of $\mathcal U$, then $\pi_1^{\mathcal V}(X) \subseteq \pi_1^{\mathcal U}(X)$, for if $\alpha \beta \alpha^{-1}$ is a lollipop with $\beta$ lying in an element of $V \in \mathcal V$, then there is some $U \in \mathcal U$ such that $V \subset U$. But this means that $\alpha \beta \alpha^{-1}$ is a $U$-lollipop, also.  So, suppose $\pi_1^{\mathcal U}(X)$, $\pi_1^{\mathcal V}(X) \in \Sigma_{\Omega}$, and let $\mathcal W = \mathcal V \cap \mathcal U = \{W\subset X : W = V \cap U, \ V \in \mathcal V, \ U \in \mathcal U\}$.  Then $\mathcal W$ is an open covering of $X$, and it is a refinement of both $\mathcal U$ and $\mathcal V$.  It follows that $\pi_1^{\mathcal W}(X) \subset \pi_1^{\mathcal V}(X)$ and $\pi_1^{\mathcal W}(X) \subset \pi_1^{\mathcal U}(X)$, which further implies that $\pi_1^{\mathcal W}(X) \subset \pi_1^{\mathcal U}(X) \cap \pi_1^{\mathcal V}(X)$.  This shows that $\Sigma_{\Omega}$ is a neighborhood family.

We let $\pi_1^{\mathcal S}(X)$ denote $\pi_1(X)$ with the subgroup topology determined by $\Sigma_{\Omega}$, and we call this topology the Spanier topology.  Note that since the Spanier groups are normal, $\pi_1^{\mathcal S}(X)$ is a topological group.

If $A \subset \pi_1(X)$ is open in the covering topology and $g \in A$, then there is some $K_{\varepsilon}$ such that $g \in gK_{\varepsilon} \subset A$.  But $K_{\varepsilon}$ is in $\Sigma_{\Omega}$, so $gK_{\varepsilon}$ is a basis element in the Spanier topology.  Thus, $A$ is open in $\pi_1^{\mathcal S}(X)$.  Conversely, suppose $A \subset \pi_1(X)$ is open in the Spanier topology, and let $g \in A$ be given.  There is some $\mathcal U \in \Omega(X)$ such that $g \in g\pi_1^{\mathcal U}(X) \subset A$.  Now, since $X$ is compact, there is some $\varepsilon > 0$ such that every open ball of radius $\varepsilon$ is contained in some element of $\mathcal U$.  Let $\mathcal V$ be the open covering of $X$ consisting of all open balls of radius $\varepsilon$, so that $\mathcal V$ is a refinement of $\mathcal U$.  Then $\pi_1^{\mathcal V}(X) \subset \pi_1^{\mathcal U}(X)$, and $\pi_1^{\mathcal V}(X)$ is just $K_{2\varepsilon/3}$.  It follows that $g \in gK_{2\varepsilon/3} = g\pi_1^{\mathcal V}(X) \subset g\pi_1^{\mathcal U}(X) \subset A$, and $A$ is open in the covering topology.\end{proof}



\addtocontents{toc}{\protect\setcounter{tocdepth}{0}}
\subsection*{Acknowledgements}
\addtocontents{toc}{\protect\setcounter{tocdepth}{1}}
The author would like to thank Conrad Plaut and Christina Sormani for their careful reading and helpful suggestions, Ziga Virk for sharing information on small loops, and the mathematics department at The University of Connecticut for their support.  Some of this work was completed while the author was a doctoral candidate at The University of Tennessee.





































\vspace{.2 in}
\begin{thebibliography}{HD}

%% Use the widest label as parameter.

%% In IMPAN journals, only the title is italicized; boldface is not used.
%% The issue number is only given when the issues are paginated separately.

%%%%%%%%%%% To ease editing, use normal size:

\normalsize
%\baselinestretch=2pt
%\baselineskip=10pt
%\small
%%%%%%%%%%%%%


\bibitem{AATM} A. Arhangelʹskii, M. Tkachenko, Topological groups and related structures, Atlantis Studies in Mathematics, 1. Atlantis Press, Paris; World Scientific Publishing Co. Pte. Ltd., Hackensack, NJ, 2008.

\bibitem{BPUU} V. Berestovskii, C. Plaut, Uniform universal covers of uniform spaces, Topology Appl. 154 (2007), no. 8, 1748 - 1777.

\bibitem{BPGG} V. Berestovskii, C. Plaut, C. Stallman, Geometric groups. I. Trans. Amer. Math. Soc. 351 (1999), no. 4, 1403--1422.

\bibitem{Bing} R.H. Bing, Partitioning a set, Bull. Amer. Math. Soc. 55 (1949) 1101 - 1110.

\bibitem{Biss} D. Biss, The topological fundamental group and generalized covering spaces, Topology Appl. 124 (2002) 355 - 371.

\bibitem{BS} W. Bogley, A. Sierdaski, Universal path spaces, \footnotesize \emph{http://people.oregonstate.edu/$\sim$bogleyw/research/ups.pdf}\normalsize, unpublished preprint.

\bibitem{BRAZ} J. Brazas, The topological fundamental group and free topological groups. Topology Appl. 158 (2011), no. 6, 779--802.

\bibitem{BD1} N. Brodskiy, J. Dydak, B. Labuz, A. Mitra, Rips complexes and covers in the uniform category, arXiv:0706.3937v3.

\bibitem{BBI} D. Burago, Y. Burago, S. Ivanov, A course in metric geometry. Graduate Studies in Mathematics, 33. American Mathematical Society, Providence, RI, 2001.

\bibitem{CC} J.W. Cannon, G.R. Conner, On the fundamental groups of one-dimensional spaces, Topology Appl. 153 (2006) 2648 - 2672.

\bibitem{PWetal} J. Conant, V. Curnutte, C. Jones, C. Plaut, K. Pueschel, M. Walpole, J. Wilkins, Discrete homotopy theory and critical values of metric spaces, arXiv:1205.2925.

\bibitem{Dydak} J. Dydak, J. Segal, Shape Theory: An Introduction, Lecture Notes in Mathematics, Vol. 688, Springer, 1978.

\bibitem{Fabel} P. Fabel, Metric spaces with discrete topological fundamental group, Topology Appl. 154 (2007), no. 3, 635 - 638.

\bibitem{Fabel2} P. Fabel, Multiplication is discontinuous in the Hawaiian earring group (with the quotient topology). Bull. Pol. Acad. Sci. Math. 59 (2011), no. 1, 77--83.

\bibitem{FZ} H. Fischer, A. Zastrow, Generalized universal covering spaces and the shape group, Fund. Math. 197 (2007), 167 - 196.

\bibitem{FZ2} H. Fischer, A. Zastrow, The fundamental groups of subsets of closed surfaces inject into their first shape groups. Algebr. Geom. Topol. 5 (2005), 1655--1676 (electronic).

\bibitem{FRVZ} H. Fischer, D. Repov\u{s}, Z. Virk, A. Zastrow, On semilocally simply connected spaces, Topology Appl. 158 (2011), 397 - 408.

\bibitem{Moise} E. Moise, Grille decomposition and convexification theorems for compact locally connected continua, Bull. Amer. Math. Soc. vol. 55 (1949) 1111 - 1121.

\bibitem{MM} J.W. Morgan, I. Morrison, A Van Kampen theorem for weak joins, Proc. London Math. Soc. (3) 53 (1986), 562 - 576.

\bibitem{PTM} A. Pakdaman, H. Torabi, B. Mashayekhy, Small loop spaces and covering theory of non-homotopically Hausdorff spaces, Topology Appl. 158 No. 6 (2011), 803 - 809.

\bibitem{PW1} C. Plaut, J. Wilkins, Discrete homotopies and the fundamental group, arXiv:1205.1137.

\bibitem{PW2} C. Plaut, J. Wilkins, Gromov-Hausdorff convergence of regular covering maps, in preparation.

\bibitem{deS} B. de Smit, The fundamental group of the hawaiian earring is not free, Internat. J. Algebra Comput. 2 (1992), no. 1, 33 - 37.

\bibitem{SW1} C. Sormani, G. Wei, Hausdorff convergence and universal covers, Trans. Amer. Math. Soc. 353 (2001), no. 9, 3585 - 3602.

\bibitem{SW2} C. Sormani, G. Wei, The covering spectrum of a compact length space, J. Differential Geom. 67 (2004), no. 1, 35 - 77.

\bibitem{SW4} C. Sormani, G. Wei, The cut-off covering spectrum, Trans. Amer. Math. Soc. 362 (2010), no. 5, 2339 - 2391.

\bibitem{S} E. Spanier, Algebraic topology, Springer-Verlag, New York-Berlin, 1981. ISBN: 0-387-90646-0

\bibitem{V} Z. Virk, Small loop spaces, Topology Appl. 157 (2010), no. 2, 451 - 455.

\bibitem{W2} J. Wilkins,``Discrete Geometric Homotopy Theory and Critical Values of Metric Spaces." dissertation, Univ. of Tennessee, 2011. $http://trace.tennessee.edu/utk\underline{ \ }graddiss/1039$

\end{thebibliography}







\end{document}








1208.3494.extracted_bib
\begin{thebibliography}{HD}

%% Use the widest label as parameter.

%% In IMPAN journals, only the title is italicized; boldface is not used.
%% The issue number is only given when the issues are paginated separately.

%%%%%%%%%%% To ease editing, use normal size:

\normalsize
%\baselinestretch=2pt
%\baselineskip=10pt
%\small
%%%%%%%%%%%%%


\bibitem{AATM} A. Arhangelʹskii, M. Tkachenko, Topological groups and related structures, Atlantis Studies in Mathematics, 1. Atlantis Press, Paris; World Scientific Publishing Co. Pte. Ltd., Hackensack, NJ, 2008.

\bibitem{BPUU} V. Berestovskii, C. Plaut, Uniform universal covers of uniform spaces, Topology Appl. 154 (2007), no. 8, 1748 - 1777.

\bibitem{BPGG} V. Berestovskii, C. Plaut, C. Stallman, Geometric groups. I. Trans. Amer. Math. Soc. 351 (1999), no. 4, 1403--1422.

\bibitem{Bing} R.H. Bing, Partitioning a set, Bull. Amer. Math. Soc. 55 (1949) 1101 - 1110.

\bibitem{Biss} D. Biss, The topological fundamental group and generalized covering spaces, Topology Appl. 124 (2002) 355 - 371.

\bibitem{BS} W. Bogley, A. Sierdaski, Universal path spaces, \footnotesize \emph{http://people.oregonstate.edu/$\sim$bogleyw/research/ups.pdf}\normalsize, unpublished preprint.

\bibitem{BRAZ} J. Brazas, The topological fundamental group and free topological groups. Topology Appl. 158 (2011), no. 6, 779--802.

\bibitem{BD1} N. Brodskiy, J. Dydak, B. Labuz, A. Mitra, Rips complexes and covers in the uniform category, arXiv:0706.3937v3.

\bibitem{BBI} D. Burago, Y. Burago, S. Ivanov, A course in metric geometry. Graduate Studies in Mathematics, 33. American Mathematical Society, Providence, RI, 2001.

\bibitem{CC} J.W. Cannon, G.R. Conner, On the fundamental groups of one-dimensional spaces, Topology Appl. 153 (2006) 2648 - 2672.

\bibitem{PWetal} J. Conant, V. Curnutte, C. Jones, C. Plaut, K. Pueschel, M. Walpole, J. Wilkins, Discrete homotopy theory and critical values of metric spaces, arXiv:1205.2925.

\bibitem{Dydak} J. Dydak, J. Segal, Shape Theory: An Introduction, Lecture Notes in Mathematics, Vol. 688, Springer, 1978.

\bibitem{Fabel} P. Fabel, Metric spaces with discrete topological fundamental group, Topology Appl. 154 (2007), no. 3, 635 - 638.

\bibitem{Fabel2} P. Fabel, Multiplication is discontinuous in the Hawaiian earring group (with the quotient topology). Bull. Pol. Acad. Sci. Math. 59 (2011), no. 1, 77--83.

\bibitem{FZ} H. Fischer, A. Zastrow, Generalized universal covering spaces and the shape group, Fund. Math. 197 (2007), 167 - 196.

\bibitem{FZ2} H. Fischer, A. Zastrow, The fundamental groups of subsets of closed surfaces inject into their first shape groups. Algebr. Geom. Topol. 5 (2005), 1655--1676 (electronic).

\bibitem{FRVZ} H. Fischer, D. Repov\u{s}, Z. Virk, A. Zastrow, On semilocally simply connected spaces, Topology Appl. 158 (2011), 397 - 408.

\bibitem{Moise} E. Moise, Grille decomposition and convexification theorems for compact locally connected continua, Bull. Amer. Math. Soc. vol. 55 (1949) 1111 - 1121.

\bibitem{MM} J.W. Morgan, I. Morrison, A Van Kampen theorem for weak joins, Proc. London Math. Soc. (3) 53 (1986), 562 - 576.

\bibitem{PTM} A. Pakdaman, H. Torabi, B. Mashayekhy, Small loop spaces and covering theory of non-homotopically Hausdorff spaces, Topology Appl. 158 No. 6 (2011), 803 - 809.

\bibitem{PW1} C. Plaut, J. Wilkins, Discrete homotopies and the fundamental group, arXiv:1205.1137.

\bibitem{PW2} C. Plaut, J. Wilkins, Gromov-Hausdorff convergence of regular covering maps, in preparation.

\bibitem{deS} B. de Smit, The fundamental group of the hawaiian earring is not free, Internat. J. Algebra Comput. 2 (1992), no. 1, 33 - 37.

\bibitem{SW1} C. Sormani, G. Wei, Hausdorff convergence and universal covers, Trans. Amer. Math. Soc. 353 (2001), no. 9, 3585 - 3602.

\bibitem{SW2} C. Sormani, G. Wei, The covering spectrum of a compact length space, J. Differential Geom. 67 (2004), no. 1, 35 - 77.

\bibitem{SW4} C. Sormani, G. Wei, The cut-off covering spectrum, Trans. Amer. Math. Soc. 362 (2010), no. 5, 2339 - 2391.

\bibitem{S} E. Spanier, Algebraic topology, Springer-Verlag, New York-Berlin, 1981. ISBN: 0-387-90646-0

\bibitem{V} Z. Virk, Small loop spaces, Topology Appl. 157 (2010), no. 2, 451 - 455.

\bibitem{W2} J. Wilkins,``Discrete Geometric Homotopy Theory and Critical Values of Metric Spaces." dissertation, Univ. of Tennessee, 2011. $http://trace.tennessee.edu/utk\underline{ \ }graddiss/1039$

\end{thebibliography}