Logical Analysis and Verification of Cryptographic Protocols - Loria
Logical Analysis and Verification of Cryptographic Protocols - Loria
Logical Analysis and Verification of Cryptographic Protocols - Loria
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
5.5. DECIDABILITY RESULTS 131<br />
• if the algorithm terminates with failure, U has no unifier, <strong>and</strong> if the algorithm<br />
terminates with success, U has been transformed into an equivalent<br />
∅-unification system in solved form.<br />
We remark that Martelli-Montanari ∅-unification algorithm provides a widely<br />
general version from which most unification algorithms [35, 55, 148, 167, 177,<br />
176, 197, 198] can be derived.<br />
Lemma 49 Let S = {s1, . . . , sn} <strong>and</strong> T = � {t1, . . . , tn} be two sets � <strong>of</strong> terms <strong>and</strong><br />
let σ be the most general unifier <strong>of</strong> V =<br />
. If µ(T ) > 0<br />
s1<br />
?<br />
?<br />
=∅ t1, . . . , sn =∅ tn<br />
then either nbv(s1, . . . , sn) > nbv((s1, . . . , sn, t1, . . . , tn)σ) or nbv(s1, . . . , sn) =<br />
nbv((s1, . . . , sn, t1, . . . , tn)σ), S = Sσ <strong>and</strong> for all x ∈ V ar(T ) there is i ∈ {1, . . . , n}<br />
such that σ(x) � si.<br />
PROOF.<br />
Let V =<br />
�<br />
s1<br />
?<br />
=∅ t1, . . . , sn<br />
�<br />
?<br />
=∅ tn . In order to solve V , we apply the first<br />
step <strong>of</strong> the unification algorithm <strong>of</strong> Martelli-Montanari [147] (Figure 5.4). We<br />
reduce V to V ′ �<br />
�<br />
=<br />
such that<br />
x1<br />
?<br />
=∅ u1, . . . , xk<br />
?<br />
=∅ uk, xk+1<br />
?<br />
=∅ uk+1, . . . , xm<br />
?<br />
=∅ um<br />
for every equation x ? =∅ u ∈ V ′ , we have either x ∈ V ar(S) <strong>and</strong> u ∈ Sub(T ) or<br />
x ∈ V ar(T ) <strong>and</strong> u ∈ Sub(S). We suppose that xj ∈ V ar(T ) for j ∈ {1, . . . , k}.<br />
• If k = m then we have xj ∈ V ar(T ) for j ∈ {1, . . . , m}. We suppose<br />
that xi �= xj for all i, j ∈ {1, . . . , m} <strong>and</strong> i �= j. This implies that<br />
Sσ = S <strong>and</strong> V ar(T ) are instantiated by subterms <strong>of</strong> S, that is V ar(T )σ are<br />
smaller or equal than terms in S. We conclude also that nbv(s1, . . . , sn) =<br />
nbv((s1, . . . , sn, t1, . . . , tn)σ).<br />
• If k �= m assume {uk+1, . . . , um} /∈ V ar(T ), we have different cases:<br />
– If for all different i, j ∈ {1, . . . , m} we have xi �= xj then m−k variables<br />
<strong>of</strong> S, xk+1, . . . , xm, are instantiated by subterms <strong>of</strong> T , uk+1, . . . , um. This<br />
implies that when we apply σ to U, new variables, V ar(uk+1, . . . , um)\<br />
{x1, . . . , xk} will appear in Sσ. There exists a set T ′ �⊆ X such that<br />
T → ∗ U T ′ <strong>and</strong> T ′ = {x1, . . . , xk, uk+1, . . . , um}. Since µ(T ) > 0, we have<br />
|T ′ \X | > |V ar(T ′ \X )\(x1, . . . , xk)|. This implies that nbv(s1, . . . , sn) ><br />
nbv((s1, . . . , sn, t1, . . . , tn)σ).<br />
– If there is different i, j ∈ {1, . . . , m} such that xi = xj:<br />
∗ If i, j ≤ k then we have to unify two subterms <strong>of</strong> S. Let ui <strong>and</strong> uj<br />
be these two subterms <strong>and</strong> α be their most general unifier.<br />
Let us apply α on V <strong>and</strong><br />
�<br />
to solve V we have to solve V α =<br />
. To solve V α we reduce it to another<br />
�<br />
s1α ? =∅ t1, . . . , snα ? =∅ tn