summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/zed-csp/zed-csp.sty
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/zed-csp/zed-csp.sty')
-rw-r--r--macros/latex/contrib/zed-csp/zed-csp.sty789
1 files changed, 789 insertions, 0 deletions
diff --git a/macros/latex/contrib/zed-csp/zed-csp.sty b/macros/latex/contrib/zed-csp/zed-csp.sty
new file mode 100644
index 0000000000..c89ce59eda
--- /dev/null
+++ b/macros/latex/contrib/zed-csp/zed-csp.sty
@@ -0,0 +1,789 @@
+%
+% >>> zed-csp.sty <<<
+%
+% (c) Jim Davies, January 1995
+
+% You may copy and distribute this file freely. Any queries and
+% complaints should be forwarded to Jim.Davies@comlab.ox.ac.uk.
+
+% If you make any changes to this file, please do not distribute
+% the results under the name `zed-csp.sty'.
+
+% >>> information <<<
+
+% This is a LaTeX2e package for typesetting Z and CSP notation. It
+% employs the standard (JMS) set of macros, but uses the AMS fonts in
+% place of `oxsy'. You will need the tfm and fd files for the `A' and
+% `B' symbol fonts installed. This requires (1) the AMSFONTS package
+% and (2) the MFNFSS package for LaTeX2e.
+
+% If you have the Lucida Bright font set from Y&Y, then you can use
+% that instead. In this case, you have only to load `lucbr' (from the
+% PSNFSS package) before `zed-csp'.
+
+% >>> changes <<<
+
+% version 0 (Sep 94): first attempt
+% version 0a (Oct 94): fixed error in definition of \cat
+% version 0b (Nov 94): added composite for \uminus
+% version 0c (Jan 95): removed definition of \emptyset
+
+% >>> date and version <<<
+
+\def\fileversion{0c}
+\def\filedate{95/01/11}
+\def\docdate {95/01/11}
+
+\NeedsTeXFormat{LaTeX2e}
+
+\ProvidesPackage{zed-csp}[{%
+ \filedate\space\fileversion\space zed-csp package}]
+
+% >>> fonts and symbols <<<
+
+% We declare a new math version. For convenience, I have chosen the
+% same name as that used in oz.sty. The following code is based upon
+% the work of Paul King, Sebastian Rahtz, and Mike Spivey. Alan
+% Jeffrey's influence is everywhere.
+
+\@ifpackageloaded{lucbr}{}{%
+ \DeclareMathVersion{zed}
+ \SetMathAlphabet{\mathrm}{zed}{\encodingdefault}{\rmdefault}{m}{n}%
+ \SetMathAlphabet{\mathbf}{zed}{\encodingdefault}{\rmdefault}{bx}{n}%
+ \SetMathAlphabet{\mathsf}{zed}{\encodingdefault}{\sfdefault}{m}{n}%
+ \DeclareSymbolFont{italics}{\encodingdefault}{\rmdefault}{m}{it}%
+ \DeclareSymbolFontAlphabet{\mathrm}{operators}
+ \DeclareSymbolFontAlphabet{\mathit}{letters}
+ \DeclareSymbolFontAlphabet{\mathcal}{symbols}
+ \DeclareSymbolFontAlphabet{\zedit}{italics}
+ \DeclareSymbolFont{lasy}{U}{lasy}{m}{n}
+ \DeclareSymbolFont{AMSa}{U}{msa}{m}{n}
+ \DeclareSymbolFont{AMSb}{U}{msb}{m}{n}
+ \let\mho\undefined
+ \let\Join\undefined
+ \let\Box\undefined
+ \let\Diamond\undefined
+ \let\leadsto\undefined
+ \let\sqsubset\undefined
+ \let\sqsupset\undefined
+ \let\lhd\undefined
+ \let\unlhd\undefined
+ \let\rhd\undefined
+ \let\unrhd\undefined
+ \DeclareMathSymbol{\mho}{\mathord}{lasy}{"30}
+ \DeclareMathSymbol{\Join}{\mathrel}{lasy}{"31}
+ \DeclareMathSymbol{\Box}{\mathord}{lasy}{"32}
+ \DeclareMathSymbol{\Diamond}{\mathord}{lasy}{"33}
+ \DeclareMathSymbol{\leadsto}{\mathrel}{lasy}{"3B}
+ \DeclareMathSymbol{\sqsubset}{\mathrel}{lasy}{"3C}
+ \DeclareMathSymbol{\sqsupset}{\mathrel}{lasy}{"3D}
+ \DeclareMathSymbol{\lhd}{\mathrel}{lasy}{"01}
+ \DeclareMathSymbol{\unlhd}{\mathrel}{lasy}{"02}
+ \DeclareMathSymbol{\rhd}{\mathrel}{lasy}{"03}
+ \DeclareMathSymbol{\unrhd}{\mathrel}{lasy}{"04}
+ \DeclareSymbolFontAlphabet{\bbold}{AMSb}
+ \mathversion{zed}
+ }
+
+\@ifpackageloaded{lucbr}{%
+ \DeclareMathSymbol{\doublebarwedge}{\mathbin}{symbols}{"D4}
+ \DeclareMathSymbol{\lll}{\mathrel}{letters}{"DE}
+ \DeclareMathSymbol{\ggg}{\mathrel}{letters}{"DF}
+ \DeclareMathSymbol{\eth}{\mathrel}{operators}{"F0}
+ }{%
+ \let\rightleftharpoons\undefined
+ \let\angle\undefined
+ \DeclareMathSymbol\boxdot{\mathbin}{AMSa}{"00}
+ \DeclareMathSymbol\boxplus{\mathbin}{AMSa}{"01}
+ \DeclareMathSymbol\boxtimes{\mathbin}{AMSa}{"02}
+ \DeclareMathSymbol\square{\mathord}{AMSa}{"03}
+ \DeclareMathSymbol\blacksquare{\mathord}{AMSa}{"04}
+ \DeclareMathSymbol\centerdot{\mathbin}{AMSa}{"05}
+ \DeclareMathSymbol\lozenge{\mathord}{AMSa}{"06}
+ \DeclareMathSymbol\blacklozenge{\mathord}{AMSa}{"07}
+ \DeclareMathSymbol\circlearrowright{\mathrel}{AMSa}{"08}
+ \DeclareMathSymbol\circlearrowleft{\mathrel}{AMSa}{"09}
+ \DeclareMathSymbol\rightleftharpoons{\mathrel}{AMSa}{"0A}
+ \DeclareMathSymbol\leftrightharpoons{\mathrel}{AMSa}{"0B}
+ \DeclareMathSymbol\boxminus{\mathbin}{AMSa}{"0C}
+ \DeclareMathSymbol\Vdash{\mathrel}{AMSa}{"0D}
+ \DeclareMathSymbol\Vvdash{\mathrel}{AMSa}{"0E}
+ \DeclareMathSymbol\vDash{\mathrel}{AMSa}{"0F}
+ \DeclareMathSymbol\twoheadrightarrow{\mathrel}{AMSa}{"10}
+ \DeclareMathSymbol\twoheadleftarrow{\mathrel}{AMSa}{"11}
+ \DeclareMathSymbol\leftleftarrows{\mathrel}{AMSa}{"12}
+ \DeclareMathSymbol\rightrightarrows{\mathrel}{AMSa}{"13}
+ \DeclareMathSymbol\upuparrows{\mathrel}{AMSa}{"14}
+ \DeclareMathSymbol\downdownarrows{\mathrel}{AMSa}{"15}
+ \DeclareMathSymbol\upharpoonright{\mathrel}{AMSa}{"16}
+ \DeclareMathSymbol\downharpoonright{\mathrel}{AMSa}{"17}
+ \DeclareMathSymbol\upharpoonleft{\mathrel}{AMSa}{"18}
+ \DeclareMathSymbol\downharpoonleft{\mathrel}{AMSa}{"19}
+ \DeclareMathSymbol\rightarrowtail{\mathrel}{AMSa}{"1A}
+ \DeclareMathSymbol\leftarrowtail{\mathrel}{AMSa}{"1B}
+ \DeclareMathSymbol\leftrightarrows{\mathrel}{AMSa}{"1C}
+ \DeclareMathSymbol\rightleftarrows{\mathrel}{AMSa}{"1D}
+ \DeclareMathSymbol\Lsh{\mathrel}{AMSa}{"1E}
+ \DeclareMathSymbol\Rsh{\mathrel}{AMSa}{"1F}
+ \DeclareMathSymbol\rightsquigarrow{\mathrel}{AMSa}{"20}
+ \DeclareMathSymbol\leftrightsquigarrow{\mathrel}{AMSa}{"21}
+ \DeclareMathSymbol\looparrowleft{\mathrel}{AMSa}{"22}
+ \DeclareMathSymbol\looparrowright{\mathrel}{AMSa}{"23}
+ \DeclareMathSymbol\circeq{\mathrel}{AMSa}{"24}
+ \DeclareMathSymbol\succsim{\mathrel}{AMSa}{"25}
+ \DeclareMathSymbol\gtrsim{\mathrel}{AMSa}{"26}
+ \DeclareMathSymbol\gtrapprox{\mathrel}{AMSa}{"27}
+ \DeclareMathSymbol\multimap{\mathrel}{AMSa}{"28}
+ \DeclareMathSymbol\therefore{\mathrel}{AMSa}{"29}
+ \DeclareMathSymbol\because{\mathrel}{AMSa}{"2A}
+ \DeclareMathSymbol\doteqdot{\mathrel}{AMSa}{"2B}
+ \DeclareMathSymbol\triangleq{\mathrel}{AMSa}{"2C}
+ \DeclareMathSymbol\precsim{\mathrel}{AMSa}{"2D}
+ \DeclareMathSymbol\lesssim{\mathrel}{AMSa}{"2E}
+ \DeclareMathSymbol\lessapprox{\mathrel}{AMSa}{"2F}
+ \DeclareMathSymbol\eqslantless{\mathrel}{AMSa}{"30}
+ \DeclareMathSymbol\eqslantgtr{\mathrel}{AMSa}{"31}
+ \DeclareMathSymbol\curlyeqprec{\mathrel}{AMSa}{"32}
+ \DeclareMathSymbol\curlyeqsucc{\mathrel}{AMSa}{"33}
+ \DeclareMathSymbol\preccurlyeq{\mathrel}{AMSa}{"34}
+ \DeclareMathSymbol\leqq{\mathrel}{AMSa}{"35}
+ \DeclareMathSymbol\leqslant{\mathrel}{AMSa}{"36}
+ \DeclareMathSymbol\lessgtr{\mathrel}{AMSa}{"37}
+ \DeclareMathSymbol\backprime{\mathord}{AMSa}{"38}
+ \DeclareMathSymbol\risingdotseq{\mathrel}{AMSa}{"3A}
+ \DeclareMathSymbol\fallingdotseq{\mathrel}{AMSa}{"3B}
+ \DeclareMathSymbol\succcurlyeq{\mathrel}{AMSa}{"3C}
+ \DeclareMathSymbol\geqq{\mathrel}{AMSa}{"3D}
+ \DeclareMathSymbol\geqslant{\mathrel}{AMSa}{"3E}
+ \DeclareMathSymbol\gtrless{\mathrel}{AMSa}{"3F}
+ \DeclareMathSymbol\sqsubset{\mathrel}{AMSa}{"40}
+ \DeclareMathSymbol\sqsupset{\mathrel}{AMSa}{"41}
+ \DeclareMathSymbol\vartriangleright{\mathrel}{AMSa}{"42}
+ \DeclareMathSymbol\vartriangleleft{\mathrel}{AMSa}{"43}
+ \DeclareMathSymbol\trianglerighteq{\mathrel}{AMSa}{"44}
+ \DeclareMathSymbol\trianglelefteq{\mathrel}{AMSa}{"45}
+ \DeclareMathSymbol\bigstar{\mathord}{AMSa}{"46}
+ \DeclareMathSymbol\between{\mathrel}{AMSa}{"47}
+ \DeclareMathSymbol\blacktriangledown{\mathord}{AMSa}{"48}
+ \DeclareMathSymbol\blacktriangleright{\mathrel}{AMSa}{"49}
+ \DeclareMathSymbol\blacktriangleleft{\mathrel}{AMSa}{"4A}
+ \DeclareMathSymbol\vartriangle{\mathord}{AMSa}{"4D}
+ \DeclareMathSymbol\blacktriangle{\mathord}{AMSa}{"4E}
+ \DeclareMathSymbol\triangledown{\mathord}{AMSa}{"4F}
+ \DeclareMathSymbol\eqcirc{\mathrel}{AMSa}{"50}
+ \DeclareMathSymbol\lesseqgtr{\mathrel}{AMSa}{"51}
+ \DeclareMathSymbol\gtreqless{\mathrel}{AMSa}{"52}
+ \DeclareMathSymbol\lesseqqgtr{\mathrel}{AMSa}{"53}
+ \DeclareMathSymbol\gtreqqless{\mathrel}{AMSa}{"54}
+ \DeclareMathSymbol\Rrightarrow{\mathrel}{AMSa}{"56}
+ \DeclareMathSymbol\Lleftarrow{\mathrel}{AMSa}{"57}
+ \DeclareMathSymbol\veebar{\mathbin}{AMSa}{"59}
+ \DeclareMathSymbol\barwedge{\mathbin}{AMSa}{"5A}
+ \DeclareMathSymbol\doublebarwedge{\mathbin}{AMSa}{"5B}
+ \DeclareMathSymbol\angle{\mathord}{AMSa}{"5C}
+ \DeclareMathSymbol\measuredangle{\mathord}{AMSa}{"5D}
+ \DeclareMathSymbol\sphericalangle{\mathord}{AMSa}{"5E}
+ \DeclareMathSymbol\varpropto{\mathrel}{AMSa}{"5F}
+ \DeclareMathSymbol\smallsmile{\mathrel}{AMSa}{"60}
+ \DeclareMathSymbol\smallfrown{\mathrel}{AMSa}{"61}
+ \DeclareMathSymbol\Subset{\mathrel}{AMSa}{"62}
+ \DeclareMathSymbol\Supset{\mathrel}{AMSa}{"63}
+ \DeclareMathSymbol\Cup{\mathbin}{AMSa}{"64}
+ \DeclareMathSymbol\Cap{\mathbin}{AMSa}{"65}
+ \DeclareMathSymbol\curlywedge{\mathbin}{AMSa}{"66}
+ \DeclareMathSymbol\curlyvee{\mathbin}{AMSa}{"67}
+ \DeclareMathSymbol\leftthreetimes{\mathbin}{AMSa}{"68}
+ \DeclareMathSymbol\rightthreetimes{\mathbin}{AMSa}{"69}
+ \DeclareMathSymbol\subseteqq{\mathrel}{AMSa}{"6A}
+ \DeclareMathSymbol\supseteqq{\mathrel}{AMSa}{"6B}
+ \DeclareMathSymbol\bumpeq{\mathrel}{AMSa}{"6C}
+ \DeclareMathSymbol\Bumpeq{\mathrel}{AMSa}{"6D}
+ \DeclareMathSymbol\lll{\mathrel}{AMSa}{"6E}
+ \DeclareMathSymbol\ggg{\mathrel}{AMSa}{"6F}
+ \DeclareMathDelimiter\ulcorner{4}{AMSa}{"70}{AMSa}{"70}
+ \DeclareMathDelimiter\urcorner{5}{AMSa}{"71}{AMSa}{"71}
+ \DeclareMathDelimiter\llcorner{4}{AMSa}{"78}{AMSa}{"78}
+ \DeclareMathDelimiter\lrcorner{5}{AMSa}{"79}{AMSa}{"79}
+ \xdef\yen {\noexpand\mathhexbox\hexnumber@\symAMSa 55 }
+ \xdef\checkmark{\noexpand\mathhexbox\hexnumber@\symAMSa 58 }
+ \xdef\circledR {\noexpand\mathhexbox\hexnumber@\symAMSa 72 }
+ \xdef\maltese {\noexpand\mathhexbox\hexnumber@\symAMSa 7A }
+ \DeclareMathSymbol\circledS{\mathord}{AMSa}{"73}
+ \DeclareMathSymbol\pitchfork{\mathrel}{AMSa}{"74}
+ \DeclareMathSymbol\dotplus{\mathbin}{AMSa}{"75}
+ \DeclareMathSymbol\backsim{\mathrel}{AMSa}{"76}
+ \DeclareMathSymbol\backsimeq{\mathrel}{AMSa}{"77}
+ \DeclareMathSymbol\complement{\mathord}{AMSa}{"7B}
+ \DeclareMathSymbol\intercal{\mathbin}{AMSa}{"7C}
+ \DeclareMathSymbol\circledcirc{\mathbin}{AMSa}{"7D}
+ \DeclareMathSymbol\circledast{\mathbin}{AMSa}{"7E}
+ \DeclareMathSymbol\circleddash{\mathbin}{AMSa}{"7F}
+ \DeclareMathSymbol\lvertneqq{\mathrel}{AMSb}{"00}
+ \DeclareMathSymbol\gvertneqq{\mathrel}{AMSb}{"01}
+ \DeclareMathSymbol\nleq{\mathrel}{AMSb}{"02}
+ \DeclareMathSymbol\ngeq{\mathrel}{AMSb}{"03}
+ \DeclareMathSymbol\nless{\mathrel}{AMSb}{"04}
+ \DeclareMathSymbol\ngtr{\mathrel}{AMSb}{"05}
+ \DeclareMathSymbol\nprec{\mathrel}{AMSb}{"06}
+ \DeclareMathSymbol\nsucc{\mathrel}{AMSb}{"07}
+ \DeclareMathSymbol\lneqq{\mathrel}{AMSb}{"08}
+ \DeclareMathSymbol\gneqq{\mathrel}{AMSb}{"09}
+ \DeclareMathSymbol\nleqslant{\mathrel}{AMSb}{"0A}
+ \DeclareMathSymbol\ngeqslant{\mathrel}{AMSb}{"0B}
+ \DeclareMathSymbol\lneq{\mathrel}{AMSb}{"0C}
+ \DeclareMathSymbol\gneq{\mathrel}{AMSb}{"0D}
+ \DeclareMathSymbol\npreceq{\mathrel}{AMSb}{"0E}
+ \DeclareMathSymbol\nsucceq{\mathrel}{AMSb}{"0F}
+ \DeclareMathSymbol\precnsim{\mathrel}{AMSb}{"10}
+ \DeclareMathSymbol\succnsim{\mathrel}{AMSb}{"11}
+ \DeclareMathSymbol\lnsim{\mathrel}{AMSb}{"12}
+ \DeclareMathSymbol\gnsim{\mathrel}{AMSb}{"13}
+ \DeclareMathSymbol\nleqq{\mathrel}{AMSb}{"14}
+ \DeclareMathSymbol\ngeqq{\mathrel}{AMSb}{"15}
+ \DeclareMathSymbol\precneqq{\mathrel}{AMSb}{"16}
+ \DeclareMathSymbol\succneqq{\mathrel}{AMSb}{"17}
+ \DeclareMathSymbol\precnapprox{\mathrel}{AMSb}{"18}
+ \DeclareMathSymbol\succnapprox{\mathrel}{AMSb}{"19}
+ \DeclareMathSymbol\lnapprox{\mathrel}{AMSb}{"1A}
+ \DeclareMathSymbol\gnapprox{\mathrel}{AMSb}{"1B}
+ \DeclareMathSymbol\nsim{\mathrel}{AMSb}{"1C}
+ \DeclareMathSymbol\ncong{\mathrel}{AMSb}{"1D}
+ \DeclareMathSymbol\varsubsetneq{\mathrel}{AMSb}{"20}
+ \DeclareMathSymbol\varsupsetneq{\mathrel}{AMSb}{"21}
+ \DeclareMathSymbol\nsubseteqq{\mathrel}{AMSb}{"22}
+ \DeclareMathSymbol\nsupseteqq{\mathrel}{AMSb}{"23}
+ \DeclareMathSymbol\subsetneqq{\mathrel}{AMSb}{"24}
+ \DeclareMathSymbol\supsetneqq{\mathrel}{AMSb}{"25}
+ \DeclareMathSymbol\varsubsetneqq{\mathrel}{AMSb}{"26}
+ \DeclareMathSymbol\varsupsetneqq{\mathrel}{AMSb}{"27}
+ \DeclareMathSymbol\subsetneq{\mathrel}{AMSb}{"28}
+ \DeclareMathSymbol\supsetneq{\mathrel}{AMSb}{"29}
+ \DeclareMathSymbol\nsubseteq{\mathrel}{AMSb}{"2A}
+ \DeclareMathSymbol\nsupseteq{\mathrel}{AMSb}{"2B}
+ \DeclareMathSymbol\nparallel{\mathrel}{AMSb}{"2C}
+ \DeclareMathSymbol\nmid{\mathrel}{AMSb}{"2D}
+ \DeclareMathSymbol\nshortmid{\mathrel}{AMSb}{"2E}
+ \DeclareMathSymbol\nshortparallel{\mathrel}{AMSb}{"2F}
+ \DeclareMathSymbol\nvdash{\mathrel}{AMSb}{"30}
+ \DeclareMathSymbol\nVdash{\mathrel}{AMSb}{"31}
+ \DeclareMathSymbol\nvDash{\mathrel}{AMSb}{"32}
+ \DeclareMathSymbol\nVDash{\mathrel}{AMSb}{"33}
+ \DeclareMathSymbol\ntrianglerighteq{\mathrel}{AMSb}{"34}
+ \DeclareMathSymbol\ntrianglelefteq{\mathrel}{AMSb}{"35}
+ \DeclareMathSymbol\ntriangleleft{\mathrel}{AMSb}{"36}
+ \DeclareMathSymbol\ntriangleright{\mathrel}{AMSb}{"37}
+ \DeclareMathSymbol\nleftarrow{\mathrel}{AMSb}{"38}
+ \DeclareMathSymbol\nrightarrow{\mathrel}{AMSb}{"39}
+ \DeclareMathSymbol\nLeftarrow{\mathrel}{AMSb}{"3A}
+ \DeclareMathSymbol\nRightarrow{\mathrel}{AMSb}{"3B}
+ \DeclareMathSymbol\nLeftrightarrow{\mathrel}{AMSb}{"3C}
+ \DeclareMathSymbol\nleftrightarrow{\mathrel}{AMSb}{"3D}
+ \DeclareMathSymbol\divideontimes{\mathbin}{AMSb}{"3E}
+ \DeclareMathSymbol\varnothing{\mathord}{AMSb}{"3F}
+ \DeclareMathSymbol\mho{\mathord}{AMSb}{"66}
+ \DeclareMathSymbol\eth{\mathord}{AMSb}{"67}
+ \DeclareMathSymbol\eqsim{\mathrel}{AMSb}{"68}
+ \DeclareMathSymbol\beth{\mathord}{AMSb}{"69}
+ \DeclareMathSymbol\gimel{\mathord}{AMSb}{"6A}
+ \DeclareMathSymbol\daleth{\mathord}{AMSb}{"6B}
+ \DeclareMathSymbol\lessdot{\mathrel}{AMSb}{"6C}
+ \DeclareMathSymbol\gtrdot{\mathrel}{AMSb}{"6D}
+ \DeclareMathSymbol\ltimes{\mathbin}{AMSb}{"6E}
+ \DeclareMathSymbol\rtimes{\mathbin}{AMSb}{"6F}
+ \DeclareMathSymbol\shortmid{\mathrel}{AMSb}{"70}
+ \DeclareMathSymbol\shortparallel{\mathrel}{AMSb}{"71}
+ \DeclareMathSymbol\smallsetminus{\mathbin}{AMSb}{"72}
+ \DeclareMathSymbol\thicksim{\mathrel}{AMSb}{"73}
+ \DeclareMathSymbol\thickapprox{\mathrel}{AMSb}{"74}
+ \DeclareMathSymbol\approxeq{\mathrel}{AMSb}{"75}
+ \DeclareMathSymbol\succapprox{\mathrel}{AMSb}{"76}
+ \DeclareMathSymbol\precapprox{\mathrel}{AMSb}{"77}
+ \DeclareMathSymbol\curvearrowleft{\mathrel}{AMSb}{"78}
+ \DeclareMathSymbol\curvearrowright{\mathrel}{AMSb}{"79}
+ \DeclareMathSymbol\digamma{\mathord}{AMSb}{"7A}
+ \DeclareMathSymbol\varkappa{\mathord}{AMSb}{"7B}
+ \DeclareMathSymbol\hslash{\mathord}{AMSb}{"7D}
+ \DeclareMathSymbol\hbar{\mathord}{AMSb}{"7E}
+ \DeclareMathSymbol\backepsilon{\mathrel}{AMSb}{"7F}
+ }
+
+% A macro name has been chosen for each of the symbols in the AMS
+% fonts. There is no need to load any other AMS package in order to
+% access these symbols.
+
+% >>> fuzz <<<
+
+% This is the standard fuzz setup, apart from the oz style change to
+% the setmcodes macro.
+
+\def\@setmcodes#1#2#3{{\count0=#1 \count1=#3
+ \loop \global\mathcode\count0=\count1 \ifnum \count0<#2
+ \advance\count0 by1 \advance\count1 by1 \repeat}}
+\@setmcodes{`A}{`Z}{"7\hexnumber@\symitalics41}%
+\@setmcodes{`a}{`z}{"7\hexnumber@\symitalics61}%
+
+\def~{\ifmmode\,\else\penalty\@M\ \fi}
+
+\let\@mc=\mathchardef \mathcode`\;="8000 {\catcode`\;=\active
+ \gdef;{\semicolon\;}} \@mc\semicolon="603B
+
+\def\strut@op#1{\mathop{\mathstrut{#1}}\nolimits}
+
+\def\_{\leavevmode \ifmmode\else\kern0.06em\fi \vbox{\hrule
+ width0.5em}}
+
+\mathcode`\"="8000 \def\@kwote#1"{\hbox{\it #1}} {\catcode`\"=\active
+ \global\let"=\@kwote}
+
+\mathchardef\spot="320F
+\mathcode`\@=\spot
+\mathcode`\|=\mid
+
+\def\bsup#1 \esup{^{#1}}
+
+\def\inrel#1{\mathrel{\underline{#1}}}
+
+\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{}}
+
+\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
+ \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}&#1\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}
+
+% From now on, we must depart from the text of fuzz, as we do not have
+% the oxsy symbol font at our disposal. We must choose symbols from
+% the AMS or Lucida fonts to compensate for our loss. Sadly, this
+% means a number of conditional definitions. I have tried to maintain
+% the order of definitions used in fuzz2.sty, rather than factor the
+% font-dependent ones out.
+
+\let\xlambda=\lambda \let\xmu=\mu
+\let\xforall=\forall \let\xexists=\exists
+
+\def \bind {\mathrel{\leadsto}}
+\def \bindsto {\mathrel{\leadsto}}
+
+\@ifpackageloaded{lucbr}{%
+ \def \lblot {{\langle}\mkern -5mu{|}}
+ \def \rblot {{|}\mkern -5mu{\rangle}}
+ }{%
+ \def \lblot {{\langle}\mkern -3.5mu{|}}
+ \def \rblot {{|}\mkern -3.5mu{\rangle}}
+ }
+
+\let\lbind=\lblot
+\let\rbind=\rblot
+
+\def \defs {\mathrel{\widehat=}}
+\def \power {\strut@op{\bbold P}}
+\let \cross \times
+\def \lambda {\strut@op{\xlambda}}
+\def \mu {\strut@op{\xmu}}
+\@ifpackageloaded{lucbr}{}{
+ \def\ldbrack{{[}\mkern-2mu{[}}
+ \def\rdbrack{{]}\mkern-2mu{]}}}
+\let \lbag \ldbrack
+\let \rbag \rdbrack
+\def \lnot {\neg\;}
+\def \land {\mathrel{\wedge}}
+\def \lor {\mathrel{\vee}}
+\let \implies \Rightarrow
+\let \iff \Leftrightarrow
+\def \forall {\strut@op{\xforall}}
+\def \exists {\strut@op{\xexists}}
+\def \hide {\mathrel{\backslash}}
+\@ifpackageloaded{lucbr}{%
+ \DeclareMathSymbol{\project}{3}{arrows}{"75}}{%
+ \DeclareMathSymbol{\project}{\mathrel}{AMSa}{"16}}
+\def \pre {{\mathrm{pre}}\;}
+\def \semi {\mathrel{\comp}}
+\def \ldata {\langle\!\langle}
+\def \rdata {\rangle\!\rangle}
+\let \shows \vdash
+\def \pipe {\mathord>\!\!\mathord>}
+\def \LET {{\mathbf{let}}\;}
+\def \IF {{\mathbf{if}}\;}
+\def \THEN {\mathrel{\mathbf{then}}}
+\def \ELSE {\mathrel{\mathbf{else}}}
+
+\let \rel \leftrightarrow
+\def \dom {\mathop{\mathrm{dom}}}
+\def \ran {\mathop{\mathrm{ran}}}
+\def \id {\mathop{\mathrm{id}}}
+\@ifpackageloaded{lucbr}{%
+ \def\comp{\mathrel{\raise 0.66ex\hbox{\oalign{\hfil%
+ $\scriptscriptstyle\mathsf{o}$\hfil%
+ \cr\hfil$\scriptscriptstyle\mathsf{9}$\hfil}}}}
+ \DeclareMathSymbol{\dres}{\mathbin}{letters}{"2F}
+ \DeclareMathSymbol{\rres}{\mathbin}{letters}{"2E}}{%
+ \def\comp{\mathbin{\raise 0.6ex\hbox{\small\oalign{\hfil%
+ $\scriptscriptstyle\mathrm{o}$\hfil%
+ \cr\hfil$\scriptscriptstyle\mathrm{9}$\hfil}}}}
+ \DeclareMathSymbol{\dres}{\mathbin}{AMSa}{"43}
+ \DeclareMathSymbol{\rres}{\mathbin}{AMSa}{"42}
+ }
+\def \ndres {\mathbin{\rlap{\raise.05ex\hbox{$-$}}{\dres}}}
+\def \nrres {\mathbin{\rlap{\raise.05ex\hbox{$-$}}{\rres}}}
+\def \inv {^\sim}
+\def \limg {(\!|}
+\def \rimg {|\!)}
+
+\def\@p#1{\mathrel{\ooalign{\hfil$\mapstochar\mkern
+ 5mu$\hfil\cr$#1$}}}
+\def \pfun {\@p\fun}
+\let \fun \rightarrow
+\let \inj \rightarrowtail
+\@ifpackageloaded{lucbr}{%
+ \DeclareMathSymbol{\pinj}{3}{arrows}{"92}
+ \def \surj {\mathrel{\ooalign{$\fun$\hfil\cr$\mkern3mu\fun$}}}
+ \def \bij {\mathrel{\ooalign{$\inj$\hfil\cr$\mkern4mu\fun$}}}}{%
+ \def \pinj {\@p\inj}
+ \def \surj {\mathrel{\ooalign{$\fun$\hfil\cr$\mkern4mu\fun$}}}
+ \def \bij {\mathrel{\ooalign{$\inj$\hfil\cr$\mkern5mu\fun$}}}}
+\def \psurj {\@p\surj}
+\def \nat {{\bbold N}}
+\def \num {{\bbold Z}}
+\def \div {\mathbin{\mathsf{div}}}
+\def \mod {\mathbin{\mathsf{mod}}}
+\def \upto {\mathbin{\ldotp\ldotp}}
+\def \plus {^+}
+\def \star {^*}
+\def \finset {\strut@op{{\bbold F}}}
+\def\@f#1{\mathrel{\ooalign{\hfil$\mapstochar\mkern 3mu
+ \mapstochar\mkern 5mu$\hfil\cr$#1$}}}
+\def \ffun {\@f\fun}
+\def \finj {\@f\inj}
+\def \seq {\mathop{\mathrm{seq}}}
+\def \iseq {\mathop{\mathrm{iseq}}}
+\def \cat {\mathbin{\raise 0.8ex\hbox{$\smallfrown$}}}
+\def \filter {\mathbin{\project}}
+\def \dcat {\mathop{\cat/}}
+\def \bag {\mathop{\mathrm{bag}}}
+\def \bcount {\mathbin{\sharp}}
+\def \inbag {\mathrel{\mathrm{in}}}
+\let \subbageq \sqsubseteq
+\def \disjoint {{\mathsf{disjoint}}\;}
+\def \partition {\mathrel{\mathsf{partition}}}
+\def \prefix {\mathrel{\mathsf{prefix}}}
+\def \suffix {\mathrel{\mathsf{suffix}}}
+\def \inseq {\mathrel{\mathsf{in}}}
+\def \extract {\mathrel{\upharpoonleft}}
+
+\def \uminus@sym{\setbox0=\hbox{$\cup$}\rlap{\hbox
+ to\wd0{\hss\raise0.3ex\hbox{$\scriptscriptstyle{-}$}\hss}}\box0}
+\def \uminus {\mathrel{\uminus@sym}}
+
+% If you are not using csp notation, then feel free to uncomment the
+% following:
+
+% \endinput
+
+
+% >>> csp <<<
+
+% We require the following mathematical symbols and aliases when
+% specifying and reasoning about the behaviour of CSP processes.
+
+\let \Inter \bigcap
+\let \Land \bigwedge
+\let \Lor \bigvee
+\let \Union \bigcup
+\let \inter \cap
+\def \nin {\not\in}
+\let \union \cup
+\def \rat {{\bbold Q}}
+\def \real {{\bbold R}}
+\def \cnt {\mathrel{\downarrow}}
+\def \data {\mathrel{\Downarrow}}
+\def \during {\mathrel{\uparrow}}
+\def \nil {\trace{}}
+\def \clause {\Bigm{|}}
+\def \contig {\mathrel{\mathbf{in}}}
+\def \trace#1{\langle #1\rangle}
+\def \set#1{\{#1\}}
+\let \ge \geqslant
+\let \le \leqslant
+\@ifpackageloaded{lucbr}{%
+ \DeclareMathSymbol{\tick}{0}{arrows}{"AC}
+ }{
+ \DeclareMathSymbol{\tick}{0}{AMSa}{"58}
+ }
+
+\let \subseq \preccurlyeq
+
+% We define a number of useful macros for projecting information from
+% a timed or untimed observation.
+
+\def \Begin {\strut@op{\mathrm{begin}}}
+\def \End {\strut@op{\mathrm{end}}}
+\def \Head {\strut@op{\mathrm{head}}}
+\def \First {\strut@op{\mathrm{first}}}
+\def \Tail {\strut@op{\mathrm{tail}}}
+\def \Front {\strut@op{\mathrm{front}}}
+\def \Last {\strut@op{\mathrm{last}}}
+\def \Times {\strut@op{\mathrm{times}}}
+\def \Events {\strut@op{\mathrm{events}}}
+\def \Reverse {\strut@op{\mathrm{reverse}}}
+
+% We define a number of useful macros for specification purposes.
+
+\def\@PreMacro#1{\mathop{\mbox{\sffamily #1}}}
+\def\@InMacro#1{\mathrel{\mbox{\sffamily #1}}}
+\def\@@InMacro#1^#2{\;\mbox{\sffamily #1}^{#2}\;}
+\def\@SupInMacro#1{\@ifnextchar^{\@@InMacro{#1}}{\@InMacro{#1}}}
+
+\def \mInternal {\@PreMacro{internal}}
+\def \mRef {\@InMacro{ref}}
+\def \mAt {\@SupInMacro{at}}
+\def \mLive {\@SupInMacro{live}}
+\def \mOpen {\@SupInMacro{open}}
+\def \mFrom {\@InMacro{from}}
+\def \mUntil {\@InMacro{until}}
+\def \mLiveFrom {\@InMacro{live from}}
+\def \mOpenFrom {\@InMacro{open from}}
+\def \mNameOfLast {\@InMacro{name of last}}
+\def \mBefore {\@InMacro{before}}
+\def \mAfter {\@InMacro{after}}
+\def \mTimeOfLast {\@InMacro{time of last}}
+
+% We define a conditional syntax for processes. This is an expression
+% conditional, and should not be confused with the command conditional
+% of programming languages. That is, if the boolean condition is
+% true, then the expression under consideration is equal to the
+% expression in the first branch.
+
+\def \If {\mathrel{\hbox{if}}}
+\def \Then {\mathrel{\hbox{then}}}
+\def \Otherwise {\mathrel{\hbox{otherwise}}}
+\def \Else {\mathrel{\hbox{else}}}
+\def \Fi {\mathrel{\hbox{fi}}}
+
+% In defining macros to set the syntax of real-time CSP, some symbols
+% are used more than once. For ease of understanding, we define these
+% symbols as internal macros.
+
+\def \csp@at {\hbox{\it @}}
+\def \csp@bar {\mathord{\mid}}
+\def \csp@chain {\mathord{\gg}}
+\def \csp@ext {\mathord{\Box}}
+\def \csp@int {\mathord{\sqcap}}
+\def \csp@par {\mathord{\xparallel}}
+
+\def \csp@interrupt {\mathord{\triangle}}
+\def \csp@timeout {\mathord{\triangleright}}
+
+\@ifpackageloaded{lucbr}{%
+ \def \csp@leftpar {\csp@bar\mkern -3mu{[}}
+ \def \csp@rightpar {{]}\mkern -3mu\csp@bar}
+ \def \csp@interleave {\csp@bar\mkern-2mu\csp@bar\mkern-2mu\csp@bar}
+ \DeclareMathSymbol{\csp@transfer}{0}{arrows}{"93}
+ }{
+ \def \csp@leftpar {\csp@bar{[}}
+ \def \csp@rightpar {{]}\csp@bar}
+ \def \csp@interleave {\csp@bar\csp@bar\csp@bar}
+ \def \csp@transfer {\mathord{\swarrow}}
+ }
+
+% We define a quick hack to magnify the indexed forms of the choice
+% and parallel composition operators. It seems to work okay.
+
+\def\indexed@op#1{%
+ \mathop{\vcenter{\hbox{\Large$\mathstrut#1$}}}\nolimits}
+
+% We are now ready to define the macros used for setting the syntax of
+% real-time CSP. Notice that the LaTeX version of \parallel *must* be
+% saved as \xparallel at this point.
+
+\let\xparallel \parallel
+
+\def \Bottom {\mathord{\perp}}
+\def \Chaos {{Chaos}}
+\def \Stop {{Stop}}
+\def \Skip {{Skip}}
+\def \Wait {\strut@op{{Wait}}}
+\def \at {\mathord{\csp@at}}
+\def \then {\@ifnextchar[{\@then}{\mathrel{\rightarrow}}}
+\def \@then[#1]{\buildrel #1\over\rightarrow}
+\def \barchoice {\mathrel{\csp@bar}}
+\def \intchoice {\mathrel{\csp@int}}
+\def \extchoice {\mathrel{\csp@ext}}
+\def \interrupt {\mathrel{\csp@interrupt}}
+\def \timeout {\@ifnextchar[{\@timeout}{\mathrel{\csp@timeout}}}
+\def \@timeout[#1]{\mathrel{\csp@timeout\{#1\}}}
+\def \transfer {\@ifnextchar[{\@transfer}{\mathrel{\csp@transfer}}}
+\def \@transfer[#1]{\mathrel{\csp@transfer\{#1\}}}
+\def \parallel {\@ifnextchar[{\@parallel}{\mathrel{\csp@par}}}
+\def \@parallel[#1]{\@ifnextchar[{\@@parallel[#1]}{%
+ {\mathrel{\,\csp@leftpar\,{#1}\,\csp@rightpar\,}}}}
+\def \@@parallel[#1][#2]{\mathrel{\,\csp@leftpar\,{#1}\,
+ \csp@bar\,{#2}\,\csp@rightpar\,}}
+\def \interleave{\mathrel{\csp@interleave}}
+\def \chain {\mathrel{\csp@chain}}
+\def \Intchoice {\indexed@op{\csp@int}}
+\def \Extchoice {\indexed@op{\csp@ext}}
+\def \Parallel {\indexed@op{\csp@par}}
+\def \Interleave{\indexed@op{\csp@interleave}}
+
+\def \@semapp[#1]{\,\ldbrack #1 \rdbrack}
+\def \sem@fun#1{{#1}\@ifnextchar[{\@semapp}{}}
+\def \Semantics {\sem@fun{semantics}}
+\def \Traces {\sem@fun{traces}}
+\def \Failures {\sem@fun{failures}}
+\def \TimedTraces {\sem@fun{timed\,traces}}
+\def \TimedFailures {\sem@fun{timed\,failures}}
+\def \Divergences {\sem@fun{divergences}}
+\def \Infinites {\sem@fun{infinites}}
+
+\def \lessdet{\@ifnextchar[{\@lessdet}{\mathrel\sqsubseteq}}
+\def \@lessdet[#1]{\@ifnextchar[{\lessdet@two[#1]}{\lessdet@one[#1]}}
+\def \lessdet@one[#1]{\mathrel{\sqsubseteq_{#1}}}
+\def \lessdet@two[#1][#2]{%
+ \mathrel{{\vphantom{\sqsubseteq}}_{#1}{\sqsubseteq}_{#2}}}
+
+\let \refinedby \lessdet
+
+\def \sat {\mathrel{\mbox{\bf sat}}}
+\def \semb#1{{\ldbrack #1 \rdbrack}}
+
+% The following symbols have been used by researchers at Oxford to
+% denote the various semantic models, spaces, and functions.
+
+\def\UT{UT} \def\TE{TE} \def\TT{TT}
+\def\RT{RT} \def\TR{TR} \def\TI{TI}
+\def\TTi{\TT^i} \def\TTw{\TT^\omega} \def\TRu{\TR^u}
+
+\def\@obsmodel#1{{\cal{O}}_{#1}}
+\def\@obsspace#1{{\cal{S}}_{#1}}
+\def\@semmodel#1{{\cal{M}}_{#1}}
+\def\@semfunct#1{{\cal{F}}_{#1}\@ifnextchar[{\@semapp}{}}
+
+\def\Out {\@obsmodel{UT}} \def\Sut {\@obsspace{UT}}
+\def\Ouf {\@obsmodel{UF}} \def\Suf {\@obsspace{UF}}
+\def\Oufd {\@obsmodel{UFD}} \def\Sufd {\@obsspace{UFD}}
+\def\Otf {\@obsmodel{TF}} \def\Stf {\@obsspace{TF}}
+\def\Otfs {\@obsmodel{TFS}} \def\Stfs {\@obsspace{TFS}}
+\def\Oti {\@obsmodel{TI}} \def\Sti {\@obsspace{TI}}
+
+\def\Mut {\@semmodel{UT}} \def\Fut {\@semfunct{UT}}
+\def\Muf {\@semmodel{UF}} \def\Fuf {\@semfunct{UF}}
+\def\Mufd {\@semmodel{UFD}} \def\Fufd {\@semfunct{UFD}}
+\def\Mtf {\@semmodel{TF}} \def\Ftf {\@semfunct{TF}}
+\def\Mtfs {\@semmodel{TFS}} \def\Ftfs {\@semfunct{TFS}}
+\def\Mti {\@semmodel{TI}} \def\Fti {\@semfunct{TI}}
+
+\endinput