% -- csp.sty version 2 -------------------------------------------------
% usual common sense conditions apply - see for example the LaTeX
% public license - try to avoid editing this file; if you do edit it,
% change the filename; comments, complaints, and suggestions to
%
% Jim.Davies@comlab.ox.ac.uk
%
% but all gratitude and appreciation to Mike Spivey.
% This might be seen as a prototype; the functionality is there, but
% the implementation and documentation leave something to be
% desired---if anyone who _really_ knows what they are doing
% w.r.t. 2e internals wants to suggest revisions, then please do.
% -- csp.sty -----------------------------------------------------------
\def \fileversion {2 .0 }
\def \filedate {01 /05 /07 }
\NeedsTeXFormat {LaTeX2e}
\ProvidesPackage {csp}[{\filedate \space \fileversion \space csp package}]
% -- options -----------------------------------------------------------
\newif \if @cm@ \@ cm@false
\newif \if @lucida@ \@ lucida@false
\newif \if @times@ \@ times@false
\newif \if @color@ \@ color@false
\newif \if @zed@ \@ zed@false
\newif \if @csp@ \@ csp@false
\newif \if @nolines@ \@ nolines@false
\DeclareOption {cm}{\@ cm@true\@ lucida@false\@ times@false}
\DeclareOption {lucida}{\@ cm@false\@ lucida@true\@ times@false}
\DeclareOption {times}{\@ cm@false\@ lucida@false\@ times@true}
\DeclareOption {color}{\@ color@true}
\DeclareOption {zed}{\@ zed@true}
\DeclareOption {csp}{\@ csp@true}
\DeclareOption {nolines}{\@ nolines@true}
\ExecuteOptions {cm} \ProcessOptions
\@ ifpackageloaded{zed}{\relax }{%
\RequirePackageWithOptions {zed}}
% -- color -------------------------------------------------------------
\if @color@
\@ ifpackageloaded{color}{\relax }{%
\RequirePackage [dvipsnames,usenames]{color}}
\definecolor {CSPBoxColor}{cmyk}{1 ,0 ,1 ,0 }% Green
\definecolor {MetaColor}{cmyk}{0 ,0 .61 ,0 .87 ,0 }% Orange
\definecolor {CSPColor}{cmyk}{0 .50 ,1 ,0 ,0 }% Plum
\else
\@ ifpackageloaded{color}{\relax }{\def \color #1 {\relax }}
\fi
% -- symbols -----------------------------------------------------------
\if @cm@
\let \Box \undefined
\DeclareMathSymbol \tick {\mathord }{AMSa}{"58}
\DeclareSymbolFont {lasy}{U}{lasy}{m}{n}
\DeclareMathSymbol {\Box }{\mathord }{lasy}{"32}
\def \lchan @sym{{\{ }\mkern -3 .5 mu{|}}
\def \rchan @sym{{|}\mkern -3 .5 mu{\} }}
\def \lseq @sym{\langle }
\def \rseq @sym{\rangle }
\def \lren @sym{[}
\def \rren @sym{]}
\def \llink @sym{\langle \mkern -4 mu\langle }
\def \rlink @sym{\rangle \mkern -4 mu\rangle }
\let \then @sym\rightarrow
\let \parallel @sym\parallel
\let \cpar @sym\mid
\def \guard @sym{\& }
\let \becomes @sym\leftarrow
\let \linksto @sym\leftrightarrow
\let \extchoice @sym\Box
\let \intchoice @sym\sqcap
\let \interrupt @sym\triangle
\let \timeout @sym\triangleright
\def \lpar @sym{{|}\mkern -2 mu{[}\mkern -1 mu}
\def \rpar @sym{\mkern -1 mu{]}\mkern -2 mu{|}}
\def \interleave @sym{{|}\mkern -2 mu{|}\mkern -2 mu{|}}
\let \circ @sym=\circ
\let \hide @sym\backslash
\def \ldbrack {{[}\mkern -3 mu{[}}
\def \rdbrack {{]}\mkern -3 mu{]}}
\fi
\if @times@
\let \bar @sym=\mid
\let \hide @sym=\backslash
\DeclareMathSymbol {[}{\mathopen }{symbols}{84 }
\DeclareMathSymbol {]}{\mathclose }{symbols}{85 }
\let \tick =\surd
\def \lchan @sym{{\{ }\mkern -4 mu{|}}
\def \rchan @sym{{|}\mkern -4 mu{\} }}
\def \lseq @sym{\langle }
\def \rseq @sym{\rangle }
\def \lren @sym{[}
\def \rren @sym{]}
\def \llink @sym{\langle \mkern -4 mu\langle }
\def \rlink @sym{\rangle \mkern -4 mu\rangle }
\def \then @sym{\simple @enlarge{\rightarrow }}
\def \parallel @sym{\bar @sym\bar @sym}
\def \guard @sym{\& }
\def \becomes @sym{\simple @enlarge{\leftarrow }}
\def \linksto @sym{\simple @enlarge{\leftrightarrow }}
\def \extchoice @sym{%
\setbox0 =\hbox {$\sqcap $}\rlap {\hbox to \wd0 {\hss \vrule width 0 .5 em
height 0 .1 ex\hss }}\box0 }
\let \intchoice @sym\sqcap
\let \interrupt @sym\triangle
\let \timeout @sym\triangleright
\let \cpar @sym\bar @sym
\def \lpar @sym{{\bar @sym}\mkern -2 mu{[}\mkern -1 mu}
\def \rpar @sym{\mkern -1 mu{]}\mkern -2 mu{\bar @sym}}
\def \interleave @sym{\bar @sym\bar @sym\bar @sym}
\let \circ @sym=\circ
\def \ldbrack {{[}\mkern -3 mu{[}}
\def \rdbrack {{]}\mkern -3 mu{]}}
\fi
\if @lucida@
\DeclareMathSymbol {\tick }{0 }{arrows}{"AC}
\DeclareSymbolFont {roman}{\encodingdefault }{\rmdefault }{m}{n}
\DeclareMathSymbol {\bar @sym}{\mathord }{roman}{124 }
\DeclareMathSymbol {\hide @sym}{\mathord }{roman}{092 }
\def \lchan @sym{{\{ }\mkern -5 mu{|}}
\def \rchan @sym{{|}\mkern -5 mu{\} }}
\def \lseq @sym{\langle }
\def \rseq @sym{\rangle }
\def \lren @sym{[}
\def \rren @sym{]}
\def \llink @sym{\langle \mkern -4 mu\langle }
\def \rlink @sym{\rangle \mkern -4 mu\rangle }
\def \then @sym{\simple @enlarge{\rightarrow }}
\def \parallel @sym{\bar @sym\bar @sym}
\def \guard @sym{\& }
\def \becomes @sym{\simple @enlarge{\leftarrow }}
\def \linksto @sym{\simple @enlarge{\leftrightarrow }}
\let \extchoice @sym\Box
\let \intchoice @sym\sqcap
\let \interrupt @sym\triangle
\let \timeout @sym\triangleright
\let \cpar @sym\bar @sym
\def \lpar @sym{{\bar @sym}\mkern -2 mu{[}\mkern -1 mu}
\def \rpar @sym{\mkern -1 mu{]}\mkern -2 mu{\bar @sym}}
\def \interleave @sym{\bar @sym\bar @sym\bar @sym}
\let \circ @sym=\circ
\fi
% -- mathematical sublanguage ------------------------------------------
\def \Empty #1 {#1 = \emptyset }
\def \Nil #1 {#1 = \nil }
\def \elem #1 {\mathrel {\in \ran } #1 }
\def \lseq {\mathord {\lseq @sym}}
\def \lset {\{ }
\def \nil {\langle \rangle }
\def \range {\upto }
\def \rseq {\mathord {\rseq @sym}}
\def \rset {\} }
\def \If {\mathrel {\mathrm {if}}}
\def \Then {\mathrel {\mathrm {then}}}
\def \Else {\mathrel {\mathrm {else}}}
\def \lchan {\mathord {\lchan @sym}}
\def \rchan {\mathord {\rchan @sym}}
\def \productions {\mathop {\mathrm {productions}}}
\def \extensions {\mathop {\mathrm {extensions}}}
% -- process language --------------------------------------------------
\def \then {\mathrel {\then @sym}}
\def \intchoice {\mathrel {\intchoice @sym}}
\def \extchoice {\mathrel {\extchoice @sym}}
\def \guard {\mathrel {\guard @sym}}
\def \lren {\mathord {\lren @sym}}
\def \rren {\mathord {\rren @sym}}
\def \becomes {\mathbin {\becomes @sym}}
\def \llink {\mathbin {\llink @sym}}
\def \rlink {\mathbin {\rlink @sym}}
\def \linksto {\mathbin {\linksto @sym}}
\def \interrupt {\mathrel {\interrupt @sym}}
\def \timeout {\mathrel {\timeout @sym}}
\def \hide {\mathrel {\hide @sym}}
\def \parallel {\@ ifnextchar[{\@ parallel}{\mathrel {\parallel @sym}}}
\def \@ parallel[#1 ]{%
\@ ifnextchar[{\@ @parallel[#1 ]}{\lpar #1 \rpar }}
\def \@ @parallel[#1 ][#2 ]{\lpar #1 \cpar #2 \rpar }
\def \cpar {\mathbin {\cpar @sym}}
\def \lpar {\mathbin {\lpar @sym}}
\def \rpar {\mathbin {\rpar @sym}}
\def \interleave {\mathrel {\interleave @sym}}
\def \linking {\@ ifnextchar[{\@ linking}{\@ linking[]}}
\def \@ linking[#1 ]{\llink #1 \rlink }
% -- indexed operators -------------------------------------------------
\def \indexed @op#1 {%
\mathop {\vcenter @enlarge{\mathstrut #1 }}\nolimits }
\def \indexed @bin#1 {\mathbin {\vcenter @enlarge{\mathstrut #1 }}}
\def \circ {\mathrel {\circ @sym}}
\def \Intchoice {\indexed @op{\intchoice @sym}}
\def \Extchoice {\indexed @op{\extchoice @sym}}
\def \Parallel {\indexed @op{\parallel @sym}}
\def \Interleave {\indexed @op{\interleave @sym}}
\def \Comp {\indexed @op{\comp @sym\, }}
\def \Linking {\@ ifnextchar[{\@ Linking}{\@ Linking[]}}
\def \@ Linking[#1 ]{\indexed @bin{\llink } #1 \indexed @bin{\rlink }}
% -- properties --------------------------------------------------------
\def \Deterministic {%
\@ ifnextchar[{%
\@ deterministic}{%
\@ deterministic[FD]}}
\def \@ deterministic[#1 ]{\mathop {\mathrm {deterministic}_{#1 }~}}
\def \DeadlockFree {%
\@ ifnextchar[{%
\@ deadlockfree}{%
\@ deadlockfree[FD]}}
\def \@ deadlockfree[#1 ]{\mathop {\mathrm {deadlock\; free}_{#1 }~}}
\def \DivergenceFree {%
\mathop {\mathrm {divergence\; free}~}}
\def \refinedby {%
\@ ifnextchar[{\@ refinedby}{\mathrel {\sqsubseteq }}}
\def \@ refinedby[#1 ]{\mathrel {\sqsubseteq_ {#1 }}}
% -- displayed mathematics ---------------------------------------------
\newdimen \cspindent \cspindent =\leftmargini
\newdimen \cspleftsep \cspleftsep =1 em
\newdimen \csptab \csptab =1 em
\newskip \cspskip \cspskip =0 .5 \baselineskip plus0.333333 \baselineskip %
minus0.333333 \baselineskip %
\def \@ cspjot{0 .5 \cspskip }
\newcount \intercsplinepenalty \intercsplinepenalty =10000 %
\newcount \preboxpenalty \preboxpenalty =0 %
\let \cedilla =\c
\def \c #1 {\afterassignment \@ c\count @=#1 }
\def \@ c{\hskip \count @\csptab }
\newdimen \csprulewidth
\newcount \cspindentdepth
\if @nolines@
\csprulewidth =0 pt
\cspindentdepth =0
\else
\csprulewidth =\arrayrulewidth
\cspindentdepth =1
\fi
\def \@ cspnarrow{\advance \linewidth by-\cspindent }
\def \@ csprulefill{\leaders \hrule height\csprulewidth \hfill }
\def \cspdisplayindent {\hskip \cspindentdepth \csptab }
\def \csp @topline#1 {\hbox to\linewidth {%
\color {CSPBoxColor}%
\vrule height\csprulewidth width\csprulewidth
\vrule height0pt depth\@ cspjot width0pt
\@ csprulefill\thinspace {\color {CSPColor}#1 }\thinspace %
\hbox to\cspleftsep {\@ csprulefill}}}
\def \@ cspline{\omit \vrule height\csprulewidth width\linewidth \cr }
\def \@ cspskip#1 {\crcr \omit \vrule height#1 width\csprulewidth \cr }
\newif \if @in@csp@display@ \@ in@csp@display@false
\def \@ csp{\ifvmode \@ cspleavevmode\fi $$
\advance \linewidth by-\cspindent
\advance \displayindent by\cspindent
\def \\ {\cr }%
\@ in@csp@display@true
\let \par =\relax
\tabskip =0 pt}
\def \@ cspskip#1 {\crcr \omit \vrule height#1 width\arrayrulewidth \cr }
\def \also {\crcr \noalign {\penalty \interdisplaylinepenalty
\vskip \cspskip }}
\def \Also {\crcr \noalign {\penalty \interdisplaylinepenalty
\vskip2 \cspskip }}
\def \@ csplign{\tabskip \z @skip\everycr {}}
\def \csp {\@ csp\halign to\linewidth \bgroup %
{\color {CSPColor}\strut $\@ csplign##$}\hfil
\tabskip =0 pt plus1fil\cr }
\def \endcsp {\crcr \egroup $$\global \@ ignoretrue}
\def \barcsp {\def \also {\@ cspskip\cspskip }\def \Also {\@ cspskip{2 \cspskip }}%
\color {CSPBoxColor}%
\@ csp\offinterlineskip \halign to\linewidth \bgroup
\strut \vrule width\csprulewidth \cspdisplayindent %
{\color {CSPColor}$\@ csplign##$}\hfil
\tabskip =0 pt plus1fil\cr }
\def \endbarcsp {\crcr \egroup $$\global \@ ignoretrue}
\def \@ cspleavevmode{\if @inlabel \indent
\else \if @noskipsec \indent
\else \if @nobreak \global \@ nobreakfalse
\everypar ={}\abovedisplayskip =0 pt\fi
{\parskip =0 pt\noindent }\fi \fi }
\def \block {\@ ifnextchar[{\@ block}{\@ block[t]}}
\def \@ block[#1 ]{\array [#1 ]{@{}l@{}}}
\let \endblock =\endarray
% -- contexts and declarations -----------------------------------------
\def \extends {\mathrel {\mathrm {extends}}}
\def \uses {\mathrel {\mathrm {uses}}}
\def \declarationname {}
\def \innerdeclarationlabel {\declarationname \\ \hskip \csptab }
\def \innerdeclaration {\block \innerdeclarationlabel \block }
\def \endinnerdeclaration {\endblock \endblock }
\def \outerdeclarationlabel {\global \advance \cspindentdepth
by 1 \declarationname \cr }
\def \outerdeclaration {%
\@ ifnextchar[{\boxdeclaration }{\linedeclaration }}
\def \boxdeclaration [#1 ]{%
\def \endouterdeclaration {\global \advance \cspindentdepth
by -1 \@ cspskip\@ cspjot\@ cspline\endbarcsp }%
\@ cspnarrow\barcsp %
\omit \csp @topline{$\strut #1 $}\cr \@ cspskip\@ cspjot\outerdeclarationlabel }
\def \linedeclaration {%
\def \endouterdeclaration {\global \advance \cspindentdepth
by -1 \@ cspskip\@ cspjot\endbarcsp }
\barcsp \@ cspskip\@ cspjot\outerdeclarationlabel }
% -- called by @declaration
\if @color@
\def \@ declaration@font{\color {MetaColor}\mathrm }
\else
\def \@ declaration@font{\mathsf }
\fi
\def \@ declare#1 {\mathop {{\@ declaration@font{#1 }~}}}
\def \@ declaration#1 {%
\def \declarationname {{\@ declaration@font{#1 }}}%
\@ ifnextchar[{\opt @dec}{\plain @dec}}
\def \plain @dec{%
\if @in@csp@display@
\def \finish @dec{\endinnerdeclaration }%
\innerdeclaration
\else
\def \finish @dec{\endouterdeclaration }%
\outerdeclaration
\fi }
\def \opt @dec[#1 ]{%
\if @in@csp@display@
\def \finish @dec{\endinnerdeclaration }%
\innerdeclaration
\else
\def \finish @dec{\endouterdeclaration }%
\outerdeclaration [#1 ]%
\fi }
\def \end @declaration{\finish @dec}
\def \newdeclaration #1 #2 #3 {%
\global \@ namedef{#1 }{\@ declaration{#3 }}%
\global \@ namedef{end#1 }{\end @declaration}%
\global \@ namedef{#2 }{\@ declare{#3 }}}
\newdeclaration {assertion}{Assertion}{assert}
\newdeclaration {channel}{Channel}{channel}
\newdeclaration {context}{Context}{context}
\newdeclaration {datatype}{Datatype}{datatype}
\newdeclaration {external}{External}{external}
\newdeclaration {function}{Function}{function}
\newdeclaration {nametype}{Nametype}{nametype}
\newdeclaration {process}{Process}{process}
\newdeclaration {set}{Set}{set}
\newdeclaration {subtype}{Subtype}{subtype}
\newdeclaration {transparent}{Transparent}{transparent}
\newdeclaration {within}{Within}{within}
% -- \declaration is an exception to the rule
\def \declaration {%
\def \declarationname {{\@ declaration@font{let}}}%
\def \outerdeclarationlabel {}
\@ ifnextchar[{\optdeclaration }{\plaindeclaration }}
\def \plaindeclaration {%
\if @in@csp@display@%
\def \finishdeclaration {\endinnerdeclaration }%
\innerdeclaration %
\else %
\def \finishdeclaration {%
\global \advance \cspindentdepth
by 1 \endouterdeclaration }%
\outerdeclaration \fi }
\def \optdeclaration [#1 ]{%
\if @in@csp@display@
\def \finishdeclaration {\endinnerdeclaration }%
\innerdeclaration %
\else
\def \finishdeclaration {%
\global \advance \cspindentdepth
by 1 \endouterdeclaration }%
\outerdeclaration [#1 ]%
\fi }
\def \enddeclaration {\finishdeclaration }
\def \Let {\@ declare{let}}
% -- semantics ---------------------------------------------------------
\def \newsemantics #1 #2 {%
\@ namedef{#1 }{#2 \@ ifnextchar[{\@ semapp}{\relax }}}
\def \@ semapp[#1 ]{\, \ldbrack #1 \rdbrack }
\newsemantics {traces}{traces}
\newsemantics {divergences}{divergences}
\newsemantics {failures}{failures}
% -- csp.sty -----------------------------------------------------------
\endinput
Messung V0.5 in Prozent C=83 H=96 G=89
¤ Dauer der Verarbeitung: 0.3 Sekunden
(vorverarbeitet am 2026-06-10)
¤
*© Formatika GbR, Deutschland