| 1 | % number subsubsections and put them in the table of contents...
|
|---|
| 2 | \setcounter{tocdepth}{3}
|
|---|
| 3 | \setcounter{secnumdepth}{3}
|
|---|
| 4 |
|
|---|
| 5 | \newcommand{\notimp}{\emph{Status:} Not yet implemented.}
|
|---|
| 6 |
|
|---|
| 7 | % algorithm2e package settings...
|
|---|
| 8 |
|
|---|
| 9 | \SetInd{1mm}{2mm}
|
|---|
| 10 | \SetVlineSkip{.5mm}
|
|---|
| 11 | \SetKw{Break}{break}
|
|---|
| 12 | \SetKw{Assert}{assert}
|
|---|
| 13 | \SetKw{Integer}{Integer}
|
|---|
| 14 | \SetKw{Array}{array}
|
|---|
| 15 | \SetKw{Of}{of}
|
|---|
| 16 | \SetKwFor{Procedure}{procedure}{is}{end procedure}
|
|---|
| 17 | \SetKwInOut{Uses}{uses}
|
|---|
| 18 | \SetKwInOut{Invariant}{invariant}
|
|---|
| 19 |
|
|---|
| 20 | % Type/font styles...
|
|---|
| 21 | \newcommand{\upsty}[1]{\textup{\textsf{#1}}}
|
|---|
| 22 | \newcommand{\setsty}[1]{\textup{\textsf{\textcolor{blue}{#1}}}}
|
|---|
| 23 | \newcommand{\code}[1]{\texttt{\textcolor{blue}{#1}}}
|
|---|
| 24 | \newcommand{\ct}[1]{\texttt{#1}}
|
|---|
| 25 |
|
|---|
| 26 | % Theorem environments...
|
|---|
| 27 | \newtheorem{theorem}{Theorem}
|
|---|
| 28 | \theoremstyle{definition}
|
|---|
| 29 | \newtheorem{definition}{Definition}[subsection]
|
|---|
| 30 |
|
|---|
| 31 | % Symbols...
|
|---|
| 32 | \renewcommand{\implies}{\Rightarrow}
|
|---|
| 33 | \newcommand{\ra}{\rightarrow}
|
|---|
| 34 | \newcommand{\B}{\mathbb{B}}
|
|---|
| 35 | \newcommand{\N}{\mathbb{N}}
|
|---|
| 36 | \newcommand{\lb}{\texttt{\char`\{}}
|
|---|
| 37 | \newcommand{\rb}{\texttt{\char`\}}}
|
|---|
| 38 | \newcommand{\U}{\texttt{\char`\_}}
|
|---|
| 39 | %\newcommand{\U}{{\ttfamily\symbol{'137}}}
|
|---|
| 40 | \newcommand{\UU}{\U\U}
|
|---|
| 41 |
|
|---|
| 42 | % Static notions...
|
|---|
| 43 | \newcommand{\rootscope}{\setsty{root}} % root static scope
|
|---|
| 44 | \newcommand{\start}{\setsty{start}} % start location $l_0$
|
|---|
| 45 | \newcommand{\Var}{\setsty{Var}} % set of all variables
|
|---|
| 46 | \newcommand{\bool}{\setsty{bool}} % boolean type
|
|---|
| 47 | \newcommand{\proc}{\setsty{proc}} % process reference type
|
|---|
| 48 | \newcommand{\Val}{\setsty{Val}} % set of all values
|
|---|
| 49 | \newcommand{\vtype}{\setsty{vtype}} % type of variable
|
|---|
| 50 | \newcommand{\etype}{\setsty{etype}} % type of expression
|
|---|
| 51 | \newcommand{\Type}{\setsty{Type}} % set of all types
|
|---|
| 52 | \newcommand{\Expr}{\setsty{Expr}} % set of all expressions
|
|---|
| 53 | \newcommand{\Eval}{\setsty{Eval}} % set of all valuations on variables
|
|---|
| 54 | \newcommand{\eval}{\setsty{eval}} % evaluation of an expression
|
|---|
| 55 | \newcommand{\sparent}{\setsty{sparent}} % parent of a static scope
|
|---|
| 56 | \newcommand{\dparent}{\setsty{dparent}} % parent of a dynamic scope
|
|---|
| 57 | \newcommand{\fscope}{\setsty{fscope}} % scope of a function
|
|---|
| 58 | \newcommand{\lscope}{\setsty{lscope}} % scope of a location
|
|---|
| 59 | \newcommand{\static}{\setsty{static}} % static scope associated to a dynamic one
|
|---|
| 60 | \newcommand{\stack}{\setsty{stack}} % call stack
|
|---|
| 61 | \newcommand{\vars}{\setsty{vars}} % variables declared in a scope
|
|---|
| 62 | \newcommand{\ancestors}{\setsty{ancestors}} % as in tree
|
|---|
| 63 | \newcommand{\descendants}{\setsty{descendants}} % as in tree
|
|---|
| 64 | \newcommand{\returntype}{\setsty{returnType}} % function's return type
|
|---|
| 65 | \newcommand{\numparams}{\setsty{numParams}} % number of params for a func.
|
|---|
| 66 | \newcommand{\params}{\setsty{params}} % sequence of formal parameters
|
|---|
| 67 | \newcommand{\void}{\setsty{void}} % type for func. returning nothing
|
|---|
| 68 | \newcommand{\Loc}{\setsty{Loc}} % locations in function's trans. sys.
|
|---|
| 69 | \newcommand{\Func}{\mathcal{F}} % set of function symbols
|
|---|
| 70 | \newcommand{\true}{\textit{true}} % boolean value true
|
|---|
| 71 | \newcommand{\false}{\textit{false}} % boolean value false
|
|---|
| 72 | \newcommand{\default}{\setsty{default}} % default value of type
|
|---|
| 73 | \newcommand{\len}{\setsty{length}} % length of sequence
|
|---|
| 74 | \newcommand{\func}{\setsty{func}} % function a static scope belongs to
|
|---|
| 75 |
|
|---|
| 76 | % Dynamic notions...
|
|---|
| 77 | \newcommand{\fnode}{\setsty{fnode}} % function node of dyscope
|
|---|
| 78 | \newcommand{\State}{\setsty{State}} % set of all states of model
|
|---|
| 79 | \newcommand{\deval}{\setsty{deval}} % valuation on dyscope
|
|---|
| 80 | \newcommand{\droot}{\setsty{droot}} % root dyscope
|
|---|
| 81 | \newcommand{\Frame}{\setsty{Frame}} % set of activation frames
|
|---|
| 82 |
|
|---|
| 83 | % Tables...
|
|---|
| 84 | \newcommand{\notationtable}{%
|
|---|
| 85 | \begin{tabular}{lll}
|
|---|
| 86 | Symbol & Section & Meaning\\ \hline
|
|---|
| 87 | $\B$ & \S\ref{sec:notation} & \{\true,\false\}\\
|
|---|
| 88 | $\N$ & \S\ref{sec:notation} & \{0,1,2,\ldots\}\\
|
|---|
| 89 | $\ancestors$ & \S\ref{sec:notation} & set of ancestors of node in a tree (inclusive)\\
|
|---|
| 90 | $\descendants$ & \S\ref{sec:notation} & set of descendants of node
|
|---|
| 91 | in a tree (inclusive)\\
|
|---|
| 92 | $\len$ & \S\ref{sec:notation} & length of a sequence\\
|
|---|
| 93 | $\Var$ & \S\ref{sec:context} & the set of all variables\\
|
|---|
| 94 | $\bool$ & \S\ref{sec:context} & the boolean type\\
|
|---|
| 95 | $\proc$ & \S\ref{sec:context} & the process reference type\\
|
|---|
| 96 | $\Val$ & \S\ref{sec:context} & the set of all values\\
|
|---|
| 97 | $\Val_t$ & \S\ref{sec:context} & values of type $t$\\
|
|---|
| 98 | $\default_t$ & \S\ref{sec:context} & default value of type $t$\\
|
|---|
| 99 | $\vtype$ & \S\ref{sec:context} & function $\Var\ra\Type$ giving type of each variable\\
|
|---|
| 100 | $\Eval$ & \S\ref{sec:context} & set of all valuations on $\Var$\\
|
|---|
| 101 | $\Eval(V)$ & \S\ref{sec:state} & set of all valuations on variables in $V\subseteq\Var$\\
|
|---|
| 102 | $\Expr$ & \S\ref{sec:context} & set of typed expressions over $\Var$\\
|
|---|
| 103 | $\etype$ & \S\ref{sec:context} & $\Expr\ra\Type$, gives type of each expression\\
|
|---|
| 104 | $\eval$ & \S\ref{sec:context} & $\Expr\times\Eval\ra\Val$, the evaluation function\\
|
|---|
| 105 | $\mathcal{C}$ & \S\ref{sec:context} & a CIVL context\\
|
|---|
| 106 | $\Sigma$ & \S\ref{sec:scopes} & set of all static scopes\\
|
|---|
| 107 | $\rootscope$ & \S\ref{sec:scopes} & the root scope (member of $\Sigma$)\\
|
|---|
| 108 | $\sparent$ & \S\ref{sec:scopes} & $\Sigma\setminus\{\rootscope\}\ra\Sigma$, parent function in static scope tree\\
|
|---|
| 109 | $\vars$ & \S\ref{sec:scopes} & $\Sigma\ra 2^{\Var}$, specifies variables declared in scope\\
|
|---|
| 110 | $\Lambda$ & \S\ref{sec:scopes} & a lexical scope system\\
|
|---|
| 111 | $\void$ & \S\ref{sec:functions} & type used for function that does not return a value\\
|
|---|
| 112 | $\Type'$ & \S\ref{sec:functions} & $\Type\cup\{\void\}$\\
|
|---|
| 113 | $\Func$ & \S\ref{sec:functions} & set of function symbols\\
|
|---|
| 114 | $\fscope$ & \S\ref{sec:functions} & $\Func\ra\Sigma\setminus\{\rootscope\}$, gives function scope of each function\\
|
|---|
| 115 | $\returntype$ & \S\ref{sec:functions} & $\Func\ra\Type'$, gives return type of each function\\
|
|---|
| 116 | % $\numparams$ & \S\ref{sec:functions} & $\Func\ra\N$, gives number of inputs for each function\\
|
|---|
| 117 | $\params$ & \S\ref{sec:functions} & $\Func\ra\Var^*$, formal
|
|---|
| 118 | parameter sequence for $f\in\Func$\\
|
|---|
| 119 | $f_0$ & \S\ref{sec:functions} & the root function (member of
|
|---|
| 120 | $\mathcal{F}$)\\
|
|---|
| 121 | $\func$ & \S\ref{sec:functions} & $\Sigma\ra\Func$, function to
|
|---|
| 122 | which scope belongs\\
|
|---|
| 123 | $\Loc_f$ & \S\ref{sec:gts} & set of locations for $f\in\Func$\\
|
|---|
| 124 | $\lscope_f$ & \S\ref{sec:gts} & $\Loc_f\ra\Sigma$, gives scope of each location for $f\in\Func$\\
|
|---|
| 125 | $\start_f$ & \S\ref{sec:gts} & start location for $f\in\Func$ (member of $\Loc_f$)\\
|
|---|
| 126 | $T_f$ & \S\ref{sec:gts} & set of guarded transitions for $f\in\Func$\\
|
|---|
| 127 | \end{tabular}
|
|---|
| 128 | }
|
|---|
| 129 |
|
|---|
| 130 |
|
|---|
| 131 | % CIVL-C keywords
|
|---|
| 132 |
|
|---|
| 133 | \newcommand{\cckey}{\$}
|
|---|
| 134 | \newcommand{\cc}[1]{\mbox{\texttt{\cckey{}#1}}}
|
|---|
| 135 | \newcommand{\cabstract}{\cc{abstract}}
|
|---|
| 136 | \newcommand{\ccontains}{\cc{contains}}
|
|---|
| 137 | \newcommand{\ccopy}{\cc{copy}}
|
|---|
| 138 | \newcommand{\cproc}{\cc{proc}}
|
|---|
| 139 | \newcommand{\cprocdefined}{\cc{proc{\U}defined}}
|
|---|
| 140 | \newcommand{\cprocNull}{\cc{proc{\U}null}}
|
|---|
| 141 | \newcommand{\cself}{\cc{self}}
|
|---|
| 142 | \newcommand{\cinput}{\cc{input}}
|
|---|
| 143 | \newcommand{\coutput}{\cc{output}}
|
|---|
| 144 | \newcommand{\cspawn}{\cc{spawn}}
|
|---|
| 145 | \newcommand{\cwait}{\cc{wait}}
|
|---|
| 146 | \newcommand{\cwaitall}{\cc{waitall}}
|
|---|
| 147 | \newcommand{\cassert}{\cc{assert}}
|
|---|
| 148 | \newcommand{\ctrue}{\cc{true}}
|
|---|
| 149 | \newcommand{\cfalse}{\cc{false}}
|
|---|
| 150 | \newcommand{\cassume}{\cc{assume}}
|
|---|
| 151 | \newcommand{\catom}{\cc{atom}}
|
|---|
| 152 | \newcommand{\catomic}{\cc{atomic}}
|
|---|
| 153 | \newcommand{\cwhen}{\cc{when}}
|
|---|
| 154 | \newcommand{\cchoose}{\cc{choose}}
|
|---|
| 155 | \newcommand{\cchooseint}{\cc{choose{\U}int}}
|
|---|
| 156 | \newcommand{\cinvariant}{\cc{invariant}}
|
|---|
| 157 | \newcommand{\crequires}{\cc{requires}}
|
|---|
| 158 | \newcommand{\censures}{\cc{ensures}}
|
|---|
| 159 | \newcommand{\cexit}{\cc{exit}}
|
|---|
| 160 | \newcommand{\cresult}{\cc{result}}
|
|---|
| 161 | \newcommand{\cat}{\texttt{@}}
|
|---|
| 162 | \newcommand{\ccollective}{\cc{collective}}
|
|---|
| 163 | \newcommand{\cequals}{\cc{equals}}
|
|---|
| 164 | \newcommand{\cfor}{\cc{for}}
|
|---|
| 165 | \newcommand{\cparfor}{\cc{parfor}}
|
|---|
| 166 |
|
|---|
| 167 | %\newcommand{\cheap}{\cc{heap}}
|
|---|
| 168 | \newcommand{\cscope}{\cc{scope}}
|
|---|
| 169 | \newcommand{\cscopedefined}{\cc{scope{\U}defined}}
|
|---|
| 170 | \newcommand{\cscopeof}{\cc{scopeof}}
|
|---|
| 171 | \newcommand{\cscopeparent}{\cc{scope{\U}parent}}
|
|---|
| 172 | \newcommand{\cscoperoot}{\cc{root}}
|
|---|
| 173 | \newcommand{\chere}{\cc{here}}
|
|---|
| 174 | \newcommand{\cregion}{\cc{region}}
|
|---|
| 175 | \newcommand{\cmalloc}{\cc{malloc}}
|
|---|
| 176 | \newcommand{\cfree}{\cc{free}}
|
|---|
| 177 |
|
|---|
| 178 | \newcommand{\cbundle}{\cc{bundle}}
|
|---|
| 179 | \newcommand{\cbundlesize}{\cc{bundle{\U}size}}
|
|---|
| 180 | \newcommand{\cbundlepack}{\cc{bundle{\U}pack}}
|
|---|
| 181 | \newcommand{\cbundleunpack}{\cc{bundle{\U}unpack}}
|
|---|
| 182 | \newcommand{\cbundleunpackapply}{\cc{bundle{\U}unpack{\U}apply}}
|
|---|
| 183 |
|
|---|
| 184 | \newcommand{\cmessage}{\cc{message}}
|
|---|
| 185 | \newcommand{\cmessagepack}{\cc{message{\U}pack}}
|
|---|
| 186 | \newcommand{\cmessagesource}{\cc{message{\U}source}}
|
|---|
| 187 | \newcommand{\cmessagetag}{\cc{message{\U}tag}}
|
|---|
| 188 | \newcommand{\cmessagedest}{\cc{message{\U}dest}}
|
|---|
| 189 | \newcommand{\cmessagesize}{\cc{message{\U}size}}
|
|---|
| 190 | \newcommand{\cmessageunpack}{\cc{message{\U}unpack}}
|
|---|
| 191 |
|
|---|
| 192 |
|
|---|
| 193 | \newcommand{\ccomm}{\cc{comm}}
|
|---|
| 194 | \newcommand{\ccommcreate}{\cc{comm{\U}create}}
|
|---|
| 195 | \newcommand{\cgcomm}{\cc{gcomm}}
|
|---|
| 196 | \newcommand{\cgcommcreate}{\cc{gcomm{\U}create}}
|
|---|
| 197 |
|
|---|
| 198 | \newcommand{\cbarrier}{\cc{barrier}}
|
|---|
| 199 | \newcommand{\cgbarrier}{\cc{gbarrier}}
|
|---|
| 200 | \newcommand{\cgbarriercreate}{\cc{gbarrier{\U}create}}
|
|---|
| 201 | \newcommand{\cbarriercreate}{\cc{barrier{\U}create}}
|
|---|
| 202 | \newcommand{\cbarriercall}{\cc{barrier{\U}call}}
|
|---|
| 203 | \newcommand{\cgbarrierdestroy}{\cc{gbarrier{\U}destroy}}
|
|---|
| 204 | \newcommand{\cbarrierdestroy}{\cc{barrier{\U}destroy}}
|
|---|
| 205 | \newcommand{\ccollator}{\cc{collator}}
|
|---|
| 206 | \newcommand{\cgcollator}{\cc{gcollator}}
|
|---|
| 207 |
|
|---|
| 208 | \newcommand{\cseqinit}{\cc{seq{\U}init}}
|
|---|
| 209 | \newcommand{\cseqlen}{\cc{seq{\U}length}}
|
|---|
| 210 | \newcommand{\cseqinsert}{\cc{seq{\U}insert}}
|
|---|
| 211 | \newcommand{\cseqrm}{\cc{seq{\U}remove}}
|
|---|
| 212 |
|
|---|
| 213 | \newcommand{\cforall}{\cc{forall}}
|
|---|
| 214 | \newcommand{\cexists}{\cc{exists}}
|
|---|
| 215 | \newcommand{\cimplies}{\ct{=>}}
|
|---|
| 216 |
|
|---|
| 217 | \newcommand{\crange}{\cc{range}}
|
|---|
| 218 | \newcommand{\cdomain}{\cc{domain}}
|
|---|
| 219 | \newcommand{\cdomainof}[1]{\cc{domain}\ct{(}#1\ct{)}}
|
|---|
| 220 |
|
|---|
| 221 | % version information
|
|---|
| 222 | \newcommand{\version}{v1.21}
|
|---|
| 223 | \newcommand{\versiondate}{2021-11-04}
|
|---|