30.01.2013 Views

Logical Analysis and Verification of Cryptographic Protocols - Loria

Logical Analysis and Verification of Cryptographic Protocols - Loria

Logical Analysis and Verification of Cryptographic Protocols - Loria

SHOW MORE
SHOW LESS

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 )

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!