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.
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,