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

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

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

Saved successfully!

Ooh no, something went wrong!