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.

22 CHAPTER 2. PROTOCOL ANALYSIS USING CONSTRAINT SOLVING<br />

• if t ∈ X ∪ C or p = ɛ <strong>and</strong> t|p = t;<br />

• if t = f(t1, . . . , tn) <strong>and</strong> p = i.p ′ with 1 ≤ i ≤ n then t|p = ti|p ′.<br />

Given a term t, <strong>and</strong> a position p ∈ P os(t), we denote by t[p ← s] the term<br />

obtained from t by replacing the subterm at position p by s.<br />

2.1.4 Substitutions<br />

A substitution σ is a partial function from variables X to terms T (F, X ), such<br />

that its domain is finite. We define the support <strong>of</strong> a substitution σ, written Supp(σ)<br />

as follows: Supp(σ) = {x|σ(x) �= x}, is a finite set. The substitution σ with<br />

Supp(σ) = ∅ is called the empty substitution or the identity substitution. The substitution<br />

σ with Supp(σ) = {x1, . . . , xn} <strong>and</strong> σ(xi) = ti for 1 ≤ i ≤ n, can also<br />

be written as σ = {x1 ↦→ t1, . . . , xn ↦→ tn}. The range <strong>of</strong> σ, denoted by Ran(σ), is<br />

defined by the set Ran(σ) = {σ(x) such that x ∈ Supp(σ)}. The substitution σ<br />

with Supp(σ) = ∅ is called the identity substitution. We denote by V ar(σ) the set<br />

V ar(Ran(σ)). A substitution σ is said to be ground if V ar(σ) = ∅, that is Ran(σ)<br />

is a set <strong>of</strong> ground terms. A substitution σ instantiates a variable x if x ∈ Supp(σ),<br />

<strong>and</strong> σ is said to be grounding x if x ∈ Supp(σ) <strong>and</strong> σ(x) is a ground term.<br />

The application <strong>of</strong> a substitution σ to a term t is denoted σ(t) <strong>and</strong> is equal<br />

to the term t where all variables x have been replaced by the term σ(x). More<br />

formally, in order to apply a substitution σ to terms, we extend σ homomorphically<br />

on terms by the rule σ(f(t1, . . . , tn)) = f(σ(t1), . . . , σ(tn)). Let E be a set <strong>of</strong><br />

terms, E ⊆ T (F, X ), we denote σ(E) = {σ(t) such that t ∈ E}.<br />

From now on, we mean by xσ the application <strong>of</strong> σ to x, i.e. xσ = σ(x). In<br />

similar way, if t (respectively E) is a term (respectively a set <strong>of</strong> terms), we will<br />

write tσ (respectively Eσ) instead <strong>of</strong> σ(t) (respectively σ(E)).<br />

A renaming ρ is an injective substitution such that Ran(ρ) ⊆ X .<br />

The composition σθ <strong>of</strong> two substitutions σ <strong>and</strong> θ is defined as x(σθ) = (xσ)θ =<br />

xσθ. A substitution θ is an extension <strong>of</strong> a substitution σ if Supp(σ) ⊆ Supp(θ), <strong>and</strong><br />

xσ = xθ for all x ∈ Supp(σ). A substitution σ is a restriction <strong>of</strong> a substitution θ if<br />

θ is an extension <strong>of</strong> σ. A substitution σ is cyclic if there exists x1, . . . , xn, xn+1 ∈<br />

Supp(σ) with n ≥ 1 such that xi+1 ∈ V ar(xiσ) for all 1 ≤ i ≤ n, with xn+1 =<br />

x1. A substitution σ is idempotent if σ = σσ. We remark that a idempotent<br />

substitutions are acyclic, <strong>and</strong> as we consider substitutions with finite domain,<br />

the converse also holds. In this document, we will only consider idempotent<br />

substitutions.<br />

2.1.5 Equational theories <strong>and</strong> rewriting systems<br />

Given a binary relation → over a set <strong>of</strong> terms S. The relations → + , → ∗ are respectively<br />

the transitive <strong>and</strong> reflexive-transitive closure <strong>of</strong> →. The relation → is<br />

said to be:

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

Saved successfully!

Ooh no, something went wrong!