%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % csp_zed.sty -> csp and z symbols using ams fonts % (c) July 1993 Jim Davies/ Mike Spivey %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % check % this is a special option file. it takes effect even if another % option has been loaded. no definition of \csp@symbols! %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % define csp macros \ifx\csp@macros\undefined \relax \openin1 csp.sty \ifeof1 \relax \typeout{fatal error: csp.sty not found} \else \closein1 \relax \@@input csp.sty \fi \fi %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % fonts \ifx\msa@group\undefined \relax \ifx\selectfont\undefined \relax \newfam\msa@group \newfam\msb@group \font\twlmsa=msam10 scaled 1200 \font\twlmsb=msbm10 scaled 1200 \font\elvmsa=msam10 scaled 1095 \font\elvmsb=msbm10 scaled 1095 \font\tenmsa=msam10 \font\tenmsb=msbm10 \font\ninmsa=msam9 \font\ninmsb=msbm9 \font\egtmsa=msam8 \font\egtmsb=msbm8 \font\sevmsa=msam7 \font\sevmsb=msbm7 \font\sixmsa=msam6 \font\sixmsb=msbm6 \font\fivmsa=msam5 \font\fivmsb=msbm5 \@addfontinfo\@xpt{\textfont\msa@group=\tenmsa \scriptfont\msa@group=\sevmsa \scriptscriptfont\msa@group=\fivmsa \textfont\msb@group=\tenmsb \scriptfont\msb@group=\sevmsb \scriptscriptfont\msb@group=\fivmsb} \@addfontinfo\@xipt{\textfont\msa@group=\elvmsa \scriptfont\msa@group=\egtmsa \scriptscriptfont\msa@group=\sixmsa \textfont\msb@group=\elvmsb \scriptfont\msb@group=\egtmsb \scriptscriptfont\msb@group=\sixmsb} \@addfontinfo\@xiipt{\textfont\msa@group=\twlmsa \scriptfont\msa@group=\egtmsa \scriptscriptfont\msa@group=\sixmsa \textfont\msb@group=\twlmsb \scriptfont\msb@group=\egtmsb \scriptscriptfont\msb@group=\sixmsb} \let\mathrm=\rm \let\mathsf=\sf \else \new@fontshape{msa}{m}{n}{% <5>msam5% <6>msam6% <7>msam7% <8>msam8% <9>msam9% <10>msam10% <11>msam10 at10.95pt% <12>msam10 at12pt% <14>msam10 at14.4pt% <17>msam10 at17.28pt% <20>msam10 at20.74pt% <25>msam10 at24.88pt}{} \extra@def{msa}{}{} \new@fontshape{msb}{m}{n}{% <5>msbm5% <6>msbm6% <7>msbm7% <8>msbm8% <9>msbm9% <10>msbm10% <11>msbm10 at10.95pt% <12>msbm10 at12pt% <14>msbm10 at14.4pt% <17>msbm10 at17.28pt% <20>msbm10 at20.74pt% <25>msbm10 at24.88pt}{} \extra@def{msb}{}{} \new@mathgroup\msa@group \new@mathgroup\msb@group \define@mathgroup\mv@normal\msa@group{msa}{m}{n} \define@mathgroup\mv@normal\msb@group{msb}{m}{n} \newmathalphabet{\mathsf} \addtoversion{normal}\mathsf{cmss}{m}{n} \addtoversion{bold}\mathsf{cmss}{bx}{n} \fi \fi %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % loading \ifx\hexnumber@\undefined \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} \fi \edef\@fa{\hexnumber@\msa@group} \edef\@fb{\hexnumber@\msb@group} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % symbol table \let \@mc \mathchardef \@mc \csp@after "2\@fa 42 \@mc \csp@barchoice "326A \@mc \csp@before "2\@fa 43 \@mc \csp@cat "0\@fa 61 \@mc \csp@chain "321D \def \csp@chaos {{Chaos}} \@mc \csp@count "3223 \def \csp@defs {\widehat=} \@mc \csp@during "3222 \let \csp@extchoice \Box \@mc \csp@finset "0\@fb 46 \@mc \csp@ge "3\@fa 3E \let \csp@hide \backslash \@mc \csp@intchoice "2275 \def \csp@interleave {\mid\!\mid\!\mid} \@mc \csp@interrupt "2234 \def \csp@ldbrack {{[\![}} \def \csp@ldparen {(\!\mid} \@mc \csp@le "3\@fa 36 \@mc \csp@nat "0\@fb 4E \@mc \csp@nexists "0\@fb 40 \@mc \csp@num "0\@fb 5A \@mc \csp@parallel "326B \@mc \csp@power "0\@fb 50 \@mc \csp@prefix "3\@fa 36 \@mc \csp@project "2\@fa 16 \@mc \csp@rat "0\@fb 51 \def \csp@rdbrack {{]\!]}} \def \csp@rdparen {\mid\!)} \@mc \csp@real "0\@fb 52 \def \csp@safter {\rlap{$-$}{\csp@after}} \def \csp@sbefore {\rlap{$-$}{\csp@before}} \def \csp@skip {{Skip}} \def \csp@slave {\raise0.2ex\hbox{$\slash\mkern-5mu\slash$}} \@mc \csp@spot "220F \def \csp@stop {{Stop}} \@mc \csp@subseq "3216 \let \csp@then \longrightarrow \@mc \csp@tick "2\@fa 58 \@mc \csp@timeout "2\@fa 42 \@mc \csp@transfer "322E \def \csp@wait {{Wait}} \def \csp@xextchoice {\indexed@op{\csp@extchoice}} \def \csp@xintchoice {\indexed@op{\csp@intchoice}} \def \csp@xinterleave {\indexed@op{\mid\mid\mid}} \def \csp@xparallel {\indexed@op{\mid\mid}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % define z macros % the following text is copyright (c) J.M. Spivey (1991) \def~{\ifmmode\,\else\penalty\@M\ \fi} \def\@myop#1{\mathop{\mathstrut{#1}}\nolimits} \def\_{\leavevmode \ifmmode\else\kern0.06em\fi \vbox{\hrule width0.5em}} \@mc \spot "320F \mathcode`\@=\spot \mathcode`\|=\mid \def\bsup#1\esup{^{#1}} \def\inrel#1{\mathrel{\underline{#1}}} % mike's schema macros \newdimen\zedindent \zedindent=\leftmargini \newdimen\zedleftsep \zedleftsep=1em \newdimen\zedtab \zedtab=2em \newdimen\zedbar \zedbar=6em \newskip\zedskip \zedskip=0.5\baselineskip plus0.333333\baselineskip minus0.333333\baselineskip \def\zedsize{} \newcount\interzedlinepenalty \interzedlinepenalty=10000 \newcount\preboxpenalty \preboxpenalty=0 \newif\ifzt@p \zt@pfalse \def\@jot{0.5\zedskip} \def\@narrow{\advance\linewidth by-\zedindent} \def\@zrulefill{\leaders\hrule height\arrayrulewidth\hfill} \def\@topline#1{\hbox to\linewidth{% \vrule height\arrayrulewidth width\arrayrulewidth \vrule height0pt depth\@jot width0pt \hbox to\zedleftsep{\@zrulefill\thinspace}% #1\thinspace\@zrulefill}} \def\@zedline{\omit \vrule height\arrayrulewidth width\linewidth \cr} \def\where{\@zskip\@jot \omit \vrule height\arrayrulewidth width\zedbar \cr \@zskip\@jot} \def\also{\crcr \noalign{\penalty\interdisplaylinepenalty \vskip\zedskip}} \def\@zskip#1{\crcr \omit \vrule height#1 width\arrayrulewidth \cr} \def\@zlign{\tabskip\z@skip\everycr{}} % \@lign missing in SliTeX \let\tie=\t \def\t#1{\afterassignment\@t\count@=#1} \def\@t{\hskip\count@\zedtab} \def\@setzsize{\let\next=\@nomath\def\@nomath##1{}% \skip0=\abovedisplayskip\skip1=\belowdisplayskip \zedsize \let\@nomath=\next \abovedisplayskip=\skip0\belowdisplayskip=\skip1} \def\@zed{\ifvmode\@zleavevmode\fi $$\global\zt@ptrue \@setzsize \advance\linewidth by-\zedindent \advance\displayindent by\zedindent \def\\{\crcr}% Must have \def and not \let for nested alignments. \let\par=\relax \tabskip=0pt} \def\@znoskip{\offinterlineskip \everycr={\noalign{\ifzt@p \global\zt@pfalse % Simulate interline glue \ifdim\prevdepth>-1000pt \skip0=\normalbaselineskip \advance\skip0by-\prevdepth \advance\skip0by-\ht\strutbox \ifdim\skip0<\normallineskiplimit \vskip\normallineskip \else \vskip\skip0 \fi\fi \else \penalty\interzedlinepenalty \fi}}} \def\zed{\@zed\@znoskip\halign to\linewidth\bgroup \strut$\@zlign##$\hfil \tabskip=0pt plus1fil\cr} \def\endzed{\crcr\egroup$$\global\@ignoretrue} \def\[{\begingroup\zed} \def\]{\crcr\egroup$$\endgroup\ignorespaces} \def\axdef{\def\also{\@zskip\zedskip}% \predisplaypenalty=\preboxpenalty \@zed\@znoskip \halign to\linewidth\bgroup \strut \vrule width\arrayrulewidth \hskip\zedleftsep $\@zlign##$\hfil \tabskip=0pt plus1fil\cr} \let\endaxdef=\endzed \def\schema#1{\@ifnextchar[{\@schema{#1}}{\@nschema{#1}}} \def\@schema#1[#2]{\@nschema{#1[#2]}} \def\@nschema#1{\@narrow\axdef \omit\@topline{$\strut#1$}\cr} \def\endschema{\@zskip\@jot \@zedline \endzed} \@namedef{schema*}{\@narrow\axdef \@zedline \@zskip\@jot} \expandafter\let\csname endschema*\endcsname=\endschema \def\gendef{\@ifnextchar[{\@gendef}{\@ngendef}} \def\@gendef[#1]{\@narrow\axdef \omit \setbox0=\hbox{$\strut[#1]$}% \rlap{\raise\doublerulesep\@topline{\hskip\wd0}}\@topline{\box0}\cr} \def\@ngendef{\@narrow\axdef \@zedline \omit \hbox to\linewidth{\vrule height\doublerulesep width\arrayrulewidth \@zrulefill}\cr \@zskip\@jot} \let\endgendef=\endschema \def\argue{\@zed \interzedlinepenalty=\interdisplaylinepenalty \openup\@jot \halign to\linewidth\bgroup \strut$\@zlign##$\hfil \tabskip=0pt plus1fil &\hbox to0pt{\hss[\@zlign##\unskip]}\tabskip=0pt\cr \noalign{\vskip-\@jot}} \let\endargue=\endzed \def\because#1{\noalign{\vskip-\jot}\cr} \def\syntax{\@zed\@znoskip \halign\bgroup \strut$\@zlign##$\hfil &\hfil$\@zlign{}##{}$\hfil &$\@zlign##$\hfil\cr} \let\endsyntax=\endzed \def\infrule{\@zed\@znoskip \halign\bgroup \strut\quad$\@zlign##$\quad\hfil&\quad\@zlign##\hfil\cr} \let\endinfrule=\endzed \def\derive{\crcr \noalign{\vskip\@jot} \omit\@zrulefill \@ifnextchar[{\@xderive}{\@yderive}} \def\@xderive[#1]{&$\smash{\lower 0.5ex\hbox{$[\;#1\;]$}}$\cr \noalign{\vskip\@jot}} \def\@yderive{\cr \noalign{\vskip\@jot}} \def\@zleavevmode{\if@inlabel \indent \else\if@noskipsec \indent \else\if@nobreak \global\@nobreakfalse \everypar={}\abovedisplayskip=0pt\fi {\parskip=0pt\noindent}\fi\fi} % mike's font loading omitted; symbol definitions modified \def\@p#1{\mathrel{\ooalign{\hfil$\mapstochar\mkern 5mu$\hfil\cr$#1$}}} \def\@f#1{\mathrel{\ooalign{\hfil$\mapstochar\mkern 3mu \mapstochar\mkern 5mu$\hfil\cr$#1$}}} \def \lblot {\langle\!\left|} \def \rblot {\right|\!\rangle} \def \lbag {[\![} \def \rbag {]\!]} \def \pre {{\mathrm{pre}}\;} \def \semi {\mathrel{\comp}} \def \comp {\mathbin{\raise 0.6ex\hbox{\oalign{\hfil$\scriptscriptstyle \mathrm o$\hfil\cr\hfil$\scriptscriptstyle\mathrm{9}$\hfil}}}} \def \ldata {\langle\!\langle} \def \rdata {\rangle\!\rangle} \let \shows \vdash \let \rel \leftrightarrow \def \dom {\mathop{\mathrm{dom}}} \def \ran {\mathop{\mathrm{ran}}} \def \id {\mathop{\mathrm{id}}} \@mc \dres "2\@fa43 \@mc \rres "2\@fa42 \def \ndres {\mathbin{\rlap{$-$}{\dres}}} \def \nrres {\mathbin{\rlap{$-$}{\rres}}} \def \inv {^\sim} \def \limg {(\!\left|} \def \rimg {\right|\!)} \def \pfun {\@p\fun} \let \fun \rightarrow \def \pinj {\@p\inj} \@mc \inj "3\@fa1A \def \psurj {\@p\surj} \def \surj {\mathrel{\ooalign{$\fun$\hfil\cr$\mkern4mu\fun$}}} \def \bij {\mathrel{\ooalign{$\inj$\hfil\cr$\mkern5mu\fun$}}} \def \div {\mathbin{\mathsf{div}}} \def \mod {\mathbin{\mathsf{mod}}} \def \upto {\mathbin{\ldotp\ldotp}} \def \plus {^+} \def \star {^*} \def \ffun {\@f\fun} \def \finj {\@f\inj} \def \seq {\mathop{\mathrm{seq}}} \def \iseq {\mathop{\mathrm{iseq}}} \@mc \filter "2\@fa16 \def \dcat {\mathop{\cat/}} \def \bag {\mathop{\mathrm{bag}}} \def \inbag {\mathrel{\mathrm{in}}} \let \subbageq \sqsubseteq \def \disjoint {{\mathsf{disjoint}\;}} \def \partition {\mathrel{\mathsf{partition}}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \endinput %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%