LATEX symbol macros for CSP
Version 1.2
Tomasz Mazur∗
March 27, 2009
This document presents the cspsymb package, which contains macros for generating symbols useful
when writing documents concering the CSP process algebra.
N.B. All the macros presented here can only be used in maths mode, with the exception of the \CSPM{}
macro, which only works in text mode.
1
Logic and Sets
∀
∃
6∃
¬
∈
/
⇔
∅
{}
⊢
N
Z
N
Z
a Available
2
Table 1: Logic and sets symbols
W
\Lor
V
\Land
∨
\lor
∧
\land
⇒
\implies
6⇒
\nimplies
{x}
\set{x}
{|x|} \eset{x}
×
\cross
Q
\rats
R
\reals
Q
\Ratsa
R
\Realsa
\forall
\exists
\nexists
\lnot
\nin
\iff
\emptyset
\nullset
\hence
\nats
\ints
\Natsa
\Intsa
T
S
∩
∪
dom
ran
hxi
hi
..
P
F
P
F
\Inter
\Union
\inter
\union
\dom
\ran
\seq{x}
\emptyseq
\upto
\power
\finset
\Powera
\Finseta
only if the amsfonts package is loaded
Named processes
Table 2: Symbols for named processes
⊥
STOP
SKIP
WAIT
\bot
\STOP
\SKIP
\WAIT
div
DF
RUN
CHAOS
\divb
\DF
\RUN
\CHAOS
COPY
BUFF
WBUFF
FinBUFF
\COPY
\BUFF
\WBUFF
\FinBUFF
b The \div command has been overridden to produce the symbol for divergent CSP processes. The ÷ symbol can
be obtained by using the \xdiv command
∗ [email protected]
1
3
Events and traces
Table 3: Symbols for events, alphabets and traces
X
ΣX
ΣX,τ
Σ∗X
(Στ )∗X
≤
4
tock
hi
hxi
ˆ
⌢
\tick
\Sigmatick
\Sigmap
\Sigmatr
\Sigmaptr
\prefix
≥
\tock
\nil
\trace{x}
\cat
\roundcat
\suffix
•
|`
↑
↓
⇓
\spot
\project, \restrict
\during
\cnt
\data, \values
Operators
Table 4: Symbols for CSP operators
→
−→
|
\then
\longthen
\barchoice
ւ
ւ{x}
2
\transfer
\transfer[x]
\extchoice
\clause
2
\Extchoice
⊲
⊲x
<
I b>
I
if
then
else
\
k
\timeout
\timeout[x]
\cond{b}
\If
\Then
\Else
\hide
\parallelc
⊓
\intchoice
\Intchoice
\view
\rename[R]
\rensubs{a}{b}
\subs{a}{b}
\chain
\parallel[X]
|||
\interleave
\Parallel
X kY
\Interleave
\rec{p}{P}
\Let
\Within
//
//X
;
@
⊓
\\
[[R]]
[[a/b]]
[a/b]
≫
k
X
k
|||
µ p.P
let
within
k
\parallel[X][Y]
\Parallel[X]
X
\enslave
\enslave[X]
;d
\at
c The \parallel command has been overridden to produce the symbol for divergent CSP processes. The standard
LATEX parallel symbol k can be obtained by using the \xparallel command
d The standard semicolon character has been modified into a binary relation symbol to produce the CSP sequential
composition symbol in maths mode. The semicolon symbol in text mode is unchanged. The standard semicol symbol
can be used in maths mode using the \semicolon command.
2
5
Semantic Models and Refinment
Table 5: Symbols for denotational semantics and refinement
⊑
⊑x
⊑T
⊑F
⊑FD
⊑A
⊑FL
⊑U
⊑R
⊑RT
⊒
⊒x
⊒T
⊒F
⊒FD
⊒A
⊒FL
⊒U
⊒R
⊒RT
≡T
≡F
≡FD
≡A
≡FL
≡U
≡R
\refinedby
\refinedby[x]e
\trefinedby
\frefinedby
\fdrefinedby
\arefinedby
\flrefinedby
\urefinedby
\rrefinedby
\rtefinedby
\refines
\refines[x]e
\trefines
\frefines
\fdrefines
\arefines
\flrefines
\urefines
\rrefines
\rtrefines
\tequiv
\fequiv
\fdequiv
\aequiv
\flequiv
\uequiv
\requiv
semantics
initials
acceptances
refusals
deadlocks
divergences
traces
traces ⊥
Traces
Traces ⊥
failures
failures ⊥
infinites
infinites ⊥
refusal traces
revivals
timed traces
timed failures
timed divergences
FLO
model
sat
[[
]]
[[x]]
[x]•
≡RT
\semantics
\initials
\acceptances
\refusals
\deadlocks
\divergences
\traces
\dtraces
\Traces
\DTraces
\failures
\dfailures
\infinites
\dinfinites
\refusaltraces
\revivals
\timedtraces
\timedfailures
\timeddivergences
\FLO
\semclosure{model}
\sat
\leftsemb
\rightsemb
\semb{x}
\nrel{x}
\rtequiv
e It is debatable whether the correct symbol for refinement in a given semantic model M is ⊑
M (CSPM -inspired
style, more popular) or ⊑M (more suitable for “blackboard” CSP). The \refineby[x] and \refines[x] macros can be
used for the latter style of symbols for refinement and anti-refinement, respectively; x can be replaced with any of the
model names from Table 7.
3
6
Transitions
Table 6: Symbols for operational semantics
;
−→
→
−→
−−→
\twidtrans
\trans
\trans(1)
\trans(2)
\trans(3)
−−−→ \trans(4)
x
\twidtrans[x]
;
x
−→
x
→
\trans(1)[x]
x
−→
x
−−→
7
−→
7→
\mapstotrans(1)
7
→
\mapstotrans(3)
7−−−→ \mapstotrans(4)
x
x
7
−→
x
7
−−→
⇒
\Trans
\Trans(1)
=⇒
x
⇒
\Trans(2)
=⇒
==⇒
x
=⇒•
\ugr(1)
\ugr(2)
==⇒• \ugr(3)
===⇒• \ugr(4)
\starit{\trans}f
x
−−→y
=⇒•
x
⇒•
x
=⇒•
\mapstotrans(2)[x]
\mapstotrans(3)[x]
\Trans[x]
x
x
x
7
−→
y
x
7
−−→
y
\trans(3)[x][y]
\mapstotrans[x][y]
\mapstotrans(1)[x][y]
\mapstotrans(2)[x][y]
\mapstotrans(3)[x][y]
x
7
−−−→
y \mapstotrans(4)[x][y]
x
=⇒y
x
⇒y
x
\Trans(2)[x]
=⇒y
\Trans(3)[x]
==⇒y
x
\Trans[x][y]
\Trans(1)[x][y]
\Trans(2)[x][y]
\Trans(3)[x][y]
x
===⇒y \Trans(4)[x][y]
...
x
=⇒•y
\ugr[x]
\ugr(1)[x]
\ugr(2)[x]
==⇒• \ugr(3)[x]
x
===⇒• \ugr(4)[x]
x
⇒•y
x
=⇒•y
x
==⇒•y
\ugr[x][y]
\ugr(1)[x][y]
\ugr(2)[x][y]
\ugr(3)[x][y]
x
===⇒•y \ugr(4)[x][y]
...
x
\trans(2)[x][y]
...
x
−→∗
\trans(1)[x][y]
−−−→y \trans(4)[x][y]
...
x
\trans[x][y]
x
7 y
→
x
...
−→∗
−→y
\mapstotrans(1)[x]
===⇒ \Trans(4)[x]
...
⇒•
x
\twidtrans[x][y]
...
\Trans(1)[x]
x
\Trans(3)
\ugr
→y
...
x
=⇒
=⇒•
x
7
−→
y
7
−−−→
\mapstotrans(4)[x]
==⇒
===⇒ \Trans(4)
−→y
\mapstotrans[x]
x
...
=⇒
x
...
x
\mapstotrans
7−−→
\trans(3)[x]
−−−→ \trans(4)[x]
...
\mapstotrans(2)
\trans(2)[x]
x
7−→
7−→
\trans[x]
x
;y
...
\starit{\trans}[x]f
x
−→∗y
\starit{\trans}[x][y]f
f The \trans command can be replaced by any other macro for generating a transiton arrow from the left-hand
column of this table.
N.B. Increasing the length argument (the number inside the round brackets) of any transition
macro lengthens the arrow by 0.6em.
4
7
Semantics models, spaces and functions
Table 7: Symbols for semantic models, spaces and functions
T
Tx
A
Ax
R
Rx
x⇓
8
F
Fx
FL
F Lx
RT
RT x
\tmodel
\tmodel[x]
\amodel
\amodel[x]
\rmodel
\rmodel[x]
\sdiv{x}
N
N
U
Ux
M
Mx
\fmodel
\fmodel[x]
\flmodel
\flmodel[x]
\rtmodel
\rtmodel[x]
\identrel
\nmodel
\nmodel[x]
\umodel
\umodel[x]
\mmodel
\mmodel[x]
Other symbols
Table 8: Other useful symbols
CSPM \CSPM{}g
ref
\refuses
div
\diverges
=
b
λ x.y
\defs
\lambdaexpr{x}{y}
g This macro works only in text mode. The curly brackets are needed as otherwise LAT X does not produce enough
E
white space after the symbol.
5
© Copyright 2026 Paperzz