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.

130 CHAPTER 5. SATURATED DEDUCTION SYSTEMS<br />

Figure 5.4 Martelli-Montanari ∅-unification algorithm<br />

Given an ∅-unification system U, repeatedly perform any <strong>of</strong> the following transformations.<br />

If no transformation applies, stop with success.<br />

• Select any equation <strong>of</strong> the form t ? = ∅ x where t is not a variable <strong>and</strong> x is a variable,<br />

<strong>and</strong> rewrite it as x ? = ∅ t.<br />

• Select any equation <strong>of</strong> the form x ? = ∅ x where x is variable, <strong>and</strong> erase it.<br />

• Select any equation <strong>of</strong> the form t ′ ? =∅ t” where t ′ <strong>and</strong> t” are not variables. If<br />

the two root function symbols are different, stop with failure; otherwise, assume<br />

t ′ = f(t1, . . . , tn) <strong>and</strong> t” = f(s1, . . . , sn) with f a function symbol with arity n <strong>and</strong><br />

apply the following:<br />

If n = 0, then f is a constant symbol, <strong>and</strong> the equation is simply erased;<br />

otherwise, replace f(t1, . . . , tn) ? = ∅ f(s1, . . . , sn) with the following equations:<br />

t1 ? = ∅ s1, . . . , tn ? = ∅ sn.<br />

• Select any equation <strong>of</strong> the form x ? = ∅ t where x is a variable which occurs somewhere<br />

else in the unification system <strong>and</strong> where t �= x. If x occurs in t, then stop<br />

with failure; otherwise, apply the substitution σ = {x ↦→ t} to both terms <strong>of</strong> all<br />

other equations in the unification system (without erasing x ? = ∅ t).<br />

Martelli-Montanari unification algorithm. In this paragraph, we recall the unification<br />

algorithm due to Martelli-Montanari [147], which is used in the pro<strong>of</strong><br />

<strong>of</strong> the next lemma. In [147], A. Martelli <strong>and</strong> U. Montanari gave a ∅-unification<br />

algorithm based on the transformation <strong>of</strong> a given ∅-unification system U into an<br />

equivalent <strong>and</strong> simpler unification system. An unification system U is said to<br />

be in solved form if <strong>and</strong> only if it satisfies the following conditions:<br />

• every equation in U is <strong>of</strong> the form x ? =∅ t;<br />

• every variable which is the left member <strong>of</strong> some equation occurs only<br />

there.<br />

�<br />

�<br />

?<br />

?<br />

An ∅-unification system U = x1 =∅ t1, . . . , xn =∅ tn in solved form has the<br />

obvious unifier σ = {x1 ↦→ t1, . . . , xn ↦→ tn}, which is its most general ∅-unifier.<br />

We give in Figure 5.4 Martelli-Montanari ∅-unification algorithm. In [147],<br />

A. Martelli <strong>and</strong> U. Montanari proved that for any ∅-unification system U<br />

• their algorithm always terminates, no matter which choices are made,

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

Saved successfully!

Ooh no, something went wrong!