Commensurability of graph products
Tadeusz Januszkiewicz
Jacek \'Swi\c atkowski
20F65
agt-1-30.tex
%%%%%%%%%%%%    Algebraic and Geometric Topology: agt-1-30.tex  %%%%%%%%
%%%%        
%%%%                  Commensurability of graph products     
%%%%          
%%%%                        Tadeusz Januszkiewicz
%%%%  
%%%%               Published in Volume 1(2001) pages 587-603
%%%%
%%%%                   Publication date 26 October 2001
%%%%
%%%%                       This is a plain TeX file
%%%%
%%%%
%%%%%%%%%%%%%%%%%%                                   %%%%%%%%%%%%%%%%%%%
\input gtmacros
\input agtout
\lognumber{30}
\volumenumber{1}
\volumeyear{2001}
\papernumber{30}
\pagenumbers{587}{603}
\received{7 April 2001}
\revised{17 October 2001}
\accepted{22 October 2001}
\published{26 October 2001}



\title{Commensurability of graph products}
\authors{Tadeusz Januszkiewicz\\Jacek \'Swi\c atkowski}
\coverauthors{Tadeusz Januszkiewicz\\Jacek \noexpand\'Swi\noexpand\c atkowski}
\asciiauthors{Tadeusz Januszkiewicz\\Jacek Swiatkowski}
\address{Instytut Matematyczny Uniwersytetu 
Wroc\l awskiego\\(TJ: and IM PAN)\\
pl. Grunwaldzki 2/4; 50-384 Wroc\l aw, Poland}
\asciiaddress{Instytut Matematyczny Uniwersytetu 
Wroclawskiego\\(TJ: and IM PAN)\\
pl. Grunwaldzki 2/4; 50-384 Wroclaw, Poland}
\email{tjan@math.uni.wroc.pl, swiatkow@math.uni.wroc.pl}


\keywords {Graph products, commensurability}

\abstract
We define graph products of families of pairs of groups
and study the question when two such graph products are commensurable.
As an application we prove linearity of certain graph products.
\endabstract

\primaryclass{20F65}
\secondaryclass{57M07}


\maketitle



%Instytut Matematyczny Uniwersytetu Wroc\l awskiego and IM PAN
%Instytut Matematyczny Uniwersytetu Wroc\l awskiego

\reflist

\key{BH} {\bf M. Bridson, A. Haefliger},
{\it Metric Spaces of Nonpositive Curvature},
Springer, 1999.

\key{B1} {\bf M. Bourdon}, 
{\it Sur les immeubles fuchsiennes et leur type de quasi-isom\'etrie},
Ergod. Th. and Dynam. Sys. 20 (2000),  343-364.

\key{B2} {\bf M. Bourdon}, 
{\it Sur la dimension de Hausdorff de l'ensemble limite d'une familie
de sous-groupes convexes co-compactes},
C. R. Acad. Sci. Paris, t. 325, Serie I (1997), 1097-1100.

\key{D} {\bf M. Davis}, 
{\it Buildings are $CAT(0)$},
in: Geometry and cohomology in group theory (Durham 1994),
Cambridge UP, 1998.

\key{DJ} {\bf M. Davis, T. Januszkiewicz},
{\it Right angled Artin groups are commensurable 
with right-angled Coxeter groups},
J. of Pure and Appl. Algebra 153 (2000), 229-235.

\key{HW} {\bf T. Hsu, D. Wise},
{\it On linear and residual properties of graph products},
Michigan. Math. 46 (1999), 251-259.

\key{Hu}{\bf} {\bf S. P. Humphries},
{\it On representations of Artin groups and the Tits Conjecture}
J. of Algebra 169 (1994), 847-862.


\key{L} {\bf F. T. Leighton},
{\it Finite common coverings of graphs},
J. Comb. Theory (Ser. B) 33 (1982), 231-238.

\key{W} {\bf K. Whyte}, {\it Amenability, Bilipschitz Equivalence,
and the Von Neumann Con\-jecture},  Duke J. Math. 99 (1999), 93-112. 

\endreflist




Graph products are  useful and pretty generalizations of both products and 
free products, intimately linked with right-angled buildings. Part of their 
appeal is their generality: they can be studied in any category with products 
and direct limits.

The question that motivated the present paper was 
``when are the graph products of two families of groups commensurable". 
The inspiration came from a special case considered in [\ref{DJ}] and from a 
conversation with Marc Bourdon on linearity of certain lattices in 
automorphism groups of right-angled buildings.

Here is an answer to the simplest version of this question. 
Recall  first that 
two groups $G, G^\ast$ are {\sl commensurable} if there is a  group $H$
isomorphic to a subgroup of finite index in both $G$ and $G^\ast$;
they are {\sl strongly commensurable} if $H$ has the 
same index in both $G$ and  $G^\ast$.

\proclaim{Theorem 1} 
Let $\Gamma$ be a finite graph, $(G_v)_{v\in V}$, $(G^\ast_v)_{v\in V}$ 
be two families of groups indexed by the vertex set of $\Gamma$.  
Suppose that for every $v\in V$, $G_v$ and $G^\ast_v$ are strongly 
commensurable with the common subgroup $H_v$. 
Then the graph products ${\bf G}=\Pi_{\Gamma}(G_v)_{v\in V}$,
and ${\bf G}^\ast=\Pi_{\Gamma}(G^\ast_v)_{v\in V}$ are strongly 
commensurable: they share a subgroup of index $\Pi_v [G_v:H_v]$.
\endproc

We will prove a slightly more general result
on graph products of pairs of groups.
The proof uses two complementary descriptions
of right-angled building on which a graph product acts.
One of them allows an easy identification of the group acting as 
the graph product, the other allows to compare subgroups.

Theorem 1 and its stronger version formulated in
Section 4 (Corollary 4.2) have several interesting 
special cases discussed in Section 5.


\rk{Acknowledgements}

We would like to thank Marc Bourdon for a conversation 
which inspired this paper, Mike Davis and Jan Dymara for useful comments,
John Meier for directing us to Hsu-Wise paper and \'Swiatos\l aw Gal
for extensive help with the final version of the manuscript.

Both authors were supported by a KBN grant 5 P03A 035 20.

\section{Graph products of pairs}

\rk{Graphs}
A {\it graph} $\Gamma$ on the vertex set $V=V(\Gamma)$ is an antireflexive 
symmetric relation on $V$. Thus our graphs have no loops
and there is at most one undirected edge between two vertices.
Graphs considered in this paper are always finite.

A {\it full subgraph} $\Gamma^+<\Gamma$ on vertices $W\subset V$
is the restriction of the relation to $W$.

A graph is {\it complete} if there is an edge between any two vertices.

A {\it map of graphs} 
$f:\Gamma \to \Gamma^*$ is an injection of sets of vertices
with the property that if there is an edge between $v,w$
then there is an edge between $f(v),f(w)$. 
Thus our maps of graphs are inclusions.

\rk{Graph products}
Let $\Gamma$ be a finite graph, with vertex set $V$.
Suppose for each $v\in V $ one is given a pair of groups $A_v<G_v$. 
For $S$, a complete subgraph of $\Gamma$, define $G_S= 
\Pi_{v\in S}G_v \times \Pi_{v\in V\setminus S}A_v$.
The family of groups $G_S$ together with obvious inclusions
on factors of products gives a direct system of groups
directed by the poset $\cal P$ of complete subgraphs in $\Gamma$,
empty set and singletons included ($G_\emptyset= \Pi_v A_v; 
G_{\{v\}}=G_v\times \Pi_{w\in V\setminus \{v\}}A_w$).

The direct limit of this system
$${\bf G}= \lim\,(G_S)_{S\in{\cal P}} =
\Pi_\Gamma (G_v, A_v)$$
is called {\sl the graph product along $\Gamma$ of the family
of pairs $(G_v, A_v)$.}
To keep notation simple we will denote it for most of the time by
$\bf G$. Note that for $A_v=\{e\}$ we obtain ordinary graph products.

\rk{Graph products are functorial}
If $g: \Gamma\to \Gamma^*$ is a map of graphs, 
and if there is a family of group homomorphisms 
$\omega_v:G_v\to G_{g(v)}^*$, such that $\omega_v(A_v)<A^*_{g(v)}$
then we have induced maps
$\omega_S: G_S\to G^*_{g(S)}$ 
which clearly commute with the maps of direct systems
and consequently induce a homomorphism
$$\omega: {\bf G}\to {\bf G^*}.$$
If $g$ is a surjection on the vertices and 
$\omega_v$ are all surjections, so is the induced homomorphism $\omega$.
If $g$ is an embedding onto a full subgraph and  
$\omega_v$ are injections, so is the induced homomorphism.


\proc{Remark}\key{1.3}%
\rm It follows from functoriality above that if 
$\Gamma$ is a full subgraph of $\Gamma^*$ then graph product of any 
family of pairs along $\Gamma^*$ contains as a subgroup the graph product 
of that family of pairs restricted to $\Gamma$.
In particular, groups $G_S$ inject into $\bf G$.
Thus we can (and will) consider $G_S$ as subgroups of $\bf G$.
\endproc

\rk{Presentations}Graph products can be given in terms of
generators and relations. Suppose that each group $G_v$ is given
by presentation $\langle S_v|R_v  \rangle$ and that $\Sigma_v$
is a set of generators for the subgroup $A_v$ expressed in
terms of generators in $S_v$. Then the graph product
${\bf G}=\Pi_\Gamma(G_v,A_v)$ is given by the presentation
$\langle \cup_{v\in V}S_v| \cup_{v\in V}R_v \cup C  \rangle$,
where $C$ consists of commutators $\{sts^{-1}t^{-1}\}$
whenever $s\in S_v$, $t\in S_w$ and there is an edge between $v$ 
and $w$ in $\Gamma$, or whenever $s\in S_v$, $t\in\Sigma_w$
for some $v\ne w$. 

\rk{Examples}
\items
\item{(1)} Graph product of pairs $\Pi_\Gamma(G_v,A_v)$ along a
complete graph $\Gamma$ is the (direct) product $\Pi_{v\in V}G_v$.
\item{(2)} If $\Gamma$ is an empty graph (i.e. an empty relation
on the vertex set $V$) then the graph product $\Pi_\Gamma(G_v,A_v)$
is the free product of groups 
$G_{\{v\}}=G_v\times \Pi_{w\in V\setminus\{v\}}A_w$
amalgamated along their common subgroup $G_\emptyset=\Pi_{v\in V}A_v$.
\item{(3)} Graph products (with trivial subgroups $A_v$)
of infinite cyclic groups are called
right-angled Artin groups.
\item{(4)} Graph products of cyclic groups of order 2 are called
right-angled Coxeter groups (i.e. Coxeter groups with exponents
2 or $\infty$ only).
\enditems

\eject

\section{The complex $D_{\bf G}$}



\rk{Description of $D_{\bf G}$}
Let $P$ be the realization of the poset $\cal P$ of complete subgraphs 
in $\Gamma$ i.e. the simplicial complex with the vertex set $\cal P$ 
and with simplices corresponding to flags  (i.e. linearly ordered subsets) 
of $\cal P$. For each $S\in{\cal P}$ let
$P_S$ be the subcomplex of $P$ spanned by those vertices $S'\in{\cal P}$
which contain $S$. Note that the poset of subcomplexes $P_S$ with
the reverse inclusion is isomorphic to the poset $\cal P$.
Define a simplicial complex $D_{\bf G}={\bf G}\times P/\sim$ 
where 
the equivalence relation is given by
$(g_1,x_1)\sim(g_2,x_2)$ iff for some $S\in{\cal P}$ we have
$x_1=x_2\in P_S$ and $g_1^{-1}g_2\in G_{S}\subset{\bf G}$.
We denote the point in $D_{\bf G}$ corresponding to a pair $(g,x)\in
{\bf G}\times P$ by $[g,x]$. 
Group $\bf G$ acts on the complex 
$D_{\bf G}$ on the left by $g\cdot[g',x]=[gg',x]$.
 

One should keep in mind that the complex $D_{\bf G}$ depends on 
the description of the group as a graph product, rather than on 
the group only. 




\proclaim{Remark} 
\rm The $\bf G$ action on $D_{\bf G}$ need not be 
effective. Its kernel is the product  $\Pi N_v<\Pi A_v$,
where $N_v$ is the intersection of all $G_v$ conjugates of $A_v$.
Dividing by the kernel of the action is geometrically sound and gives 
the {\sl reduced graph product of pairs}.
For example if all $A_v$ are normal the reduced graph product is 
just the graph product of quotients.
\endproclaim

\rk{Complex of groups ${\bf G}({\cal P})$}
Denote by ${\bf G}(\cal P)$ the simple complex of groups (in the sense
of [\ref{BH}], Chapter II.12) over the poset $\cal P$ defined by the directed
system $(G_{S})_{S\in{\cal P}}$ of groups. In view of the injectivity
discussed in Remark \ref{1.3}, 
Theorems 12.18, 12.20 and Corollary 12.21 of [\ref{BH}] 
imply:

\proc{Proposition}\key{2.4}%
The simplicial complex $D_{\bf G}$ is isomorphic to the development of the 
complex of groups ${\bf G}(\cal P)$ corresponding to the family 
$(i_S)_{S\in{\cal P}}$ of canonical inclusions 
$i_S:G_{S}\to{\bf G}$ into the direct limit. In particular
$D_{\bf G}$ is connected and simply connected.

Moreover the complex of groups associated to the action of $\bf G$
on $D_{\bf G}$ coincides with ${\bf G}(\cal P)$.
\endproc

\rk{$D_{\bf G}$ is a building} 
The complex $D_{\bf G}$ is well known and is sometimes called the 
right-angled building associated to a graph product 
${\bf G}$, see [\ref{D}, Section 5] and [\ref{BH}] (section 12.30 (2)).
It is indeed a Tits building whose appartments are Davis complexes of the 
(right-angled) Coxeter group which is the graph product of $Z_2$'s along 
$\Gamma$. 

\section{Another description of $\bf G$ and $D_{\bf G}$}

\rk{Associated graph product along the complete graph}
Given a finite graph $\Gamma$ on the vertex set $V$ and
a graph product ${\bf G}=\Pi_\Gamma(G_v,A_v)$,
denote by ${\bf G}^c$ the 
graph product of pairs $(G_v,A_v)$ along the complete graph $\Gamma^c$
on the vertex set $V$. 
Put $\omega^c:{\bf G}\to{\bf G}^c$ to be the homomorphism
given by functoriality discussed in Section 1 
and note that $\omega^c$ is surjective.

Let ${\cal P}^c$ be the
poset of complete subgraphs in $\Gamma^c$ (including singletons
and the empty graph) and let $P^c$ be
its realization. The inclusion $\Gamma\to\Gamma^c$ clearly induces
an injective simplicial map $p^c:P\to P^c$ (where $P$ is the realization
of the corresponding poset for $\Gamma$).

\rk{Complex $\Delta_{\bf G}$ and group $\widetilde G$}
Let $D_{{\bf G}^c}$ be the simplicial complex associated to
the graph product ${\bf G}^c$ as in Section 2. 
Denote by $\pi^c:D_{{\bf G}^c}\to P^c$ the simplicial map 
induced by the projection ${\bf G}^c\times P^c\to P^c$.
Put $\Delta_{\bf G}:=
(\pi^c)^{-1}(p^c(P))$ and note that, since the action of 
${\bf G}^c$ on $D_{{\bf G}^c}$ commutes with $\pi^c$,
the subcomplex $\Delta_{\bf G}\subset D_{{\bf G}^c}$ 
is invariant under this action. Thus we will speak about
the (restricted) action of ${\bf G}^c$ on $\Delta_{\bf G}$.
Consider the universal cover $\widetilde{\Delta_{\bf G}}$ 
of $\Delta_{\bf G}$, with
the action of the group $\widetilde G$ which is the  
extension (induced by the covering 
$\widetilde{\Delta_{\bf G}}\to\Delta_{\bf G}$) 
of the group ${\bf G}^c$ by 
the fundamental group $\pi_1(\Delta_{\bf G})$. 

\proc{Theorem}\key{3.3}% 
Groups $\widetilde G$ and $\bf G$ are isomorphic,
simplicial complexes $D_{\bf G}$ and 
$\widetilde {\Delta_{\bf G}}$ are equivariantly isomorphic
and the homomorphism $\widetilde G \to {\bf G}^c$ 
induced by the covering $\widetilde{\Delta_{\bf G}}
\to\Delta_{\bf G}$
coincides with the map
$\omega^c:{\bf G} \to {\bf G}^c$. 
\endproc

\prf
Let $f:D_{\bf G}\to \Delta_{\bf G}\subset D_{{\bf G}^c}$ be defined by
$f([g,x])=[\omega^c(g),p^c(x)]$.
This map is easily seen to be surjective and $\omega^c$-equivariant. 
It induces then a morphism $f_*:{\bf G}\backslash\backslash D_{\bf G}\to
{\bf G}^c\backslash\backslash \Delta_{\bf G}$ 
between the complexes of groups
${\bf G}\backslash\backslash D_{\bf G}$ and
${\bf G}^c\backslash\backslash \Delta_{\bf G}$ 
associated to the actions of $\bf G$ on
$D_{\bf G}$ and of ${\bf G}^c$ on $\Delta_{\bf G}$ 
as in [\ref{BH}].


Observe that for a vertex $[g,S]\in D_{\bf G}$ the 
isotropy subgroup of $\bf G$ at $[g,S]$ can be described as 
$\hbox{Stab}({\bf G},[g,S])=gG_Sg^{-1}$.
By substituting $\bf G$ with ${\bf G}^c$ in this observation
we see that the homomorphism 
$\omega^c:{\bf G}\to {\bf G}^c$
maps stabilizers in $D_{\bf G}$ isomorphically to stabilizers
in $D_{{\bf G}^c}$ and hence also in $\Delta_{\bf G}$. The morphism $f_*$
is then isomorphic on local groups. Since moreover the map
between the underlying spaces (quotient spaces of the corresponding
actions) associated to the morphism $f_*$ is a bijection, it follows that
$f_*$ is an isomorphism of complexes of groups.

Let $u:\widetilde{\Delta_{\bf G}}\to \Delta_{\bf G}$ 
be the universal covering map.
As before, by natural equivariance, this map induces a morphism
$u_*:{\widetilde G}\backslash\backslash \widetilde{\Delta_{\bf G}}\to
{\bf G}^c\backslash\backslash \Delta_{\bf G}$ between the complexes of
groups associated to the corresponding actions. 
It follows then from local injectivity of $u$ that the stabilizers
of $\widetilde G$ in $\widetilde{\Delta_{\bf G}}$ are mapped
isomorphically (by the homomorphism $\widetilde G\to{\bf G}^c$ associated
to the covering) to the stabilizers of ${\bf G}^c$ in $\Delta_{\bf G}$,
hence $u_*$ is isomorphic on local groups.
Combining this with equality of the underlying quotient complexes
(which follows directly from the description of $\widetilde G$)
we see that $u_*$ is also an isomorphism of complexes of groups.

Now, since both complexes $D_{\bf G}$ and $\widetilde{\Delta_{\bf G}}$
are connected and simply connected, it follows that they are both
equivariantly isomorphic to the universal covering of the complex
of groups $\Pi_{v\in V}G_v\backslash\backslash \Delta_{\bf G}$ 
acted upon by the fundamental group of this complex of groups. 
Thus the theorem follows. 
\endprf

 
\rk{Complex $C{\cal X}$}
Consider the family ${\cal X}=(X_v)_{v\in V}$
of quotients $X_v=G_v/A_v$. Denote by $\cal C$ the poset
consisting of all subsets $Y$ in the disjoint union $\cup{\cal X}$
having at most one common element with each of the sets $X_v$. 
We assume that the empty set $\emptyset$ is also in $\cal C$.
Put $C{\cal X}$ to be the realization of the poset $\cal C$
i.e. a simplicial complex with simplices corresponding to linearly
ordered subsets of $\cal C$. 
Alternatively, $C{\cal X}$ is the simplicial cone
over the barycentric subdivision of the join of the family $\cal X$. 

The complex $C{\cal X}$ carries the action of the group $\Pi_{v\in V}G_v$
induced from actions of the groups $G_v$ on the sets $X_v$ (from the left). 


\proc{Proposition}\key{3.5}%
The action of ${\bf G}^c$ on the associated 
complex $D_{{\bf G}^c}$ 
is equivariantly isomorphic to the action of $\Pi_{v\in V}G_v$ on $C{\cal X}$.
\endproc

\prf
We will construct a simplicial isomorphism $c:D_{{\bf G}^c}\to C{\cal X}$
as required, defining it first on vertices. Let $[g,S]\in D_{{\bf G}^c}$
be a vertex where $g=\Pi g_v\in\Pi G_v$, $g_v\in G_v$, and $S\subset V$.
Put $$c_0([g,S]):=\{g_vA_v:v\in V\setminus S\}$$ and notice the following
properties:
\items
\item{(1)} for any vertex $[g,S]$ of $D_{{\bf G}^c}$ its image
$c_0([g,S])$ is a well defined vertex in $C{\cal X}$;
\item{(2)} $c_0$ defines a bijection between the vertex sets of
the complexes $D_{{\bf G}^c}$ and $C{\cal X}$;
\item{(3)} both $c_0$ and $c_0^{-1}$ preserve the adjacency relation 
on the vertex sets in the corresponding complexes (where two vertices
are called {\sl adjacent} when they span a 1-simplex).
\enditems

Note that, by definition, both complexes $D_{{\bf G}^c}$ and
$C{\cal X}$ have the following property: each set of pairwise
adjacent vertices in the complex spans a simplex of this complex
(complexes satisfying this property are often called flag complexes).
This property, together with properties (2) and (3) above, imply
that the map $c_0$ induces a simplicial isomorphism 
$c:D_{{\bf G}^c}\to C{\cal X}$.

Now, if $g'=\Pi g_v'\in {\bf G}^c=\Pi G_v$, with $g_v'\in G_v$, we have
$$\eqalign{
g'\cdot c([g,S])&=g'\cdot\{g_vA_v:v\in V\setminus S\}=
\{g_v'g_vA_v:v\in V\setminus S\}\cr
&=c([g'g,S])=c(g'\cdot [g,S]),\cr}
$$
and hence $c$ is equivariant.\endprf

\rk{Alternative description of $\Delta_{\bf G}$}
Denote by $Q$ the quotient of the action of $\Pi_{v\in V}G_v$ on
$C{\cal X}$, and by $q:C{\cal X}\to Q$ the associated quotient map.
$Q$ is easily seen to be the simplicial cone over the barycentric 
subdivision of the simplex spanned by the indexing set $V$ of
the family $\cal X$. Observe now that the equivariant isomorphism
$c:D_{{\bf G}^c}\to C{\cal X}$ of Proposition \ref{3.5} induces an
isomorphism $\varepsilon:P^c\to Q$ of the quotients, and thus we 
have $q\circ c=\varepsilon\circ\pi^c$. In fact $\varepsilon$
is given on vertices by $\varepsilon(S)=V\setminus S$.
Define the map $\delta:P\to Q$ by $\delta:=\varepsilon\circ p^c$. 
Proposition \ref{3.5} implies then the following.

\proc{Corollary}\key{3.6.1}The subcomplex $q^{-1}(\delta(P))\subset 
C{\cal X}$ is invariant under the action of the group $\Pi_{v\in
V}G_v$ and the action of this group restricted to this subcomplex is
equivariantly isomorphic to the action of ${\bf G}^c$ on $\Delta_{\bf
G}$.
\endproc

Slightly departing from the main topic of the paper, we give the
following interesting consequence of Theorem \ref{3.3}.

\proc{Corollary}\key{3.7}%
A graph product (along any finite graph) of pairs $(G_v, A_v)$
is virtually torsion free iff all $G_v$ are virtually torsion free.
\endproc

\prf Since the groups $G_v$ inject into the graph product
${\bf G}=\Pi_\Gamma(G_v,A_v)$, they are clearly virtually torsion free
if their graph product is. To prove the converse, observe that
by Theorem \ref{3.3} $\bf G$ is a semidirect product of the group
${\bf G}^c=\Pi_{v\in V}G_v$ by the fundamental group $\pi_1(\Delta_{\bf G})$.
Since the space $\Delta_{\bf G}$ is finite dimensional and
aspherical (its universal cover $\widetilde{\Delta_{\bf G}}$ is
isomorphic to the Davis' realization of a building, and hence
contractible, see [\ref{D}]), its fundamental group is torsion free
and the corollary follows.
\endprf

\section{Large common subgroups and the proof of Theorem 1}

\rk{Subgroups}
Let $(G_v, A_v)$ and $(G^*_v, A^*_v)$ be two families of pairs 
of groups. Denote by $\bf G$ and $\bf G^*$ the corresponding graph products of 
pairs along the same graph $\Gamma$, and by ${\bf G}^c$ and $({\bf G^*})^c$
the corresponding graph products along the complete graph 
$\Gamma^c$.
Let $\omega^c:{\bf G}\to{\bf G}^c$ and 
$(\omega^*)^c:{\bf G^*}\to({\bf G^*})^c$
be the homomorphisms induced by functoriality from the inclusion map
$\Gamma\to\Gamma^c$.

For each $v\in V$ let $H_v < G_v$ and $H_v^*< G^*_v$ be arbitrary subgroups.
Denote by ${\bf H}$ and $\bf H^*$ preimages
of subgroups $\Pi H_v<\Pi G_v={\bf G}^c$ and 
$\Pi H^*_v<\Pi G^*_v=({\bf G^*})^c$ under
the maps $\omega^c$ and $(\omega^*)^c$ respectively.

\proc{Theorem}\key{4.2}%
If the left actions of $H_v$ on ${G_v/A_v}$
and of $H_v^*$ on ${G^*_v/A^*_v}$ are equivariantly isomorphic
for all $v\in V$ then the actions of $\bf H$ on $D_{\bf G}$ and
of $\bf H^*$ on  $D_{\bf G^*}$ are equivariantly isomorphic.
In particular the subgroups $\bf H$ and $\bf H^*$ are isomorphic.
\endproc

\prf
Let $\cal X$ and ${\cal X}^*$ be the families of the sets of cosets
for the families $(G_v,A_v)$ and $(G_v^*,A_v^*)$ respectively.
Under assumptions of the theorem, the actions of products
$\Pi H_v$ on $C{\cal X}$ and $\Pi H_v^*$ on $C{\cal X}^*$ are
equivariantly isomorphic. Applying Corollary \ref{3.6.1} we conclude that
the actions of the groups $\Pi H_v$ and $\Pi H_v^*$ on the complexes
$\Delta_{\bf G}$ and $\Delta_{{\bf G}^*}$ respectively are
equivariantly isomorphic.

Denote by $\widetilde H$ and $\widetilde H^*$ the preimages
of the products $\Pi H_v$ and $\Pi H_v^*$ by the homomorphisms
$\widetilde G\to\Pi G_v$ and $\widetilde G^*\to\Pi G_v^*$ 
respectively. It follows that the actions of $\widetilde H$ on
$\widetilde\Delta_{\bf G}$ and of $\widetilde H^*$ on 
$\widetilde\Delta_{\bf G^*}$ are equivariantly isomorphic.
But, due to Theorem \ref{3.3}, these actions are equivariantly isomorphic
to the actions of $\bf H$ on $D_{\bf G}$ and of $\bf H^*$ on
$D_{\bf G^*}$ respectively, hence the theorem.
\endprf

\proc{Corollary}\key{4.3}%
Let $(G_v, A_v)$ and $(G^*_v, A^*_v)$ be two 
families of group pairs indexed by the vertex set $V$ of a finite 
graph $\Gamma$.
Suppose that for all $v\in V$ there exist subgroups  $H_v<G_v$ and 
$H^*_v<G^*_v$ of finite index,
such that the left actions of $H_v$ on $G_v/A_v$ and of  $H^*_v$ on 
$G^*_v/A^*_v$ are equivariantly isomorphic. Then the graph products 
${\bf G}=\Pi_\Gamma(G_v,A_v)$ and ${\bf G^*}=\Pi_\Gamma(G_v^*,A_v^*)$ are
commensurable.
\endproc

\prf According to Theorem \ref{4.2} the groups $\bf G$ and $\bf G^*$
share a subgroup ${\bf H}={\bf H^*}$, which is of finite index in
both of them.
\endprf

\proof{Proof of Theorem 1} Under assumptions of Theorem 1
the left actions of the group $H_v$ on $G_v$ and on $G_v^*$ are
clearly equivariantly isomorphic. Then by Corollary \ref{4.3} 
the graph products
$\Pi_\Gamma G_v$ and $\Pi_\Gamma G_v^*$ share a subgroup $\bf H$
which is easily seen to be of index $\Pi_{v\in V}[G_v:H_v]$
in both graph products. 
\endprf

\section{Applications, examples and comments}

\sh{Is strong commensurability a necessary assumption in Theorem 1?} 

Considering free products $Z_2*Z_2$ and $Z_3*Z_3$ shows that one needs a 
hypothesis stronger than commensurability to guarantee commensurability of 
graph products. 
A more delicate example is provided by a family  of graph products along
the pentagon, where at each vertex we put the group $Z_p$.
Bourdon computes in [\ref{B1}] an invariant (conformal dimension at infinity) 
of the hyperbolic groups arising in this way.
His invariant shows that 
as $p$ varies, the graph products are not even quasiisometric,
hence noncommensurable.

A more subtle reason for noncommensurability occurs for free products 
of surface groups. According to Whyte [\ref{W}], the groups
$M_g*M_g$ and $M_h*M_h$ are quasiisometric if $g,h\ge 2$. 
On the other hand, we have the following well known fact.

\proc{Lemma}\key{5.1.1}%
Free products $M_g*M_g$ and $M_h*M_h$ of 
surface groups are not commensurable if $g\ne h$. 
\endproc

\prf
Recall that Kurosh theorem asserts that
if $N$ is a subgroup of finite index $i$ in $L_1*L_2$,
then $N$ is a free product 
$$N_1*N_2*\dots*N_k*F_l,$$ 
where each $N_j$ is a subgroup of finite index in either $L_1$ or $L_2$,
$F_l$ is a free group of rank $l$ and moreover $i=k+l-1$.
Now assume $L_1, L_2$ are fundamental groups of orientable 
aspherical manifolds of the same dimension $m$ (e.g. surface groups). 
One readily sees that $k=b^m(N)=rank H^m(N, Z)$
while $l$ is the rank  of the kernel in $H^1(N, Z)$ 
of the cup product $H^1(N, Z)\times H^{m-1}(N, Z)\to H^m(N, Z)$
interpreted as a bilinear form.
Hence if one knows $N$, one knows the index of $N$
as a subgroup in $L_1*L_2$. This implies that if the free products 
$L_1*L_2$ and $L_1'*L_2'$ of two such group pairs are commensurable
they are strongly commensurable. 

Now, if $g\ne h$ then the groups $M_g*M_g$ and $M_h*M_h$ are not strongly
commensurable, because they have different Euler characteristics.
It follows that these groups are not commensurable.  
\endprf

\sh{Commensurability of graph products as transformation groups}

As it is shown in Section 1, to each graph product $\bf G$ of group pairs
there is associated a right-angled building $D_{\bf G}$ on which $\bf G$
acts canonically by automorphisms. Such buildings corresponding
to different groups $\bf G$ may sometimes be isomorphic. In particular
we have:

\proc{Lemma}\key{5.2.1}%
Let $(G_v,A_v)_{v\in V}$ and $(G_v^*,A_v^*)_{v\in V}$
be two families of groups and subgroups, indexed by a finite set $V$.
Suppose that for each $v\in V$ the indices (not necessarily finite)
$[G_v:A_v]$ and $[G_v^*:A_v^*]$ are equal. Then for any graph $\Gamma$
on the vertex set $V$ the buildings $D_{\bf G}$ and $D_{{\bf G}^*}$
associated to the graph products ${\bf G}=\Pi_\Gamma(G_v,A_v)$
and ${\bf G}^*=\Pi_\Gamma(G_v^*,A_v^*)$ are isomorphic.
\endproc

\prf Observe that, under assumptions of the lemma, the
complexes $D_{{\bf G}^c}$ and $D_{({\bf G}^*)^c}$, and hence also
their subcomplexes $\Delta_{\bf G}$ and $\Delta_{{\bf G}^*}$,
are isomorphic. Since by Theorem \ref{3.3} the buildings $D_{\bf G}$
and $D_{{\bf G}^*}$ are the universal covers of the complexes
$\Delta_{\bf G}$ and $\Delta_{{\bf G}^*}$, the lemma follows.
\endprf

Call two graph products {\sl commensurable as
transformation groups} if their associated buildings are isomorphic
and if they contain subgroups of finite index whose actions
on the corresponding buildings are equivariantly isomorphic.
The arguments we give in this paper show that the graph products 
satisfying our assumptions  are
not only commensurable but also commensurable as transformation groups
(see Theorem \ref{4.2}). 
Closer examination of these arguments shows
that the strong commensurability condition of Theorem 1 (and a more
general condition of Corollary
\ref{4.3}) is not only sufficient, but also necessary for two graph products
of groups (of group pairs respectively) to be commensurable as transformation 
groups. The details of this argument are not completely immediate
but we omit them.


\sh{Special cases of Theorem 1} 
Theorem 1 has interesting special cases resulting from various examples
of strongly commensurable groups. The simplest class of examples is
given by finite groups of equal order. Thus:

\proc{Corollary}\key{5.3.1}%
Let $(G_v)_{v\in V}$ and $(G_v^*)_{v\in V}$ be
two families of finite groups indexed by the vertex set $V$ of a finite
graph $\Gamma$. Suppose that for each $v\in V$ we have
$|G_v|=|G_v^*|$. Then the graph products $\Pi_\Gamma G_v$
and $\Pi_\Gamma G_v^*$ are strongly commensurable.
\endproc

The infinite cyclic group $Z$ and the infinite dihedral group $D_\infty$
are strongly commensurable since they both contain an infinite cyclic
subgroup of index two. Thus a graph product of infinite cyclic groups
(right-angled Artin group)
is commensurable with the corresponding graph product of infinite
dihedral groups which is a right-angled
Coxeter group. 
Thus we reprove a result from [\ref{DJ}]:


\proc{Corollary}\key{5.3.2}%
Right angled Artin groups are commensurable with 
right-angled Coxeter groups.
\endproc

A source of strongly commensurable groups is given by subgroups
of the same finite index in some fixed group. The intersection of
two such subgroups has clearly the same finite index in both of them.
As an example of this kind consider a natural number $g\ge2$ and
a tessellation of the hyperbolic plane $H^2$ by regular $4g$-gons with all 
angles equal to $\pi/2g$ (so that $4g$ tiles meet at each vertex). 
Let $T$ be the group of all symmetries of this tessellation
and $W_g<T$ be the Coxeter group generated by reflections in sides
of a fixed $4g$-gon. Consider also the fundamental group $M_g$
of the closed surface of genus $g$ and note that this group can
be viewed as a subgroup of $T$. Since the groups $W_g$
and $M_g$ have the same fundamental domain in $H^2$ (equal to
a single $4g$-gon) they have clearly the same index in $T$
(equal to $8g$, the number of symmetries of a $4g$-gon) and
hence are strongly commensurable.
Since graph products of Coxeter groups are again Coxeter groups, 
Theorem 1 implies:

\proc{Corollary}\key{5.3.3}Graph products of surface groups are
commensurable with Coxeter groups. \endproc


Pairs of subgroups of the same finite index in a given group
(being thus strongly commensurable) are applied also in the following.

\proc{Proposition}\key{5.3.4}Graph products of arbitrary subgroups 
of finite index in right-angled Coxeter groups are commensurable with
right-angled Coxeter\break groups.
\endproc

\prf 
Since  graph products of right-angled
Coxeter groups remain in this class, 
it is sufficient to show that 
a finite index subgroup
in a right-angled Coxeter group $W$ is strongly commensurable with
another right-angled Coxeter group. This is clearly true for finite
groups, as they are (both groups and subgroups) isomorphic
to products of the group $Z_2$. To prove this for an infinite
group $W$, we will exhibit in $W$ a family $W_n:n\in N$ of subgroups,
indexed by all natural numbers, with $[W:W_n]=n$, 
such that each of the groups $W_n$ is also a right-angled Coxeter group. 

Note that if $W$ is infinite, it contains two generators $t$
and $s$ whose product $ts$ has infinite order in $W$.
Let $D$ be a fundamental domain in the Coxeter-Davis complex
$\Sigma$ of $W$. $D$ is a subcomplex in $\Sigma$ with the 
distinguished set of ``faces", so that reflections with respect to those
faces are the canonical generators of $W$. Since the faces of
the reflections $t$ and $s$ are disjoint, the following complex
$$
D_n:=\cases{D\cup tD\cup stD\cup\dots\cup(st)^kD & if $n=2k+1$ \cr
           D\cup tD\cup stD\cup\dots\cup t(st)^{k-1}D & if $n=2k$ \cr}
$$
is a fundamental domain of a subgroup $W_n<W$ generated by reflections
with respect to ``faces" of this complex. By comparing fundamental
domains we have $[W:W_n]=n$, and the proposition follows.


The algebraic wording of this proof is as follows. An infinite
right angled Coxeter group $(W,S)$ contains an infinite dihedral 
parabolic subgroup$(V,\{s,t\})$. 
The map of $S$ which is the identity on $\{s,t\}$
and sends remaining generators to 1 extends to the homomorphism
$r:W\to V$.The group $V$ contains (Coxeter) subgroups 
generated by $s, (st)^ks(st)^{-k}$ 
and $s, (st)^k t(st)^{-k}$. These have indices $2k, 2k+1$ respectively.
Preimages under $r$ of these subgroups are Coxeter subgroups of $W$
of the same indices.
\endprf

The example discussed just before 
Corollary \ref{5.3.3} generalizes as follows.
Let $(T_v)_{v\in V}$ be a family of topological groups
and let $\Lambda_v\subset T_v$ and $\Lambda_v^*\subset T_v$ 
be two families of lattices such that 
volumes of the quotients  $T_v/\Lambda_v$ and $T_v/\Lambda_v^*$ are
finite and equal for all $v$. Suppose also that for each $v\in V$
there is $t\in T_v$ such that the intersection 
$t^{-1}\Lambda_v t\cap \Lambda_v^*$ has finite index in both 
$\Lambda_v^*$ and the conjugated lattice $t^{-1}\Lambda_v t$.
Then for each $v$ the lattices    $\Lambda_v$ and $\Lambda_v^*$
are strongly commensurable and hence the graph products
$\Pi_\Gamma\Lambda_v$ and $\Pi_\Gamma\Lambda_v^*$ are commensurable
for any graph $\Gamma$ with the vertex set $V$.

For surface groups commensurability condition is a very weak one 
and we have the following: 

\proc{Fact}\key{5.3.5}% 
Let $M$ and $N$ be two 2-dimensional orbifolds which are developable. 
Then their fundamental groups
$G_M$ and $G_N$ are strongly commensurable 
iff the orbifold Euler characteristics of $M$ and $N$ are equal.
\endproclaim

Clearly, Fact \ref{5.3.5} allows to formulate the appropriate result
on commensurability of graph products of 2-orbifold groups.
On the other hand,
combining this fact with Theorem 1 and with the argument based on
Kurosh' theorem (as in the proof of Lemma \ref{5.1.1}) one has:

\proc{Corollary}\key{5.3.6}%
Under assumptions and notation of Fact \ref{5.3.5}
the free products $G_M*G_M$ and $G_N*G_N$ are commensurable iff
the orbifold Euler characteristics of $M$ and $N$ are equal.
\endproc

We now pass to applications that require the full strength of Corollary \ref{4.3} 
rather than that of Theorem 1.

\sh{Orthoparabolic subgroups of Coxeter groups}

Recall that parabolic subgroup of a Coxeter group $W$ is the group
generated by a subset $S'$ of the generating set $S$ for $W$.
An {\it orthoparabolic} subgroup of a Coxeter group $W$ is
a normal subgroup $J=\ker\rho$ for a homomorphism $\rho:W\to P$ 
to a parabolic subgroup $P$ such that $\rho|_P=id_P$.
We say that $P$ is the {\it orthogonal parabolic} of $J$.
Note that a homomorphism $\rho$ as above, and hence also
an orthoparabolic subgroup orthogonal to $P$, does not always exist.

Since the left actions of a group $J$ on itself
and on the cosets $W/P$ are equivariantly isomorphic,
Theorem \ref{4.2} implies:

\proc{Corollary}\key{5.4.1}%
If for each $v\in V$ group $J_v$ is an orthoparabolic
subgroup in a Coxeter group $W_v$, orthogonal to a parabolic subgroup $P_v$,
then the graph product $\Pi_\Gamma J_v$ is a subgroup in the graph
product $\Pi_\Gamma(W_v,P_v)$. This subgroup has finite index iff
the subgroups $P_v$ are finite for all $v\in V$.
\endproc

Applying presentations of graph products from Section 1, 
we see that any graph product
$\Pi_\Gamma(W_v,P_v)$ of pairs of a Coxeter group and its parabolic
subgroup is again a Coxeter group. Thus Corollary \ref{5.4.1} implies:


\proc{Corollary}\key{5.4.2}%
A graph product of orthoparabolic subgroups of finite index
in Coxeter groups is a finite index subgroup 
of a Coxeter group.
\endproc

Finite cyclic groups $Z_p$ are orthoparabolic in the dihedral groups 
$D_p$ (as well as $Z$ in $D_\infty$). This again allows to reprove
(and extend) the result of [\ref{DJ}] (compare  \ref{5.3.2} above):

\proc{Corollary}\key{5.4.3}%
Graph products of cyclic groups (among them
right-angled Artin groups) are subgroups of finite index in Coxeter groups.
\endproc

More generally, the {\it even} subgroup of a Coxeter group is the kernel
of the homomorphism $h:W\to Z_2$ which sends all generators of $W$
to the generator of $Z_2$. For example, triangle groups $T(p,q,r)$
and other rotation groups of some euclidean or hyperbolic tessellations
are the even subgroups of the Coxeter reflections groups related
to these tessalations. 
Since these groups are clearly orthoparabolic we have:

\proc{Corollary}\key{5.4.4}%
Graph products of even subgroups of Coxeter
groups are finite index subgroups in Coxeter groups.
\endproc

Although it is fairly hard to find orthoparabolics in general Coxeter 
groups, they are plentiful in right-angled groups, or more generally in 
groups where all entries of the Coxeter matrix are even.
There, for every parabolic subgroup there exist orthogonal to it
orthoparabolics (usually many different ones).


\sh{Graph products of finite group pairs}

Note first that by combining Corollaries \ref{5.4.3} and \ref{5.3.1} we obtain:

\proc{Corollary}\key{5.5.1}%
Graph products $\Pi_\Gamma G_v$ of finite
groups $G_v$ are commensurable with Coxeter groups.
\endproc

Next, applying Corollary \ref{4.3} with trivial groups $H_v$, we have:

\proc{Corollary}\key{5.5.2}%
Graph products $\Pi_\Gamma(G_v,A_v)$
and $\Pi_\Gamma(G_v^*,A_v^*)$ of finite group pairs are commensurable
if  $[G_v:A_v]=[G_v^*:A_v^*]$ for all $v\in V$.
\endproc

An argument referring to above corollaries and using cyclic groups
of orders $[G_v:A_v]$ proves then the following.

\proc{Corollary}\key{5.5.3}%
Graph products of finite group pairs are
commensurable with Coxeter groups.
\endproc

In the rest of this subsection we prove the following slightly
stronger result, under slightly stronger hypotheses:

\proc{Proposition}\key{5.5.4}%
Let $(G_v,A_v)_{v\in V}$ be a family of
pairs of a finite group and its subgroup. Suppose that the left
action of $G_v$ on the cosets $G_v/A_v$ is effective for each $v\in V$.
Then any graph product $\Pi_\Gamma(G_v,A_v)$
is a subgroup of finite index in a Coxeter group.
\endproc

\prf
Canonical action of each of the groups $G_v$ on the cosets $G_v/A_v$
defines a homomorphism $i_v:G_v\to S_{G_v/A_v}=S_{|G_v/A_v|}$ to
the symmetric group on the set of cosets. By the assumption of the
proposition this homomorphism is injective. Consider a subgroup
$\hbox{Stab}(A_v,S_{G_v/A_v})=S_{|G_v/A_v|-1}$ and note that
$i_v(A_v)\subset \hbox{Stab}(A_v,S_{G_v/A_v})$. It follows that
there is a homomorphism $i:\Pi_\Gamma(G_v,A_v)\to 
\Pi_\Gamma(S_{G_v/A_v},\hbox{Stab}(A_v,S_{G_v/A_v}))=
\Pi_\Gamma(S_{|G_v/A_v|},S_{|G_v/A_v|-1})$ between the graph products.
Now for each $v\in V$ the action of $G_v$ on $G_v/A_v$ is easily
verified to be equivariantly isomorphic (by $i_v$) to the
action of the image group $i_v(G_v)$ on the cosets
$S_{G_v/A_v}/\hbox{Stab}(A_v,S_{G_v/A_v})$. It follows from
Theorem \ref{4.2} that the homomorphism $i$ is injective and it
maps the graph product $\Pi_\Gamma(G_v,A_v)$ to the subgroup
of finite index in the graph product 
$\Pi_\Gamma(S_{|G_v/A_v|},S_{|G_v/A_v|-1})$.

Symmetric group $S_{|G_v/A_v|}$ is a Coxeter group and its subgroup 
$S_{|G_v/A_v|-1}$
is a parabolic subgroup. By the remark before Corollary
\ref{5.4.2} a graph product of symmetric group pairs
is a Coxeter group, and thus the proposition follows.
\endprf

\proclaim{Remark}\rm  Removing in Proposition \ref{5.5.4} the assumption
of effectiveness for the actions of $G_v$ on $G_v/A_v$ one can
obtain a similar conclusion for the reduced graph products of
pairs $(G_v,A_v)$ as defined in Section 2. 
\endproclaim

\sh{Groups of automorphisms of locally finite buildings}

It is an open question (except in dimension 1, [\ref{L}]) 
whether any two groups of automorphisms acting
properly discontinuously and cocompactly on a fixed locally finite
right-angled buildings are commensurable as transformation groups.
The building $D_{\bf G}$ associated to a graph product ${\bf G}=
\Pi_\Gamma(G_v,A_v)$
is locally finite iff the indices $[G_v:A_v]$ are finite for all $v\in V$.
The action of $\bf G$ on $D_{\bf G}$ is then
properly discontinuous iff the groups $G_v$ are all finite.
Furthermore, since we always assume that $\Gamma$ is finite, this
action is automatically cocompact.

We may now ask above question in the restricted class of
appropriate graph products.
By using Lemma \ref{5.2.1} and Corollary \ref{5.5.2} we have:

\proc{Corollary}\key{5.6.1}%
Let ${\bf G}=\Pi_\Gamma(G_v,A_v)$ and
${\bf G}^*=\Pi_\Gamma(G_v^*,A_v^*)$ be two graph products of finite group
pairs along the same graph $\Gamma$. Suppose that for each $v\in V$
we have $[G_v:A_v]=[G_v^*:A_v^*]$. Then the associated
buildings $D_{\bf G}$ and $D_{{\bf G}^*}$ are locally finite and isomorphic,
and the actions on them are properly discontinuous and cocompact.
Moreover, the groups $\bf G$ and ${\bf G}^*$ are commensurable
as transformation groups.
\endproc

\proclaim{Remark}\rm  By looking more closely one can show that the
assumptions of Corollary \ref{5.6.1} are necessary for 
the buildings $D_{\bf G}$
and $D_{{\bf G}^*}$ to be locally finite and isomorphic and to
carry properly discontinuous actions of $\bf G$ and ${\bf G}^*$.
Thus the question discussed in this
subsection has positive answer
in the class of (associated actions of) graph products. 
We omit the details of the argument.
\endproclaim


\sh{Linearity of graph products}

In [\ref{DJ}] it was pointed out that commensurability of right-angled 
Artin groups (i.e. graph products of infinite cyclic groups) and 
right-angled 
Coxeter groups implies linearity of the former:
Coxeter groups are linear and groups commensurable with linear groups  
are linear by inducing representation. By the same argument
graph products of groups from various other classes are linear.
For example, Corollaries \ref{5.3.3} and \ref{5.5.3} imply the following.

\proc{Corollary}\key{5.7.1}Graph products of surface groups 
and graph products of pairs of finite groups are linear. 
\endproc


\proclaim{Remark}\rm Bourdon [\ref{B2}] using an entirely different method 
constructed and studied faithful 
linear representations of certain graph products of cyclic groups.
The target of any of his representations is the Lorenz group $SO(N,1)$ and 
the dimension is much smaller than of
ones constructed for that group using Corollary \ref{5.7.1}.
\endproclaim

Without referring to commensurability we still can conclude 
that graph products of any subgroups in Coxeter groups are linear. 
This follows from
the fact that graph products of Coxeter groups are Coxeter groups.
The similar fact for pairs of Coxeter groups and their parabolic
subgroups implies:

\proc{Corollary}\key{5.7.3}Let $(W_v, P_v)$ be a family of pairs
where $W_v$ are Coxeter groups and $P_v$ are their parabolic
subgroups.  For each $v\in V$ let $H_v$ be a subgroup of $W_v$.  Then
any graph product of the family of pairs $(H_v, H_v\cap P_v)$ is a
linear group.
\endproc

\prf A graph product $\Pi_\Gamma(H_v,H_v\cap P_v)$
is a subgroup of $\Pi_\Gamma(W_v,P_v)$ which is a Coxeter group.
\endprf


After this paper was written we've learned from John Meier
about a paper of T. Hsu and D. Wise [\ref{HW}]. There linearity
of graph products of finite groups was established
by embedding them into Coxeter groups. 
Linearity of right-angled Artin groups has been 
proved by S. P. Humphries [\ref{Hu}].


\references

\Addresses
\recd


\bye


agtout.tex
%%%
%%%  This is agtout.tex.  
%%%
%%%  This the version of  gtoutput.tex  intended to finish formatting
%%%  papers published in Algebriac & Geometric Topology and stored in the
%%%  arXiv.   All versions of  gtoutput.tex  are copyright 
%%%  GT Publications and are to be used _only_ for formatting
%%%  the officially published version of ABT or G&T papers.
%%%
%%%
%%%                                             Colin Rourke  27.102000
%%%
%%%  To create header file  head.xxx  comment out the first \endinput

%  test for latex or plain tex
\def\ifplaintex{\expandafter\ifx\csname documentclass\endcsname\relax}

\def\gtp{{\mathsurround=0pt\it $\cal G\mskip-2mu$eometry \&\ 
$\cal T\!\!$opology $\cal P\!$ublications}}  % GT publications

\def\Addressesr{\bigskip
{\small \parskip 0pt \leftskip 0pt \rightskip 0pt plus 1fil \def\\{\par}
\sl\theaddress\par
\medskip
\rm Email:\stdspace\tt\theemail\hfill\rm Received:\qua\receiveddate \par}}


\def\recd{{\small Received:\qua\receiveddate\ifx\reviseddate\relax
\else\qquad Revised:\qua\reviseddate\fi\par}} 

%  define the various new ingredients of the title page and the data
%  output files

\def\lognumber#1{\def\thelognumber{#1}}
\def\volumenumber#1{\def\thevolumenumber{#1}}
\def\volumeyear#1{\def\thevolumeyear{#1}}
\def\papernumber#1{\def\thepapernumber{#1}}
\def\pagenumbers#1#2{\def\startpage{#1}\def\finishpage{#2}}
\def\published#1{\def\publishdate{#1}}
\def\proposed#1{\def\theproposer{#1}}
\def\seconded#1{\def\theseconders{#1}}
\def\received#1{\def\receiveddate{#1}}
\def\revised#1{\def\reviseddate{#1}}
\def\accepted#1{\def\accepteddate{#1}}
\def\asciititle#1{\def\theasciititle{#1}}
\def\covertitle#1{\def\thecovertitle{#1}}
\def\asciiauthors#1{\def\theasciiauthors{#1}}
\def\asciiaddress#1{\def\theasciiaddress{#1}}
\def\asciiemail#1{\def\theasciiemail{#1}}
\def\coverauthors#1{\def\thecoverauthors{#1}}
\long\def\asciiabstract#1{\long\def\theasciiabstract{#1}}
\def\asciikeywords#1{\def\theasciikeywords{#1}}
\def\isbn#1{\def\theisbn{#1}}
\def\erratum#1{\def\theerratum{non-empty}\def\erratumnumber{#1}}

%  initialise

\let\\\par\let\thelognumber\relax\let\thevolumenumber\relax
\let\thepapernumber\relax\let\thevolumeyear\relax\let\startpage\relax
\let\finishpage\relax\let\publishdate\relax\let\receiveddate\relax
\let\reviseddate\relax\let\accepteddate\relax\let\theasciititle\relax
\let\thecovertitle\relax\let\theasciiauthors\relax\let\theasciiaddress\relax
\let\theasciiabstract\relax\let\theasciikeywords\relax
\let\theproposer\relax\let\theseconders\relax\let\theisbn\relax
\let\thecoverauthors\relax\let\theerratum\relax\let\theasciiemail\relax



%%%% fonts for AGT logo:

\ifplaintex
\font\logobig=cmssbx10 scaled 3836
\font\logomed=cmssbx10 scaled 2557
\else
\font\logobig=cmssbx10 scaled 4200
\font\logomed=cmssbx10 scaled 2800
\fi

\long\def\makeagttitle{   %%% start of definition of \makeagttitle
\count0=\startpage
\agt\hfill      %   Journal title (top left) 
%   logo (top right)
\hbox to 45truept{\vbox to 0pt{\vglue -13truept{\logomed A\kern -.37em{\logobig 
T}\kern -.38em G}\vss}\hss}
%
\break
{\small Volume \thevolumenumber\ (\thevolumeyear)
\startpage--\finishpage\nl
Published: \publishdate}

\vglue .25truein

% title
{\parskip=0pt\leftskip 0pt plus
1fil\def\\{\par\smallskip}{\Large\bf\thetitle}\par\medskip} \vglue
0.05truein

% authors :
%
{\parskip=0pt\leftskip 0pt plus 1fil\def\\{\par}{\sc\theauthors}
\par\medskip}%
 
\vglue 0.03truein 

%  abstract and classification numbers:

{\small\leftskip 25truept\rightskip 25truept{\bf Abstract}\stdspace\theabstract

{\bf AMS Classification}\stdspace\theprimaryclass
\ifx\thesecondaryclass\relax\else; \thesecondaryclass\fi\par
{\bf Keywords}\stdspace \thekeywords\par}\vglue 7truept

}   %%%% end of definition of \makeagttitle

\ifplaintex
%  get print centerpage:
\hoffset 14truemm
\voffset 31truemm
%  fonts for headline and footline
\font\phead=cmsl9 scaled 950
\font\pnum=cmbx10 scaled 913
\font\pfoot=cmsl9 scaled 950
%  headline and footline
\headline{\vbox to 0pt{\vskip -4.5mm\line{\small\phead\ifnum
\count0=\startpage ISSN 1472-2739 (on-line) 1472-2747 (printed)
\hfill {\pnum\folio}\else\ifodd\count0\def\\{ }% 
\ifx\theshorttitle\relax\thetitle\else\theshorttitle\fi\hfill{\pnum\folio}
\else\def\\{ and }{\pnum\folio}\hfill\ifx\theshortauthors\relax\theauthors
\else\theshortauthors\fi\fi\fi}\vss}}
\footline{\vbox to 0pt{\vglue 0mm\line{\small\pfoot\ifnum\count0=\startpage
\copyright\ \gtp\hfill\else
\agt, Volume \thevolumenumber\ (\thevolumeyear)\hfill\fi}\vss}}
\else
%  get print centerpage:
\headsep 23pt
\footskip 35pt
\hoffset -4truemm
\voffset 12.5truemm
%  fonts for headline and footline
\font\lhead=cmsl9 scaled 1050
\font\lnum=cmbx10 
\font\lfoot=cmsl9 scaled 1050
\makeatletter
%  headline and footline
\def\@oddhead{{\small\lhead\ifnum\count0=\startpage ISSN 1472-2739 
(on-line) 1472-2747 (printed)\hfill {\lnum\number\count0}\else\ifodd\count0
\def\\{ }\ifx\theshorttitle\relax \thetitle \else\theshorttitle\fi\hfill
{\lnum\number\count0}\else\def\\{ and }{\lnum\number\count0}
\hfill\ifx\theshortauthors\relax 
\theauthors\else\theshortauthors\fi\fi\fi}}\def\@evenhead{\@oddhead}
\def\@oddfoot{\small\lfoot\ifnum\count0=\startpage\copyright\ \gtp\hfill\else
\agt, Volume \thevolumenumber\ (\thevolumeyear)\hfill\fi}
\def\@evenfoot{\@oddfoot}
\makeatother
\fi
%  force \makeagttitle
\let\maketitlepage\makeagttitle
\let\makeshorttitle\maketitlepage
\let\maketitle\maketitlepage

\endinput  %%%comment out to create xxx header file


\newwrite\gtoutfile
\long\gdef\makeheadfile{  %%% start of definition of \makeheadfile
{\def\\{, }\def\s{ }
\immediate\openout\gtoutfile head.xxx
\immediate\write\gtoutfile{To: math@arxiv.org}
\immediate\write\gtoutfile{Subject: put OR rep NNNNN:ppppp}
\immediate\write\gtoutfile{--text follows this line--}
\immediate\write\gtoutfile{Proxy-for: \ifx\theasciiauthors\relax
\theauthors\else\theasciiauthors\fi\s<\ifx\theasciiemail\relax\theemail\else\theasciiemail\fi>}
\immediate\write\gtoutfile{\noexpand\\}
\immediate\write\gtoutfile{Authors: \ifx\theasciiauthors\relax
\theauthors\else\theasciiauthors\fi}
{\def\\{ }\immediate\write\gtoutfile{Title: \ifx\theasciititle\relax
\thetitle\else\theasciititle\fi}}
\immediate\write\gtoutfile{Subj-class: GT or SG, GR etc}
\immediate\write\gtoutfile{MSC-class: \theprimaryclass\ifx\thesecondaryclass\relax\else, \thesecondaryclass\fi}
\immediate\write\gtoutfile{Journal-ref: Algebr. Geom. Topol. \thevolumenumber\s
(\thevolumeyear) \startpage-\finishpage}
\immediate\write\gtoutfile{Comments: Published by Algebraic and
Geometric Topology at}
\immediate\write\gtoutfile{\s\s\s  http://www.maths.warwick.ac.uk/agt/AGTVol\thevolumenumber/agt-\thevolumenumber-\thepapernumber.abs.html}
\immediate\write\gtoutfile{\noexpand\\}
\immediate\write\gtoutfile{}
\ifx\theasciiabstract\relax
\immediate\write\gtoutfile{\theabstract}\else
\immediate\write\gtoutfile{\theasciiabstract}\fi
\immediate\write\gtoutfile{}
\immediate\write\gtoutfile{\noexpand\\}
\immediate\write\gtoutfile{}
\immediate\closeout\gtoutfile}}  %%% end of definition of \makeheadfile


\def\maketitlepage{\makeagttitle\makeheadfile}
\let\makeshorttitle\maketitlepage
\let\maketitle\maketitlepage

\endinput   
%%%
%%%  This is agtout.tex.  
%%%
%%%  This the version of  gtoutput.tex  intended to finish formatting
%%%  papers published in Algebriac & Geometric Topology and stored in the
%%%  arXiv.   All versions of  gtoutput.tex  are copyright 
%%%  GT Publications and are to be used _only_ for formatting
%%%  the officially published version of ABT or G&T papers.
%%%
%%%
%%%                                             Colin Rourke  27.102000
%%%
%%%  To create header file  head.xxx  comment out the first \endinput

%  test for latex or plain tex
\def\ifplaintex{\expandafter\ifx\csname documentclass\endcsname\relax}

\def\gtp{{\mathsurround=0pt\it $\cal G\mskip-2mu$eometry \&\ 
$\cal T\!\!$opology $\cal P\!$ublications}}  % GT publications

\def\Addressesr{\bigskip
{\small \parskip 0pt \leftskip 0pt \rightskip 0pt plus 1fil \def\\{\par}
\sl\theaddress\par
\medskip
\rm Email:\stdspace\tt\theemail\hfill\rm Received:\qua\receiveddate \par}}


\def\recd{{\small Received:\qua\receiveddate\ifx\reviseddate\relax
\else\qquad Revised:\qua\reviseddate\fi\par}} 

%  define the various new ingredients of the title page and the data
%  output files

\def\lognumber#1{\def\thelognumber{#1}}
\def\volumenumber#1{\def\thevolumenumber{#1}}
\def\volumeyear#1{\def\thevolumeyear{#1}}
\def\papernumber#1{\def\thepapernumber{#1}}
\def\pagenumbers#1#2{\def\startpage{#1}\def\finishpage{#2}}
\def\published#1{\def\publishdate{#1}}
\def\proposed#1{\def\theproposer{#1}}
\def\seconded#1{\def\theseconders{#1}}
\def\received#1{\def\receiveddate{#1}}
\def\revised#1{\def\reviseddate{#1}}
\def\accepted#1{\def\accepteddate{#1}}
\def\asciititle#1{\def\theasciititle{#1}}
\def\covertitle#1{\def\thecovertitle{#1}}
\def\asciiauthors#1{\def\theasciiauthors{#1}}
\def\asciiaddress#1{\def\theasciiaddress{#1}}
\def\asciiemail#1{\def\theasciiemail{#1}}
\def\coverauthors#1{\def\thecoverauthors{#1}}
\long\def\asciiabstract#1{\long\def\theasciiabstract{#1}}
\def\asciikeywords#1{\def\theasciikeywords{#1}}
\def\isbn#1{\def\theisbn{#1}}
\def\erratum#1{\def\theerratum{non-empty}\def\erratumnumber{#1}}

%  initialise

\let\\\par\let\thelognumber\relax\let\thevolumenumber\relax
\let\thepapernumber\relax\let\thevolumeyear\relax\let\startpage\relax
\let\finishpage\relax\let\publishdate\relax\let\receiveddate\relax
\let\reviseddate\relax\let\accepteddate\relax\let\theasciititle\relax
\let\thecovertitle\relax\let\theasciiauthors\relax\let\theasciiaddress\relax
\let\theasciiabstract\relax\let\theasciikeywords\relax
\let\theproposer\relax\let\theseconders\relax\let\theisbn\relax
\let\thecoverauthors\relax\let\theerratum\relax\let\theasciiemail\relax



%%%% fonts for AGT logo:

\ifplaintex
\font\logobig=cmssbx10 scaled 3836
\font\logomed=cmssbx10 scaled 2557
\else
\font\logobig=cmssbx10 scaled 4200
\font\logomed=cmssbx10 scaled 2800
\fi

\long\def\makeagttitle{   %%% start of definition of \makeagttitle
\count0=\startpage
\agt\hfill      %   Journal title (top left) 
%   logo (top right)
\hbox to 45truept{\vbox to 0pt{\vglue -13truept{\logomed A\kern -.37em{\logobig 
T}\kern -.38em G}\vss}\hss}
%
\break
{\small Volume \thevolumenumber\ (\thevolumeyear)
\startpage--\finishpage\nl
Published: \publishdate}

\vglue .25truein

% title
{\parskip=0pt\leftskip 0pt plus
1fil\def\\{\par\smallskip}{\Large\bf\thetitle}\par\medskip} \vglue
0.05truein

% authors :
%
{\parskip=0pt\leftskip 0pt plus 1fil\def\\{\par}{\sc\theauthors}
\par\medskip}%
 
\vglue 0.03truein 

%  abstract and classification numbers:

{\small\leftskip 25truept\rightskip 25truept{\bf Abstract}\stdspace\theabstract

{\bf AMS Classification}\stdspace\theprimaryclass
\ifx\thesecondaryclass\relax\else; \thesecondaryclass\fi\par
{\bf Keywords}\stdspace \thekeywords\par}\vglue 7truept

}   %%%% end of definition of \makeagttitle

\ifplaintex
%  get print centerpage:
\hoffset 14truemm
\voffset 31truemm
%  fonts for headline and footline
\font\phead=cmsl9 scaled 950
\font\pnum=cmbx10 scaled 913
\font\pfoot=cmsl9 scaled 950
%  headline and footline
\headline{\vbox to 0pt{\vskip -4.5mm\line{\small\phead\ifnum
\count0=\startpage ISSN 1472-2739 (on-line) 1472-2747 (printed)
\hfill {\pnum\folio}\else\ifodd\count0\def\\{ }% 
\ifx\theshorttitle\relax\thetitle\else\theshorttitle\fi\hfill{\pnum\folio}
\else\def\\{ and }{\pnum\folio}\hfill\ifx\theshortauthors\relax\theauthors
\else\theshortauthors\fi\fi\fi}\vss}}
\footline{\vbox to 0pt{\vglue 0mm\line{\small\pfoot\ifnum\count0=\startpage
\copyright\ \gtp\hfill\else
\agt, Volume \thevolumenumber\ (\thevolumeyear)\hfill\fi}\vss}}
\else
%  get print centerpage:
\headsep 23pt
\footskip 35pt
\hoffset -4truemm
\voffset 12.5truemm
%  fonts for headline and footline
\font\lhead=cmsl9 scaled 1050
\font\lnum=cmbx10 
\font\lfoot=cmsl9 scaled 1050
\makeatletter
%  headline and footline
\def\@oddhead{{\small\lhead\ifnum\count0=\startpage ISSN 1472-2739 
(on-line) 1472-2747 (printed)\hfill {\lnum\number\count0}\else\ifodd\count0
\def\\{ }\ifx\theshorttitle\relax \thetitle \else\theshorttitle\fi\hfill
{\lnum\number\count0}\else\def\\{ and }{\lnum\number\count0}
\hfill\ifx\theshortauthors\relax 
\theauthors\else\theshortauthors\fi\fi\fi}}\def\@evenhead{\@oddhead}
\def\@oddfoot{\small\lfoot\ifnum\count0=\startpage\copyright\ \gtp\hfill\else
\agt, Volume \thevolumenumber\ (\thevolumeyear)\hfill\fi}
\def\@evenfoot{\@oddfoot}
\makeatother
\fi
%  force \makeagttitle
\let\maketitlepage\makeagttitle
\let\makeshorttitle\maketitlepage
\let\maketitle\maketitlepage

\endinput  %%%comment out to create xxx header file


\newwrite\gtoutfile
\long\gdef\makeheadfile{  %%% start of definition of \makeheadfile
{\def\\{, }\def\s{ }
\immediate\openout\gtoutfile head.xxx
\immediate\write\gtoutfile{To: math@arxiv.org}
\immediate\write\gtoutfile{Subject: put OR rep NNNNN:ppppp}
\immediate\write\gtoutfile{--text follows this line--}
\immediate\write\gtoutfile{Proxy-for: \ifx\theasciiauthors\relax
\theauthors\else\theasciiauthors\fi\s<\ifx\theasciiemail\relax\theemail\else\theasciiemail\fi>}
\immediate\write\gtoutfile{\noexpand\\}
\immediate\write\gtoutfile{Authors: \ifx\theasciiauthors\relax
\theauthors\else\theasciiauthors\fi}
{\def\\{ }\immediate\write\gtoutfile{Title: \ifx\theasciititle\relax
\thetitle\else\theasciititle\fi}}
\immediate\write\gtoutfile{Subj-class: GT or SG, GR etc}
\immediate\write\gtoutfile{MSC-class: \theprimaryclass\ifx\thesecondaryclass\relax\else, \thesecondaryclass\fi}
\immediate\write\gtoutfile{Journal-ref: Algebr. Geom. Topol. \thevolumenumber\s
(\thevolumeyear) \startpage-\finishpage}
\immediate\write\gtoutfile{Comments: Published by Algebraic and
Geometric Topology at}
\immediate\write\gtoutfile{\s\s\s  http://www.maths.warwick.ac.uk/agt/AGTVol\thevolumenumber/agt-\thevolumenumber-\thepapernumber.abs.html}
\immediate\write\gtoutfile{\noexpand\\}
\immediate\write\gtoutfile{}
\ifx\theasciiabstract\relax
\immediate\write\gtoutfile{\theabstract}\else
\immediate\write\gtoutfile{\theasciiabstract}\fi
\immediate\write\gtoutfile{}
\immediate\write\gtoutfile{\noexpand\\}
\immediate\write\gtoutfile{}
\immediate\closeout\gtoutfile}}  %%% end of definition of \makeheadfile


\def\maketitlepage{\makeagttitle\makeheadfile}
\let\makeshorttitle\maketitlepage
\let\maketitle\maketitlepage

\endinput   

gtmacros.tex
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%             gtmacros.tex            %%%%%%%%%%%%%%%
%%%%%%%%%%%             version 1.6             %%%%%%%%%%%%%%% 
%
%                       Colin Rourke   
%
%
%    These macros are recommended for use by authors submitting articles   
%    to Geometry and Topology or to Algebraic and Geometric Topology.  
%    They are intended to be used with plain TeX. Each macro is described 
%    briefly to make it clear how to use it (or to modify it to achieve
%    different results).  If you modify this file then please change its
%    name.  If you modify this file and use the modified file to 
%    format an article for submission to Geometry and Topology or
%    Algebraic and Geometric Topology, then please paste the modified
%    file into your main TeX file.  Do not submit it as a separate file.
%      
%    Instructions on using these macros are also given in  gtmacins.tex  
%    or  gtmacins.ps  or .pdf  available on the gt www pages or by 
%    anonymous ftp from the gt/info/macros directory.
%
%
\magnification=\magstephalf      % Sets default point size to 11pt.
%
%  Basic layout parameters :
%
\vsize=7.5truein                 % Sets text height to 7.5 inches.
\hsize=5.2truein                 % Sets text width to 5.2 inches.
%
\newskip\stdskip                 % standard vertical space
\stdskip=6pt plus3pt minus3pt    % (slightly more stretchy
\medskipamount=\stdskip          % than the usual \medskip)
%
\parindent=0pt                   % Paragraphs are non-indented with
\parskip=\stdskip                % a little space between paragraphs. 
\abovedisplayskip=\stdskip       %  Reduces the space
\belowdisplayskip=\stdskip       %  around displays.
\mathsurround=0.75pt             % Gives a little extra space around maths.
\overfullrule=0pt                %  Prevents black boxes
%
%   The following macro is for principal paragraph breaks ie
%   a paragraph break with a slightly larger space :
%
\def\ppar{\par\goodbreak\vskip 8pt plus 4pt minus 4pt}     
%
%  The standard horizontal space for theorems, labels etc :
%
\def\stdspace{\hskip 0.75em plus 0.15em\ignorespaces}
\let\qua\stdspace % useful abbreviation (3/4 of a quad)
%
%%%%%%%%%%%%%%            FONT MACROS            %%%%%%%%%%%%
%
%           The following font macros define the AMS symbol 
%           and Euler-Fraktal fonts for use in text and
%           mathematics with appropriate size changes.
%           They also define two new control sequences  
%           \small  and  \large  (similar to those built
%           into LaTeX) which change the size of all fonts 
%           both in text and maths.  \small  is 10% smaller 
%           than normal and  \large  30% bigger.  The strange
%           size of the \large text fonts (10pt scaled 1315)
%           is because these macros are intended to be used
%           at \magstephalf.  The result is 10pt scaled 1440
%           (\magstep2) which is a standard font size.  If
%           you are borrowing these macros to use them at
%           another basic  \magnification, then you will
%           probably need to change 1315 to 1200 in the eleven
%           places marked ** below.  \large  will then be
%           20% bigger than normal.  Note that at \magstephalf
%           all the fonts come out roughly one point larger
%           than their size as defined in these macros.
%
%           The size-changing macros are based on Knuth's
%           \ninepoint and \eightpoint macros.
%
%
%    The macros are laid out in a way which makes it clear how to
%    add futher fonts (or delete unavailable ones) and how to add
%    further size changes.
%
%    First comes a definition of  \hexnumber  which is needed to
%    refer to font families whose family number is not known :
%
\def\hexnumber#1{\ifcase#1 0\or 1\or 2\or 3\or 4\or 5\or 6\or 7\or 8\or
 9\or A\or B\or C\or D\or E\or F\fi}
%
%     Next we define the AMS symbol-a fonts at 13,10,9,7,6,5 points
%
\font\thirtnmsa=msam10 scaled 1315    %%% **  see note above 
\font\tenmsa=msam10          \font\ninemsa=msam9
\font\sevenmsa=msam7         \font\sixmsa=msam6
\font\fivemsa=msam5
%%%%%%  (add further sizes here if you need them)
%
%    and the standard size family for these fonts
%
\newfam\msafam                  \textfont\msafam=\tenmsa
\scriptfont\msafam=\sevenmsa    \scriptscriptfont\msafam=\fivemsa
\edef\hexa{\hexnumber\msafam}        %  The msa family is  \fam\hexa
\def\msa{\fam\msafam\tenmsa}         %  \msa  switches to this family
%
%    Repeat these steps for the AMS symbol-b fonts
%
\font\thirtnmsb=msbm10 scaled 1315   %%%  ** see note above
\font\tenmsb=msbm10      \font\ninemsb=msbm9
\font\sevenmsb=msbm7     \font\sixmsb=msbm6
\font\fivemsb=msbm5
%%%%%%  (add further sizes here if you need them)
%
\newfam\msbfam                   \textfont\msbfam=\tenmsb       
\scriptfont\msbfam=\sevenmsb     \scriptscriptfont\msbfam=\fivemsb
\edef\hexb{\hexnumber\msbfam}    %  The msb family is \fam\hexb  
\def\msb{\fam\msbfam\tenmsb}     %  \msb switches to this family
%
%        Repeat for the Euler-Fraktal fonts 
%
\font\thirtneufm=eufm10 scaled 1315   %%% **  see note above 
\font\teneufm=eufm10                 \font\nineeufm=eufm9
\font\seveneufm=eufm7                \font\sixeufm=eufm6
\font\fiveeufm=eufm5
%%%%%%  (add further sizes here if you need them)
%
\newfam\eufmfam                    \textfont\eufmfam=\teneufm
\scriptfont\eufmfam=\seveneufm     \scriptscriptfont\eufmfam=\fiveeufm
\edef\hexf{\hexnumber\eufmfam}      % The Euler-Fraktal family is
\def\frak{\fam\eufmfam\teneufm}     % \fam\hexf and \frak switches to this
%
%%%  Add further fonts families here (using the same format) if you need
%    them.  The def of hexnumber is optional (it is only used for
%    \mathchardef 's).
%
%      Now we need to define the standard fonts (which are
%      already defined at 10,7 and 5 point) at 13,9 and 6 point:
%
%      Roman fonts:
\font\thirtnrm=cmr10 scaled 1315    %%%  ** see note above
\font\ninerm=cmr9                   \font\sixrm=cmr6   
%%%%%%  (add further sizes here if you need them)
%
%      Math italic fonts
\font\thirtni=cmmi10 scaled 1315    %%%  ** see note above 
\font\ninei=cmmi9                   \font\sixi=cmmi6  
%%%%%%  (add further sizes here if you need them)
%
%     Symbol fonts
\font\thirtnsy=cmsy10 scaled 1315   %%%  ** see note above
\font\ninesy=cmsy9                  \font\sixsy=cmsy6  
%%%%%%  (add further sizes here if you need them)
%
%     Bold face
\font\thirtnbf=cmbx10 scaled 1315   %%%  ** see note above 
\font\ninebf=cmbx9                  \font\sixbf=cmbx6  
%%%%%%  (add further sizes here if you need them)
%
%     The maths extension font (only defined at text size)
%
\font\thirtnex=cmex10 scaled 1315   %%%  ** see note above
\font\nineex=cmex9                  
%%%%%%  (add further sizes here if you need them)
%
%     Finally three fonts (text italic, slanted and typewriter type)
%     which are also only defined at text size
%
\font\thirtnit=cmti10 scaled 1315  %%%  ** see note above 
\font\nineit=cmti9                  
%%%%%%  (add further sizes here if you need them)
%
\font\thirtnsl=cmsl10 scaled 1315  %%%  ** see note above 
\font\ninesl=cmsl9                  
%%%%%%  (add further sizes here if you need them)
%
\font\thirtntt=cmtt10 scaled 1315  %%%  ** see note above 
\font\ninett=cmtt9                  
%%%%%%  (add further sizes here if you need them)
%
%
%     Now come the two main macros.  What  \small  does is to
%     change all the families of fonts from normal size which is
%     10,7,5  (ie 10pt text, 7pt subscript, 5pt subsubscript)
%     to 9,6,5.  \large  similarly changes to  13,9,7.  To make
%     other size changing macros, choose your three sizes, add
%     font size definitions if necessary and make the obvious changes
%     to one of these macros.  Change  \normalbaselineskip  and
%     \strutbox  dimensions to appropriate sizes as well.  To
%     add further fonts, insert them in each macro, using the
%     AMS fonts as a model.
%      
%
\def\small{%
%
%   redefine the sizes of the roman fonts :
%
\textfont0=\ninerm \scriptfont0=\sixrm \scriptscriptfont0=\fiverm
\def\rm{\fam0\ninerm}%       % ( \rm  sets \ninerm  in text mode
%                            %  and \fam0 in math mode)
%
%   and the math italic fonts :
%
\textfont1=\ninei \scriptfont1=\sixi \scriptscriptfont1=\fivei
%
%   and the symbol fonts :
%
\textfont2=\ninesy \scriptfont2=\sixsy \scriptscriptfont2=\fivesy
%
%   There is only one math extension font :
%
\textfont3=\nineex \scriptfont3=\nineex \scriptscriptfont3=\nineex
%
%   Next the bold font (named rather than numbered) :
%
\textfont\bffam=\ninebf \scriptfont\bffam=\sixbf
\scriptscriptfont\bffam=\fivebf \def\bf{\fam\bffam\ninebf}%
%
%   and the three text-only fonts : 
%
\textfont\itfam=\nineit \def\it{\fam\itfam\nineit}%
\textfont\slfam=\ninesl \def\sl{\fam\slfam\ninesl}%
\textfont\ttfam=\ninett \def\tt{\fam\ttfam\ninett}%
%
%   Now the three new families of AMS fonts :
%
%   AMS symbol-a
%
\textfont\msafam=\ninemsa \scriptfont\msafam=\sixmsa
\scriptscriptfont\msafam=\fivemsa \def\msa{\fam\msafam\ninemsa}%         
%
%   AMS symbol-b
%
\textfont\msbfam=\ninemsb \scriptfont\msbfam=\sixmsb
\scriptscriptfont\msbfam=\fivemsb \def\msb{\fam\msbfam\ninemsb}%         
%
%   Euler-Fraktal font
%
\textfont\eufmfam=\nineeufm  \scriptfont\eufmfam=\sixeufm
\scriptscriptfont\eufmfam=\fiveeufm \def\frak{\fam\eufmfam\nineeufm}%
%
%%%  Add further fonts families here if you need them.
%
%    Reset \normalbaselineskip and \strubox :
%
\normalbaselineskip=11pt%
\setbox\strutbox=\hbox{\vrule height8pt depth3pt width0pt}%
%
%    Set \normalbaselines and \rm (roman) as defaults :
%
\normalbaselines\rm
%
%    Reset some of the basic vertical skips:
%
\stdskip=4pt plus2pt minus2pt    
\medskipamount=\stdskip          
\parskip=\stdskip                
\abovedisplayskip=\stdskip       
\belowdisplayskip=\stdskip       
\def\ppar{\par\goodbreak\vskip 6pt plus 3pt minus 3pt}%     
%
%   And finally reset the size of section heads (see below):
%
\def\section##1{\global\advance\sectionnumber by 1
\vskip-\lastskip\penalty-800\vskip 20pt plus10pt minus5pt 
\egroup{\bf\number\sectionnumber\quad##1}\bgroup\small         
\vskip 6pt plus3pt minus3pt
\nobreak\resultnumber=1}%      % Reset resultnumber at start of section
%
}    %%%   End of  \small  macro      
%
%   Two useful abbreviations to keep track of \small material:
\def\beginsmall{\bgroup\small}
\let\endsmall\egroup
%
%
%    The \large  macro is similar (comments abbreviated):
%
%
\def\large{%
\textfont0=\thirtnrm \scriptfont0=\ninerm \scriptscriptfont0=\sevenrm
\def\rm{\fam0\thirtnrm}%
\textfont1=\thirtni \scriptfont1=\ninei \scriptscriptfont1=\seveni
\textfont2=\thirtnsy \scriptfont2=\ninesy \scriptscriptfont2=\sevensy
\textfont3=\thirtnex \scriptfont3=\thirtnex \scriptscriptfont3=\thirtnex
\textfont\bffam=\thirtnbf \scriptfont\bffam=\ninebf
\scriptscriptfont\bffam=\sevenbf \def\bf{\fam\bffam\thirtnbf}%
\textfont\itfam=\thirtnit \def\it{\fam\itfam\thirtnit}%
\textfont\slfam=\thirtnsl \def\sl{\fam\slfam\thirtnsl}%
\textfont\ttfam=\thirtntt \def\tt{\fam\ttfam\thirtntt}%
%   AMS symbol-a  :
\textfont\msafam=\thirtnmsa \scriptfont\msafam=\ninemsa
\scriptscriptfont\msafam=\sevenmsa \def\msa{\fam\msafam\thirtnmsa}%         
%   AMS symbol-b  :
\textfont\msbfam=\thirtnmsb \scriptfont\msbfam=\ninemsb
\scriptscriptfont\msbfam=\sevenmsb \def\msb{\fam\msbfam\thirtnmsb}%         
%   Euler-Fraktal font :
\textfont\eufmfam=\thirtneufm  \scriptfont\eufmfam=\nineeufm
\scriptscriptfont\eufmfam=\seveneufm \def\frak{\fam\eufmfam\teneufm}%
%%%% Add further fonts families here if you need them.
%   Reset \normalbaselineskip and \strubox and initialise :
\normalbaselineskip=16pt%
\setbox\strutbox=\hbox{\vrule height11.5pt depth4.5pt width0pt}%
\normalbaselines\rm}%
%     
\let\Large\large   %  for compatibility with latex
%
%   The next two lines define commonly used switches for
%   blackboard bold (\Bbb) and gothic type (\goth).  The   
%   \Bbb  switch is set to work in the same way as in amstex
%   and switches only the next character to blackboard bold.
\def\Bbb#1{{\msb#1}}
\def\goth{\frak}
%
%   To use the new AMS fonts you can either use the control
%   sequences \msa, \msb (alias \Bbb) and \frak (alias \goth) eg :
\def\N{{\frak N}}
\def\re{\Bbb R}
\def\doublecup{{\msa \char'144}}   % see the msam font table
%
%   or, more generally, make \mathchardef's (cf Knuth p155) eg :
\mathchardef\plussquare="0\hexa01
\mathchardef\nge="3\hexb0B
\mathchardef\maltesecross="0\hexa7A
\mathchardef\del="0\hexf01
%
%   or you can use the amstex names for all the new symbols by
%   inserting the line  \input amsnames  in your file directly
%   after \input gtmacros. 
%   This presupposes that you have collected a copy of the file
%   amsnames.tex  from the  gt/info/macros  ftp directory.
%
%
%   Finally we need a small capital font (for author(s)) :
%
\font\sc=cmcsc10
%
%%%%%%%%%%%%%%%%%       END OF FONT MACROS     %%%%%%%%%%%%%
%
%
%                 Knuth's \square macro :
%
\def\sqr#1#2{{\vcenter{\vbox{\hrule  height.#2truept
	\hbox{\vrule width.#2truept height#1truept 
	\kern#1truept \vrule width.#2truept}
	\hrule height.#2truept}}}}
%
\def\sq{\sqr55}    %   A small square for end-of-proofs. 
%                  %   (Define other size squares by varing the
%                  %   the two numbers.)
%
%
%      Style macros for section heads, theorem statements etc :
%   
%
\newcount\sectionnumber            %%%  Allocate registers to take
\newcount\resultnumber             %%%  section and result numbers.
\sectionnumber=0\resultnumber=1    %%%  Set these registers to 0 and 1
%
%   The \section macro produces a \large bold faced section heading
%   numbered to the left.  Pagebreaks are encouraged before the
%   start of the section and discouraged directly after the heading.
%   Typical use  \section{First steps}  with typical result :
%
%    1  First Steps     (set bold and \large)
%
\def\section#1{\global\advance\sectionnumber by 1
\xdef\nextkey{\number\sectionnumber}%      (used by the \key macro)
\vskip-\lastskip\penalty-800\vskip 20pt plus10pt minus5pt 
{\large\bf\number\sectionnumber\quad#1}         
\vskip 8pt plus4pt minus4pt
\nobreak\resultnumber=1}      % Reset resultnumber at start of section
%
%
%
%   Next a macro to set subheadings (like the  \section  macro
%   but without the number, with less space and set in standard size).
%
%   Typical use :  \sh{Example formats}
%
\def\sh#1{\vskip-\lastskip\ppar{\bf #1}\par\nobreak\medskip}         
%
%   The \proc ... \endproc macros ("proclaim") are for setting theorems, 
%   lemmas, conjectures etc with automatic numbering.  Typical use :    
%  
%    \proc{Theorem}Every lemon is yellow.\endproc
%
%   Typical result :
%     
%    Theorem 3.4  Every lemon is yellow.   

%   (with Theorem 3.4 set bold and a \stdspace of space before the 
%   statement set in slanted type).
%
\def\proc#1{\xdef\nextkey{\number\sectionnumber.\number\resultnumber}%
\vskip-\lastskip\ppar\bf%
\noindent#1\ \number\sectionnumber.\number\resultnumber
\stdspace\sl\global\advance\resultnumber by 1\ignorespaces}
\def\endproc{\rm\ppar} 
%
%  The \prf ... \endprf macros are for setting proofs.  The code
%  for \prf includes the code for \endproc, so there is no need to
%  type \endproc if the theorem is followed immediatedly by a proof.
%
\def\prf{\vskip-\lastskip\ppar\noindent{\bf Proof}%
\stdspace\rm}                            %  For start of proofs  
\def\qed{\hfill$\sq$\par\goodbreak\rm}   %  For end (or absence) of proofs
\def\endprf{\unskip\stdspace\hbox{}%     %  For end of proof (with
\hfill$\sq$\par\medskip}                 %  extra vertical space)  
\def\proof#1{\vskip-\lastskip\ppar\noindent{\bf#1}%
\stdspace\rm\ignorespaces}        %  For start of proof with alternative name
\let\endproof\endprf              %  \endproof is an alias for \endprf
%
%   Typical uses :    
%  
%    \proc{Theorem}Every lemon is yellow. \qed\endproc
%
%    \proc{Theorem}Every lemon is yellow.
%    \prf Use your eyes. \endprf
%
%    \proc{Theorem}Every lemon is yellow.
%    \proof{Proof of theorem} Use your eyes. \endprf
%
%   The next macro is a variant of the \proc macro.  It has
%   exactly the same result except that it omits the number.
%
%   Typical use :  
%    
%    \proclaim{Conjecture}Some oranges are yellow.\endproc
%
\def\proclaim#1{\vskip-\lastskip\ppar\bf%
\noindent#1\stdspace\sl\ignorespaces} 
\let\endproclaim\endproc
%
%   The next macro is a further variant for remarks, definitions etc.   
%   It omits the number and does not switch on slanted type.  
%  
%   Typical use :
%
%    \rk{Remark}Some lemons are thick-skinned.\endrk
%
\def\rk#1{\vskip-\lastskip\ppar{\bf #1}\stdspace\ignorespaces}                
\def\endrk{\par\medskip}
%
%   The next macro is for numbering equations etc, \label  produces the 
%   correct number  x.y  and advances the resultnumber register
%
%   Typical use :
%
%     $$fx=7\eqno{\bf\label}$$
%
%   result :
%
%                           fx = 7                           3.5
%
\def\label{\xdef\nextkey{\number\sectionnumber.\number\resultnumber}%
\number\sectionnumber.\number\resultnumber
\global\advance\resultnumber by 1}
%
%
%
%   The next macros are to automate external references.  To use them 
%   type \reflist ..... \endreflist near the beginning of your paper, 
%   where  .... is the list of references in alphabetical order 
%   and in  the form  \key{KEY}  reference    where "KEY" is a 
%   string of characters which reminds you of the reference.   
%   Separate  references with a blank line or a \par.   Eg 
%
%     \reflist
%
%     ..... more references ....
%
%     \key{Kn-84} {\bf D Knuth}, {\it The TeXbook}, Addison--Wesley (1984)
%
%     ..... more references ....
%
%     \endreflist
%
%   Then type  \references  where you wish the references to be printed
%   (normally near the end of the paper).  To refer to Knuth type
%   for example    see Knuth [\ref{Kn-84}, page 320]   and the correct
%   numerical reference will be printed.  Edit the \references macro
%   to change the formatting (if desired).
%   There is an alternative \refkey for \key, provided your KEY contains
%   only letters.  The syntax is:
%
%     \reflist
%
%     ..... more references ....
%
%     \refkey\Knuth  {\bf D Knuth}, {\it The TeXbook}, Addison--Wesley (1984)
%
%     ..... more references ....
%
%     \endreflist
%
%   \key{Knuth}  has exactly the same maening as \refkey\Knuth and you
%   can mix the two syntaxes if you want.  But \refkey\Kn-84
%   would not work.  It would set Kn as the KEY and -84 would get printed!
%
\newcount\refnumber              %  Register for reference numbers
\refnumber=1                     %  set initially to 1.
\long\def\reflist#1\endreflist{%
\long\def\thereflist{#1}{\def\refkey##1##2\par{\xdef##1{\number\refnumber}%
\global\advance\refnumber by 1}%
\def\key##1##2\par{\expandafter\xdef%
\csname##1\endcsname{\number\refnumber}%
\global\advance\refnumber by 1}#1\par}}
\long\def\references{%
\penalty-800\vskip-\lastskip\vskip 15pt plus10pt minus5pt 
{\large\bf References}\ppar %`References' is set \large bold with space around.
{\leftskip=25pt\frenchspacing    % The list of references is set 
\small\parskip=3pt plus2pt       % \small  with small spaces between,
\def\refkey##1##2\par{\noindent  % numbers in [,]'s and set just to the
\llap{[##1]\stdspace}\ignorespaces##2\par}         % left of a 25pt margin.
\def\key##1##2\par{\noindent  
\llap{[\ref{##1}]\stdspace}\ignorespaces##2\par}  
\def\,{\thinspace}\thereflist\par}}
%
%   Next a footnote macro (with automatic numbering) which sets the
%   footnote  \small.
%
%   Typical use :
%         ..... are yellow.\fnote{By yellow here we mean Britsh
%    Standard colour BS3320.} 
%
\newcount\footnotenumber         % Register for footnote number
\footnotenumber=1                % set initially to 1
\def\fnote#1{\xdef\nextkey{\number\footnotenumber}%
{\small\ifnum\footnotenumber>9\parindent=14pt%
\else\parindent=10pt\fi\footnote{$^{\number\footnotenumber}$}%
{\hglue-5pt#1}\global\advance\footnotenumber by 1}}
%
%
%   Next macros for handling figures with automatic numbering (using 
%   TeX's \midinsert to float the figure to a suitable place).
%   
%   The \figure ... \endfigure macro centres the figure and adds
%   an automatically numbered label  Figure XX  after it.
%
%   If you have a caption, then type \caption{caption text} 
%   somewhere between \figure and \endfigure.  The macro
%   will then add  Figure XX: caption text  after the figure.
%
%   If you want an unnumbered or uncentred figure, then use TeX's raw 
%       \midinsert Figure instructions \endinsert  
%   and if you want a numbered figure label in the same style then
%   use \caption{caption text} outside of  \figure ... \endfigure.
%
%   If you need just the label Figure XX  outside of  \figure ... \endfigure
%   then type  \figurelabel .
%
\newcount\figurenumber          % register for figure number
\figurenumber=1                 % set initially to 1
\def\caption#1{\xdef\nextkey{\number\figurenumber}%
\cl{\small Figure \number\figurenumber: #1}%
\global\advance\figurenumber by 1}
\def\figurelabel{\xdef\nextkey{\number\figurenumber}%
\cl{\small Figure \number\figurenumber}%
\global\advance\figurenumber by 1}
%
\long\def\figure#1\endfigure{{\xdef\nextkey{\number\figurenumber}%
\let\captiontext\relax\def\caption##1{\xdef\captiontext{##1}}%
\midinsert\cl{\ignorespaces#1\unskip\unskip\unskip\unskip}\vglue6pt\cl{\small 
Figure \number\figurenumber\ifx\captiontext\relax\else: \captiontext
\fi}\endinsert\global\advance\figurenumber by 1}}
%
%   Macros for self-correcting internal references.
%
%   There are two macros  \key{KEY}  and  \ref{KEY} .
%
%   The \key macro sets up KEY as a key for whatever number is 
%   being referenced and the \ref macro converts the KEY into 
%   that number.  Type \key after a  \section or \proc or 
%   \label or \fnote or \figure or \caption or \figurelabel .
%
%   Example:
%
%       \section{Introduction}\key{intro}
%       \proc{Theorem}\key{MainTh}Lemons are yelloy\endproc
%       Here we follow\fnote{Follow in the sense of Dickens}
%       \key{Dickens-note}the crowd ....  
%
%       In section \ref{intro}
%       we stated theorem \ref{mainTh} and noted (see footnote 
%       \ref{Dickens-note}) ...
%
\def\nextkey{??}   %  initialise \nextkey (which is reset by all the
%                     numbering macros)
%
\def\key#1{\expandafter\xdef\csname #1\endcsname{\nextkey}}
%
\def\ref#1{\expandafter\ifx\csname #1\endcsname\relax
\immediate\write16{Reference {#1} undefined}??\else
\csname #1\endcsname\fi}
%
%   Note:  If the KEY contains only letters then \KEY has exactly the
%   same meaning as \ref{KEY} so in the example you could have:
%
%       In section \intro\ we ....
%
%   The \key will work at any time after the macro which sets the
%   number, provided no other macro which sets a number has been used. 
%
%   Macros for forward references:
%              =======
%   The \key \ref macros ONLY work for backwards references.  If you  
%   want to use forwards references, then type \useforwardrefs  near
%   the beginning of your file.  The KEY's are then stored in an
%   auxiliary  .ref  file and you then suffer the same disadvantage as
%   when using LaTeX that you must TeX the file twice to get
%   the references correct.
%
%   To use a forward ref type \ref{KEY}.  (You can type the
%   alternative  \KEY  but you'll get an error on first TeX'ing 
%   if the \KEY is not yet defined.) 
%
%   The macro also allows external references to be listed at the end 
%   of the file (if you wish to).  (Indeed they can be typed anywhere
%   before the \references command.)  You can combine the reference list
%   and the \references command by typing the references (using the
%   same syntax as before) between the commands \biblio and \endbiblio 
%   (don't type \references or they'll be printed twice).
%
\newread\gtinfile
\newwrite\gtreffile
%
\def\useforwardrefs{
\openin\gtinfile\jobname.ref
%
\ifeof\gtinfile
\closein\gtinfile
\immediate\write16{No file \jobname.ref}
\else
\closein\gtinfile
\input \jobname.ref
\fi
%
\immediate\openout\gtreffile \jobname.ref
%
%   Adapt \key :
%
\def\key##1{{\def\\{\noexpand}%
\expandafter\xdef\csname ##1\endcsname{\nextkey}%
\immediate\write\gtreffile{\\\expandafter\\\def\\\csname ##1\\\endcsname%
{\nextkey}}}}
%
%  Adapt macros for external references:  
%
\long\def\reflist##1\endreflist{%
\long\def\thereflist{##1}{\def\refkey####1####2\par{\xdef####1{%
\number\refnumber}{\def\\{\noexpand}\immediate\write\gtreffile
{\\\def\\####1{\number\refnumber}}}\global\advance\refnumber by 1}%
\def\key####1####2\par{\expandafter\xdef%
\csname####1\endcsname{\number\refnumber}%
{\def\\{\noexpand}\immediate\write\gtreffile
{\\\expandafter\\\def\\\csname ####1\\\endcsname{\number\refnumber}}}
\global\advance\refnumber by 1}##1\par}}
%
\long\def\biblio##1\endbiblio{\reflist##1\endreflist\references}%
%
%  Adapt obselete key macros (\numkey, \seckey and \figkey):
%
\def\numkey##1{{\def\\{\noexpand}%
\xdef##1{\number\sectionnumber.\number\resultnumber}
\immediate\write\gtreffile{\\\def\\##1%
{\number\sectionnumber.\number\resultnumber}}}}
%
\def\seckey##1{{\def\\{\noexpand}\xdef##1{\number\sectionnumber}
\immediate\write\gtreffile{\\\def\\##1{\number\sectionnumber}}}}
%
\def\figkey##1{\xdef##1{\number\figurenumber}%
{\def\\{\noexpand}\immediate\write\gtreffile%
{\\\def\\##1{\number\figurenumber}}}
\number\figurenumber\global\advance\figurenumber by 1}
%
}   %  end of \useforwardrefs
%
%
%   The next five macros are obselete and have been superseeded by
%   the general \key macro above.  They are included merely to 
%   maintain backward compatibility for the package:
%
%
\def\figkey#1{\xdef#1{\number\figurenumber}%
\number\figurenumber\global\advance\figurenumber by 1}
%
\def\fig#1#2\endfig{%
\midinsert\cl{#2}\vglue6pt\cl{\small Figure #1}\endinsert}
%
\def\newfig{\number\figurenumber\global\advance\figurenumber by 1}
%
\def\numkey#1{\xdef#1{\number\sectionnumber.\number\resultnumber}}
%
\def\seckey#1{\xdef#1{\number\sectionnumber}}
%
%   End of obselete macros.
%
%
%   The next macro is a version of the verbatim macro given by Knuth.
%
%   This macro produces a "verbatim" printout of
%   any ASCII string which does not contain the symbol "
%   (TeX files do not usually contain " 's).
%   More precisely, everything between consecutive pairs
%   of " 's is printed verbatim in the typewriter font cmtt.
%   For an explanation of how the macro works, see Knuth pp 420-1.
%
%   There are two switches: \verb (which switches the macro on)
%   and \brev which switches the macro off (the default).  When
%   the macro is switched off the symbol " has its usual 
%   meaning for TeX.  To use the macro, type \verb before use
%   and the use " to switch verbatim on and off.  Be careful
%   not to use " for any other purpose.  There is no need to
%   switch the macro off again unless you need to use " for
%   some other purpose (eg making  \mathchardef 's).  Note 
%   that the macro MUST BE OFF before inputting  amsnames.tex .
%
%   Whether the macro is on or off you can always use the
%   control sequence \dq (double quote) for " e.g.
%   \mathchardef\sum=\dq1350  is perfectly valid.
%   The control sequence \ttq is an abbreviation for
%   {\tt\dq}.  Thus "\ttq" will produce " (in cmtt)
%   inside a verbatim quote.
%
%
\def\dq{"}   %  define a code for " so it can be used when \verb is on
\def\ttq{{\tt\dq}}  %  code for " in cmtt
%
\def\verb{\catcode`\"=\active}       %  The main
\def\brev{\catcode`\"=12}            %  switches.
%
\brev                                %  Prime switches and
\verb                                %  switch on.
%
{\obeyspaces\gdef {\ }}              
{\catcode`\`=\active\gdef`{\relax\lq}}
\def"{%
\begingroup\baselineskip=12pt\def\par{\leavevmode\endgraf}%
\tt\obeylines\obeyspaces\parskip=0pt\parindent=0pt%
\catcode`\$=12\catcode`\&=12\catcode`\^=12\catcode`\#=12%
\catcode`\_=12\catcode`\~=12%
\catcode`\{=12\catcode`\}=12\catcode`\%=12\catcode`\\=12%
\catcode`\`=\active\let"\endgroup}
%
\brev      %   Finally switch the macro off (for safety)
%
%   Macros for itemised lists.   Typical use :
%    
%    \items
%    \item{(i)}Colours must be defined.
%    \item{(ii)}Colour cards may not be cited.
%    \enditems
%
%   Result :
%
%    (i)  Colours must be defined. 
%   (ii)  Colour cards may not be cited.
%
%
\def\items{\par\leftskip = 25pt}           % Start of itemised list         
\def\enditems{\par\leftskip = 0pt}         % end of itemised list   
\def\item#1{\par\leavevmode\llap{#1\stdspace}%
\ignorespaces}                             % labelled item
\def\itemb{\item{$\bullet$}}               % bulleted item.
%
%   The \quote ... \endquote macros are for typesetting quotations :
%
\def\quote{\par\leftskip=25pt\rightskip=25pt\it}
\def\endquote{\par\leftskip=0pt\rightskip=0pt\rm}
%
%   A few useful abbreviations :
%
\def\co{\colon\thinspace}    %  Colon with correct spacing for maps.
\def\np{\vfil\eject}         %  Forced page break (new page).
\def\nl{\hfil\break}         %  New line.
\def\cl{\centerline}         %  Centerline
\def\gt{{\mathsurround=0pt\it $\cal G\mskip-2mu$eometry \&\ 
$\cal T\!\!$opology}}        %  The journal title in recommended style
\def\gtm{{\mathsurround=0pt\it $\cal G\mskip-2mu$eometry \&\ 
$\cal T\!\!$opology $\cal M\mskip-1mu$onographs}}    %  for monographs
\def\agt{{\mathsurround=0pt\it$\cal A\mskip-.7mu$lgebraic \&\ 
$\cal G\mskip-2mu$eometric $\cal T\!\!$opology}}  % AGT
%
%    Finally some macros for automatic title page or header generation.
%    To use them type your header information using the following  
%    example as a guide :
%
%    Note that \\ is used as standard separator (for lines in \title and
%    \address, between authors and between email addresses or URL's)
%    and that \email, \url and \secondaddress are optional.
%

% Example:  \title{A short spoof paper\\with a two-line title}
% =======   \authors{Albert Einstein\\Leonardo da Vinci}
%           \address{IAS\\Princeton}\secondaddress{Renaissance\\Venice}
%           \email{ae@ias.princeton.edu\\ldv@ren.ven.hist}
%           \abstract 
%           A short spoof paper with a very short abstract.
%           \endabstract 
%           \primaryclass{00-01, 00-02}\secondaryclass{68-00, 68-01}
%           \keywords{Short, spoof, paper}
%           \maketitlepage
%
%
%    The title page or header will then be generated automatically.
%
%
%    Define the various ingredients of the title page:
%
\def\title#1{\def\thetitle{#1}}
\def\shorttitle#1{\def\theshorttitle{#1}}
%
\def\author#1{\edef\previousauthors{\theauthors}
 \ifx\theauthors\relax\def\theauthors{#1}\else
 \def\theauthors{\previousauthors\par#1}\fi}
\def\shortauthors#1{\def\theshortauthors{#1}}
\let\authors\author\let\secondauthor\author        % aliases
%
\def\address#1{\edef\previousaddresses{\theaddress}
 \ifx\theaddress\relax\def\theaddress{#1}\else
 \def\theaddress{\previousaddresses\par\vskip 2pt\par#1}\fi}
\let\addresses\address                             % alias
\def\secondaddress#1{\edef\previousaddresses{\theaddress}
 \ifx\theaddress\relax\def\theaddress{#1}\else
 \def\theaddress{\previousaddresses\par{\rm and}\par#1}\fi}   
\def\shortaddress#1{\def\theshortaddress{#1}}
%
\def\email#1{\edef\previousemails{\theemail}
 \ifx\theemail\relax\def\theemail{#1}\else
 \def\theemail{\previousemails\hskip 0.75em\relax#1}\fi}
\let\emails\email\let\emailaddress\email\let\emailaddr\email  % aliases
\def\secondemail#1{\edef\previousemails{\theemail}
 \ifx\theemail\relax\def\theemail{#1}\else
 \def\theemail{\previousemails\hskip 0.75em{\rm and}\hskip 0.75em
 \relax#1}\fi}
%
\def\url#1{\edef\previousurls{\theurl}
 \ifx\theurl\relax\def\theurl{#1}\else
 \def\theurl{\previousurls\hskip 0.75em\relax#1}\fi}
\let\urls\url\let\urladdress\url\let\urladdr\url      % aliases
\def\secondurl#1{\edef\previousurls{\theurl}
 \ifx\theurl\relax\def\theurl{#1}\else
 \def\theurl{\previousurls\hskip 0.75em{\rm and}\hskip 0.75em
 \relax#1}\fi}
%
\long\def\abstract#1\endabstract{\long\def\theabstract{#1}}
%
\def\primaryclass#1{\def\theprimaryclass{#1}}
\let\subjclass\primaryclass                        % alias
\def\secondaryclass#1{\def\thesecondaryclass{#1}}
\def\keywords#1{\def\thekeywords{#1}}
%
%  Set \\ to \par and title page items to \relax to initialise macros :
%
\let\\\par\let\thetitle\relax\let\theshorttitle\relax
\let\theauthors\relax\let\theshortauthors\relax
\let\theaddress\relax\let\theshortaddress\relax
\let\theemail\relax\let\theurl\relax
\let\theabstract\relax\let\theprimaryclass\relax
\let\thesecondaryclass\relax\let\thekeywords\relax
%
%
%
%   Basic title page layout (edit this macro if you
%   wish to adjust the title page layout) :
%
\long\def\maketitlepage{    % start of definition of \maketitlepage

\vglue 0.2truein   % top margin

% title :
%
{\parskip=0pt\leftskip 0pt plus 1fil\def\\{\par\smallskip}{\large
\bf\thetitle}\par\medskip}   

\vglue 0.15truein 

% authors :
%
{\parskip=0pt\leftskip 0pt plus 1fil\def\\{\par}{\sc\theauthors}
\par\medskip}%
 
\vglue 0.1truein 

% address(es) email's and URL's (with switches to detect whether the
% optional items have been used) :
%
{\small\parskip=0pt
{\leftskip 0pt plus 1fil\def\\{\par}{\sl\theaddress}\par}
\ifx\theemail\relax\else  % email address?
\vglue 5pt \def\\{\stdspace{\rm and}\stdspace} 
\cl{Email:\stdspace\tt\theemail}\fi
\ifx\theurl\relax\else    % URL given?
\vglue 5pt \def\\{\stdspace{\rm and}\stdspace} 
\cl{URL:\stdspace\tt\theurl}\fi\par}

\vglue 7pt 

{\bf Abstract}

\vglue 5pt

\theabstract

\vglue 7pt 

{\bf AMS Classification numbers}\quad Primary:\quad \theprimaryclass\par

Secondary:\quad \thesecondaryclass

\vglue 5pt 

{\bf Keywords:}\quad \thekeywords

\np  % page break at the end of the title page

}    % end of definition of \maketitlepage
%
%    % \makeshorttitle (for general preprints) doesn't take a new page
%
\long\def\makeshorttitle{    % start of definition of \makeshorttitle

%\vglue 0.2truein   % top margin

% title :
%
{\parskip=0pt\leftskip 0pt plus 1fil\def\\{\par\smallskip}{\large
\bf\thetitle}\par\medskip}   

\vglue 0.05truein 

% authors :
%
{\parskip=0pt\leftskip 0pt plus 1fil\def\\{\par}{\sc\theauthors}
\par\medskip}%
 
\vglue 0.03truein 

% address(es) email's and URL's (with switches to detect whether the
% optional items have been used) :
%
{\small\parskip=0pt
{\leftskip 0pt plus 1fil\def\\{\par}{\sl\ifx\theshortaddress\relax
\theaddress\else\theshortaddress\fi}\par}
\ifx\theemail\relax\else  % email address?
\vglue 5pt \def\\{\stdspace{\rm and}\stdspace} 
\cl{Email:\stdspace\tt\theemail}\fi
\ifx\theurl\relax\else    % URL given?
\vglue 5pt \def\\{\stdspace{\rm and}\stdspace} 
\cl{URL:\stdspace\tt\theurl}\fi\par}

\vglue 10pt 

% abstract and classification numbers (with switches):

{\small\leftskip 25pt\rightskip 25pt{\bf Abstract}\stdspace\theabstract

{\bf AMS Classification}\stdspace\theprimaryclass
\ifx\thesecondaryclass\relax\else; \thesecondaryclass\fi\par
{\bf Keywords}\stdspace \thekeywords\par}
\vglue 7pt
}    % end of definition of \makeshorttitle
%
\let\maketitle\makeshorttitle        %% alias
%
%    %%%% \makeagttitle (for AGT) similar to \makeshorttitle but
%         with addresses omitted (they go at the end)
%
%%%% publication info and test defaults:

\def\volumenumber#1{\def\thevolumenumber{#1}}
\def\volumeyear#1{\def\thevolumeyear{#1}}
\def\pagenumbers#1#2{\def\startpage{#1}\def\finishpage{#2}}
\def\published#1{\def\publishdate{#1}}
\def\received#1{\def\receiveddate{#1}}
\def\revised#1{\def\reviseddate{#1}}
\let\reviseddate\relax
%% Defaults for authors to use to check layout
\volumenumber{X}
\volumeyear{20XX}
\pagenumbers{1}{XXX}
\published{XX Xxxember 20XX}

\long\def\makeagttitle{   %%% start of definition of \makeagttitle
\agt\hfill      %   Journal title (top left) 
%   logo placeholder (top right)
\hbox to 60truept{\vbox to 0pt{\vglue -14truept{\bf [Logo here]}\vss}\hss}
%
\break
{\small Volume \thevolumenumber\ (\thevolumeyear)
\startpage--\finishpage\nl
Published: \publishdate}

\vglue .2truein

% title
{\parskip=0pt\leftskip 0pt plus 1fil\def\\{\par\smallskip}{\large
\bf\thetitle}\par\medskip}   
\vglue 0.05truein 

% authors :
%
{\parskip=0pt\leftskip 0pt plus 1fil\def\\{\par}{\sc\theauthors}
\par\medskip}%
 
\vglue 0.03truein 

%  abstract and classification numbers:

{\small\leftskip 25truept\rightskip 25truept{\bf Abstract}\stdspace\theabstract

{\bf AMS Classification}\stdspace\theprimaryclass
\ifx\thesecondaryclass\relax\else; \thesecondaryclass\fi\par
{\bf Keywords}\stdspace \thekeywords\par}\vglue 7truept

}   %%%% end of definition of \makeagttitle


%%%%% Macro to typeset addresses (typically at the end of the paper)

\def\Addresses{\bigskip
{\small \parskip 0pt \leftskip 0pt \rightskip 0pt plus 1fil \def\\{\par}
\sl\theaddress\par\medskip \rm Email:\stdspace\tt\theemail\par
\ifx\theurl\relax\else\smallskip \rm URL:\stdspace\tt\theurl\par\fi}}

\def\agtart{%   Full mock-up of AGT article style (for authors to test with)
%  get print centerpage:
\hoffset 14truemm
\voffset 31truemm
\font\phead=cmsl9 scaled 950
\font\pnum=cmbx10 scaled 913
\font\pfoot=cmsl9 scaled 950
%  headline and footline
\headline{\vbox to 0pt{\vskip -4.5mm\line{\small\phead\ifnum
\count0=\startpage ISSN numbers are printed here
\hfill {\pnum\folio}\else\ifodd\count0\def\\{ }% 
\ifx\theshorttitle\relax\thetitle\else\theshorttitle\fi\hfill{\pnum\folio}
\else\def\\{ and }{\pnum\folio}\hfill\ifx\theshortauthors\relax\theauthors
\else\theshortauthors\fi\fi\fi}\vss}}
\footline{\vbox to 0pt{\vglue 0mm\line{\small\pfoot\ifnum\count0=\startpage
Copyright declaration is printed here\hfill\else
\agt, Volume \thevolumenumber\ (\thevolumeyear)\hfill\fi}\vss}}
%  force \agttitle
\let\maketitle\makeagttitle\let\makeshorttitle\makeagttitle}


\endinput
%
%    Version 1.1   9.6.96
%    Version 1.2   spaces tightened, References \large  27.10.97 
%    Version 1.3   automatic title page macros  11.11.97
%    Version 1.4   vertical spacing improved  24.12.97
%    Version 1.5   \qua, and \makeshorttitle added,  internal refs overhauled 
%                  (based on \key and \ref), \useforwardrefs added 9.12.98
%    Version 1.6   update for AGT: \agtart and \makeagttitle added 15.10.00