Logical Analysis and Verification of Cryptographic Protocols - Loria
Logical Analysis and Verification of Cryptographic Protocols - Loria
Logical Analysis and Verification of Cryptographic Protocols - Loria
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
7.2. APPLIED PI CALCULUS 181<br />
contain variables. Although names, variables, <strong>and</strong> constant symbols haves similarities,<br />
they are kept separate. We let a, b, c, m, n, r, s, t, v . . . range over names<br />
<strong>and</strong> x, y, z, . . . over variables. We use metavariables u, w to range over both<br />
names <strong>and</strong> variables. F, L, M, N, R, T range over arbitrary terms. Terms <strong>and</strong><br />
function symbols are sorted, <strong>and</strong> <strong>of</strong> course function symbol application must<br />
respect sorts <strong>and</strong> arities. We suppose that terms can be <strong>of</strong> sort Channel or Base<br />
type. Function symbols can only be applied to <strong>and</strong> return terms <strong>of</strong> base type.<br />
As a slight convenient extension, also introduced in [83], we suppose a set <strong>of</strong><br />
predicates P over terms, each with an arity.<br />
In the applied pi calculus, one has plain processes <strong>and</strong> extended processes. Plain<br />
processes are built up in a similar way to processes in the pi calculus, except<br />
that messages can contain terms (rather than only names). The grammar for<br />
plain processes is shown below where c is supposed to be <strong>of</strong> channel sort:<br />
ψ ::= tests<br />
p(M1, . . . , Mn) predicate<br />
conjunction<br />
ψ1 ∧ ψ2<br />
P, Q, V ::= processes<br />
0 null process<br />
P | Q parallel composition<br />
ν n.P name restriction<br />
c(x).P message input<br />
c〈N〉.P message output<br />
if ψ then P else Q conditional<br />
The null process 0 does nothing; P | Q is the parallel composition <strong>of</strong> P <strong>and</strong> Q.<br />
the process ν n.P makes a new, private name n then behaves as P . The process<br />
c(x).P is ready to input from channel c, then to run P with the actual message<br />
replaced for the formal parameter x, while the process c〈N〉.P is ready to output<br />
N on channel c, then to run P . In all cases, we omit P when it is 0. Finally,<br />
if ψ then P else Q behaves in the st<strong>and</strong>ard way.<br />
Extended processes add active substitutions <strong>and</strong> restriction on variables, their<br />
grammar is shown below:<br />
A, B, C ::= extended processes<br />
P plain process<br />
A | B parallel composition<br />
ν n.A name restriction<br />
ν x.A variable restriction<br />
{M/x} active substitution<br />
We write {M/x} for the substitution that replaces the variable x with the<br />
term M. Active substitutions generalise ′ let ′ <strong>and</strong> the process ν x.({M/x} | P )