
%=========== cut here ================

\documentclass[12pt]{article}
\usepackage{rawfonts}
%------------------------------------------------
% chemstruct.tex
%
%   January 4, 1993
%
%     The following special characters are used in 
%     this macro package:
%     
%     backslash:      \
%     vertical bar:   |
%     left quote:     `
%     right quote:    '
%     quotation mark: "
%     left brace:     {
%     right brace:    }
%     dollar sign:    $
%     percent sign:   %
%     number sign:    #
%     circumflex:     ^
%
%{\catcode`\|=0 |catcode`|\=12 |obeyspaces |let|m=|message
%|m{                                                                        }
%|m{  These macros may be used free of charge and without authorization     }
%|m{  for scientific work only.  Written permission is required for any     }
%|m{  commercial use.  If used in publications, citation similar to the     }
%|m{  following reference is required:                                      }
%|m{                                                                        }
%|m{  Michael Ramek,                                                        }
%|m{  ``Chemical Structure Formul\ae\ and x/y-Diagrams with \TeX'',         }
%|m{  in                                                                    }
%|m{  ``\TeX: Applications, Uses, Methods, Proceedings of the \TeX88        }
%|m{  Conference'',                                                         }
%|m{  edited by Malcolm Clark,                                              }
%|m{  published by Ellis Horwood Publishers, Chichester, UK, 1990,          }
%|m{  pages 227--258                                                        }
%|m{                                                                        }
%|m{  Questions and inquiries should be addressed to the author:            }
%|m{                                                                        }
%|m{  Michael Ramek                                                         }
%|m{  Institut f\"ur Physikalische und Theoretische Chemie,                 }
%|m{  Technische Universit\"at Graz                                         }
%|m{  Rechbauerstra{\ss}e 12                                                }
%|m{  A--8010 Graz                                                          }
%|m{  Austria                                                               }
%|m{     }|m{}}
%
\newhelp\maxsIde{mproper nesting of side chains!}
\newhelp\aromatsideIgnored%
{ncomplete aromatic system in side chain ignored!}
\newhelp\bicycloIgnored{mproper bicyclo definition ignored!}
\newhelp\aromatIgnored{ncomplete aromatic system ignored!}
\def\messAge#1{{\escapechar`I\message{\the#1}}}%
%
\def\vrUle#1#2#3{\hbox to\zEro{\vrule width#1 height#2 depth#3%
\hss}\kern#1}%
\def\negadvAnc#1#2{\advance#1-#2}%
\def\atom#1{\sAve{#1}\adjustAtom}%
\def\phantatom#1{\sAve{#1}\phAntbox\adjustAtom}%
\def\adjustAtom{\negadvAnc\hposition\lastwd\ifnum\backflag=1%
\halfbAck\else\ifnum\backflag=2\fullbAck\fi\fi%
\raise\vposition\box0\ifdim\hposition<\minhposition%
\minhposition\hposition\fi\advance\hposition\lastwd%
\helpseven\baselineskip\helpeight\count33sp%
\advance\helpseven\vposition\negadvAnc\helpeight\vposition%
\vrUle\zEro\helpseven\helpeight\backflag0}%
%
\def\epin#1{\setbox0\hbox{#1}\ifnoprint\phAntbox\fi%
\raise\vposition\copy0\kern-\wd0\advance\hposition\wd0\relax%
\ifdim\hposition>\maxhposition\maxhposition\hposition\fi%
\negadvAnc\hposition\wd0}%
\def\wpin#1{\kern-\lastwd\setbox0\hbox{#1}\ifnoprint\phAntbox\fi%
\kern-\wd0\negadvAnc\hposition\wd0\negadvAnc\hposition\lastwd%
\relax\ifdim\hposition<\minhposition\minhposition\hposition\fi%
\advance\hposition\lastwd\advance\hposition\wd0%
\raise\vposition\box0\kern\lastwd}%
\def\spin#1{\kern-\ptfIve\lastwd\setbox0\hbox{#1}%
\ifnoprint\phAntbox\fi%
\kern-\ptfIve\wd0\negadvAnc\vposition\ht0\negadvAnc\vposition\dp0%
\advance\vposition-\fIfth\raise\vposition\copy0%
\advance\vposition\ht0\advance\vposition\dp0%
\advance\vposition\fIfth\kern-\ptfIve\wd0\kern\ptfIve\lastwd}%
\def\npin#1{\kern-\ptfIve\lastwd\setbox0\hbox{#1}%
\ifnoprint\phAntbox\fi%
\kern-\ptfIve\wd0\advance\vposition\ht0\advance\vposition\dp0%
\advance\vposition\fIfth\raise\vposition\copy0%
\negadvAnc\vposition\ht0\negadvAnc\vposition\dp0%
\advance\vposition-\fIfth\kern-\ptfIve\wd0\kern\ptfIve\lastwd}%
%
\def\sAve#1{\setbox0\hbox{#1}\lastwd\wd0\lasthtdp\ht0%
\advance\lasthtdp\dp0\advance\hposition\lastwd%
\advance\hsidecorr\lastwd\ifdim\hposition>\maxhposition%
\maxhposition\hposition\fi\ifnoprint\phAntbox\fi}%
\def\phAntbox{\helpone\ht0\negadvAnc\helpone\dp0%
\helptwo-\ht0\advance\helptwo\helpone%
\helpone-\helpone\negadvAnc\helpone\dp0%
\setbox0\hbox{\vrUle\lastwd\helpone\helptwo}}%
%
\def\side#1{\ifnum\sidenesting>20\messAge{\maxsIde}\else%
\advance\sidenesting1\cone\sidenesting\multiply\cone10%
\ctwo\cone\advance\ctwo10%
\loop\cthree\ctwo\advance\cthree-10\relax%
\ifnum\cthree>0\dimen\ctwo\dimen\cthree%
\negadvAnc\ctwo1\repeat\ctwo\cone\advance\ctwo20%
\loop\cthree\ctwo\advance\cthree-10\relax%
\ifnum\cthree>10\count\ctwo\count\cthree\advance\ctwo-10%
\repeat\hsidecorr\zEro\aromatcount0 #1\kern-\hsidecorr%
\negadvAnc\hposition\hsidecorr\vposition\dimen11\ctwo4%
\advance\cone1\loop\cthree\ctwo\advance\cthree10\ifnum\ctwo<\cone%
\dimen\ctwo\dimen\cthree\advance\ctwo1\repeat\ctwo20%
\advance\cone\ctwo%
\ifnum\aromatcount>0\messAge{\aromatsideIgnored}\fi%
\loop\cthree\ctwo\advance\cthree10\relax%
\ifnum\cthree<\cone\count\ctwo\count\cthree%
\advance\ctwo10\repeat\negadvAnc\sidenesting1\fi}%
%
\def\hcorrEct#1{\advance\hsidecorr#1\advance\hposition#1%
\kern#1}%
\def\fullbAck{\hcorrEct{-\lastwd}}%
\def\halfbAck{\hcorrEct{-\ptfIve\lastwd}}%
\def\nestrIch{\ifnum\nemarker=0\setbox83\hbox{\chelpeight0%
\helpone.6\fIvem\kern\ptzEro\nInem\loop\helptwo\helpone%
\advance\helptwo-\ptzEro\sIxem%
\vrUle{\ptzEro1\twOem}\helpone{-\helptwo}%
\advance\helpone\ptzEro08\thrEm\advance\chelpeight1\relax%
\ifnum\chelpeight<50\repeat\kern\ptzEro\nInem}\nemarker1\fi%
\sAve{\copy83}}%
\def\nwstrIch{\ifnum\nwmarker=0\setbox93\hbox{\chelpeight0%
\helpone.6\fIvem\kern\ptzEro\nInem\loop\helptwo\helpone%
\advance\helptwo-\ptzEro\sIxem%
\vrUle{\ptzEro1\twOem}\helpone{-\helptwo}%
\advance\helpone-\ptzEro08\thrEm\advance\chelpeight1\relax%
\ifnum\chelpeight<50\repeat\kern\ptzEro\nInem}%
\nwmarker1\fi\sAve{\copy93}}%
\def\dotbackslAsh{\setbox1\hbox{.}\raise.6\fIvem\copy1%
\kernfIfteen\raise\ptfOur2\fIvem\copy1%
\kernfIfteen\raise\fIfth\copy1%
\kernfIfteen\lower\ptzEro2\fIvem\copy1%
\kernfIfteen\lower\ptzwEi\fIvem\box1\kern\ptzEro\eitEm}%
\def\dotslAsh{\setbox1\hbox{.}\lower\ptzwEi\fIvem\copy1%
\kernfIfteen\lower\ptzEro2\fIvem\copy1%
\kernfIfteen\raise\fIfth\copy1%
\kernfIfteen\raise\ptfOur2\fIvem\copy1%
\kernfIfteen\raise.6\fIvem\box1\kern\ptzEro\eitEm}%
\def\kernfIfteen{\kern-\ptOne\fIvem}%
\def\nnepfEil{\ifnoprint\sAve{\vrUle{\pthrEe7783\eitEm}\zEro\zEro}%
\else\sAve{\kern\ptzEro\nInem\helpone\ptfIve4\sIxem%
\helptwo-\ptfIve4\onEm\relax\loop\ifdim\helptwo<\ptfIve5\fOurem%
\vrUle{\ptzEro0\fOurem}\helptwo\helpone%
\advance\helpone-\ptzEro1\fIvem\advance\helptwo\ptzEro\fIvem\repeat%
\loop\ifdim\helptwo>-\helpone\vrUle{\ptzEro0\fOurem}\helptwo\helpone%
\advance\helpone-\ptzEro1\fIvem\advance\helptwo-\ptzEro\zEero\fIvem%
\repeat}\fi}%
\def\enepfEil{\ifnum\enemarker=0%
\setbox63\hbox{\helpone\ptzEro8\sIxem\helptwo-\helpone%
\kern.\onEm\loop\advance\helpone-\ptzEro0\thrEm%
\advance\helptwo\ptzEro1\onEm\relax\ifdim\helptwo<\fIfth%
\vrUle\stroke\helptwo\helpone\repeat%
\vrUle\stroke{.\onEm}\helpone%
\kern\ptzEro\sEvem}\enemarker1\fi\sAve{\copy63}}%
\def\esepfEil{\ifnum\esemarker=0%
\setbox43\hbox{\helpone-\ptzEro8\sIxem\helptwo-\helpone%
\kern.\onEm\loop\advance\helpone\ptzEro0\thrEm%
\advance\helptwo-\ptzEro1\onEm\relax\ifdim\helptwo>-\fIfth%
\vrUle\stroke{-\helpone}{-\helptwo}\repeat%
\vrUle\stroke{-\helpone}{.\onEm}%
\kern\ptzEro\sEvem}\esemarker1\fi\sAve{\copy43}}%
\def\ssepfEil{\ifnoprint\sAve{\vrUle{\pthrEe7783\eitEm}\zEro\zEro}%
\else\sAve{\kern\ptzEro\nInem\helpone\ptfIve4\sIxem%
\helptwo-\ptfIve4\onEm\loop\ifdim\helptwo<\ptfIve5\fOurem%
\vrUle{\ptzEro0\fOurem}\helpone\helptwo%
\advance\helpone-\ptzEro1\fIvem\advance\helptwo\ptzEro\fIvem%
\repeat\loop\ifdim\helptwo>-\helpone%
\vrUle{\ptzEro0\fOurem}\helpone\helptwo%
\advance\helpone-\ptzEro1\fIvem\advance\helptwo-\ptzEro\zEero\fIvem%
\repeat}\fi}%
\def\sswpfEil{\ifnoprint\sAve{\vrUle{\pthrEe7783\eitEm}\zEro\zEro}%
\else\sAve{\helpone-\ptfIve\em\helptwo\ptfIve\thrEm%
\loop\ifdim\helptwo<\ptfIve5\fOurem%
\vrUle{\ptzEro0\fOurem}\helpone\helptwo%
\advance\helpone\ptzEro1\fIvem\advance\helptwo\ptzEro\zEero\fIvem%
\repeat\loop\ifdim\helpone<\ptfIve4\sIxem%
\vrUle{\ptzEro0\fOurem}\helpone\helptwo%
\advance\helptwo-\ptzEro\fIvem\advance\helpone\ptzEro1\fIvem%
\repeat\kern\ptzEro\fIvem}\fi}%
\def\wswpfEil{\ifnum\wswmarker=0%
\setbox53\hbox{\helpone\zEro\kern\ptzEro\sEvem%
\vrUle\stroke\zEro{.\onEm}%
\advance\helpone\ptzEro0\thrEm\helptwo\fIfth%
\loop\ifdim\helpone>-\helptwo\vrUle\stroke\helpone\helptwo%
\advance\helpone\ptzEro0\thrEm\advance\helptwo-\ptzEro1\onEm%
\repeat\kern.\onEm}\wswmarker1\fi\sAve{\copy53}}%
\def\wnwpfEil{\ifnum\wnwmarker=0\setbox73\hbox{\helpone\zEro%
\kern\ptzEro\sEvem\vrUle\stroke{.\onEm}\zEro%
\advance\helpone\ptzEro0\thrEm\helptwo\fIfth%
\loop\ifdim\helpone>-\helptwo\vrUle\stroke\helptwo\helpone%
\advance\helpone\ptzEro0\thrEm\advance\helptwo-\ptzEro1\onEm%
\repeat\kern.\onEm}\wnwmarker1\fi\sAve{\copy73}}%
\def\nnwpfEil{\ifnoprint\sAve{\vrUle{\pthrEe7783\eitEm}\zEro\zEro}%
\else\sAve{\helpone-\ptfIve\em\helptwo\ptfIve\thrEm%
\loop\ifdim\helptwo<\ptfIve5\fOurem%
\vrUle{\ptzEro0\fOurem}\helptwo\helpone%
\advance\helpone\ptzEro1\fIvem\advance\helptwo\ptzEro\zEero\fIvem%
\repeat\loop\ifdim\helpone<\ptfIve4\sIxem%
\vrUle{\ptzEro0\fOurem}\helptwo\helpone%
\advance\helpone\ptzEro1\fIvem\advance\helptwo-\ptzEro\fIvem%
\repeat\kern\ptzEro\fIvem}\fi}%
%
\def\nphantom{\adjUstn\postadjUstn}%
\def\nsingle{\adjUstn\raise\vposition\nstrIch\postadjUstn}%
\def\ndouble{\adjUstn\kern.\onEm\raise\vposition\nstrIch%
\kern-\fIfth\raise\vposition\nstrIch\kern.\onEm\postadjUstn}%
\def\ntriple{\adjUstn\kern-\fIfth\raise\vposition\nstrIch%
\kern\fIfth\raise\vposition\nstrIch\kern\fIfth%
\raise\vposition\nstrIch\kern-\fIfth\postadjUstn}%
\def\adjUstn{\kernEleven\halfbAck}%
\def\postadjUstn{\advance\vposition1\pthrEe5\twOem\backflag1}%
\def\nstrIch{\hbox{\ifnoprint\vrUle\zEro{1\ptOne\nInem}{-.\onEm}\else%
\vrUle{\ptzEro\fOurem}{1\ptOne\nInem}{-.\onEm}\kern-\ptzEro\fOurem%
\fi}}%
\def\kernEleven{\advance\vposition1\ptOne11111\lasthtdp}%
%
\def\nneabove{\advance\vposition2\ptzEro5\lasthtdp\halfbAck%
\nnepfEil\raise\vposition\box0\hcorrEct{\ptOne7\lastwd}%
\advance\vposition.80\thrEm\backflag1}%
\def\nneevoba{\advance\vposition2\ptzEro5\lasthtdp\halfbAck%
\sswpfEil\raise\vposition\box0\hcorrEct{\pthrEe4\lastwd}%
\advance\vposition.80\thrEm\backflag1}%
\def\nnebelow{\advance\vposition2\ptzEro5\lasthtdp\halfbAck%
\sAve{\setbox1\hbox{.}\lower\ptfIve5\fIvem\copy1\kerntwEntythree%
\lower\pthrEe\onEm\copy1\kerntwEntythree\lower\ptzEro6\fIvem\copy1%
\kerntwEntythree\raise\ptOne\eitEm\copy1\kerntwEntythree%
\raise\ptfOur2\fIvem\box1}\raise\vposition\box0%
\hcorrEct{-\ptzEro5\lastwd}\advance\vposition.80\thrEm\backflag1}%
\def\nnephantom{\halfbAck\sAve/\phAntbox\adjUstnne%
\raise\vposition\box0\postadjUstnne}%
\def\nnesingle{\halfbAck\sAve/\adjUstnne%
\raise\vposition\box0\postadjUstnne}%
\def\nnedouble{\halfbAck\sAve/\adjUstnne%
\advance\vposition\ptzEro3\onEm\kern-\ptzEro9\thrEm%
\raise\vposition\copy0\advance\vposition-\ptzEro6\twOem\kern-\wd0%
\kern\ptOne8\sIxem\raise\vposition\box0\kern-\ptzEro9\thrEm%
\advance\vposition\ptzEro3\onEm\postadjUstnne}%
\def\nnetriple{\halfbAck\sAve/\adjUstnne%
\advance\vposition\ptzEro6\twOem\kern-\ptOne8\sIxem%
\raise\vposition\copy0\advance\vposition-\ptzEro6\twOem\kern-\wd0%
\kern\ptOne8\sIxem\raise\vposition\copy0%
\advance\vposition-\ptzEro6\twOem\kern-\wd0\kern\ptOne8\sIxem%
\raise\vposition\box0\kern-\ptOne8\sIxem%
\advance\vposition\ptzEro6\twOem\postadjUstnne}%
\def\adjUstnne{\kernEleven\hcorrEct{\pthrEe7\lastwd}}%
\def\postadjUstnne{\advance\vposition\lasthtdp%
\hcorrEct{\ptOne3\lastwd}\ifdim\hposition>\maxhposition%
\maxhposition\hposition\fi\backflag1}%
\def\kerntwEntythree{\kern-\ptzwEi\thrEm}%
%
\def\nebelow{\halfbAck\sAve\dotslAsh\adjUstnne%
\raise\vposition\box0\postadjUstnne}%
\def\nephantom{\nestrIch\phAntbox\raise\vposition\box0%
\advance\vposition1\ptzEro5\fIvem}%
\def\nesingle{\nestrIch\raise\vposition\box0%
\advance\vposition1\ptzEro5\fIvem}%
\def\nedouble{\nestrIch\advance\vposition\ptzEro70\sEvem%
\kern-\ptzEro70\sEvem\raise\vposition\copy0\kern-\wd0%
\kern\ptOne41\fOurem%
\advance\vposition-\ptOne41\fOurem\raise\vposition\box0%
\kern-\ptzEro70\sEvem\advance\vposition1\ptOne25\sEvem}%
\def\netriple{\nestrIch\raise\vposition\copy0\kern-\wd0%
\kern-\ptOne41\fOurem\advance\vposition\ptOne41\fOurem%
\raise\vposition\copy0\kern-\wd0\kern\ptzwEi82\eitEm%
\advance\vposition-\ptzwEi82\eitEm\raise\vposition\box0%
\kern-\ptOne41\fOurem\advance\vposition1\ptOne96\fOurem}%
%
\def\eneabove{\advance\vposition\ptfOur\nInem\enepfEil%
\raise\vposition\box0\advance\vposition-\ptzEro\nInem}%
\def\eneevoba{\advance\vposition\ptfIve8\fIvem\wswpfEil%
\raise\vposition\box0\advance\vposition-\ptOne8\fIvem}%
\def\enebelow{\advance\vposition\ptfIve\onEm\sAve\lurOdots%
\raise\vposition\box0\advance\vposition-\ptOne\onEm}%
%
\def\ephantom{\sAve\hstrIch\phAntbox\raise\vposition\box0}%
\def\esingle{\sAve\hstrIch\raise\vposition\box0}%
\def\edouble{\sAve\hstrIch\advance\vposition.\onEm%
\raise\vposition\copy0\kern-\wd0\advance\vposition-\fIfth%
\raise\vposition\box0\advance\vposition.\onEm}%
\def\etriple{\sAve\hstrIch\advance\vposition\fIfth%
\raise\vposition\copy0\kern-\wd0\advance\vposition-\fIfth%
\raise\vposition\copy0\advance\vposition-\fIfth\kern-\wd0%
\raise\vposition\box0\advance\vposition\fIfth}%
%
\def\eseabove{\advance\vposition\ptOne\nInem\esepfEil%
\raise\vposition\box0\advance\vposition-\ptfIve\nInem}%
\def\eseevoba{\advance\vposition\ptzEro\nInem\wnwpfEil%
\raise\vposition\box0\advance\vposition-\ptfOur\nInem}%
\def\esebelow{\advance\vposition\ptOne\sEvem\sAve\lorUdots%
\raise\vposition\box0\advance\vposition-\ptfIve\sEvem}%
%
\def\sebelow{\ssegenerAl\dotbackslAsh}%
\def\sephantom{\nwstrIch\phAntbox\advance\vposition-.62\eitEm%
\raise\vposition\box0\advance\vposition-\ptfOur2\eitEm}%
\def\sesingle{\nwstrIch\advance\vposition-.62\eitEm%
\raise\vposition\box0\advance\vposition-\ptfOur2\eitEm}%
\def\sedouble{\nwstrIch\advance\vposition-.698\sEvem%
\kern-\ptzEro70\sEvem\raise\vposition\copy0\kern-\wd0%
\kern\ptOne41\fOurem\advance\vposition\ptOne41\fOurem%
\raise\vposition\box0\kern-\ptzEro70\sEvem%
\advance\vposition-\ptfOur98\sEvem}%
\def\setriple{\nwstrIch\advance\vposition-.62\eitEm%
\raise\vposition\copy0\kern-\wd0\kern-\ptOne41\fOurem%
\advance\vposition-\ptOne41\fOurem\raise\vposition\copy0%
\kern-\wd0\kern\ptzwEi82\eitEm\advance\vposition\ptzwEi82\eitEm%
\raise\vposition\box0%
\kern-\ptOne41\fOurem\advance\vposition-\ptfIve69\fOurem}%
%
\def\sseabove{\sseAdjust\ssepfEil\raise\vposition\box0%
\hcorrEct{-\ptzEro6\lastwd}\ssepostAdjust}%
\def\sseevoba{\sseAdjust\nnwpfEil\raise\vposition\box0%
\hcorrEct{\ptzEro6\lastwd}\ssepostAdjust}%
\def\ssebelow{\sseAdjust\sAve{\setbox1\hbox{.}%
\raise\ptfOur5\fIvem\copy1%
\kerntwEntythree\raise\ptzwEi\onEm\copy1%
\kerntwEntythree\lower\ptzEro3\fIvem\copy1%
\kerntwEntythree\lower\ptzwEi\eitEm\copy1%
\kerntwEntythree\lower\ptfIve2\fIvem\box1}\kern-\ptzEro8\lastwd%
\raise\vposition\box0\kern-\ptOne7\lastwd%
\advance\hsidecorr-\ptzwEi5\lastwd\advance\hposition-\ptzwEi5\lastwd%
\ssepostAdjust}%
\def\sseAdjust{\advance\vposition-1\ptzwEi22222\lasthtdp\halfbAck}%
\def\ssepostAdjust{\advance\vposition-1\pthrEe6666\sIxem\backflag1}%
\def\ssephantom{\halfbAck\sAve{$\backslash$}\phAntbox%
\adjUstsse\raise\vposition\box0\postadjUstsse}%
\def\ssesingle{\ssegenerAl{$\backslash$}}%
\def\ssedouble{\halfbAck\sAve{$\backslash$}\adjUstsse%
\advance\vposition\ptzEro3\onEm\kern\ptzEro9\thrEm%
\raise\vposition\copy0\advance\vposition-\ptzEro6\twOem%
\kern-\wd0\kern-\ptOne8\sIxem\raise\vposition\box0\kern\ptzEro9\thrEm%
\advance\vposition\ptzEro3\onEm\postadjUstsse}%
\def\ssetriple{\halfbAck\sAve{$\backslash$}\adjUstsse%
\advance\vposition\ptzEro6\twOem\kern\ptOne8\sIxem%
\raise\vposition\copy0%
\advance\vposition-\ptzEro6\twOem\kern-\wd0\kern-\ptOne8\sIxem%
\raise\vposition\copy0\advance\vposition-\ptzEro6\twOem\kern-\wd0%
\kern-\ptOne8\sIxem\raise\vposition\box0\kern\ptOne8\sIxem%
\advance\vposition\ptzEro6\twOem\postadjUstsse}%
\def\ssegenerAl#1{\halfbAck\sAve{#1}\adjUstsse%
\raise\vposition\box0\postadjUstsse}%
\def\adjUstsse{\hcorrEct{\ptzwEi3\lastwd}%
\negadvAnc\vposition\lasthtdp}%
\def\postadjUstsse{\negEleven\hcorrEct{\ptzwEi7\lastwd}%
\ifdim\hposition>\maxhposition\maxhposition\hposition\fi%
\backflag1}%
%
\def\sphantom{\adjUsts\postadjUsts}%
\def\ssingle{\adjUsts\raise\vposition\sstrIch\postadjUsts}%
\def\sdouble{\adjUsts\kern.\onEm\raise\vposition\sstrIch%
\kern-\fIfth\raise\vposition\sstrIch\kern.\onEm\postadjUsts}%
\def\striple{\adjUsts\kern-\fIfth\raise\vposition\sstrIch%
\kern\fIfth\raise\vposition\sstrIch\kern\fIfth\raise\vposition%
\sstrIch\kern-\fIfth\postadjUsts}%
\def\adjUsts{\negEleven\halfbAck}%
\def\postadjUsts{\advance\vposition-1\pthrEe5\twOem\backflag1}%
\def\sstrIch{\hbox{\ifnoprint%
\vrUle\zEro{\ptfIve\fOurem}{\ptfIve\fIvem}%
\else\vrUle{\ptzEro\fOurem}{\ptfIve\fOurem}{\ptfIve\fIvem}%
\kern-\ptzEro\fOurem\fi}}%
%
\def\sswabove{\sseAdjust\sswpfEil\kern-1\ptzwEi5\lastwd%
\raise\vposition\box0\kern-.81\lastwd%
\advance\hsidecorr-2\ptzEro6\lastwd%
\advance\hposition-2\ptzEro6\lastwd\ssepostAdjust}%
\def\sswevoba{\sseAdjust\nnepfEil\kern-1\ptOne\lastwd%
\raise\vposition\box0\kern-.83\lastwd%
\advance\hsidecorr-1.93\lastwd%
\advance\hposition-1.93\lastwd\ssepostAdjust}%
\def\sswbelow{\sseAdjust%
\sAve{\setbox1\hbox{.}\lower\ptfIve0\fIvem\copy1\kerntwEntythree%
\lower\ptzwEi\sIxem\copy1\kerntwEntythree%
\lower\ptzEro1\fIvem\copy1\kerntwEntythree%
\raise\ptzwEi\thrEm\copy1\kerntwEntythree%
\raise\ptfOur7\fIvem\box1}\kern-.9\lastwd\raise\vposition\box0%
\kern-.85\lastwd\advance\hsidecorr-1.75\lastwd%
\advance\hposition-1.75\lastwd\ssepostAdjust}%
\def\sswphantom{\halfbAck\sAve/\phAntbox\adjUstssw%
\raise\vposition\box0\postadjUstssw}%
\def\sswsingle{\sswgenerAl/}%
\def\sswdouble{\halfbAck\sAve/\adjUstssw%
\advance\vposition\ptzEro3\onEm\kern-\ptzEro9\thrEm%
\raise\vposition\copy0\advance\vposition-\ptzEro6\twOem\kern-\wd0%
\kern\ptOne8\sIxem\raise\vposition\box0\kern-\ptzEro9\thrEm%
\advance\vposition\ptzEro3\onEm\postadjUstssw}%
\def\sswtriple{\halfbAck\sAve/\adjUstssw%
\advance\vposition\ptzEro6\twOem\kern-\ptOne8\sIxem%
\raise\vposition\copy0\advance\vposition-\ptzEro6\twOem\kern-\wd0%
\kern\ptOne8\sIxem\raise\vposition\copy0%
\advance\vposition-\ptzEro6\twOem%
\kern-\wd0\kern\ptOne8\sIxem\raise\vposition\box0%
\kern-\ptOne8\sIxem\advance\vposition\ptzEro6\twOem\postadjUstssw}%
\def\sswgenerAl#1{\halfbAck\sAve{#1}\adjUstssw%
\raise\vposition\box0\postadjUstssw}%
\def\adjUstssw{\hcorrEct{-1\ptOne\lastwd}%
\negadvAnc\vposition\lasthtdp}%
\def\postadjUstssw{\negEleven\hcorrEct{-1\ptfOur\lastwd}\backflag1}%
\def\negEleven{\advance\vposition-1\ptOne11111\lasthtdp}%
%
\def\swbelow{\sswgenerAl\dotslAsh}%
\def\swphantom{\fullbAck\nestrIch\phAntbox%
\advance\vposition-1\ptzEro5\fOurem\fullbAck\raise\vposition\box0%
\fullbAck\backflag2}%
\def\swsingle{\fullbAck\nestrIch\advance\vposition-1\ptzEro5\fOurem%
\fullbAck\raise\vposition\box0\fullbAck\backflag2}%
\def\swdouble{\fullbAck\nestrIch%
\advance\vposition-1\ptOne24\sEvem\fullbAck\kern\ptzEro70\sEvem%
\raise\vposition\copy0\kern-\wd0\kern-\ptOne41\fOurem%
\advance\vposition\ptOne41\fOurem\raise\vposition\box0%
\kern\ptzEro70\sEvem%
\fullbAck\advance\vposition-\ptzEro70\sEvem\backflag2}%
\def\swtriple{\fullbAck\nestrIch\advance\vposition-1\ptzEro5\fOurem%
\fullbAck\raise\vposition\copy0\kern-\wd0\kern-\ptOne41\fOurem%
\advance\vposition\ptOne41\fOurem\raise\vposition\copy0\kern-\wd0%
\kern\ptzwEi82\eitEm\advance\vposition-\ptzwEi82\eitEm%
\raise\vposition\box0\kern-\ptOne41\fOurem\fullbAck%
\advance\vposition\ptOne41\fOurem\backflag2}%
%
\def\wswabove{\advance\vposition\ptOne\nInem\fullbAck\wswpfEil%
\fullbAck\raise\vposition\box0\advance\vposition-\ptfIve\nInem%
\fullbAck\backflag2}%
\def\wswevoba{\advance\vposition\ptzEro\nInem\fullbAck\enepfEil%
\fullbAck\raise\vposition\box0\advance\vposition-\ptfOur\nInem%
\fullbAck\backflag2}%
\def\wswbelow{\advance\vposition\ptOne\twOem\fullbAck%
\sAve\lurOdots\fullbAck\raise\vposition\box0%
\advance\vposition-\ptfIve\twOem\fullbAck\backflag2}%
%
\def\wphantom{\adjUstw\negadvAnc\hposition\lastwd%
\negadvAnc\hsidecorr\lastwd\backflag2}%
\def\wsingle{\adjUstw\raise\vposition\box0\fullbAck\backflag2}%
\def\wdouble{\adjUstw\advance\vposition.\onEm%
\raise\vposition\copy0\kern-\wd0\advance\vposition-\fIfth%
\raise\vposition\box0\advance\vposition.\onEm\fullbAck\backflag2}%
\def\wtriple{\adjUstw\advance\vposition\fIfth%
\raise\vposition\copy0\kern-\wd0%
\advance\vposition-\fIfth\raise\vposition\copy0\kern-\wd0%
\advance\vposition-\fIfth\raise\vposition\box0%
\advance\vposition\fIfth\fullbAck\backflag2}%
\def\adjUstw{\fullbAck\sAve\hstrIch\fullbAck%
\ifdim\hposition<\minhposition\minhposition\hposition\fi}%
%
\def\wnwabove{\advance\vposition\ptfOur\nInem\fullbAck\wnwpfEil%
\fullbAck\raise\vposition\box0\advance\vposition-\ptzEro\nInem%
\fullbAck\backflag2}%
\def\wnwevoba{\advance\vposition\ptfIve\nInem\fullbAck\esepfEil%
\fullbAck\raise\vposition\box0\advance\vposition-\ptOne\nInem%
\fullbAck\backflag2}%
\def\wnwbelow{\advance\vposition\ptfIve\sIxem\fullbAck%
\sAve\lorUdots\fullbAck\raise\vposition\box0%
\advance\vposition-\ptOne\sIxem\fullbAck\backflag2}%
%
\def\nwbelow{\nnwgenerAl{\dotbackslAsh}}%
\def\nwphantom{\fullbAck\nwstrIch\phAntbox\fullbAck%
\advance\vposition\ptfOur\twOem\raise\vposition\box0\fullbAck%
\advance\vposition.63\fIvem\backflag2}%
\def\nwsingle{\fullbAck\nwstrIch\fullbAck%
\advance\vposition\ptfOur\twOem\raise\vposition\box0\fullbAck%
\advance\vposition.63\fIvem\backflag2}%
\def\nwdouble{\fullbAck\nwstrIch\fullbAck\kern-\ptzEro70\sEvem%
\advance\vposition\pthrEe49\thrEm\raise\vposition\copy0\kern-\wd0%
\kern\ptOne41\fOurem\advance\vposition\ptOne41\fOurem%
\raise\vposition\box0\kern-\ptzEro70\sEvem%
\advance\vposition\ptfIve64\thrEm\fullbAck\backflag2}%
\def\nwtriple{\fullbAck\nwstrIch\fullbAck%
\advance\vposition\ptfOur\twOem\raise\vposition\copy0\kern-\wd0%
\kern-\ptOne41\fOurem\advance\vposition-\ptOne41\fOurem%
\raise\vposition\copy0\kern-\wd0\kern\ptzwEi82\eitEm%
\advance\vposition\ptzwEi82\eitEm\raise\vposition\box0%
\kern-\ptOne41\fOurem\fullbAck\advance\vposition\ptfOur93\sIxem%
\backflag2}%
%
\def\nnwabove{\advance\vposition2\ptzEro5\lasthtdp\halfbAck%
\nnwpfEil\kern-1\ptOne4\lastwd\raise\vposition\box0%
\advance\vposition.80\thrEm\kern-1\ptzwEi0\lastwd%
\advance\hsidecorr-2\pthrEe4\lastwd%
\advance\hposition-2\pthrEe4\lastwd\backflag1}%
\def\nnwevoba{\advance\vposition2\ptzEro5\lasthtdp\halfbAck%
\ssepfEil\kern-1\ptzEro6\lastwd\raise\vposition\box0%
\advance\vposition.80\thrEm\kern-1\ptOne1\lastwd%
\advance\hsidecorr-2\ptOne7\lastwd%
\advance\hposition-2\ptOne7\lastwd\backflag1}%
\def\nnwbelow{\advance\vposition2\ptzEro5\lasthtdp\halfbAck%
\sAve{\setbox1\hbox{.}\raise\ptfOur3\fIvem\copy1\kerntwEntythree%
\raise\ptOne\nInem\copy1\kerntwEntythree%
\lower\ptzEro7\fIvem\copy1\kerntwEntythree%
\lower.\thrEm\copy1\kerntwEntythree%
\lower\ptfIve4\fIvem\box1}\kern-.9\lastwd\raise\vposition\box0%
\kern-1\ptzEro5\lastwd\advance\hsidecorr-1.95\lastwd%
\advance\hposition-1.95\lastwd\advance\vposition.80\thrEm%
\backflag1}%
\def\nnwphantom{\halfbAck\sAve{$\backslash$}\phAntbox%
\adjUstnnw\raise\vposition\box0\postadjUstnnw}%
\def\nnwsingle{\nnwgenerAl{$\backslash$}}%
\def\nnwdouble{\halfbAck\sAve{$\backslash$}\adjUstnnw%
\advance\vposition\ptzEro3\onEm\kern\ptzEro9\thrEm%
\raise\vposition\copy0\advance\vposition-\ptzEro6\twOem%
\kern-\wd0\kern-\ptOne8\sIxem\raise\vposition\box0\kern\ptzEro9\thrEm%
\advance\vposition\ptzEro3\onEm\postadjUstnnw}%
\def\nnwtriple{\halfbAck\sAve{$\backslash$}\adjUstnnw%
\advance\vposition\ptzEro6\twOem\kern\ptOne8\sIxem%
\raise\vposition\copy0%
\advance\vposition-\ptzEro6\twOem\kern-\wd0\kern-\ptOne8\sIxem%
\raise\vposition\copy0\advance\vposition-\ptzEro6\twOem\kern-\wd0%
\kern-\ptOne8\sIxem\raise\vposition\box0\kern\ptOne8\sIxem%
\advance\vposition\ptzEro6\twOem\postadjUstnnw}%
\def\nnwgenerAl#1{\halfbAck\sAve{#1}\adjUstnnw%
\raise\vposition\box0\postadjUstnnw}%
\def\adjUstnnw{\kernEleven\hcorrEct{-1\ptOne5\lastwd}}%
\def\postadjUstnnw{\hcorrEct{-1\pthrEe5\lastwd}%
\advance\vposition\lasthtdp\backflag1}%
%
\def\nmostaromatatom#1{\atom{#1}\naromat\vposition%
\advance\naromat-.\fOurem\aromAtincr}%
\def\smostaromatatom#1{\atom{#1}\saromat\vposition%
\advance\saromat\lasthtdp\advance\saromat.\thrEm%
\advance\aromatcount1\aromAtincr}%
\def\wmostaromatatom#1{\atom{#1}\waromat\hposition%
\advance\aromatcount2\advance\waromat\pthrEe\sIxem\aromAtincr}%
\def\emostaromatatom#1{\atom{#1}\earomat\hposition%
\negadvAnc\earomat\lastwd\advance\aromatcount3%
\advance\earomat-\ptzwEi\fOurem\aromAtincr}%
\def\aromAtincr{\advance\aromatcount1\chelpone\aromatcount%
\relax\ifnum\aromatcount=10\aromAtsymbol\fi}%
\def\wUrzel{\chelpone\chelptwo\divide\chelpone4\wUrz}%
% Compute \chelpone=sqrt(\chelptwo) by a recursion formula.
\def\wUrz{\wurzEl\let\wurzE\wUrz\else\let\wurzE\relax\fi\wurzE}%
\def\wurzEl{\chelpthree\chelptwo\divide\chelpthree\chelpone%
\advance\chelpthree\chelpone\chelpfour\chelpthree%
\divide\chelpfour2\advance\chelpfour5\relax%
\ifnum\chelpone>\chelpfour\chelpone\chelpthree%
\divide\chelpone2}%
\def\aromAtsymbol{\aromatcount0\ifprint%
\negadvAnc\naromat\saromat\naromat\ptfIve\naromat%
\negadvAnc\waromat\earomat\waromat-\ptfIve\waromat%
\setbox1\hbox{\vrUle{\ptzEro\fOurem}{\ptzEro\fOurem}\zEro}%
\helpthree\ptfOur\wd1\chelpfive71\zEero\chelpsix\helpthree%
\divide\chelpsix60\helpthree\ptzEro\zEero1\waromat%
\helpfour\ptzEro\zEero1\naromat\setbox0\hbox{\loop%
\negadvAnc\chelpfive\chelpsix\chelpthree\chelpfive%
\multiply\chelpthree\chelpfive\chelptwo1\zEero\zEero\zEero\zEero%
\negadvAnc\chelptwo\chelpthree\wUrzel\kern\chelpone\helpthree%
\lower\chelpfive\helpfour\copy1\kern-\wd1%
\raise\chelpfive\helpfour\copy1\kern-\wd1%
\chelpfour-\chelpone\kern\chelpfour\helpthree%
\kern\chelpfour\helpthree%
\lower\chelpfive\helpfour\copy1\kern-\wd1%
\raise\chelpfive\helpfour\copy1\kern-\wd1\kern\chelpone\helpthree%
\kern\chelpfive\helpthree\lower\chelpone\helpfour\copy1\kern-\wd1%
\raise\chelpone\helpfour\copy1\kern-\wd1\chelpfour-\chelpfive%
\kern\chelpfour\helpthree\kern\chelpfour\helpthree%
\lower\chelpone\helpfour\copy1\kern-\wd1%
\raise\chelpone\helpfour\copy1\kern-\wd1\kern\chelpfive\helpthree%
\ifnum\chelpfive>\chelpsix\repeat\kern-1\zEero\zEero\helpthree\copy1%
\kern-\wd1\kern2\zEero\zEero\helpthree\copy1\kern-\wd1}%
\negadvAnc\earomat\hposition\kern\earomat%
\kern-1\zEero\zEero\helpthree\helptwo\saromat\advance\helptwo\naromat%
\raise\helptwo\box0\kern-\earomat\fi}%
%
\def\firstbicycloatom#1{\atom{#1}\ifprint\ifnum\aromatcount>0%
\aromatcount0\messAge{\bicycloIgnored}\else\waromat\hposition%
\advance\waromat-\ptfIve\lastwd\aromatcount1\zEero\naromat\vposition%
\advance\naromat\ptfOur\lasthtdp\earomat\lastwd\fi\fi}%
\def\secondbicycloatom#1{\atom{#1}\ifprint%
\ifnum\aromatcount=1\zEero\helpone\hposition%
\advance\helpone-\ptfIve\lastwd\helptwo\vposition%
\advance\helptwo\ptfOur\lasthtdp\ifdim\earomat<\lastwd%
\earomat\lastwd\fi\relax%
\ifdim\earomat<\lasthtdp\earomat\lasthtdp\fi%
\setbox1\hbox{\vrUle{\ptzEro\fOurem}{\ptzEro\fOurem}\zEro}%
\kern-\ptfIve\lastwd\helpthree\waromat\negadvAnc\helpthree\helpone%
\divide\helpthree1\zEero\zEero\helpfour\naromat%
\negadvAnc\helpfour\helptwo\divide\helpfour1\zEero\zEero%
\chelpone\helpthree\multiply\chelpone\helpthree%
\chelptwo\helpfour\multiply\chelptwo\helpfour%
\advance\chelptwo\chelpone\wUrzel\divide\earomat1\zEero%
\multiply\earomat85\chelpfive\earomat%
\divide\chelpfive\chelpone\chelptwo1\zEero\zEero%
\negadvAnc\chelptwo\chelpfive\chelpfour\wd1%
\divide\chelpfour2\divide\chelpfour\chelpone%
\loop\helpfive\zEro\advance\helpfive\chelpfive\helpthree%
\helpsix\helptwo\advance\helpsix\chelpfive\helpfour%
\kern\helpfive\raise\helpsix\copy1\kern-\wd1\kern-\helpfive%
\advance\chelpfive\chelpfour\relax\ifnum\chelpfive<\chelptwo%
\repeat\kern\ptfIve\lastwd\else\messAge{\bicycloIgnored}\fi\fi%
\aromatcount0\relax}%
%
\def\nopositioncheck{\let\ifnoprint\iffalse\let\ifprint\iftrue}%
%
\def\shorterewbonds{\def\hstrIch{\hbox to.78\fOurem%
{\hss\vrUle{.\sIxem}{\pthrEe\sIxem}{-\pthrEe\twOem}\hss}}%
\stroke\ptzEro2\fIvem\esemarker0\wswmarker0\enemarker0\wnwmarker0%
\def\lurOdots{\setbox1\hbox{.}\kern\ptzEro\onEm%
\lower\ptOne2\fIvem\copy1\lower\ptzEro2\fIvem\copy1%
\raise\ptzEro7\fIvem\box1}%
\def\lorUdots{\setbox1\hbox{.}\kern\ptzEro\onEm%
\raise\ptzEro2\fIvem\copy1\lower\ptzEro7\fIvem\copy1%
\lower\ptOne7\fIvem\box1\kern\ptzEro\onEm}}%
\def\longerewbonds{\def\hstrIch{\hbox to1\ptOne8\fOurem%
{\hss\vrUle\em{\pthrEe\sIxem}{-\pthrEe\twOem}\hss}}%
\stroke\ptzEro45\twOem\esemarker0\wswmarker0\enemarker0\wnwmarker0%
\def\lurOdots{\setbox1\hbox{.}\kern\ptzEro\onEm%
\lower\ptOne2\fIvem\copy1\lower\ptzEro7\fIvem\copy1%
\lower\ptzEro2\fIvem\copy1\raise\ptzEro2\fIvem\copy1%
\raise\ptzEro7\fIvem\box1}%
\def\lorUdots{\setbox1\hbox{.}\kern\ptzEro\onEm%
\raise\ptzEro2\fIvem\copy1\lower\ptzEro2\fIvem\copy1%
\lower\ptzEro7\fIvem\copy1\lower\ptOne2\fIvem\copy1%
\lower\ptOne7\fIvem\box1\kern\ptzEro\onEm}}%
%
\def\nomOrestructures{\def\atom{}\def\phantatom{}%
\def\adjustAtom{}\def\epin{}\def\wpin{}\def\spin{}%
\def\npin{}\def\sAve{}\def\phAntbox{}\def\side{}%
\def\fullbAck{}\def\halfbAck{}\def\nestrIch{}%
\def\nwstrIch{}\def\dotbackslAsh{}\def\dotslAsh{}%
\def\nnepfEil{}\def\enepfEil{}\def\esepfEil{}%
\def\ssepfEil{}\def\sswpfEil{}\def\wswpfEil{}%
\def\wnwpfEil{}\def\nnwpfEil{}\def\nphantom{}%
\def\nsingle{}\def\ndouble{}\def\ntriple{}\def\adjUstn{}%
\def\postadjUstn{}\def\nstrIch{}\def\nneabove{}%
\def\nneevoba{}\def\nnebelow{}\def\nnephantom{}%
\def\nnesingle{}\def\nnedouble{}\def\nnetriple{}%
\def\ssepostAdjust{}\def\sseAdjust{}%
\def\adjUstnne{}\def\postadjUstnne{}\def\nebelow{}%
\def\nephantom{}\def\nesingle{}\def\nedouble{}%
\def\netriple{}\def\eneabove{}\def\eneevoba{}%
\def\enebelow{}\def\ephantom{}\def\esingle{}%
\def\edouble{}\def\etriple{}\def\eseabove{}%
\def\eseevoba{}\def\esebelow{}\def\sebelow{}%
\def\sephantom{}\def\sesingle{}\def\sedouble{}%
\def\setriple{}\def\sseabove{}\def\sseevoba{}%
\def\ssebelow{}\def\ssephantom{}\def\ssesingle{}%
\def\ssedouble{}\def\ssetriple{}\def\ssegenerAl{}%
\def\adjUstsse{}\def\postadjUstsse{}\def\sphantom{}%
\def\ssingle{}\def\sdouble{}\def\striple{}\def\adjUsts{}%
\def\postadjUsts{}\def\sstrIch{}\def\sswabove{}%
\def\sswevoba{}\def\sswbelow{}\def\sswphantom{}%
\def\sswsingle{}\def\sswdouble{}\def\sswtriple{}%
\def\sswgenerAl{}\def\adjUstssw{}\def\postadjUstssw{}%
\def\swbelow{}\def\swphantom{}\def\swsingle{}%
\def\swdouble{}\def\swtriple{}\def\wswabove{}%
\def\wswevoba{}\def\wswbelow{}\def\wphantom{}%
\def\wsingle{}\def\wdouble{}\def\wtriple{}\def\adjUstw{}%
\def\wnwabove{}\def\wnwevoba{}\def\wnwbelow{}\def\nwbelow{}%
\def\nwphantom{}\def\nwsingle{}\def\nwdouble{}%
\def\nwtriple{}\def\nnwabove{}\def\nnwevoba{}%
\def\nnwbelow{}\def\nnwphantom{}\def\nnwsingle{}%
\def\nnwdouble{}\def\nnwtriple{}\def\nnwgenerAl{}%
\def\adjUstnnw{}\def\postadjUstnnw{}\def\nmostaromatatom{}%
\def\smostaromatatom{}\def\wmostaromatatom{}%
\def\emostaromatatom{}\def\aromAtincr{}\def\wUrzel{}%
\def\wUrz{}\def\wurzEl{}\def\aromAtsymbol{}%
\def\firstbicycloatom{}\def\secondbicycloatom{}%
\def\nopositioncheck{}\def\shorterewbonds{}\def\lurOdots{}%
\def\lorUdots{}\def\longerewbonds{}\def\lurOdots{}%
\def\lorUdots{}\def\hcorrEct{}\def\structure{}\def\vrUle{}%
\def\negadvAnc{}\def\kernEleven{}\def\negEleven{}%
\def\kerntwEntythree{}\def\kernfIfteen{}%
\def\eabove{}\def\epfEil{}\def\nwevoba{}\def\seabove{}%
\def\sepfEil{}\def\sbelow{}\def\esesingle{}\def\wabove{}%
\def\onEm{}\def\twOem{}\def\thrEm{}\def\fOurem{}\def\fIvem{}%
\def\sIxem{}\def\sEvem{}\def\eitEm{}\def\nInem{}\def\ptzEro{}%
\def\ptOne{}\def\ptzwEi{}\def\pthrEe{}\def\ptfOur{}\def\ptfIve{}%
\def\zEero{}\def\zEro{}\def\fIfth{}\def\wpfEil{}\def\nbelow{}}%
%
\def\nomorestructures{\nomOrestructures%
\def\nomOrestructures{}}%
%
\def\onEm{1\em}\def\twOem{2\em}\def\thrEm{3\em}\def\fOurem{4\em}%
\def\fIvem{5\em}\def\sIxem{6\em}\def\sEvem{7\em}\def\eitEm{8\em}%
\def\nInem{9\em}\def\zEro{0\em}\def\fIfth{.\twOem}%
\def\ptzEro{.0}\def\ptOne{.1}\def\ptzwEi{.2}\def\pthrEe{.3}
\def\ptfOur{.4}\def\ptfIve{.5}\def\zEero{00}%
\def\structure#1{\hbox{\tenrm\dimendef\em250\em1em%
\dimen252\fontdimen2\tenrm\fontdimen2\tenrm\zEro%
\dimen253\fontdimen3\tenrm\fontdimen3\tenrm\zEro%
\dimen254\fontdimen4\tenrm\fontdimen4\tenrm\zEro%
\dimen255\fontdimen7\tenrm\fontdimen7\tenrm\zEro%
\countdef\esemarker43\countdef\wswmarker53\countdef\enemarker63%
\countdef\wnwmarker73\countdef\nemarker83\countdef\nwmarker93%
\dimendef\stroke251%
\shorterewbonds\nemarker0\nwmarker0\countdef\backflag23%
\countdef\sidenesting11\countdef\aromatcount20%
\countdef\chelpone42\countdef\chelptwo52\countdef\chelpthree62%
\countdef\chelpfour72\countdef\chelpfive32\countdef\chelpsix22%
\countdef\chelpeight12\countdef\cone21\countdef\ctwo31%
\countdef\cthree41\let\ifnoprint\iftrue\let\ifprint\iffalse%
\sidenesting0\backflag0\aromatcount0\dimendef\hposition0%
\dimendef\vposition1\dimendef\maxhposition2\dimendef\hsidecorr4%
\dimendef\minhposition3\dimendef\lasthtdp5\dimendef\lastwd6%
\dimendef\waromat7\dimendef\naromat8\dimendef\earomat9%
\dimendef\saromat10\dimendef\helpone12\dimendef\helptwo13%
\dimendef\helpthree22\dimendef\helpfour23\dimendef\helpfive32%
\dimendef\helpsix33\dimendef\helpseven42\dimendef\helpeight52%
\hposition\baselineskip\advance\hposition-.\sEvem%
\advance\baselineskip-.\thrEm\count33\hposition% depth to be added
\hposition\zEro\vposition\hposition\maxhposition\hposition%
\minhposition\hposition\hsidecorr\hposition\lasthtdp\hposition%
\lastwd\hposition\waromat\hposition\naromat\hposition%
\earomat\hposition\saromat\hposition#1\ifnoprint\kern-\hposition%
\kern-\minhposition\hposition\zEro\vposition\hposition%
\maxhposition\hposition\shorterewbonds\nopositioncheck#1\fi%
\kern-\hposition\kern\maxhposition%
\ifnum\aromatcount>0\messAge{\aromatIgnored}\fi%
\fontdimen2\tenrm\dimen252\fontdimen3\tenrm\dimen253%
\fontdimen4\tenrm\dimen254\fontdimen7\tenrm\dimen255}}%
%
% Additional bonds:
%
\def\eabove{\epfEil\advance\vposition\pthrEe\fOurem\relax%
\raise\vposition\box0\relax\advance\vposition-\pthrEe\fOurem\relax}%
\def\epfEil{\sAve{\hbox{\helpone\zEro\kern3\stroke%
\loop\advance\helpone\ptzEro0\fOurem\relax%
\ifdim\helpone<\ptzEro\eitEm\vrUle\stroke\helpone\helpone\repeat%
\kern3\stroke}}}%
%
\def\wabove{\fullbAck\wpfEil\fullbAck%
\ifdim\hposition<\minhposition\minhposition\hposition\fi%
\advance\vposition\pthrEe\fOurem\relax\raise\vposition\box0\relax%
\advance\vposition-\pthrEe\fOurem\relax\fullbAck\backflag2}%
\def\wpfEil{\sAve{\hbox{\helpone\ptzEro\eitEm\kern3\stroke%
\loop\advance\helpone-\ptzEro0\fOurem\relax\ifdim\helpone>\zEro%
\vrUle\stroke\helpone\helpone\repeat%
\kern3\stroke}}}%
%
\def\nwevoba{\halfbAck\sAve\sepfEil%
\advance\vposition1.7611111\lasthtdp\hcorrEct{-1\ptOne5\lastwd}%
\raise\vposition\box0\hcorrEct{-1.7\lastwd}%
\advance\vposition\ptOne5\lasthtdp}%
%
\def\seabove{\halfbAck\sAve\sepfEil\hcorrEct{\ptzwEi3\lastwd}%
\advance\vposition-\ptOne5\lasthtdp\raise\vposition\box0%
\advance\vposition-1.7611111\lasthtdp\hcorrEct{-\ptzwEi\lastwd}%
\ifdim\hposition>\maxhposition\maxhposition\hposition\fi}%
\def\sepfEil{\hbox{\helpone\zEro\helptwo-\helpone%
\kern.\onEm\loop\advance\helpone\ptzEro3\twOem%
\advance\helptwo-\ptzEro5\fOurem\relax\ifdim\helptwo>-1\ptOne\twOem%
\vrUle{\ptzEro2\fIvem}{-\helpone}{-\helptwo}\repeat%
\loop\advance\helpone\ptzEro3\twOem\advance\helptwo\ptzEro14\fIvem%
\relax\ifdim\helptwo<-\helpone%
\vrUle{\ptzEro2\fIvem}{-\helpone}{-\helptwo}\repeat%
\kern\ptzEro\sEvem}}%
%
\def\sbelow{\adjUsts%
\sAve{\setbox1\hbox to\zEro{\hss.\hss}\raise\ptfOur5\fIvem\copy1%
\raise\ptzwEi\onEm\copy1\lower\ptzEro3\fIvem\copy1%
\lower\ptzwEi\eitEm\copy1\lower\ptfIve2\fIvem\box1}%
\raise\vposition\box0\postadjUsts}%
%
\def\esesingle{\advance\vposition\ptOne\nInem%
\sAve{\hbox{\helptwo\ptzEro\sIxem\kern.\onEm\loop%
\advance\helptwo-\ptzEro0\nInem\relax\helpone\helptwo%
\advance\helpone\ptzEro\sIxem\ifdim\helptwo>-\ptOne\eitEm%
\vrUle\stroke\helpone{-\helptwo}\repeat\kern\ptzEro\sEvem}}%
\raise\vposition\box0\advance\vposition-\ptfIve\nInem}%
%
\def\nbelow{\adjUstn%
\sAve{\setbox1\hbox to\zEro{\hss.\hss}\raise1\ptzEro3\fIvem\copy1%
\raise.7\nInem\copy1\raise\ptfIve4\fIvem\copy1%
\raise.\thrEm\copy1\raise\ptzEro5\fIvem\box1}%
\raise\vposition\box0\postadjUstn}%
%
\def\shorterewbonds{\def\hstrIch{\hbox to.78\fOurem%
{\hss\vrUle{.\sIxem}{\pthrEe\sIxem}{-\pthrEe\twOem}\hss}}%
\stroke\ptzEro2\fIvem\esemarker0\wswmarker0\enemarker0\wnwmarker0%
\def\lurOdots{\setbox1\hbox{.}\kern\ptzEro\onEm%
\lower\ptOne2\fIvem\copy1\lower\ptzEro2\fIvem\copy1%
\raise\ptzEro7\fIvem\box1}%
\def\lorUdots{\setbox1\hbox{.}\kern\ptzEro\onEm%
\raise\ptzEro2\fIvem\copy1\lower\ptzEro7\fIvem\copy1%
\lower\ptOne7\fIvem\box1\kern\ptzEro\onEm}}%
\def\longerewbonds{\def\hstrIch{\hbox to1\ptOne8\fOurem%
{\hss\vrUle\em{\pthrEe\sIxem}{-\pthrEe\twOem}\hss}}%
\stroke\ptzEro45\twOem\esemarker0\wswmarker0\enemarker0\wnwmarker0%
\def\lurOdots{\setbox1\hbox{.}\kern\ptzEro\onEm%
\lower\ptOne2\fIvem\copy1\lower\ptzEro7\fIvem\copy1%
\lower\ptzEro2\fIvem\copy1\raise\ptzEro2\fIvem\copy1%
\raise\ptzEro7\fIvem\box1}%
\def\lorUdots{\setbox1\hbox{.}\kern\ptzEro\onEm%
\raise\ptzEro2\fIvem\copy1\lower\ptzEro2\fIvem\copy1%
\lower\ptzEro7\fIvem\copy1\lower\ptOne2\fIvem\copy1%
\lower\ptOne7\fIvem\box1\kern\ptzEro\onEm}}%
%
\def\ebelow{\sAve{\hbox{\def\dOt{\lower\ptzEro\fIvem\copy1}%
\setbox1\hbox{.}\kern\ptzEro\onEm\dOt\dOt\dOt%
\ifdim\stroke>\ptzEro\thrEm\dOt\dOt\fi%
\kern\ptzEro\onEm}}\advance\vposition\pthrEe\fOurem\relax%
\raise\vposition\box0\relax\advance\vposition-\pthrEe\fOurem\relax}%
%


% R.G: kleiner graphentheoretischer Zusatz:
% statt Atomnamen koennen auch kleine ''Knoedelchen'' (knots) zugelassen werden:
% dieses Makro ist geeignet f\"ur Normalgroesse:
\def\knot{\raisebox{0.5mm}{$\bullet$}}
\def\lorb{\backslash\!\!\backslash}
\def\um{{\underline{m}}}
\def\un{{\underline{n}}}
\def\uk{{\underline{k}}}
\def\gfq{GF(q)}
\def\gfqhn{\gfq^n}
\def\gfqhk{\gfq^k}
\def\gfqhktnuk{\gfq^{k\times n}_k}
\def\mnq{M_n(q)}
\def\glnq{GL_n(q)}
\def\glkq{GL_k(q)}
\parindent=0mm
\setlength{\unitlength}{1mm}
%\includeonly{obernai4}
\begin{document}
\title{Algebraic Combinatorics in Bayreuth}
\author{A. Kerber}
\date{May 23, 1995}
\maketitle


\begin{abstract}
I should like to give a brief introduction of our group, describe its main 
activities in the field of Algebraic Combinatorics, and illustrate them 
by a few typical examples.
\end{abstract}
\section{Introduction}
We are a small group of people working in the field of mathematics (my main 
field of research originally was the representation theory of symmetric groups, 
at present it is the constructive theory of discrete structures;
Thomas Scharf's main interest lies in the field of representation theory of
symmetric groups and related classes of groups, Hecke algebras, Hopf methods 
etc.) or computer science (Reinhard Laue, who originally came from group theory, 
is also particularly interested in the constructive theory of discrete 
structures, algorithm design and 
data bases; Axel Kohnert is the designer of
SYMMETRICA and works on Schubert polynomials, Weintrauben and on symmetric 
functions in general). Let me mention already here, that a close and friendly 
cooperation between mathematics and computer science is absolutely crucial as 
soon as you really want to make efficient use of computers as a scientific tool, and if
you want to deal with the constructive theory of discrete
structures. 

Besides the people already 
mentioned who have regular positions, there are doctoral students. 
Christine Barop's thesis will contain 
in particular a new approach to the projective matrix representations of the 
symmetric groups, or, in other words, the linear matrix representations of a 
covering group of the symmetric group. Christoph Benecke considers 
classification problems of deeply nested discrete structures, Thomas Wieland 
works on geometric placement problems.
Several students are preparing their diploma theses, Anton Betten, 
Thomas Gr\"uner and Markus Meringer in particular do construction of codes, 
geometries and graphs.

Our joint research is focussed on Algebraic Combinatorics, in particular on the 
{\em constructive theory of discrete structures,} as I said already.
The idea is to provide 
tools that are both general and efficient. A corresponding software package
is now under development. Part of these tools is already available in

\medskip
\centerline{SYMMETRICA,}
\medskip

a powerful software package devoted to the representation theory 
and combinatorics of the symmetric group and of related classes of groups, 
for example, of wreath products of symmetric groups, of alternating groups 
and of general linear groups. Using this software package you can 
do enumeration under finite group action, P\'olya theory, symmetric 
polynomials, group characters, matrix representations (both ordinary and 
modular) and many other things. 

SYMMETRICA is developed in cooperation with several colleagues, among which
the groups around Alain Lascoux, Heinz L\"uneburg
and Alun Morris contributed parts of 
particular importance. For example, the world wide most efficient package on the
plethysm of Schur polynomials is due to Christophe Carr\'e, Rouen,
the long integer arithmetic is based on
a Pascal version due to Manfred Hain, Kaiserslautern.
while the cyclotomic arithmetic is due to Tom McDonough, Aberystwyth.
The extension and the progress of SYMMETRICA is the main
goal of the network activities of our group.  For this purpose we used the
financial support for invitations of people from Paris and Marne la 
Vall\'ee (Lascoux, Thibon, Leclerc) as well as Graz (Fripertinger)
who made substantial progress with SYMMETRICA. The people from Paris and 
Marne la Vall\'ee are working on Kostka-Foulkes polynomials, Schubert 
polynomials, noncommutative
symmetric functions (see \cite{NCSF}), while H. Fripertinger implemented cycle index polynomials
of linear groups which were applied already for the enumeration of linear codes
(see~\cite{fripertinger}).
\section{Discrete Structures}
In order to begin with a brief review of what is going on at present in 
Bayreuth and in the field of Algebraic Combinatorics, here is a list of discrete 
structures that we met and which we were able to construct  up  
to a certain 
extent:
\begin{itemize}
\item {\em Graphs and multigraphs.} Here is a multigraph:
\[
\begin{picture}(15,15)
\multiput(0,0)(10,0){2}{\circle*{1.5}}
\multiput(0,10)(10,0){2}{\circle*{1.5}}
\multiput(0,0)(10,0){2}{\line(0,1){10}}
\multiput(1,11)(0,-1){3}{\line(1,0){8}}
\end{picture}
\]
Obviously a multigraph can be considered as an {\em interaction model} (see
e.g.~\cite{Biggs}), where the edges indicate the strength of the interaction 
between the various objects indicated by the vertices. In many cases it is 
therefore of interest to construct the multigraphs with given number of
vertices and with given vertex degrees. The next item shows a case when a 
construction of complete catalogs is even crucial for the purpose of 
application:
\item {\em Molecular graphs.}
One of the most famous examples is the following one:
$$
%\centerline{
\structure{
\atom{\makebox[5mm]{C}}
\side{\swsingle\atom{\makebox[5mm]{H}}}
\ndouble
\atom{\makebox[5mm]{C}}
\side{\nwsingle\atom{\makebox[5mm]{H}}}
\nesingle\atom{\makebox[5mm]{C}}
\side{\nsingle\atom{\makebox[5mm]{Cl}}}
\sedouble\atom{\makebox[5mm]{C}}
\nesingle\atom{\makebox[5mm]{O}}\sesingle\atom{\makebox[5mm]{C}}
\nedouble\atom{\makebox[5mm]{C}}
\side{\nsingle\atom{\makebox[5mm]{Cl}}}
\sesingle\atom{\makebox[5mm]{C}}
\side{\nesingle\atom{\makebox[5mm]{H}}}
\sdouble\atom{\makebox[5mm]{C}}
\side{\sesingle\atom{\makebox[5mm]{H}}}
\swsingle\atom{\makebox[5mm]{C}}
\side{\ssingle\atom{\makebox[5mm]{Cl}}}
\nwdouble\atom{\makebox[5mm]{C}}
\side{\nsingle}
\swsingle\atom{\makebox[5mm]{O}}
\nwsingle\atom{\makebox[5mm]{C}}
\side{\nsingle}
\swdouble\atom{\makebox[5mm]{C}}
\side{\ssingle\atom{\makebox[5mm]{Cl}}}
\nwsingle}
%}
$$
The underlying {\em graph} is
$$
\structure{
\atom{\makebox[5mm]{\knot}}
\side{\swsingle\atom{\makebox[5mm]{\knot}}}
\ndouble
\atom{\makebox[5mm]{\knot}}
\side{\nwsingle\atom{\makebox[5mm]{\knot}}}
\nesingle\atom{\makebox[5mm]{\knot}}
\side{\nsingle\atom{\makebox[5mm]{\knot}}}
\sedouble\atom{\makebox[5mm]{\knot}}
\nesingle\atom{\makebox[5mm]{\knot}}\sesingle\atom{\makebox[5mm]{\knot}}
\nedouble\atom{\makebox[5mm]{\knot}}
\side{\nsingle\atom{\makebox[5mm]{\knot}}}
\sesingle\atom{\makebox[5mm]{\knot}}
\side{\nesingle\atom{\makebox[5mm]{\knot}}}
\sdouble\atom{\makebox[5mm]{\knot}}
\side{\sesingle\atom{\makebox[5mm]{\knot}}}
\swsingle\atom{\makebox[5mm]{\knot}}
\side{\ssingle\atom{\makebox[5mm]{\knot}}}
\nwdouble\atom{\makebox[5mm]{\knot}}
\side{\nsingle}
\swsingle\atom{\makebox[5mm]{\knot}}
\nwsingle\atom{\makebox[5mm]{\knot}}
\side{\nsingle}
\swdouble\atom{\makebox[5mm]{\knot}}
\side{\ssingle\atom{\makebox[5mm]{\knot}}}
\nwsingle
}
$$
This graph 
{\em together with the coloring of the vertices by atom names} (which is 
essential since there are atoms with the same valency 1 but with different
names: H and Cl!) is called a {\em molecular graph} and it describes the 
interaction between the carbon, the oxygen, the chlorine and the
hydrogene atoms.
There are in fact 
22 molecular graphs that have this underlying graph and which 
correspond to the chemical formula C$_{12}$O$_2$H$_4$Cl$_4$. (They are the 22 
isomers of dioxin, and the isomer shown above is the most dangerous of them.) 
Thus a molecular graph is a (usually connnected) 
multigraph with a coloring of the vertices by atom names, and (optional) a
prescribed substructure, for example, a prescribed skeleton graph, which is
the underlying graph without the atoms of valence 1.

It is therefore very important in molecular structure elucidation to have a 
computer program at hand that generates all the mathematically possible 
molecular graphs corresponding to a molecular formula. MOLGEN is such a 
computer program which we have developed during the last ten years, it is
quite efficient and already used in chemical research and industry
(for a detailed 
description of the underlying algorithm see~\cite{Grund94}).
\item Error correcting linear codes are another interesting example.
A lot of 
effort was made in the search for linear codes with good properties, i.e. which
contain many code words but have a good minimal (Hamming) distance.  
Such linear codes are
therefore considered as being equivalence classes of subspaces of finite 
vector spaces with respect to the group of all isometries that keep the
Hamming distances fixed. As it will be described below,
you can use cycle index polynomials of certain linear groups in order
to count linear codes. They were implemented by H.~Fripertinger, and a lot of
tables were obtained which give their numbers for certain parameters and 
characteristics of the ground field. There is an interesting notion of
{\em indecomposability} of linear codes, and a structure theorem says that
each linear codes is an essentially unique direct sum of indecomposable linear
codes, and so in particular the tables on the numbers of indecomposable linear
codes are of interest. Such tables were known for the binary case, but the 
methods used by Fripertinger do hold for other characteristics, too. Here is 
such a table, it gives the numbers of ternary indecomposable linear 
$(n,k)$-codes:
\[
\begin{array}[c]{r||l*{6}{|l}}
n\backslash k &1 & 2 & 3 & 4 & 5 & 6 & 7 \\ 
\hline \hline
1 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\ 2 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\ 3 & 1 & 1 &
0 & 0 & 0 & 0 & 0 \\ 4 & 1 & 2 & 1 & 0 & 0 & 0 & 0 \\ 5 & 1 & 3 & 3 & 1 & 0 &
0 & 0 \\ \hline 6 & 1 & 5 & 10 & 5 & 1 & 0 & 0 \\ 7 & 1 & 7 & 24 & 24 & 7 & 1
& 0 \\ 8 & 1 & 10 & 55 & 105 & 55 & 10 & 1 \\ 9 & 1 & 13 & 116 & 403 & 403 &
116 & 13 \\ 10 & 1 & 17 & 231 & 1506 & 3000 & 1506 & 231 \\ \hline 11 & 1 &
21 & 438 & 5425 & 23579 & 23579 & 5425 \\ 12 & 1 & 27 & 813 & 19440 & 199473
& 469473 & 199473  
\end{array}
\]
This table indicates that the numbers of indecomposable $(n,k)$-codes may form
a unimodal and reciprocal sequence of natural numbers. The reciprocity is 
obvious, but the unimodality apparently not, but numerical evidence shows that
it is a reasonable conjecture that all these sequences are in fact unimodal.
(This is another example of pattern recognition, and I hope that a bijective
proof of that in the spirit of the \lq\lq Lotharingian Eye of 
Combinatorics\rq\rq\ will be given soon!)
\item $t-(v,k,\lambda)$--Designs form a  further interesting class of discrete 
structures. They come 
from the design of experiments. For example, if you play lotto, you might ask 
the question if there is an optimal way of doing that in order to guarantee, say,
that you have at least 5 hits (from six numbers which you marked, out of 49 as
usual, say). This would mean to ask for a $5-(49,6,1)$--design (in words: each
5-subset of the correct 6-set out of the 49 numbers should be contained in
exactly one block of 6 numbers indicated by the player). It can be shown that
such a design does not exist, but that there do exist $5-(48,6,1)$--designs.
Hence if you are willing to take the risk of ignoring a certain number, say 49,
then you can do an optimal experiment which would guarantee a 5-hit (in fact
altogether six 5-hits), as long as 49 does not occur among the chosen 6. 
But it should be mentioned that this would mean to fill
285 384 lotto forms at that particular weekend, which will keep you quite busy. 
Nevertheless this would be the
{\em optimal strategy.} It is therefore clear that the search for designs is 
important in the {\em design of experiments.} During the last decade there 
was an
intensive search going on for 6-- and for 7--designs. Recently B.~Schmalz 
opened a successful way to the construction of complete lists of designs with
prescribed symmetry group, the corresponding isomorphism was solved on the
basis of~\cite{Laue89} in this case. B.~Schmalz gave a lot of 6--designs, 
even for new sets
of parameters (see~\cite{Schmalz92}), but the question
of the existence of 7--designs remained open. I shall come to this later.
\end{itemize}
From the foregoing it should have become clear that it is quite often important
really to put the hands on discrete structures, which means that in many
applications we
need complete catalogs,
and not just to know the number of possible structures.
Therefore we have put a lot of effort into that, and we are using the 
network to improve the knowledge about that and the software which can 
support such applications.
In order briefly to describe some of the main streams in our research on
the constructive theory of discrete structures, in particular of graphs, 
molecular graphs, codes and designs, I should like to 
list some of the basic problems and principles, and then I shall
demonstrate their use by nice examples. 


\section{Basic methods, principles and strategies}
In order to prepare the description of some of the basic constructive
principles, we recall that the theory of a discrete structure, for 
example graph theory, is done in steps, some of which are the following ones.
(It is in fact the case that each of these steps is important for the next one.
Usually the way the $i$-th step is done can make the $(i+1)$-st step easy or 
difficult, and, 
moreover, quite often the result of the $i$-th step is crucial for the next 
one. For example, if the result of the $i$-th step is a {\em number} of
discrete structures, then this number can be used in one of the next steps, 
say in
the construction or generation, quite often
as a {\em stopping rule,} since it tells us when the construction is 
{\em finished.})
\begin{itemize}
\item The first step clearly is the {\em definition.} Already this step should 
be done {\em carefully,} so that the following steps can be done {\em easily.}
For example, there is usually a {\em labelled} form of the discrete structure
in question, and an {\em unlabelled} form of it, which mostly is the more 
interesting one. The incidence structures are a  typical case of this. 
They consist of points, lines, edges, planes, and so on, but it is obvious that
the nature of the points doesn't really matter. An incidence 
structure obtained by renumbering is not essentially different from the 
original one, it is equivalent or isomorphic to it.
Hence the unlabelled form is usually defined to be an equivalence or, better 
say, an {\em isomorphism} class of the labelled form. In order to prepare the
next step we therefore describe it as an orbit of a suitable finite group on a 
suitable finite set, if possible. 
For example, an unlabelled graph on $v$ 
vertices can be defined as an  orbit of the symmetric group $S_v$ on the set
of mappings from the set of numbers of pairs of points $\{1,\ldots,{v\choose 2}
\}$ into the set $\{0,1\}$ (if we want to get simple graphs only), or
into the set
$\{0,1,\ldots,m\}$ if we want multigraphs with multiplicity of bonds restricted
by $m,$ say. In the case we want to obtain directed graphs (with loops allowed) 
we can simply take
$\{1,\ldots,v^2\}$ as the range set, and so on. Hence such definitions should 
also be quite flexible.
\item The second step may be the {\em enumeration of all the structures with
given parameters,} for example, the graphs with given number of vertices. Having
defined the unlabelled graphs as orbits of a symmetric group on the
set of mappings from the set of pairs of 
vertices into the set $\{0,1\}$), we can use the well--known
Lemma of Cauchy--Frobenius, in order to count the number of (unlabelled simple) 
graphs with given number of vertices. The resulting {\em numbers} --- of 
graphs or 
multigraphs with given number of vertices, say --- can be used as a stopping 
rule later on when it comes to the {\em construction.} 
They tell us when we are ready. It also helps in the {\em generation} of
graphs with given number of vertices {\em uniformly at random,} since these
numbers show up in certain probabilities that have to be evaluated.
\item The next step  quite often is the refinement of the enumeration, say the 
{\em enumeration by weight.} In the case of graphs it is the enumeration of
all the graphs with given number of vertices {\em and prescribed number of 
edges.} In order to do this, for example, in the case of graphs we need only 
to replace the classical constant form of the Lemma of Cauchy--Frobenius by 
its so--called {\em weighted form.} And it is interesting to see that this 
weighted form of the lemma is as easy to prove as the constant form.
From this we can easily obtain the basic result of
P\'olya on the enumeration of graphs by number of vertices {\em and} 
edges. The result is a {\em generating function}, a polynomial --- mostly
multivariate --- the coefficients of which are the desired numbers. In the 
case of the P\'olya theory of enumeration this generating function is obtained
from the so-called cycle index polynomial by a well-defined  so-called 
{\em P\'olya substitution.} 
This fact gives, among other things, 
a lot of interesting results on the {\em unimodality} 
of such generating functions (it can be shown, for example, that 
a P\'olya substitution of a 
unimodal polynomial with natural coefficients into a cycle index of a finite
group gives a unimodal polynomial 
again!). Moreover it allows to do a lot of interesting 
combinatorics in the \lq\lq Lotharingian Spirit\rq\rq. The generating functions
are symmetric polynomials and therefore linear combinations of {\em Schur 
polynomials,} the coefficients of which are easily described in terms of 
{\em representation theory of symmetric groups.} But there are also some 
interesting open problems left: Since Schur polynomials count {\em tableaux,} 
it is natural to ask what these tableaux have to do with the discrete structure
that was just counted. This is still open, even in the graph case!
\item Furthermore we can also prescribe the symmetry group, prescribe the 
symmetry group together with the weight, and so on. These refinements need, of
course, more information on the acting group. In fact, we need to have the
{\em table of marks} at hand, which Burnside introduced. In order to evaluate 
that table there is a lot of information necessary about the {\em lattice of
subgroups} of the group in question. Hence these refining steps rapidly become
more difficult, and the question becomes urgent, if there is a way  of
carefully analyzing suitable actions, say, in order to obtain the table of marks 
without having to evaluate the subgroup lattice (or, at least, the poset
of conjugacy classes of subgroups) in full detail.
\item The most ambitious step is, of course, the {\em construction} of
all the structures with given parameters, weight, symmetry group etc. Since we
want (or even have to be able, like in the molecular structure elucidation 
case) to put our hands really on these discrete structures, like graphs, 
molecular graphs, codes and designs, we are in particular interested in this
quite difficult step. In order to do this, we use a mixture of combinatorial
and of algebraic algorithms, some basic principles of them will be described 
and illustrated here.
\item Clearly, it is in many cases not possible to evaluate in the constructive 
step all the structures with given properties. In these cases nevertheless it 
is often helpful and interesting to provide an algorithm that allows to {\em 
generate structures with given parameters uniformly at random.} If such an 
algorithm is available (which is true for the cases when the structure in 
question can be defined as an orbit of a finite group on a finite set) 
and implemented, then we can check hypotheses on the
structure in question. For example, we can check if invariants are good or 
even complete, find counterexamples, and so on. It is easy to find
this way a pair of nonisomorphic labelled graphs with the same set of 
eigenvalues of the adjacency matrices, showing this way that the spectrum is
{\em not} a complete invariant for simple graphs. We also used this in order
to check the quality of generalized matrix function applied to the adjacency 
matrix of simple graphs.  
\end{itemize}
Between these steps there is room for a lot of further research, the evaluation 
of generating functions, the examination of the sequences of coefficients, which are
unimodal in many cases, and so on. And it is interesting to see how the 
permanent struggle against the complexity of all these difficult problems gives
rise to new mathematical problems, results, algorithms, conjectures, etc.



\section{A Quite General Ansatz}
Many discrete structures can be defined as equivalence classes on  
sets of mappings $Y^X$ between finite sets. An example was
mentioned above: The {\em labelled} simple graphs on $v$ vertices can be considered as
mappings from the set of pairs of vertices, or, in formal terms, from the set
$X:=\{1,\ldots,{v\choose2}\}$ into the set $Y:=\{0,1\}$ of all the possible
multiplicities of edges joining these pairs. Thus a labelled graph is an 
element
\[
f\in Y^X:=\{f\colon X\to Y\},\ \mbox{where}\ X:=\{1,\ldots,{v\choose2}\},
Y:=2:=\{0,1\}.
\]
In contrast to this, an {\em unlabelled} graph on $v$ vertices is an orbit of the
symmetric group $S_v$ on this set of mappings, induced by the action of this
group on the set of vertices (which again induces a canonical action on the
set of pairs, which again induces a canonical action on the set of mappings).
Hence, the set of unlabelled graphs on $v$ vertices can be identified with the
set of orbits
\[
S_v\lorb 2^{{v\choose2}}.
\]
More generally, in P\'olya's theory of enumeration, we consider such sets of
mappings $Y^X$ together with actions of $G,$ $H,$ $H\times G$ and $H\wr G$
which are induced from actions of $G$ on $X$ and $H$ on $Y$ in a canonic way
(see e.g.~\cite{Kerber91} for details):
\begin{itemize}
\item $G\times Y^X\to Y^X\colon(g,f)\mapsto f\circ g^{-1},$
\item $H\times Y^X\to Y^X\colon(h,f)\mapsto h\circ f,$
\item $(H\times G)\times Y^X\to Y^X\colon((h,g),f)\mapsto h\circ f\circ g^{-1},$
\item $(H\wr G)\times Y^X\to Y^X\colon((\psi,g),f)\mapsto \tilde{f},\tilde{f}(x)
:=\psi(x)f(g^{-1}x).$
\end{itemize}
One of the aims we have is to cover at least these four cases, which means to
be able efficiently to enumerate, construct and generate discrete structures 
that can be defined as orbits of such actions. Let me briefly mention what 
can be done for these cases and why it is useful to know about these methods.

To begin with, it is important to note that in principle
we can reduce all these cases to the first one, where a a group $G$ is
acting on $X$ and where we consider the corresponding action of $G$ on 
$Y^X$ by $g\colon f\mapsto f\circ g^{-1}.$ The reason is that there exist 
bijections
\begin{enumerate}
\item $(H\times G)\lorb Y^X\longrightarrow G\lorb\left(H\lorb(Y^X)\right).$
\item $(H\wr G)\lorb Y^X\longrightarrow G\lorb\left((H\lorb Y)^X\right).$
\end{enumerate}
The first bijection is due to de Bruijn, as far as I know, the second one is
due to W. Lehmann (\cite{Lehmann74},\cite{Lehmann76}).

A particular example which was already mentioned is 
the case of the linear codes. 
These
linear codes are subspaces of finite vector spaces $\gfqhn,$ which we assume to 
be equipped with the Hamming distance. Therefore we consider two subspaces
of dimension $k,$ say, as being essentially the same, if we can obtain one 
from the other via an isometry. It can be shown that the isometries form the
group of monomial matrices, which is in fact the wreath product
\[
\mnq:=\gfq^*\wr S_n,
\]
and so the isometry classes of linear codes are the orbits of this group on
$\gfqhn.$ The problem is that these subsets form quite an abstract entity and
that we can only put our hands on them by introducing bases. Again we are
therefore faced with a labelled and an unlabelled structure. The set of 
labelled structures is the set of generator matrices, i.e. (by Gauss' 
algorithm) an orbit of the general linear group $\glkq$ on the set $\gfqhktnuk$ 
of all the $k\times n$-matrices over $\gfq$ which are of rank $k:$ 
\[
\gfqhktnuk\subseteq Y^X:=(\gfqhk)^n.
\]
The set of 
all these orbits satisfies the inclusion
\[
\glkq\lorb\gfqhktnuk\subseteq \glkq\lorb(\gfqhk)^n.
\]
Hence the set of unlabelled structures, i.e. the set of isometry classes of 
linear codes of dimension $k$ in $\gfqhn,$ is the set of orbits
\[
(\glkq\times\gfq^*\wr S_n)\lorb\gfqhktnuk
\subseteq (\glkq\times\gfq^*\wr S_n)\lorb(\gfqhk)^n.
\]
It is now crucial to note (H. Fripertinger pointed to this) that, according to 
the bijection of Lehmann, this set of orbits is bijective to the set
\[
S_n\lorb\left(
\gfq^*\lorb \gfqhk
\right)^n.
\]
This bijection clarifies a lot of things in linear coding theory which at first
glance look astonishing. To begin with, let us recall that the set of orbits 
\[
\gfq^*\lorb \gfqhk
\]
is the set of $k$-tuples of onedimensional subspaces of $\gfqhk$ and so this
explains why the projective spaces enter coding theory. Moreover, we recall
that the orbits of the symmetric group $S_X$ on $Y^X$ are the sets of
mappings of different weight, and so the set of mappings of weight 
$(1,\ldots,1)$ is of particular interest, and these are in fact the
well-known {\em Hamming Codes.} For more details cf.~\cite{fripker}.

Thus it is useful to have a clear cut definition of a structure as an orbit
of a finite group on a finite set of mappings in order to understand
what is going on in this particular theory.

The next step is the evaluation of orbit representatives. Here it turned out
that an appropriate philosophy is that of looking for a transitive group 
and then using the fact that the orbits of the group in question are
in bijection with double cosets. Here is the crucial lemma: If a group $A$
acts on a set $M$, then the set of orbits of a subgroup $U\leq A$ on an 
orbit $A(m)$ of $A$
has a canonic bijection onto the set of $(U,G_m)$-double cosets as follows:
$$U\lorb A(m)\longrightarrow U\backslash A/G_m\colon U(am)\mapsto UaG_m,$$
for any $m\in M$ and its stabilizer $G_m.$ So the philosophy behind this is
{\em to look for transitive groups.} Such transitive groups do always exist,
since there are the symmetric groups. But usually these groups are much too
big. So what we do is to impose further conditions in order to find smaller
transitive groups. For example, in the case of graphs, we can restrict 
attention to the graphs with given numbers of points and edges, in which 
case we can take the symmetric group $S_{{v\choose2}}$ instead of the full
symmetric group on $2^{{v\choose2}}.$

It remains to discuss the evaluation of a transversal of the set 
$U\backslash A/G_m$ of double cosets
from which we then obtain the desired transversal of the set $U\lorb A(m)$ of
orbits. For this purpose the {\em ladder game} is at hand which B.~Schmalz 
invented and used for the evaluation of designs with prescribed automorphism
groups (\cite{Schmalz90},\cite{Schmalz92},\cite{Schmalz93}).
It was applied to the following situation: The Kramer/Mesner 
matrix of a design on a set $V$ consisting of $v$ vertices with a given 
automorphism group 
$A\leq S_v$ has columns labelled by the elements of a transversal of
$A\lorb{V\choose k}$ and rows labelled by the elements of a transversal
of $A\lorb{V\choose t}.$ So, as the symmetric group $S_v$ acts transitively
both on ${V\choose k}$ and ${V\choose t},$ we are faced with the problem of 
evaluating transversals of
$A\backslash S_v/S_{(v-k,k)}$
and of
$A\backslash S_v/S_{(v-t,t)}$
where the Young subgroups $S_{(v-k,k)}$ and $S_{(v-t,t)}$ are stabilizers of
a $k$- and of a $t$-subset of the set of vertices, respectively. The ladder 
game allows to solve these two problems in one wash by going along a sequence
of Young subgroups which starts from $S_v$ and which ends in $S_{(v-k,k)}$ and
where in between these two groups the Young subgroup $S_{(v-t,t)}$
occurs (note that $t\leq k$). Since the double cosets are unions of left
cosets, on which the automorphism group $A$ is acting by left multiplication,
the following basic principle applies (for a detailed discussion and
applications of this principle see \cite{Laue93}):
%yields the desired solutions, since it allows to go up and down from one 
%Young subgroupt to the other:.

{\bf The Homomorphism Principle} {\em Assume that a finite group $G$ is acting 
on
two finite sets $M$ and $N$ and that there exists a surjective mapping
$\varphi\colon M\to N$ which is compatible with the two group actions:
\[
\varphi(gm)=g\varphi(m).
\]
Then the following is true:
\begin{itemize}
\item The image of a transversal ${\cal T}$ of the set of orbits of $G$ on $M,$
in formal terms, the image of
\[
{\cal T}(G\lorb M)
\]
contains a transversal of the set of orbits $G\lorb N$ of $G$ on $N.$
\item The inverse images $\varphi^{-1}(n)$ of the elements of $N$ are
blocks (which means that they are permuted amongst each other by the action
of $G$). Since $\varphi$ is assumed to be surjective, these inverse images 
therefore form a decomposition of $M$ into blocks with respect to the action of
$G.$
\item The stabilizer of $n\in N$ is the setwise stabilizer of the inverse image
$\varphi^{-1}(n).$ Therefore we can obtain a transversal $T_M$ of the orbits of 
$G$ on $M$ from a transversal $T_N$ of the orbits of $G$ on $N$ in the following
way:
\begin{itemize}
\item Compute, for each $n\in{\cal T}_N,$ its
stabilizer $G_{n}.$
\item Compute the inverse images $B_n:=\varphi^{-1}(n).$
\item Compute, for each of these blocks, a transversal
$${\cal T}(G_{n}\lorb B_n).$$
\end{itemize}
Then the following set is a transversal of the orbits of $G$ on $N:$
$${\cal T}(G\lorb M):=\bigcup_{n\in{\cal T}_N}{\cal T}(G_{n}\lorb B_n).$$
\end{itemize}
}
This principle is essential for the evaluation of double coset transversals
using Schmalz' ladder game. Here is a very recent application of it which
lead to the discovery of the very first 7-designs with moderate parameters.

Assume that we are asking for the existence of $7-(33,8,10)$ designs. A brute
force attack would need to answer the question for the existence of 
0-1-solutions of a system of linear equations over the integers with a
matrix of coefficients of size ${33\choose 7}\times{33\choose 8}$, containing
approximately $7\cdot10^{13}$ coefficinets, and so there is no hope of 
affirmatively answering this question for a solution. But if we impose a 
further condition (this is, of course, risky, since there may be {\em no}
designs with that additional property) we get it into the reach of 
present computers. The suggested condition was to {\em assume that the group
$P\Gamma L(2,32)$ is a group of automorphisms}. Supposing this we can use
the theorem of Kramer and Mesner, which reduces the problem to the existence 
of 0-1-solutions
of a system of linear equations of size 
$$\left(P\Gamma L(2,32)\lorb{33\choose 7}\right)
\times
\left(P\Gamma L(2,32)\lorb{33\choose 8}\right)=32\times97.$$
The crucial point is that the number of entries of that matrix, compared with
the other one, is reduced by the {\em factor} $2.3\cdot10^{10},$ which shows the
enormous reduction of complexity by imposing the existence of that 
group of automorphisms! The entries of the matrix were evaluated by A. Betten 
using the homomorphism
principle mentioned above. Here is 
the ladder of Young subgroups
which was used:

\unitlength0.4cm
\begin{picture}(24,21)(-5,0)
\put(11.5,0){\circle*{0.4}}
\put(11.5,12){\circle*{0.4}}
\put(11.5,8){\circle*{0.4}}
\put(14.5,1){\circle*{0.4}}
\put(14.5,5){\circle*{0.4}}
\put(14.5,9){\circle*{0.4}}
\put(14.5,13){\circle*{0.4}}
\put(14.5,16){\circle*{0.4}}
\put(17.5,20){\circle*{0.4}}

\put(11.5,0){\line(3,1){3}}
\put(11.5,0){\line(3,5){3}}
\put(11.5,8){\line(3,1){3}}
\put(11.5,8){\line(3,5){3}}
\put(11.5,12){\line(3,1){3}}
\put(11.5,12){\line(3,4){3}}
\put(14.5,16){\line(3,4){3}}

\put(8,0){\makebox(0,0){
$S_{(7,1,25)}$}}
\put(16.6,1){\makebox(0,0){
$S_{(8,25)}$}}
\put(16.7,5){\makebox(0,0){
$S_{(7,26)}$}}
\put(8,8){\makebox(0,0){
$S_{(2,1,30)}$}}
\put(16.7,9){\makebox(0,0){
$S_{(3,30)}$}}
\put(16.7,13){\makebox(0,0){
$S_{(2,31)}$}}
\put(8,12){\makebox(0,0){
$S_{(1,1,31)}$}}
\put(16.5,16){\makebox(0,0){
$S_{(1,32)}$}}
\put(18.5,20){\makebox(0,0){$S_{33}$}}
\put(14.5,7){\makebox(0,0){$\vdots$}}

\put(12.5,0.7){\makebox(0,0){$8$}}
\put(12.5,2.7){\makebox(0,0){$26$}}
\put(12.5,8.7){\makebox(0,0){$3$}}
\put(12.5,10.7){\makebox(0,0){$31$}}
\put(12.5,12.7){\makebox(0,0){$2$}}
\put(12.5,14.7){\makebox(0,0){$32$}}
\put(15.5,18.7){\makebox(0,0){$33$}}
\end{picture}
%\caption{The ladder for 7-designs}

\bigskip

The numbers attached to the edges of the graph give the size of the steps,
and they indicate that this ladder game gives another reduction of the
complexity. Instead of having to evaluate a transversal of a set of
more than $17\cdot10^6$ left cosets of $S_{(8,25)}$ in $S_{33}$ in one wash,
it is only needed to do orbit caculations in sets of sizes $33,32,2,31,\ldots,
26,8,$ one after the other. The complexity is \lq\lq logarithmically 
reduced\rq\rq\  by the ladder game.

Thus it was easy to evaluate that matrix (which was in fact already known, but
this is not the point, since the ladder game allows to evaluate such 
matrices in cases of which one could only dream before).

After the evaluation of the Kramer/Mesner matrix by A.~Betten, the final
step was made by A.~Wassermann, who implemented a modern version of the 
LLL-algorithm which he adapted to this particular problem. A run on a PC
then finally settled the question for the existence of 7-designs with 
moderate parameters, the answer is: {\em Yes, there do exist 
$7-(33,8,10)$-designs, and therefore also $7-(33,8,16)$-designs!} The first one
was found by the end of 1994, in the meantime and in cooperations with
Brendan MacKay, Canberra, several thousand further ones were found, but the
complete set of such designs is not known yet 
(for details see~\cite{Bettenetc}).

Besides, for the evaluation of the Kramer/Mesner matrix we used the homomorphism
principle in order to provide a recursion procedure for the evaluation of
transversals of the form $G\lorb Y^X.$ The recursion is by the order of $Y.$
This allows to obtain, for example, multigraphs with bounded multiplicity of
bonds, from simple graphs. 

These methods, principles and algorithms are, in a sense, {\em algebraic} ones.
But we should not forget that {\em all this needs a good mixture of algebraic 
and of combinatorial reasoning.} So let me finally mention one of the most 
important tools we took from combinatorics: The {\em orderly generation,}
a method introduced by R.~C.~Read in his paper
\lq\lq Every One a Winner\rq\rq\ (\cite{Read78}). The basic idea is to order
the set $M$ on which the group in question is acting and to make use of the
fact that in this case we have {\em canonic transversals,} consisting either
of the biggest (or of the smallest, if you prefer) elements in their 
respective orbits. Details about this were given in~\cite{Hager91}.
\section{Summary}
Let me try to summarize our experiences and activities within the network
on algebraic combinatorics in a few items:
\begin{itemize}
\item We are very thankful for the financial support given by that network, and
we use it in particular for extensions of SYMMETRICA.
\item The extensions we have in mind are in particular devoted to the
constructive theory of discrete structures. The discrete structures in
question are defined as orbits of finite groups on sets of mappings.
Examples are graphs, molecular graphs, linear codes, designs etc.
\item We already extended SYMMETRICA by implementing
and incorporating new programs for cycle indices of linear groups. Moreover
several activities were devoted to symmetric functions, both with commuting and
with noncommuting indeterminates.
\item For constructive purposes we considered applications of the 
homomorphism principle to the evaluation of double coset transversals. One
of the results was the recent discovery of the very
first 7-designs with moderate parameters.
\item The intention is to continue this in cooperation with other groups of
the network,within the S\'eminaire Lotharingien de Combinatoire and in the
\lq\lq Lotharingian Spirit\rq\rq, using, in terms of A.Garsia,
the {\em Lotharingian Eye of Combinatorics.}
\item In addition to these discrete methods we shall continue the development
of representation theoretical aspects, too. The projective matrix 
representations
of symmetric groups were recently achieved, a program was implemented. A new 
version is in preparation, it will be ready very soon.
\item Close cooperation with several groups will go on, in particular I should
like to mention the groups in Paris, Marne la Vall\'ee, Aberystwyth, Graz.
\item Some of the applications are relevant for industry, too. The computer
package MOLGEN that allows to construct all the molecular graphs 
corresponding to certain conditions (molecular formula, prescribed and
forbidden substructures etc.) is already used in chemical research and industry.
\end{itemize}


\begin{thebibliography}{10}

\bibitem{Bettenetc}
{\sc A.~Betten, A.~Kerber, A.~Kohnert, R.~Laue, A.~Wassermann}.
\newblock The Discovery of Simple 7-Designs with Automorphism Group
$P\Gamma L(2,32)$.
\newblock {\em (to appear in Springer LNCS)}.

\bibitem{Biggs}
{\sc N.L.Biggs}.
\newblock Interaction Models.
\newblock {\em Cambridge University Press}, 1977.

\bibitem{fripertinger}
{\sc H.~Fripertinger}.
\newblock Enumeration of isometry-classes of linear $(n,k)$-codes over
$GF(q)$ in SYMMETRICA.
\newblock {\em Bayreuther Mathematische Schriften} {\bf 49} (1995), 215--223.

\bibitem{fripker}
{\sc H.~Fripertinger, A.~Kerber}.
\newblock Isometry Classes of Indecomposable Linear Codes.
\newblock {\em (to appear in Springer LNCS)}.
 
\bibitem{NCSF}
{\sc I.M.~Gelfand, D.~Krob, A.~Lascoux, B.~Leclerc, V.S.~Retakh,
and J.-Y.~Thibon}.
\newblock Noncommutative symmetric functions.
\newblock {\em Adv.~Math.} {\bf 112} (1995), 218-348.

\bibitem{Grund90}
{\sc R.~Grund}.
\newblock Symmetrieklassen von Abbildungen und die Konstruktion von diskreten
  Strukturen.
\newblock {\em Bayreuther Mathematische Schriften} {\bf 31} (1990), 19--54.

\bibitem{Grund94}
{\sc R.~Grund}.
\newblock Konstruktion molekularer Graphen mit gegebenen Hybridisierungen und
\"uberlappungsfreien Fragmenten.
\newblock {\em Bayreuther Mathematische Schriften} {\bf 49} (1995), 1--113.

\bibitem{GKL}
{\sc R.~Grund, A.~Kerber, and L.~Laue}.
\newblock Construction of discrete structures, especially isomers.
\newblock {\em to appear in Appl.~Discr.~Math.}

\bibitem{MOLGEN92}
{\sc R.~Grund, A.~Kerber, and R.~Laue}.
\newblock MOLGEN, ein Compu\-ter\-algebra-System f\"ur die Konstruktion molekularer
  Graphen.
\newblock {\em MATCH}, {\bf 27}, S.~87--131, 1992.

\bibitem{Hager91}
{\sc R.~Hager, A.~Kerber, R.~Laue, D.~Moser, and W.~Weber}.
\newblock Construction of orbit representatives.
\newblock {\em Bayreuther Mathematische Schriften}, {\bf 35}, S.~157--169,
  1991.

\bibitem{Kerber91}
{\sc A.~Kerber}.
\newblock Algebraic Combinatorics Via Finite Group Actions.
\newblock {\em BI-Wissenschaftsverlag, Mannheim, Wien, Z\"urich, 1991}.

\bibitem{KnuthIII}
{\sc D.~E.~Knuth}.
\newblock The Art of Computer Programming, vol 3.
\newblock {\em Addison--Wesley}, 1973.

\bibitem{Kohnert}
{\sc A.~Kohnert, S. Veigneau}.
\newblock Using Schubert toolkit to compute with polynomials in several
variables.
\newblock {\em (in preparation)}.

\bibitem{Laue89}
{\sc R.~Laue}.
\newblock Eine konstruktive Version des Lemmas von Burnisde.
\newblock {\em Bayreuther Mathematische Schriften}, {\bf 28}, S.~111--125, 1989.
\bibitem{Laue93}
{\sc R.~Laue}.
\newblock Construction of combinatorial objects -- a tutorial.
\newblock {\em Bayreuther Mathematische Schriften}, {\bf 43}, S.~53--96, 1993.

\bibitem{Leclerc}
{\sc B.~Leclerc, Th. Scharf, J.-Y. Thibon}.
\newblock Non commutative cyclic characters of symmetric groups.
\newblock {\em (submitted to JCTA)}.

\bibitem{Lehmann74}
{\sc W.~Lehmann}.
\newblock Das Abz\"ahltheorem der Exponentialgruppe in gewichteter Form.
\newblock {\em Mitt. Math. Sem. Univ. Gie\ss en}, {\bf 112} (1974), 19-33.

\bibitem{Lehmann76}
{\sc W.~Lehmann}.
\newblock Ein vereinheitlichender Ansatz f\"ur die REDFIELD-P\'OLYA-de 
BRUIJNsche Abz\"ahlungstheorie.
\newblock {\em Doctoral thesis, Gie\ss en 1976}.

\bibitem{Read78}
{\sc R.C. Read}.
\newblock Every one a winner.
\newblock {\em Ann.~Discr.~Math.}, {\bf 2}, S.~107--120, 1978.

\bibitem{Schmalz90}
{\sc B.~Schmalz}.
\newblock Verwendung von Untergruppenleitern zur Bestimmung von
  Doppelnebenklassen.
\newblock {\em Bayreuther Mathematische Schriften}, {\bf 31}, S.~109--143,
  1990.

\bibitem{Schmalz92}
{\sc B.~Schmalz}.
\newblock $t$-Designs zu vorgegebener Automorphismengruppe.
\newblock {\em Bayreuther Mathematische Schriften}, {\bf 41}, S.~1--164, 1992.

\bibitem{Schmalz93}
{\sc B.~Schmalz}.
\newblock The $t$-designs with prescribed automorphism group, new simple
  6-designs.
\newblock {\em J.~Comb.~Designs}, {\bf 1}, S.~125--146, 1993.

%\bibitem{Sims}
%{\sc C.C. Sims}.
%\newblock Computation with Permutation Groups.
%\newblock In {\sc S.R. Petrick}, Hrsg., {\em Proc.\ of the Second Symposium on
  %Symbolic and Algebraic Manipulation}, S.~23--28. Assoc.\ Comput.\ Mach.


\end{thebibliography}

\end{document}
