|  | % | 
|  | % >>> zed-cm.sty <<< | 
|  | % | 
|  | % (c) Jim Davies, February 1997 | 
|  |  | 
|  | % You may copy and distribute this file freely.  Any queries and | 
|  | % complaints can be forwarded to Jim.Davies@comlab.ox.ac.uk.  However, | 
|  | % the author accepts no liability for the accuracy of these macros, or | 
|  | % their fitness for any purpose.  If you make any changes to this | 
|  | % file, please do not distribute the results under the name `zed-cm.sty'. | 
|  |  | 
|  | % >>> information <<< | 
|  |  | 
|  | % This is a LaTeX2e package for typesetting Z notation using the | 
|  | % standard Computer Modern family.  It extends the standard (Mike | 
|  | % Spivey) set of macros and uses the AMS symbol fonts.  I'd be | 
|  | % happy to hear of any compatibility problems, and even happier | 
|  | % to hear of elegant solutions at the same time. | 
|  |  | 
|  | % >>> date and version <<< | 
|  |  | 
|  | \def\fileversion{1} \def\filedate{97/02/18} \def\docdate{97/02/18} | 
|  |  | 
|  | \NeedsTeXFormat{LaTeX2e} | 
|  |  | 
|  | \ProvidesPackage{zed-cm}[{% | 
|  | \filedate\space\fileversion\space zed-cm package}] | 
|  |  | 
|  | % >>> handle fuzz compatibility <<< | 
|  |  | 
|  | % Some people may wish to retain the standard \[ and \] commands; the | 
|  | % option `nofuzz' allows them to do this. | 
|  |  | 
|  | \newif\if@fuzz@ \@fuzz@true | 
|  |  | 
|  | \DeclareOption{fuzz}{\@fuzz@true} | 
|  | \DeclareOption{nofuzz}{\@fuzz@false} | 
|  |  | 
|  | \ExecuteOptions{fuzz} \ProcessOptions | 
|  |  | 
|  | % >>> 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. | 
|  |  | 
|  | \DeclareMathVersion{zed} | 
|  | \SetMathAlphabet{\mathrm}{zed}{\encodingdefault}{\rmdefault}{m}{n}% | 
|  | \SetMathAlphabet{\mathbf}{zed}{\encodingdefault}{\rmdefault}{bx}{n}% | 
|  | \SetMathAlphabet{\mathsf}{zed}{\encodingdefault}{\sfdefault}{m}{n}% | 
|  | \SetMathAlphabet{\mathtt}{zed}{\encodingdefault}{\ttdefault}{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} | 
|  |  | 
|  | \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} | 
|  |  | 
|  | \if@fuzz@ | 
|  | \def\[{\begingroup\zed} | 
|  | \def\]{\crcr\egroup$$\endgroup\ignorespaces} | 
|  | \fi | 
|  |  | 
|  | \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} | 
|  |  | 
|  | % From now on, we must depart from the text of fuzz, as we do not have | 
|  | % the ox symbol font at our disposal.  We must choose symbols from | 
|  | % the AMS fonts to compensate for our loss. | 
|  |  | 
|  | \let\xlambda=\lambda \let\xmu=\mu | 
|  | \let\xforall=\forall \let\xexists=\exists | 
|  |  | 
|  | \def \bind      {\mathrel{\leadsto}} | 
|  | \def \bindsto   {\mathrel{\leadsto}} | 
|  |  | 
|  | \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}} | 
|  | \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}} | 
|  | \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 \IN        {{\mathbf{in}}\;} | 
|  | \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}}} | 
|  | \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      {(\mskip-4.5mu|} | 
|  | \def \rimg      {|\mskip-4.5mu)} | 
|  |  | 
|  | \def\@p#1{\mathrel{\ooalign{\hfil$\mapstochar\mkern | 
|  | 5mu$\hfil\cr$#1$}}} | 
|  | \def \pfun      {\@p\fun} | 
|  | \let \fun       \rightarrow | 
|  | \let \inj       \rightarrowtail | 
|  | \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{\rlap{\hbox{$-$}}{\sqsubset}}} | 
|  | \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}} | 
|  |  | 
|  | %% nice macro names | 
|  |  | 
|  | \def \union     {\cup} | 
|  | \def \inter     {\cap} | 
|  | \def \Union     {\bigcup} | 
|  | \def \Inter     {\bigcap} | 
|  | \def \nil       {\langle\rangle} | 
|  | \def \drop      {\array[t]{@{}l@{}}} | 
|  | \def \enddrop   {\endarray} | 
|  |  | 
|  | \endinput |