05.02.2013 Views

Some theoretical aspects of verification (with a focus on bisimilarity)

Some theoretical aspects of verification (with a focus on bisimilarity)

Some theoretical aspects of verification (with a focus on bisimilarity)

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.

<str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>theoretical</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

(<str<strong>on</strong>g>with</str<strong>on</strong>g> a <str<strong>on</strong>g>focus</str<strong>on</strong>g> <strong>on</strong> <strong>bisimilarity</strong>)<br />

Petr Jančar<br />

Dept <str<strong>on</strong>g>of</str<strong>on</strong>g> Computer Science<br />

Technical University Ostrava (FEI VˇSB-TU)<br />

Czech Republic<br />

www.cs.vsb.cz/jancar<br />

Informatik-Kolloquium, Jena, 14 May 2007<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g> Kolloquium Jena, 14 May 2007 1 / 89


A (hardware) design process<br />

(From K. Schneider: Verificati<strong>on</strong> <str<strong>on</strong>g>of</str<strong>on</strong>g> reactive systems)<br />

Specificati<strong>on</strong><br />

Equivalence<br />

proving<br />

Specificati<strong>on</strong><br />

Design<br />

Verificati<strong>on</strong><br />

Design<br />

Verificati<strong>on</strong><br />

VHDL<br />

Implementati<strong>on</strong><br />

Verificati<strong>on</strong><br />

RT/Gate level<br />

Switch level<br />

Chip<br />

Implementati<strong>on</strong><br />

Verificati<strong>on</strong><br />

Fabricati<strong>on</strong><br />

Test<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g> Kolloquium Jena, 14 May 2007 2 / 89


Outline <str<strong>on</strong>g>of</str<strong>on</strong>g> the talk<br />

Historical remarks, logics, decisi<strong>on</strong> problems,<br />

theorem proving, program <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

(Temporal) logics <str<strong>on</strong>g>of</str<strong>on</strong>g> runs; linear vs. branching time;<br />

model checking<br />

Behavioural equivalences; bisimulati<strong>on</strong><br />

Undecidability <str<strong>on</strong>g>of</str<strong>on</strong>g> <strong>bisimilarity</strong> <strong>on</strong> Type -1 systems (an extensi<strong>on</strong> <str<strong>on</strong>g>of</str<strong>on</strong>g><br />

pushdown automata) [Jančar and Srba, FOSSACS 2006]<br />

Final remarks<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g> Kolloquium Jena, 14 May 2007 3 / 89


Leibniz’ programme<br />

Gottfried Wilhelm Leibniz (1646 - 1716)<br />

Whenever there are different opini<strong>on</strong>s about certain facts, <strong>on</strong>e<br />

should not discuss them like philosophers usually do;<br />

instead <strong>on</strong>e should ‘calculate’ the truth.<br />

lingua characteristica (to express all kinds <str<strong>on</strong>g>of</str<strong>on</strong>g> properties)<br />

calculus ratiocinator (laws to allow a ‘decisi<strong>on</strong> procedure’)<br />

(using universal encyclopedia)<br />

Leibniz planned the project for the next three centuries !<br />

(His research in the differential calculus went in that directi<strong>on</strong>.)<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g> Kolloquium Jena, 14 May 2007 4 / 89


Propositi<strong>on</strong>al logic<br />

Augustus de Morgan (1806-1871)<br />

George Boole (1815-1864) ...<br />

‘Leibniz sense’ calculus for propositi<strong>on</strong>al logic<br />

¬(x ∧ y) = ¬x ∨ ¬y<br />

x ∧ true = x<br />

. . .<br />

(Boole viewed this as a c<strong>on</strong>tributi<strong>on</strong> to Leibniz’ research<br />

programme)<br />

Stanley Javins in 1869 ... a machine checking boolean expressi<strong>on</strong>s<br />

(something like a cash register at that time)<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g> Kolloquium Jena, 14 May 2007 5 / 89


Logical basis for mathematics<br />

Gottlob Frege (1848-1925)<br />

in 1879, Begriffschrift<br />

(boolean c<strong>on</strong>nectives ... but also quantifiers, relati<strong>on</strong>s, functi<strong>on</strong>s)<br />

beginnings <str<strong>on</strong>g>of</str<strong>on</strong>g> first order logic<br />

Frege the first to distinguish between syntax and semantics.<br />

David Hilbert (1862-1943) ... wanted logical basis for mathematics<br />

Alfred Whitehead (1861-1947), Bertrand Russell (1872-1970):<br />

Principia mathematica (1910-1913)<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g> Kolloquium Jena, 14 May 2007 6 / 89


First order predicate calculus<br />

Alfred Tarski (1902-1983) (till 1923 Alfred Teitelbaum):<br />

end <str<strong>on</strong>g>of</str<strong>on</strong>g> 1920s ... interpretati<strong>on</strong> (semantics)<br />

e.g., ∀x.∀y.∃z.(x + y < z) is true in (N, +,


Herbrand’s Theorem; resoluti<strong>on</strong> principle<br />

Jacques Herbrand (1908-1931)<br />

in 1930 ... a semi-decisi<strong>on</strong> procedure for valid (or unsatisfiable) sentences<br />

<str<strong>on</strong>g>of</str<strong>on</strong>g> first order predicate calculus:<br />

Φ ≡ ∀x1.∀x2. . . . ∀xn.F is unsatisfiable iff<br />

there is a finite set <str<strong>on</strong>g>of</str<strong>on</strong>g> ground clauses <str<strong>on</strong>g>of</str<strong>on</strong>g> F which is<br />

unsatisfiable in propositi<strong>on</strong>al calculus.<br />

E.g. we prove validity <str<strong>on</strong>g>of</str<strong>on</strong>g><br />

( (∀x.M(x) ⇒ D(x)) ∧ M(f (s)) ) ⇒ D(f (s))<br />

The negati<strong>on</strong><br />

∀x. (¬M(x) ∨ D(x)) ∧ M(f (s)) ∧ ¬D(f (s))<br />

is unsatisfiable since<br />

{ ¬M(f (s)) ∨ D(f (s)) , M(f (s)) , ¬D(f (s)) } is unsatisfiable:<br />

By Robins<strong>on</strong>’s resoluti<strong>on</strong> (1965) we can derive D(f (s)) and then the<br />

empty clause � (c<strong>on</strong>tradicti<strong>on</strong>).<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g> Kolloquium Jena, 14 May 2007 8 / 89


Axiomatizati<strong>on</strong> <str<strong>on</strong>g>of</str<strong>on</strong>g> first order predicate calculus<br />

David Hilbert (1862-1943) and Wilhelm Ackermann (1896-1962)<br />

in 1928 ... an axiomatizati<strong>on</strong> <str<strong>on</strong>g>of</str<strong>on</strong>g> first order predicate calculus<br />

Ax 1 φ ⇒ (ψ ⇒ φ)<br />

Ax 2 (φ ⇒ (ψ ⇒ η)) ⇒ ((φ ⇒ ψ) ⇒ (φ ⇒ η))<br />

Ax 3 (¬φ ⇒ ψ) ⇒ ((¬φ ⇒ ¬ψ) ⇒ φ))<br />

Ax 4 (∀x(φ ⇒ ψ)) ⇒ (φ ⇒ ∀xψ)), x not free in φ<br />

Ax 5 ∀x(φ(x)) ⇒ φ(e)<br />

Ax 6 e ≡ e<br />

Ax 7 ei ≡ e ′ i ⇒ f (e1, . . . , ei, . . . , en) ≡ f (e1, . . . , ei, . . . , en)<br />

Ax 8 ei ≡ e ′ i ⇒ R(e1, . . . , ei, . . . , en) ≡ R(e1, . . . , ei, . . . , en)<br />

Rule MP (modus p<strong>on</strong>ens)<br />

φ, φ ⇒ ψ<br />

ψ<br />

Rule GEN (generalizati<strong>on</strong>)<br />

φ<br />

∀xφ<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g> Kolloquium Jena, 14 May 2007 9 / 89


Questi<strong>on</strong>s <str<strong>on</strong>g>of</str<strong>on</strong>g> completeness and (algorithmic) decidability<br />

Kurt Gödel (1906-1978)<br />

in 1930 completeness (Γ ⊢ φ iff Γ |= φ)<br />

(Every c<strong>on</strong>sistent 1st order theory has a model.)<br />

Presburger arithmetic (theory <str<strong>on</strong>g>of</str<strong>on</strong>g> additi<strong>on</strong>; symbols 0, 1, + [and =])<br />

1. ∀x : ¬(0 = x + 1)<br />

2. ∀x∀y : ¬(x = y) ⇒ ¬(x + 1 = y + 1)<br />

3. ∀x : x + 0 = x<br />

4. ∀x∀y : (x + y) + 1 = x + (y + 1)<br />

5. An axiom scheme:<br />

(P(0) ∧ ∀x : P(x) ⇒ P(x + 1)) ⇒ ∀x : P(x)<br />

P(x) ... any formula c<strong>on</strong>structed from 0, 1, +, =<br />

and c<strong>on</strong>taining a single free variable x<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 10 /<br />

89


Presburger arithmetic<br />

Example sentence (the sum <str<strong>on</strong>g>of</str<strong>on</strong>g> two even numbers is even):<br />

∀x.∀y. ((∃x1.x = x1 + x1) ∧ (∃y1.y = y1 + y1)) ⇒ (∃z.x + y = z + z)<br />

Mojzesz Presburger (1904-1943)<br />

in 1929 ... completeness and decidability<br />

(for the ‘Presburger arithmetic’)<br />

Lower bound 22n, upper bound 222p(n) (from 1970s)<br />

The idea <str<strong>on</strong>g>of</str<strong>on</strong>g> a pro<str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> decidability:<br />

- the prenex form <str<strong>on</strong>g>with</str<strong>on</strong>g> just <strong>on</strong>e ternary predicate,<br />

- use <str<strong>on</strong>g>of</str<strong>on</strong>g> finite automata (for quantifier eliminati<strong>on</strong>)<br />

Our example sentence (the sum <str<strong>on</strong>g>of</str<strong>on</strong>g> two even numbers is even)<br />

∀x.∀y.∀x1.∀y1.∃z.∃z1.<br />

¬(x1 + x1 = x) ∨ ¬(y1 + y1 = y) ∨ ((x + y = z1) ∧ (z + z = z1))<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 11 /<br />

89


(N<strong>on</strong>deterministic) finite automata; determinizati<strong>on</strong><br />

a,b<br />

1<br />

b<br />

2<br />

1 1, 2<br />

a,b<br />

3<br />

a,b<br />

4<br />

1, 4<br />

1, 3 1, 2, 4<br />

1, 2, 3 1, 3, 4<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

1, 2, 3, 4<br />

b<br />

Kolloquium Jena, 14 May 2007 12 /<br />

89


(N<strong>on</strong>deterministic) finite automata; determinizati<strong>on</strong><br />

a,b<br />

1<br />

b<br />

2<br />

1 1, 2<br />

a,b<br />

3<br />

a,b<br />

4<br />

1, 4<br />

1, 3 1, 2, 4<br />

1, 2, 3 1, 3, 4<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

1, 2, 3, 4<br />

b<br />

Kolloquium Jena, 14 May 2007 12 /<br />

89


(N<strong>on</strong>deterministic) finite automata; determinizati<strong>on</strong><br />

a,b<br />

1<br />

1<br />

a<br />

b<br />

2<br />

1, 2<br />

a,b<br />

3<br />

a,b<br />

4<br />

1, 4<br />

1, 3 1, 2, 4<br />

1, 2, 3 1, 3, 4<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

1, 2, 3, 4<br />

b<br />

Kolloquium Jena, 14 May 2007 12 /<br />

89


(N<strong>on</strong>deterministic) finite automata; determinizati<strong>on</strong><br />

a,b<br />

1<br />

1<br />

a<br />

b<br />

b<br />

2<br />

1, 2<br />

a,b<br />

3<br />

a,b<br />

4<br />

1, 4<br />

1, 3 1, 2, 4<br />

1, 2, 3 1, 3, 4<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

1, 2, 3, 4<br />

b<br />

Kolloquium Jena, 14 May 2007 12 /<br />

89


(N<strong>on</strong>deterministic) finite automata; determinizati<strong>on</strong><br />

a,b<br />

1<br />

1<br />

a<br />

b<br />

b<br />

2<br />

1, 2<br />

a,b<br />

a<br />

3<br />

a,b<br />

4<br />

1, 4<br />

1, 3 1, 2, 4<br />

1, 2, 3 1, 3, 4<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

1, 2, 3, 4<br />

b<br />

Kolloquium Jena, 14 May 2007 12 /<br />

89


(N<strong>on</strong>deterministic) finite automata; determinizati<strong>on</strong><br />

a,b<br />

1<br />

1<br />

a<br />

b<br />

b<br />

2<br />

1, 2<br />

a,b<br />

a<br />

b<br />

3<br />

a,b<br />

4<br />

1, 4<br />

1, 3 1, 2, 4<br />

1, 2, 3 1, 3, 4<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

1, 2, 3, 4<br />

b<br />

Kolloquium Jena, 14 May 2007 12 /<br />

89


(N<strong>on</strong>deterministic) finite automata; determinizati<strong>on</strong><br />

a,b<br />

1<br />

1<br />

a<br />

b<br />

b<br />

2<br />

1, 2<br />

a,b<br />

a<br />

b<br />

3<br />

1, 3<br />

a,b<br />

4<br />

a<br />

1, 4<br />

1, 2, 4<br />

1, 2, 3 1, 3, 4<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

1, 2, 3, 4<br />

b<br />

Kolloquium Jena, 14 May 2007 12 /<br />

89


(N<strong>on</strong>deterministic) finite automata; determinizati<strong>on</strong><br />

a,b<br />

1<br />

1<br />

a<br />

b<br />

b<br />

2<br />

1, 2<br />

a,b<br />

a<br />

a<br />

b<br />

3<br />

b<br />

1, 3<br />

a,b<br />

1, 2, 3<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

4<br />

a<br />

b<br />

a<br />

a<br />

b<br />

1, 4<br />

1, 2, 4<br />

b<br />

1, 3, 4<br />

a<br />

1, 2, 3, 4<br />

b<br />

a<br />

Kolloquium Jena, 14 May 2007 12 /<br />

89


Finite automata - closure properties<br />

b<br />

b<br />

1<br />

1, A<br />

a<br />

a<br />

2<br />

b<br />

b<br />

b<br />

A<br />

a<br />

a<br />

B<br />

2, B 1, B 1, C<br />

2, C 2, A 2, D<br />

1, D<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> b <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

b<br />

b<br />

C<br />

a<br />

a,b<br />

D<br />

Kolloquium Jena, 14 May 2007 13 /<br />

89


Finite automata - closure properties<br />

b<br />

1<br />

a<br />

a<br />

2<br />

b<br />

b<br />

1, A 2, B 1, B 1, C<br />

b<br />

A<br />

a<br />

a<br />

B<br />

2, C 2, A 2, D<br />

1, D<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> b <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

b<br />

b<br />

C<br />

a<br />

a,b<br />

D<br />

Kolloquium Jena, 14 May 2007 13 /<br />

89


Finite automata - closure properties<br />

b<br />

1<br />

1, A<br />

a<br />

a<br />

a<br />

2<br />

b<br />

b<br />

b<br />

A<br />

a<br />

a<br />

B<br />

2, B 1, B 1, C<br />

2, C 2, A 2, D<br />

1, D<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> b <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

b<br />

b<br />

C<br />

a<br />

a,b<br />

D<br />

Kolloquium Jena, 14 May 2007 13 /<br />

89


Finite automata - closure properties<br />

b<br />

b<br />

1<br />

1, A<br />

a<br />

a<br />

a<br />

2<br />

b<br />

b<br />

b<br />

A<br />

a<br />

a<br />

B<br />

2, B 1, B 1, C<br />

2, C 2, A 2, D<br />

1, D<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> b <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

b<br />

b<br />

C<br />

a<br />

a,b<br />

D<br />

Kolloquium Jena, 14 May 2007 13 /<br />

89


Finite automata - closure properties<br />

b<br />

b<br />

1<br />

1, A<br />

a<br />

a<br />

a<br />

2<br />

b<br />

2, B<br />

b<br />

2, C<br />

b<br />

a<br />

a<br />

a<br />

b<br />

b<br />

A<br />

1, B<br />

a<br />

2, A<br />

1, D<br />

a<br />

a<br />

b<br />

b<br />

B<br />

b<br />

b<br />

1, C<br />

a<br />

2, D<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> b <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

a<br />

a<br />

b<br />

C<br />

a<br />

a,b<br />

D<br />

Kolloquium Jena, 14 May 2007 13 /<br />

89


Finite automata - summary<br />

N<strong>on</strong>deterministic FA −→ equivalent deterministic FA<br />

(possibly <str<strong>on</strong>g>with</str<strong>on</strong>g> an exp<strong>on</strong>ential increase <str<strong>on</strong>g>of</str<strong>on</strong>g> the number <str<strong>on</strong>g>of</str<strong>on</strong>g> states)<br />

(but e.g. traversing its state space<br />

can be d<strong>on</strong>e in polynomial space)<br />

The class <str<strong>on</strong>g>of</str<strong>on</strong>g> regular languages is (effectively) closed wrt<br />

uni<strong>on</strong>, intersecti<strong>on</strong>, complement,<br />

c<strong>on</strong>catenati<strong>on</strong>, iterati<strong>on</strong> (star: L ∗ ),<br />

reversal, ...<br />

Questi<strong>on</strong>s like L(A) ? = ∅,<br />

or “is there a cycle c<strong>on</strong>taining a particular state ?”<br />

can be decided ‘quickly’<br />

( e.g. by depth-first-search in O(n + m) )<br />

(NLOGSPACE-complete problems)<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 14 /<br />

89


Finite automat<strong>on</strong> - an outside view<br />

a b b a b<br />

q0<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 15 /<br />

89


Decidability <str<strong>on</strong>g>of</str<strong>on</strong>g> Presburger arithmetic (by automata)<br />

∀x.∀y.∀x1.∀y1.∃z.∃z1.<br />

¬(x1 + x1 = x) ∨ ¬(y1 + y1 = y) ∨ ((x + y = z1) ∧ (z + z = z1))<br />

An automat<strong>on</strong> accepting all (binary codes <str<strong>on</strong>g>of</str<strong>on</strong>g>) (i, j, k)<br />

which satisfy i + j = k<br />

i 0 0 1 0 1<br />

j 0 1 1 0 0<br />

k 1 0 0 0 1<br />

q0<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 16 /<br />

89


Decidability <str<strong>on</strong>g>of</str<strong>on</strong>g> Presburger arithmetic - c<strong>on</strong>t.<br />

An automat<strong>on</strong> accepting all (binary codes <str<strong>on</strong>g>of</str<strong>on</strong>g>) (k1, k2, . . . , kn)<br />

which satisfy quantifier-free φ(x1, x2, . . . , xn)<br />

k1 1 0 0 1 1<br />

k2 0 1 1 0 1<br />

. .<br />

kn 1 1 0 1 0<br />

q0<br />

By projecti<strong>on</strong>, an automat<strong>on</strong> accepting (k1, k2, . . . , kn−1)<br />

satisfying ∃xn.φ(x1, x2, . . . , xn)<br />

Formula ∀x.φ is rewritten by ¬∃x.¬φ ...<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 17 /<br />

89


Decidability <str<strong>on</strong>g>of</str<strong>on</strong>g> Presburger arithmetic - c<strong>on</strong>t.<br />

Summary:<br />

To a general Φ(x1, x2, . . . , xn) (defining a subset [[Φ]] ⊆ N n )<br />

we c<strong>on</strong>struct automat<strong>on</strong> AΦ accepting precisely<br />

(the binary codes <str<strong>on</strong>g>of</str<strong>on</strong>g>) (k1, k2, . . . , kn) ∈ [[Φ]], i.e.<br />

For closed Φ we have:<br />

[[Φ]] corresp<strong>on</strong>ds to L(AΦ)<br />

Φ is true iff ε ∈ L(AΦ) iff L(AΦ) �= ∅<br />

Φ is true iff L(A¬Φ) = ∅<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 18 /<br />

89


Presburger definable sets = semilinear sets<br />

A set L ⊆ N k is linear if there are:<br />

a basis b ∈ N k and periods p1, p2, . . . , pn ∈ N k so that<br />

L = { b + c1p1 + c2p2 + · · · + cnpn | c1, c2, . . . , cn ∈ N }<br />

◦ ◦ ◦ ◦ • ◦ • • •<br />

◦ ◦ ◦ ◦ ◦ • ◦ • •<br />

◦ ◦ ◦ • ◦ • • • •<br />

◦ ◦ ◦ ◦ • ◦ • ◦ •<br />

◦ ◦ • ◦ • ◦ • ◦ •<br />

◦ ◦ ◦ ◦ ◦ ◦ ◦ ◦ ◦ ◦<br />

A set S ⊆ N k is semilinear iff it is a finite uni<strong>on</strong> <str<strong>on</strong>g>of</str<strong>on</strong>g> linear sets.<br />

Ginsburg, Spanier 1966:<br />

Presburger-definable subsets <str<strong>on</strong>g>of</str<strong>on</strong>g> Nk are precisely the semilinear sets.<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 19 /<br />

89


Additi<strong>on</strong> and multiplicati<strong>on</strong><br />

Theory N ; symbols 0, S, +, ·, < [and =]).<br />

A basic axiom system for the arithmetic <strong>on</strong> natural numbers<br />

(<str<strong>on</strong>g>with</str<strong>on</strong>g>out the inducti<strong>on</strong> principle)<br />

1. Sx �= 0<br />

2. Sx = Sy ⇒ x = y<br />

3. x + 0 = x<br />

4. x + Sy = S(x + y)<br />

5. x · 0 = 0<br />

6. x · Sy = (x · y) + x<br />

7. ¬(x < 0)<br />

8. (x < Sy) ⇔ (x < y) ∨ (x = y)<br />

9. (x < y) ∨ (x = y) ∨ (y < x)<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 20 /<br />

89


Undecidability, incompleteness (<str<strong>on</strong>g>of</str<strong>on</strong>g> arithmetic)<br />

Gödel in 1931 .... incompleteness<br />

(Every formal system able to express arithmetic (i.e., theory N) ...)<br />

Alan Turing (1913-1954), Al<strong>on</strong>zo Church (1903-1995)<br />

1936 ... Turing machines, λ-calculus,<br />

a stable noti<strong>on</strong> <str<strong>on</strong>g>of</str<strong>on</strong>g> computable functi<strong>on</strong>s (Church-Turing thesis)<br />

(also undecidability <str<strong>on</strong>g>of</str<strong>on</strong>g> (validity in) first order logic; thus<br />

answering negatively the questi<strong>on</strong> stated by Hilbert and<br />

Ackermann)<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 21 /<br />

89


Absolute limits (for automated <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g>)<br />

Negative side:<br />

The incompleteness and undecidability results revealed<br />

some absolute limits for finitistic reas<strong>on</strong>ing<br />

(and for automated computati<strong>on</strong>s),<br />

i.e., limits for Hilbert’s program and Leibniz’ calculus ratiocinator.<br />

Positive side:<br />

completeness <str<strong>on</strong>g>of</str<strong>on</strong>g> axiomatizati<strong>on</strong> <str<strong>on</strong>g>of</str<strong>on</strong>g> first order logic,<br />

semidecidability <str<strong>on</strong>g>of</str<strong>on</strong>g> validity (unsatisfiability)<br />

decidability results for special cases<br />

(though computati<strong>on</strong>al complexity plays an important role)<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 22 /<br />

89


Electr<strong>on</strong>ic computer era<br />

In 1946, John Mauchly and J Presper Eckert developed<br />

ENIAC I<br />

Electrical Numerical Integrator And Calculator<br />

the world’s first electr<strong>on</strong>ic digital computer<br />

The fascinating era <str<strong>on</strong>g>of</str<strong>on</strong>g> electr<strong>on</strong>ic computers started ...<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 23 /<br />

89


Automated theorem proving<br />

M. Davis in 1954 ... implementati<strong>on</strong> <str<strong>on</strong>g>of</str<strong>on</strong>g> the decisi<strong>on</strong> procedure for<br />

Presburger arithmetic:<br />

the first success: computer proved that<br />

the sum <str<strong>on</strong>g>of</str<strong>on</strong>g> two even numbers is an even number<br />

Wang in 1958-1964 ... automated theorem prover<br />

(proved the simple laws <str<strong>on</strong>g>of</str<strong>on</strong>g> predicate calculus in Principia Mathematica)<br />

Davis, Putnam, Prawitz ... unificati<strong>on</strong><br />

Robins<strong>on</strong> 1965 ... resoluti<strong>on</strong> principle<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 24 /<br />

89


Automated theorem proving - c<strong>on</strong>t.<br />

1970s, 1980s, 1990s, 2000s<br />

dozens <str<strong>on</strong>g>of</str<strong>on</strong>g> various (s<str<strong>on</strong>g>of</str<strong>on</strong>g>tware) theorem provers (or pro<str<strong>on</strong>g>of</str<strong>on</strong>g> assistants)<br />

Used for verifying (computer) systems<br />

usually extend first order logic: inducti<strong>on</strong> principles, higher order logics<br />

(reas<strong>on</strong>ing <strong>on</strong> data structures like lists, trees, graphs, ...<br />

functi<strong>on</strong>al programming, functi<strong>on</strong>s <str<strong>on</strong>g>of</str<strong>on</strong>g> higher order types, ...)<br />

One example:<br />

Hunt W.: Microprocessor design <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g>,<br />

Journal <str<strong>on</strong>g>of</str<strong>on</strong>g> Automated Reas<strong>on</strong>ing 5, 4(1989), 429 - 460<br />

(<str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> the 32-bit processor FM8502), a part <str<strong>on</strong>g>of</str<strong>on</strong>g> a bigger project:<br />

Bevier W., Hunt W., Moore J., Young W.:<br />

An approach to system <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g>,<br />

Journal <str<strong>on</strong>g>of</str<strong>on</strong>g> Automated Reas<strong>on</strong>ing 5, 4(1989), 411 - 428<br />

(<str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> code generator, assembler, kernel <str<strong>on</strong>g>of</str<strong>on</strong>g> an operating system)<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 25 /<br />

89


<str<strong>on</strong>g>Some</str<strong>on</strong>g> available theorem provers (pro<str<strong>on</strong>g>of</str<strong>on</strong>g> assistants)<br />

PVS Specificati<strong>on</strong> and Verificati<strong>on</strong> System<br />

http://pvs.csl.sri.com/<br />

Stanford research institute<br />

The HOL System<br />

http://www.cl.cam.ac.uk/Research/HVG/HOL/<br />

Cambridge university, UK<br />

Coq<br />

http://pauillac.inria.fr/coq/<br />

Inria, France<br />

Further available tools:<br />

ACL2 at Univ. <str<strong>on</strong>g>of</str<strong>on</strong>g> Texas at Austin, USA, Isabelle at Cambridge, UK, Larch,<br />

MIT, USA, Nuprl, Cornell, USA, TPS, Carnegie Mell<strong>on</strong> Univ., USA<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 26 /<br />

89


Program <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Late 1960s:<br />

specialized logics and pro<str<strong>on</strong>g>of</str<strong>on</strong>g> procedures for<br />

<str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> computer programs and systems<br />

Am<strong>on</strong>g the pi<strong>on</strong>eers:<br />

Floyd, Hoare, Dijkstra, Gries, Lamport, Owicki, Manna, Pnueli<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 27 /<br />

89


Verificati<strong>on</strong> <str<strong>on</strong>g>of</str<strong>on</strong>g> a computer program (divisi<strong>on</strong> <str<strong>on</strong>g>of</str<strong>on</strong>g> numbers)<br />

{ x1, x2 are integers satisfying C1: x1 ≥ 0, x2 > 0 }<br />

Program P<br />

{ C2: x1 = z1x2 + z2 ∧ 0 ≤ z2 < x2 }<br />

We want to verify: {C1}P{C2} ... (specificati<strong>on</strong> <str<strong>on</strong>g>of</str<strong>on</strong>g> P)<br />

Generated <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g> c<strong>on</strong>diti<strong>on</strong>s:<br />

{C1} y1 := 0; y2 := x1 {INV}<br />

{INV ∧ y2 ≥ x2} y1 := y1 + 1; y2 := y2 − x2 {INV}<br />

{INV ∧ ¬(y2 ≥ x2)} z1 := y1; z2 := y2 {C2}<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 28 /<br />

89


Verificati<strong>on</strong> <str<strong>on</strong>g>of</str<strong>on</strong>g> a computer program (divisi<strong>on</strong> <str<strong>on</strong>g>of</str<strong>on</strong>g> numbers)<br />

{ x1, x2 are integers satisfying C1: x1 ≥ 0, x2 > 0 }<br />

Program P<br />

y1 := 0; y2 := x1;<br />

while y2 ≥ x2 do (y1 := y1 + 1; y2 := y2 − x2);<br />

z1 := y1; z2 := y2<br />

{ C2: x1 = z1x2 + z2 ∧ 0 ≤ z2 < x2 }<br />

We want to verify: {C1}P{C2} ... (specificati<strong>on</strong> <str<strong>on</strong>g>of</str<strong>on</strong>g> P)<br />

Generated <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g> c<strong>on</strong>diti<strong>on</strong>s:<br />

{C1} y1 := 0; y2 := x1 {INV}<br />

{INV ∧ y2 ≥ x2} y1 := y1 + 1; y2 := y2 − x2 {INV}<br />

{INV ∧ ¬(y2 ≥ x2)} z1 := y1; z2 := y2 {C2}<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 28 /<br />

89


Verificati<strong>on</strong> <str<strong>on</strong>g>of</str<strong>on</strong>g> a computer program (divisi<strong>on</strong> <str<strong>on</strong>g>of</str<strong>on</strong>g> numbers)<br />

{ x1, x2 are integers satisfying C1: x1 ≥ 0, x2 > 0 }<br />

Program P<br />

y1 := 0; y2 := x1;<br />

{ x1 = y1x2 + y2 ∧ 0 ≤ y2 } ... INV<br />

while y2 ≥ x2 do (y1 := y1 + 1; y2 := y2 − x2);<br />

z1 := y1; z2 := y2<br />

{ C2: x1 = z1x2 + z2 ∧ 0 ≤ z2 < x2 }<br />

We want to verify: {C1}P{C2} ... (specificati<strong>on</strong> <str<strong>on</strong>g>of</str<strong>on</strong>g> P)<br />

Generated <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g> c<strong>on</strong>diti<strong>on</strong>s:<br />

{C1} y1 := 0; y2 := x1 {INV}<br />

{INV ∧ y2 ≥ x2} y1 := y1 + 1; y2 := y2 − x2 {INV}<br />

{INV ∧ ¬(y2 ≥ x2)} z1 := y1; z2 := y2 {C2}<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 28 /<br />

89


Axiomatic semantics (partial correctness)<br />

{A}skip{A}<br />

{B[a/X ]}X := a{B}<br />

{A}c0{C} {C}c1{B}<br />

{A}c0; c1{B}<br />

{A ∧ b}c0{B} {A ∧ ¬b}c1{B}<br />

{A}if b then c0 else c1{B}<br />

{A ∧ b}c{A}<br />

{A}while b do c{A ∧ ¬b}<br />

|= (A ⇒ A ′ ) {A ′ }c{B} |= (B ′ ⇒ B)<br />

{A}c{B}<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 29 /<br />

89


Program-and-pro<str<strong>on</strong>g>of</str<strong>on</strong>g> development<br />

Stephen A. Cook (in late 1970s) showed relative completeness:<br />

|= {A}c{B} implies ⊢ {A}c{B}<br />

(though ‘being a pro<str<strong>on</strong>g>of</str<strong>on</strong>g>’ depends <strong>on</strong> some asserti<strong>on</strong>s to be valid)<br />

David Gries (The science <str<strong>on</strong>g>of</str<strong>on</strong>g> programming):<br />

“the study <str<strong>on</strong>g>of</str<strong>on</strong>g> program correctness pro<str<strong>on</strong>g>of</str<strong>on</strong>g>s has led to the discovery<br />

and elucidati<strong>on</strong> <str<strong>on</strong>g>of</str<strong>on</strong>g> methods for developing programs.<br />

Basically, <strong>on</strong>e attempts to<br />

develop a program and its pro<str<strong>on</strong>g>of</str<strong>on</strong>g> hand-in-hand,<br />

<str<strong>on</strong>g>with</str<strong>on</strong>g> the pro<str<strong>on</strong>g>of</str<strong>on</strong>g> ideas leading the way !”<br />

(For tedious things like detailed pro<str<strong>on</strong>g>of</str<strong>on</strong>g>s <str<strong>on</strong>g>of</str<strong>on</strong>g> elementary bits <str<strong>on</strong>g>of</str<strong>on</strong>g> mathematics<br />

etc. ... use automated pro<str<strong>on</strong>g>of</str<strong>on</strong>g> assistants.)<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 30 /<br />

89


<str<strong>on</strong>g>Some</str<strong>on</strong>g> specialized tools for deductive program <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g>s<br />

The Stanford Temporal Prover, STeP<br />

http://www-step.stanford.edu/<br />

Stanford university, USA<br />

TLV - Temporal Logic Verifier<br />

http://www.wisdom.weizmann.ac.il/ verify/tlv/<br />

Weizmann Institute <str<strong>on</strong>g>of</str<strong>on</strong>g> Science, Israel<br />

———————————–<br />

A comprehensive survey <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g> tools<br />

at Faculty <str<strong>on</strong>g>of</str<strong>on</strong>g> Informatics, Masaryk University Brno, Czech Rep.<br />

http://anna.fi.muni.cz/yahoda/<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 31 /<br />

89


Denotati<strong>on</strong>al semantics, while-command<br />

for command c ... semantics C[[c]] : Σ → Σ⊥<br />

C[[while b do c]] ... (σ, σ ′ ) s.t. σ<br />

if B[[b]]σ = false then σ<br />

if B[[b]]σ = true and σ c<br />

then σ<br />

while b do c<br />

−→ σ ′<br />

while b do c<br />

−→ σ ′<br />

while b do c<br />

−→ σ<br />

−→ σ ′<br />

−→ σ ′′ and σ ′′ while b do c<br />

I.e., we apply a functi<strong>on</strong>al Γ : (Σ → Σ⊥) → (Σ → Σ⊥):<br />

⊥ ⊆ Γ(⊥) ⊆ Γ(Γ(⊥)) ⊆ Γ(Γ(Γ(⊥))) ⊆ . . .<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 32 /<br />

89


Fixpoints <str<strong>on</strong>g>of</str<strong>on</strong>g> m<strong>on</strong>ot<strong>on</strong>ic functi<strong>on</strong>als<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 33 /<br />

89


Fixpoints <str<strong>on</strong>g>of</str<strong>on</strong>g> m<strong>on</strong>ot<strong>on</strong>ic functi<strong>on</strong>als<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 33 /<br />

89


Fixpoints <str<strong>on</strong>g>of</str<strong>on</strong>g> m<strong>on</strong>ot<strong>on</strong>ic functi<strong>on</strong>als<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 33 /<br />

89


Fixpoints <str<strong>on</strong>g>of</str<strong>on</strong>g> m<strong>on</strong>ot<strong>on</strong>ic functi<strong>on</strong>als<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 33 /<br />

89


Fixpoints <str<strong>on</strong>g>of</str<strong>on</strong>g> m<strong>on</strong>ot<strong>on</strong>ic functi<strong>on</strong>als<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 33 /<br />

89


Fixpoints <str<strong>on</strong>g>of</str<strong>on</strong>g> m<strong>on</strong>ot<strong>on</strong>ic functi<strong>on</strong>als<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 33 /<br />

89


Knaster-Tarski theorem<br />

Br<strong>on</strong>islaw Knaster (1893-1990)<br />

Alfred Tarski (1902-1983) (till 1923 Alfred Teitelbaum):<br />

Assume a m<strong>on</strong>ot<strong>on</strong>ic functi<strong>on</strong>al Γ : 2 A → 2 A<br />

(B ⊆ C ⇒ Γ(B) ⊆ Γ(C)).<br />

Then Y = � {X | Γ(X ) ⊆ X }<br />

(intersecti<strong>on</strong>, i.e. glb, <str<strong>on</strong>g>of</str<strong>on</strong>g> all prefixed points)<br />

is the least fixpoint <str<strong>on</strong>g>of</str<strong>on</strong>g> Γ. (Γ(Y ) = Y )<br />

Dually, (Γ is m<strong>on</strong>ot<strong>on</strong>ic also <strong>on</strong> (2 A , ⊇), and)<br />

Z = � {X | X ⊆ Γ(X )}<br />

(uni<strong>on</strong>, i.e. lub, <str<strong>on</strong>g>of</str<strong>on</strong>g> all postfixed points)<br />

is the greatest fixpoint <str<strong>on</strong>g>of</str<strong>on</strong>g> Γ. (Γ(Z) = Z)<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 34 /<br />

89


Fixpoints for c<strong>on</strong>tinuous functi<strong>on</strong>als<br />

Suppose a m<strong>on</strong>ot<strong>on</strong>ic Γ : 2 A → 2 A<br />

For f0 ⊆ f1 ⊆ f2 ⊆ · · · ⊆ �<br />

n∈ω fn we get<br />

�<br />

Γ(fn) ⊆ Γ( �<br />

fn)<br />

n∈ω<br />

(M<strong>on</strong>ot<strong>on</strong>ic) Γ is c<strong>on</strong>tinuous if �<br />

�<br />

�<br />

Γ(fn) = Γ<br />

n∈ω<br />

n∈ω<br />

Then we get lfp(Γ) as<br />

∅ ⊆ Γ(∅) ⊆ Γ(Γ(∅)) ⊆ · · · ⊆ �<br />

n∈ω Γn (∅) = Γ ��<br />

n∈ω Γn (∅) �<br />

fn<br />

�<br />

n∈ω<br />

Similarly for the gfp(Γ):<br />

A ⊇ Γ(A) ⊇ Γ(Γ(A)) ⊇ · · · ⊇ �<br />

n∈ω Γn (A) = Γ ��<br />

n∈ω Γn (A) �<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 35 /<br />

89


Verifying ‘simple’ properties<br />

C<strong>on</strong>current, parallel, interactive, ‘n<strong>on</strong>deterministic’ systems,<br />

<str<strong>on</strong>g>with</str<strong>on</strong>g> <strong>on</strong>going behaviour ...<br />

No input-output characterizati<strong>on</strong> (specificati<strong>on</strong>) ...<br />

Verificati<strong>on</strong> <str<strong>on</strong>g>of</str<strong>on</strong>g> ‘simple’ properties ...<br />

Peters<strong>on</strong>’s protocol (to avoid critical secti<strong>on</strong> clash)<br />

Process A :<br />

** n<strong>on</strong>critical regi<strong>on</strong> **<br />

flagA := true<br />

turn := B<br />

waitfor<br />

(flagB = false ∨ turn = A)<br />

** critical regi<strong>on</strong> **<br />

flagA := false<br />

** n<strong>on</strong>critical regi<strong>on</strong> **<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Process B :<br />

** n<strong>on</strong>critical regi<strong>on</strong> **<br />

flagB := true<br />

turn := A<br />

waitfor<br />

(flagA = false ∨ turn = B)<br />

** critical regi<strong>on</strong> **<br />

flagB := false<br />

** n<strong>on</strong>critical regi<strong>on</strong> **<br />

Kolloquium Jena, 14 May 2007 36 /<br />

89


Kripke structure (transiti<strong>on</strong> system)<br />

¬critA, ¬critB,<br />

flag A, ¬flag B,<br />

turn = B<br />

¬critA, ¬critB,<br />

flag A, ¬flag B,<br />

turn = ⊥<br />

¬critA, ¬critB,<br />

¬flag A, ¬flag B,<br />

turn = ⊥<br />

¬critA, ¬critB,<br />

flag A,flag B,<br />

turn = ⊥<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

¬critA, ¬critB,<br />

¬flag A,flag B,<br />

turn = ⊥<br />

¬critA, ¬critB,<br />

¬flag A, ¬flag B,<br />

turn = A<br />

Kolloquium Jena, 14 May 2007 37 /<br />

89


Simple (temporal) properties<br />

(we refer to Peters<strong>on</strong>’s protocol)<br />

a safety property: ∀t : (¬critA(t) ∨ ¬critB(t))<br />

“something bad never happens”<br />

a liveness property: ∀t : flagA(t) ⇒ (∃t ′ : t ≤ t ′ ∧ critA(t ′ ))<br />

“something good eventually happens”<br />

(e.g., also fairness properties ... more complicated)<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 38 /<br />

89


First order logic <str<strong>on</strong>g>of</str<strong>on</strong>g> order (FOLO)<br />

Reas<strong>on</strong>ing about finite runs (later also infinite runs)<br />

We assume a set AP (atomic propositi<strong>on</strong>s) <str<strong>on</strong>g>of</str<strong>on</strong>g> unary predicates P1, P2, . . .<br />

φ ::= P(x) | x = y | x < y | ¬φ | φ1 ∧ φ2 | ∃x.φ<br />

E.g. ∀x : flagA(x) ⇒ (∃x ′ : x ≤ x ′ ∧ critA(x ′ ))<br />

Interpreted <strong>on</strong> {0, 1, . . . , n} <str<strong>on</strong>g>with</str<strong>on</strong>g> the natural meaning <str<strong>on</strong>g>of</str<strong>on</strong>g> < .<br />

we can add (define): φ1 ∨ φ2, true, false, succ(x, y), ...<br />

The structure (interpretati<strong>on</strong>) can be viewed as<br />

w =<br />

� P1<br />

¬P2<br />

P3<br />

..<br />

i.e., as a word in alphabet 2 AP<br />

� � ¬P1<br />

P2<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

P3<br />

..<br />

� � �<br />

¬P1<br />

P2 . . .<br />

¬P3<br />

..<br />

Kolloquium Jena, 14 May 2007 39 /<br />

89


Semantics <str<strong>on</strong>g>of</str<strong>on</strong>g> FOLO<br />

For interpreting free variables we need a valuati<strong>on</strong>:<br />

Then<br />

V : {x, y, z, . . . } → {0, 1, . . . , n}<br />

w |=V φ ... w satisfies (is a model <str<strong>on</strong>g>of</str<strong>on</strong>g>) φ in valuati<strong>on</strong> V<br />

can be defined by structural inducti<strong>on</strong>:<br />

w |=V P(x) . . . w(V(x)) ∋ P (P(V(x)))<br />

w |=V x = y . . . V(x) = V(y)<br />

w |=V x < y . . . V(x) < V(y)<br />

w |=V ¬φ . . . w �|=V φ<br />

w |=V φ1 ∧ φ2 . . . w |=V φ1 and w |=V φ2<br />

w |=V ∃x.φ . . . there is j s.t. w |= V[j/x] φ<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 40 /<br />

89


Decidability <str<strong>on</strong>g>of</str<strong>on</strong>g> validity in FOLO by finite automata<br />

φ ::= P(x) | x = y | x < y | ¬φ | φ1 ∧ φ2 | ∃x.φ<br />

flagA(x) ⇒ (∃x ′ : x ≤ x ′ ∧ critA(x ′ )) ... Φ(flagA, critA; x)<br />

Φ(P1, P2, P3; x1, x2, x3)<br />

P1 1 0 0 0 0 1 0 1<br />

P2 1 1 1 0 1 1 0 0<br />

P3 0 0 1 1 1 0 0 1<br />

x1 0 0 1 0 0 0 0 0<br />

x2 0 0 0 0 0 0 1 0<br />

x3 1 0 0 0 0 0 0 0<br />

q0<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 41 /<br />

89


Decidability <str<strong>on</strong>g>of</str<strong>on</strong>g> validity in FOLO by finite automata - c<strong>on</strong>t.<br />

Büchi (early 1960s)<br />

To each closed Φ (<str<strong>on</strong>g>with</str<strong>on</strong>g> predicates P1, P2, . . . , Pk)<br />

c<strong>on</strong>struct a finite automat<strong>on</strong> AΦ, over the alphabet 2 {P1,P2,...,Pk} , such that<br />

w |= Φ iff w ∈ L(AΦ) .... L(Φ) = L(AΦ)<br />

So we have: Φ valid iff ¬Φ unsatisfiable iff L(A¬Φ) = ∅<br />

Model checking:<br />

decide if K, s |= Φ (i.e., if all runs from s satisfy Φ)<br />

c<strong>on</strong>struct automat<strong>on</strong> A¬Φ<br />

c<strong>on</strong>struct the product automat<strong>on</strong> A = (K, s) × A¬Φ<br />

decide if L(A) = ∅ (if NO then provide counterexample)<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 42 /<br />

89


M<strong>on</strong>adic sec<strong>on</strong>d order logic <str<strong>on</strong>g>of</str<strong>on</strong>g> order (MSOLO)<br />

FOLO-languages are a (proper) subclass <str<strong>on</strong>g>of</str<strong>on</strong>g> regular languages:<br />

Star-free regular languages is the least class which c<strong>on</strong>tains<br />

elementary (finite) languages and is closed wrt<br />

∪ (uni<strong>on</strong>), · (c<strong>on</strong>catenati<strong>on</strong>), ¯ (complement).<br />

E.g., “<strong>on</strong> each even positi<strong>on</strong> (and maybe elsewhere) is b”<br />

can not be expressed. ..... ababbbababbb<br />

We need M<strong>on</strong>adic sec<strong>on</strong>d order logic (MSOLO)<br />

φ ::= P(x) | x = y | x < y | ¬φ | φ1 ∧ φ2 | ∃x.φ | ∃X .φ | x ∈ X<br />

∃X .0 ∈ X ∧ ∀y∀z.(succ(y, z) ⇒ (y ∈ X ⇔ ¬z ∈ X ))<br />

∧ ∀y.y ∈ X ⇒ Qb(y)<br />

Büchi: MSOLO-languages are exactly regular languages.<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 43 /<br />

89


Logics and automata <strong>on</strong> infinite words<br />

Infinite runs w =<br />

� P1<br />

¬P2<br />

P3<br />

..<br />

� � ¬P1<br />

P2<br />

P3<br />

..<br />

� � �<br />

¬P1<br />

P2 . . .<br />

¬P3<br />

..<br />

No problem <str<strong>on</strong>g>with</str<strong>on</strong>g> interpreting logics (L(Φ) ⊆ Σ ω )<br />

φ ::= P(x) | x = y | x < y | ¬φ | φ1 ∧ φ2 | ∃x.φ<br />

φ ::= P(x) | x = y | x < y | ¬φ | φ1 ∧ φ2 | ∃x.φ | ∃X .φ | x ∈ X<br />

What about automata ?<br />

Büchi: accepts when an accepting state appears infinitely <str<strong>on</strong>g>of</str<strong>on</strong>g>ten<br />

a,b b Lω(A) = { w ∈ {a, b} ω |<br />

b<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

w c<strong>on</strong>tains just<br />

finitely many a’s }<br />

Kolloquium Jena, 14 May 2007 44 /<br />

89


Automata <strong>on</strong> infinite words<br />

(N<strong>on</strong>deterministic) Büchi automata ... ω-regular languages<br />

The same as MSOLO ω-languages:<br />

NBA → MSOLO easy<br />

(∃X1 (positi<strong>on</strong>s for state q1) ∃X2 (state q2) ....)<br />

MSOLO → NBA similarly as in the finite word case<br />

but intersecti<strong>on</strong> a bit more complicated,<br />

and determizati<strong>on</strong> does not hold ! (see the previous example),<br />

complementati<strong>on</strong> still holds but more difficult<br />

(a nice applicati<strong>on</strong> <str<strong>on</strong>g>of</str<strong>on</strong>g> Ramsey theorem for the countable case)<br />

Muller automata {I1, I2, . . . , Ik} ... <strong>on</strong>e coincides <str<strong>on</strong>g>with</str<strong>on</strong>g> inf. <str<strong>on</strong>g>of</str<strong>on</strong>g>ten visited <strong>on</strong><br />

a (run <strong>on</strong> a) word<br />

Rabin automata {(G1, R1), (G2, R2), . . . , (Gk, Rk)}<br />

for <strong>on</strong>e pair, Gi is visited infinitely <str<strong>on</strong>g>of</str<strong>on</strong>g>ten but Ri <strong>on</strong>ly finitely <str<strong>on</strong>g>of</str<strong>on</strong>g>ten<br />

Streett automata, Mostowski (parity) automata, ...<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 45 /<br />

89


Validity and model checking for infinite words<br />

Validity<br />

To a MSOLO formula Φ, c<strong>on</strong>struct NBA L(A¬Φ) so that<br />

|= Φ iff L(A¬Φ) = ∅<br />

Model checking<br />

To decide if K, s |= Φ , check if L(A) = ∅ for A = (K, s) × A¬Φ<br />

Warning. Already satisfiability <str<strong>on</strong>g>of</str<strong>on</strong>g> FOLO n<strong>on</strong>elementary<br />

(for input size n, we get at least the tower 222... <str<strong>on</strong>g>of</str<strong>on</strong>g> height n),<br />

so Aφ must be generally very large.<br />

Nevertheless, see:<br />

MONA project<br />

http://www.brics.dk/m<strong>on</strong>a/<br />

Brics, Denmark<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 46 /<br />

89


Linear Temporal Logic (LTL)<br />

In practical life (<str<strong>on</strong>g>of</str<strong>on</strong>g> ‘small things’), it is <str<strong>on</strong>g>of</str<strong>on</strong>g>ten c<strong>on</strong>venient to use just<br />

LTL (or PLTL - Propositi<strong>on</strong>al Linear(-time) Temporal Logic)<br />

(Amir Pnueli in late 1970s advocated the use in <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g>;<br />

the logic goes back to Prior (1957,1967), etc.)<br />

φ ::= P | ¬φ | φ1 ∧ φ2 | X φ | φ1Uφ2<br />

F φ ≡ true U φ, Gφ ≡ ¬F ¬φ, . . .<br />

Recall the safety property and the liveness property (in FOLO)<br />

∀t : (¬critA(t) ∨ ¬critB(t)), ∀t : flagA(t) ⇒ (∃t ′ : t ≤ t ′ ∧ critA(t))<br />

in LTL: G(¬critA ∨ ¬critB), G(flagA ⇒ F (critA))<br />

Kamp (1968), Gabbay,Pnueli,Shelah,Stavi (1980):<br />

FOLO and LTL equally expressive<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 47 /<br />

89


Model checking LTL<br />

Decide if K, s |= Φ (i.e., if all runs from s satisfy LTL-formula Φ):<br />

c<strong>on</strong>struct automat<strong>on</strong> A¬Φ<br />

c<strong>on</strong>struct the product automat<strong>on</strong> A = (K, s) × A¬Φ<br />

decide if L(A) = ∅ (if NO then provide counterexample)<br />

Moshe Vardi:<br />

LTL-formula Φ ... Alternating BA ... NBA<br />

(subset c<strong>on</strong>structi<strong>on</strong>; exp<strong>on</strong>ential increase)<br />

Model checking LTL is PSPACE-complete<br />

(the state space <strong>on</strong> demand, <strong>on</strong> the fly ...)<br />

Time complexity <str<strong>on</strong>g>of</str<strong>on</strong>g> used algorithms O( |K| · 2 |Φ| )<br />

SPIN (LTL model checker)<br />

http://spinroot.com/<br />

Bell Labs<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 48 /<br />

89


Vending machines<br />

V1<br />

V3<br />

def<br />

= 5k.5k.( c<str<strong>on</strong>g>of</str<strong>on</strong>g>fee.collect.V1<br />

+ tea.collect.V1 )<br />

def<br />

= 5k.5k.c<str<strong>on</strong>g>of</str<strong>on</strong>g>fee.collect.V3<br />

+ 5k.5k.tea.collect.V3<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

c<str<strong>on</strong>g>of</str<strong>on</strong>g>fee tea<br />

5k<br />

collect<br />

Kolloquium Jena, 14 May 2007 49 /<br />

89


Vending machines - c<strong>on</strong>t.<br />

V1<br />

V2<br />

def<br />

= 5k.5k.( c<str<strong>on</strong>g>of</str<strong>on</strong>g>fee.collect.V1 + tea.collect.V1 )<br />

✤<br />

V1<br />

✣<br />

5k 5k<br />

collect<br />

c<str<strong>on</strong>g>of</str<strong>on</strong>g>fee<br />

tea<br />

def<br />

= 5k.5k.c<str<strong>on</strong>g>of</str<strong>on</strong>g>fee.collect.V2 + 5k.5k.tea.collect.V2<br />

✤<br />

✣<br />

5k<br />

5k<br />

5k<br />

5k<br />

collect<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

c<str<strong>on</strong>g>of</str<strong>on</strong>g>fee<br />

tea<br />

✜<br />

✢<br />

✜<br />

✢<br />

Kolloquium Jena, 14 May 2007 50 /<br />

89


Branching time<br />

LTL does not make difference between<br />

•<br />

•<br />

coin coin<br />

coin<br />

• •<br />

•<br />

c<str<strong>on</strong>g>of</str<strong>on</strong>g>fee<br />

tea<br />

c<str<strong>on</strong>g>of</str<strong>on</strong>g>fee tea<br />

• •<br />

CTL (Computati<strong>on</strong> Tree Logic)<br />

• •<br />

φ ::= P | ¬φ | φ1 ∧ φ2 | EX φ | AX φ | E(φ1Uφ2) | A(φ1Uφ2)<br />

Model checking: decide if K, s |= Φ<br />

complexity O( |K| · |Φ| )<br />

(number <str<strong>on</strong>g>of</str<strong>on</strong>g> pairs (state s, subformula ψ))<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 51 /<br />

89


Model checking CTL<br />

The ‘most complicated’ subcase: A(φUψ)<br />

ϕ<br />

ψ<br />

ϕ ϕ<br />

SMV (Symbolic model checking; author Ken McMillan)<br />

http://www-cad.eecs.berkeley.edu/ kenmcmil/smv/<br />

Cadence Berkeley Laboratories<br />

CTL ∗ ... Eφ <str<strong>on</strong>g>with</str<strong>on</strong>g>out restricti<strong>on</strong>s, subsumes LTL, CTL<br />

(model checking PSPACE-complete, as for LTL)<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

ψ<br />

Kolloquium Jena, 14 May 2007 52 /<br />

89


Model checking CTL<br />

The ‘most complicated’ subcase: A(φUψ)<br />

ϕ<br />

2<br />

ψ<br />

2<br />

ϕ ϕ<br />

SMV (Symbolic model checking; author Ken McMillan)<br />

http://www-cad.eecs.berkeley.edu/ kenmcmil/smv/<br />

Cadence Berkeley Laboratories<br />

CTL ∗ ... Eφ <str<strong>on</strong>g>with</str<strong>on</strong>g>out restricti<strong>on</strong>s, subsumes LTL, CTL<br />

(model checking PSPACE-complete, as for LTL)<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

1<br />

ψ<br />

Kolloquium Jena, 14 May 2007 52 /<br />

89


Model checking CTL<br />

The ‘most complicated’ subcase: A(φUψ)<br />

ϕ<br />

2<br />

ψ<br />

2<br />

ϕ ϕ<br />

SMV (Symbolic model checking; author Ken McMillan)<br />

http://www-cad.eecs.berkeley.edu/ kenmcmil/smv/<br />

Cadence Berkeley Laboratories<br />

CTL ∗ ... Eφ <str<strong>on</strong>g>with</str<strong>on</strong>g>out restricti<strong>on</strong>s, subsumes LTL, CTL<br />

(model checking PSPACE-complete, as for LTL)<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

1<br />

ψ<br />

Kolloquium Jena, 14 May 2007 52 /<br />

89


Model checking CTL<br />

The ‘most complicated’ subcase: A(φUψ)<br />

ϕ<br />

1<br />

ψ<br />

1<br />

ϕ ϕ<br />

SMV (Symbolic model checking; author Ken McMillan)<br />

http://www-cad.eecs.berkeley.edu/ kenmcmil/smv/<br />

Cadence Berkeley Laboratories<br />

CTL ∗ ... Eφ <str<strong>on</strong>g>with</str<strong>on</strong>g>out restricti<strong>on</strong>s, subsumes LTL, CTL<br />

(model checking PSPACE-complete, as for LTL)<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

1<br />

ψ<br />

Kolloquium Jena, 14 May 2007 52 /<br />

89


Model checking CTL<br />

The ‘most complicated’ subcase: A(φUψ)<br />

ϕ<br />

1<br />

ψ<br />

1<br />

ϕ ϕ<br />

SMV (Symbolic model checking; author Ken McMillan)<br />

http://www-cad.eecs.berkeley.edu/ kenmcmil/smv/<br />

Cadence Berkeley Laboratories<br />

CTL ∗ ... Eφ <str<strong>on</strong>g>with</str<strong>on</strong>g>out restricti<strong>on</strong>s, subsumes LTL, CTL<br />

(model checking PSPACE-complete, as for LTL)<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

1<br />

ψ<br />

Kolloquium Jena, 14 May 2007 52 /<br />

89


Model checking CTL<br />

The ‘most complicated’ subcase: A(φUψ)<br />

ϕ<br />

1<br />

ψ<br />

1<br />

ϕ ϕ<br />

SMV (Symbolic model checking; author Ken McMillan)<br />

http://www-cad.eecs.berkeley.edu/ kenmcmil/smv/<br />

Cadence Berkeley Laboratories<br />

CTL ∗ ... Eφ <str<strong>on</strong>g>with</str<strong>on</strong>g>out restricti<strong>on</strong>s, subsumes LTL, CTL<br />

(model checking PSPACE-complete, as for LTL)<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

0<br />

ψ<br />

Kolloquium Jena, 14 May 2007 52 /<br />

89


Model checking CTL<br />

The ‘most complicated’ subcase: A(φUψ)<br />

ϕ<br />

1<br />

ψ<br />

1<br />

ϕ ϕ<br />

SMV (Symbolic model checking; author Ken McMillan)<br />

http://www-cad.eecs.berkeley.edu/ kenmcmil/smv/<br />

Cadence Berkeley Laboratories<br />

CTL ∗ ... Eφ <str<strong>on</strong>g>with</str<strong>on</strong>g>out restricti<strong>on</strong>s, subsumes LTL, CTL<br />

(model checking PSPACE-complete, as for LTL)<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

0<br />

ψ<br />

Kolloquium Jena, 14 May 2007 52 /<br />

89


Model checking CTL<br />

The ‘most complicated’ subcase: A(φUψ)<br />

ϕ<br />

1<br />

ψ<br />

0<br />

ϕ ϕ<br />

SMV (Symbolic model checking; author Ken McMillan)<br />

http://www-cad.eecs.berkeley.edu/ kenmcmil/smv/<br />

Cadence Berkeley Laboratories<br />

CTL ∗ ... Eφ <str<strong>on</strong>g>with</str<strong>on</strong>g>out restricti<strong>on</strong>s, subsumes LTL, CTL<br />

(model checking PSPACE-complete, as for LTL)<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

0<br />

ψ<br />

Kolloquium Jena, 14 May 2007 52 /<br />

89


Model checking CTL<br />

The ‘most complicated’ subcase: A(φUψ)<br />

ϕ<br />

1<br />

ψ<br />

0<br />

ϕ ϕ<br />

SMV (Symbolic model checking; author Ken McMillan)<br />

http://www-cad.eecs.berkeley.edu/ kenmcmil/smv/<br />

Cadence Berkeley Laboratories<br />

CTL ∗ ... Eφ <str<strong>on</strong>g>with</str<strong>on</strong>g>out restricti<strong>on</strong>s, subsumes LTL, CTL<br />

(model checking PSPACE-complete, as for LTL)<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

0<br />

ψ<br />

Kolloquium Jena, 14 May 2007 52 /<br />

89


Model checking CTL<br />

The ‘most complicated’ subcase: A(φUψ)<br />

ϕ<br />

1<br />

ψ<br />

0<br />

ϕ ϕ<br />

SMV (Symbolic model checking; author Ken McMillan)<br />

http://www-cad.eecs.berkeley.edu/ kenmcmil/smv/<br />

Cadence Berkeley Laboratories<br />

CTL ∗ ... Eφ <str<strong>on</strong>g>with</str<strong>on</strong>g>out restricti<strong>on</strong>s, subsumes LTL, CTL<br />

(model checking PSPACE-complete, as for LTL)<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

0<br />

ψ<br />

Kolloquium Jena, 14 May 2007 52 /<br />

89


Tree automata<br />

Tree automata (not <strong>on</strong> words but <strong>on</strong> trees)<br />

∗<br />

+ a<br />

a a<br />

(q0, ∗) → {(q0, q0), (q0, qa), (qa, q0), (qa, qa)}<br />

(q0, +) → {(q0, q0), (q0, qa), (qa, q0), (qa, qa)}<br />

(qa, a) → {qF }<br />

Finite tree automata:<br />

top-down, bottom-up, n<strong>on</strong>deterministic, deterministic,<br />

regular tree-languages,<br />

closed wrt ∪, ∩, ¯, ...<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 53 /<br />

89


More <strong>on</strong> tree unfoldings<br />

Unfolding <str<strong>on</strong>g>of</str<strong>on</strong>g> a graph (<str<strong>on</strong>g>with</str<strong>on</strong>g>out dead-ends) ... an infinite tree<br />

binary tree ... { ε, 0, 1, 00, 01, 10, 11, . . . }<br />

ɛ<br />

0 1<br />

00 01 10 11<br />

Theory S2S (two successors) ... s1(u, u0), s2(u, u1)<br />

φ ::= P(x) | x ∈ X | s1(x, y) | s2(x, y) |<br />

¬φ | φ1 ∧ φ2 | ∃xφ | ∃X φ<br />

x −→ ∗ y ... expressible in S2S (but not in first order)<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 54 /<br />

89


Decidability <str<strong>on</strong>g>of</str<strong>on</strong>g> S2S<br />

A tree t (whose vertices are) labelled by elements <str<strong>on</strong>g>of</str<strong>on</strong>g> 2 {P1,P2,...,Pn}<br />

t |=V φ<br />

t |= φ for closed φ<br />

|= φ ... φ valid (¬φ unsatisfiable)<br />

M. Rabin (late 1960s): Büchi-like tree automat<strong>on</strong>;<br />

not closed wrt complementati<strong>on</strong><br />

more powerful Rabin (tree) automata closed wrt ∪, ∩, and ¯<br />

(complementati<strong>on</strong> difficult)<br />

(No hope for determinizati<strong>on</strong>: T ∃a )<br />

|= Φ iff T (A¬Φ) = ∅<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 55 /<br />

89


µ-calculus<br />

Kozen, Pratt (1980s)<br />

Bradfield, Emers<strong>on</strong>, Stirling, Vardi, Walukiewicz, ...<br />

µ-calculus ... modal logic <str<strong>on</strong>g>with</str<strong>on</strong>g> fixpoints<br />

φ ::= P | X | ¬φ | φ1 ∧ φ2 | 〈a〉φ | µX .φ<br />

each X in the scope <str<strong>on</strong>g>of</str<strong>on</strong>g> an even number <str<strong>on</strong>g>of</str<strong>on</strong>g> negati<strong>on</strong>s<br />

Examples:<br />

µX .P ∨ 〈−〉X (reaches P (in finitely many steps))<br />

νX .〈a〉X (can perform a forever)<br />

An interesting problem:<br />

model checking µ-calculus (K, s |= Φ)<br />

in NP ∩ co-NP<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 56 /<br />

89


Parity games (in NP and co-NP)<br />

n<br />

7<br />

6<br />

5<br />

4<br />

3<br />

2<br />

1<br />

.<br />

“A lift game for 2 players”<br />

(a directed graph <str<strong>on</strong>g>with</str<strong>on</strong>g> ordered nodes;<br />

the nodes are partiti<strong>on</strong>ed into red and blue;<br />

each node has out-degree ≥ 1 )<br />

in red nodes (floors), player RED chooses the next<br />

node (floor)<br />

in blue nodes (floors), player BLUE chooses the<br />

next node (floor)<br />

The player winning an infinite play is determined by<br />

the colour <str<strong>on</strong>g>of</str<strong>on</strong>g> the lowest node (floor) visited<br />

infinitely <str<strong>on</strong>g>of</str<strong>on</strong>g>ten<br />

Who has a winning strategy where ?<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 57 /<br />

89


Specificati<strong>on</strong>; process algebras<br />

Operati<strong>on</strong>al semantics <str<strong>on</strong>g>of</str<strong>on</strong>g> some process c<strong>on</strong>structs<br />

Acti<strong>on</strong> Prefix: a.E<br />

✿✿✿✿✿✿✿✿✿✿✿✿✿✿<br />

Choice: E + F<br />

✿✿✿✿✿✿✿<br />

✓<br />

E a → E ′<br />

✒E<br />

+ F a → E ′<br />

✓<br />

✞ ☎<br />

✝a.E<br />

✆<br />

a → E<br />

�<br />

{Ei : i ∈ I }<br />

✏<br />

✑<br />

Ej a → F<br />

�<br />

{Ei : i ∈ I }<br />

✒<br />

a → F<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

✓<br />

F a → F ′<br />

✒E<br />

+ F a → F ′<br />

(j ∈ I )<br />

✏<br />

✑<br />

✏<br />

✑<br />

Kolloquium Jena, 14 May 2007 58 /<br />

89


Process algebras - c<strong>on</strong>t.<br />

def<br />

Nil: 0 = � ∅<br />

✿✿✿<br />

Process Definiti<strong>on</strong>: X ✿✿✿✿✿✿✿✿✿✿✿✿✿✿✿✿✿✿✿✿<br />

def<br />

= E<br />

✓<br />

✞<br />

☎<br />

✝No<br />

transiti<strong>on</strong>s for 0 — no rules ✆<br />

E a → F<br />

✒X<br />

a → F<br />

(X def<br />

= E)<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

✏<br />

✑<br />

Kolloquium Jena, 14 May 2007 59 /<br />

89


Synchr<strong>on</strong>isati<strong>on</strong> Merge<br />

✓<br />

E a → E ′<br />

E||F<br />

✒<br />

a → E ′ ||F<br />

✓<br />

(a �∈ L(F ))<br />

✏<br />

✑<br />

E a → E ′ F a → F ′<br />

✒<br />

E||F a → E ′ ||F ′<br />

✓<br />

F a → F ′<br />

E||F<br />

✒<br />

a → E||F ′<br />

A process E is equipped <str<strong>on</strong>g>with</str<strong>on</strong>g> an associated<br />

synchr<strong>on</strong>isati<strong>on</strong> sort L(E).<br />

✿✿✿✿✿✿✿✿✿✿✿✿✿✿✿✿✿✿✿✿✿✿<br />

C<strong>on</strong>current processes must synchr<strong>on</strong>ise <strong>on</strong><br />

acti<strong>on</strong>s comm<strong>on</strong> to their respective sorts.<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

(a ∈ L(E) ∩ L(F ))<br />

(a �∈ L(E))<br />

✏<br />

✑<br />

✏<br />

✑<br />

Kolloquium Jena, 14 May 2007 60 /<br />

89


Example: a railway level crossing (from Far<strong>on</strong> Moller)<br />

Rail<br />

tcross train<br />

car<br />

up<br />

down<br />

Road<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

ccross<br />

green<br />

red<br />

Kolloquium Jena, 14 May 2007 61 /<br />

89


Railway Comp<strong>on</strong>ents<br />

Road<br />

Rail<br />

down<br />

red<br />

car<br />

ccross<br />

train<br />

tcross<br />

✞<br />

✝<br />

✞<br />

Road def<br />

✝<br />

up<br />

Rail def<br />

green<br />

☎<br />

= car.up.ccross.down.Road<br />

✆<br />

�<br />

L(Road) = car, ccross,<br />

�<br />

up, down<br />

☎<br />

= train.green.tcross.red.Rail<br />

✆<br />

�<br />

L(Rail) = train, tcross,<br />

�<br />

green, red<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 62 /<br />

89


Railway Comp<strong>on</strong>ents - c<strong>on</strong>t.<br />

C<strong>on</strong>troller<br />

green<br />

down<br />

red<br />

up<br />

✎<br />

C<strong>on</strong>troller def<br />

✍<br />

L(C<strong>on</strong>troller) =<br />

= green.red.C<strong>on</strong>troller<br />

+ up.down.C<strong>on</strong>troller<br />

�<br />

green, red,<br />

�<br />

up, down<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

☞<br />

✌<br />

Kolloquium Jena, 14 May 2007 63 /<br />

89


The Complete Railway System<br />

✞<br />

Crossing def<br />

✝<br />

up<br />

☎<br />

= Road || C<strong>on</strong>troller || Rail<br />

✆<br />

Road C<strong>on</strong>troller Rail<br />

down<br />

down<br />

ccross up car<br />

train<br />

train<br />

train<br />

Crossing<br />

ccross up car<br />

down<br />

train<br />

green<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

red<br />

green<br />

car<br />

tcross<br />

red<br />

green<br />

red<br />

tcross<br />

car<br />

Kolloquium Jena, 14 May 2007 64 /<br />

89


Behavioural equivalences and preorders; simulati<strong>on</strong><br />

Does a system implement another <strong>on</strong>e ? Are they equivalent ?<br />

(system = labelled transiti<strong>on</strong> system)<br />

Language (trace) equivalence is <str<strong>on</strong>g>of</str<strong>on</strong>g>ten too coarse<br />

c<str<strong>on</strong>g>of</str<strong>on</strong>g>fee<br />

•<br />

coin coin<br />

•<br />

•<br />

tea<br />

• •<br />

• •<br />

A binary relati<strong>on</strong> R over STATES is a simulati<strong>on</strong> if<br />

whenever (s, t) ∈ R then for every acti<strong>on</strong> a<br />

if s<br />

•<br />

coin<br />

•<br />

c<str<strong>on</strong>g>of</str<strong>on</strong>g>fee tea<br />

a<br />

−→ s ′ a<br />

then t −→ t ′ for some t ′ such that (s ′ , t ′ ) ∈ R.<br />

s is simulated by t if there is a simulati<strong>on</strong> R ∋ (s, t).<br />

The uni<strong>on</strong> <str<strong>on</strong>g>of</str<strong>on</strong>g> (all) simulati<strong>on</strong>s is the (maximal) simulati<strong>on</strong><br />

(the greatest fixpoint)<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 65 /<br />

89


Bisimulati<strong>on</strong> equivalence<br />

Milner, Park (1980s)<br />

A binary relati<strong>on</strong> R over STATES is a bisimulati<strong>on</strong> if<br />

it is a symmetric simulati<strong>on</strong>, i.e.<br />

whenever (s, t) ∈ R then for every acti<strong>on</strong> a<br />

if s<br />

a<br />

−→ s ′ a<br />

then t −→ t ′ for some t ′ such that (s ′ , t ′ ) ∈ R.<br />

whenever (s, t) ∈ R then for every acti<strong>on</strong> a<br />

if t<br />

a<br />

−→ t ′ a<br />

then s −→ s ′ for some s ′ such that (s ′ , t ′ ) ∈ R.<br />

s is bisimilar <str<strong>on</strong>g>with</str<strong>on</strong>g> t if there is a bisimulati<strong>on</strong> R ∋ (s, t).<br />

The uni<strong>on</strong> <str<strong>on</strong>g>of</str<strong>on</strong>g> (all) bisimulati<strong>on</strong>s is the (maximal) bisimulati<strong>on</strong><br />

(the bisimulati<strong>on</strong> equivalence).<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 66 /<br />

89


Linear Time / Branching Time Spectrum<br />

Bisimulati<strong>on</strong> equivalence<br />

2-nested simulati<strong>on</strong> equivalence<br />

Ready simulati<strong>on</strong> equivalence<br />

Possible-futures equivalence Ready trace equivalence<br />

Readiness equivalence Failure trace equivalence<br />

Failures equivalence<br />

Completed trace equivalence<br />

Trace equivalence<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Simulati<strong>on</strong> equivalence<br />

Kolloquium Jena, 14 May 2007 67 /<br />

89


Minsky counter machines<br />

A Minsky counter machine C is given by<br />

a fixed number <str<strong>on</strong>g>of</str<strong>on</strong>g> (n<strong>on</strong>negative integer) counters c1, c2, . . . , cm<br />

a program (in fact, a set <str<strong>on</strong>g>of</str<strong>on</strong>g> labelled instructi<strong>on</strong>s)<br />

1 : com1; 2 : com2; ...... ; n : comn , where<br />

comn is instructi<strong>on</strong> HALT<br />

comi (i = 1, 2, ..., n − 1) are commands <str<strong>on</strong>g>of</str<strong>on</strong>g> two types:<br />

cj := cj + 1; goto k<br />

if cj = 0 then goto k1 else (cj := cj − 1; goto k2)<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 68 /<br />

89


Undecidability <str<strong>on</strong>g>of</str<strong>on</strong>g> behavioural equivalences for Petri nets<br />

Fact.<br />

It is undecidable if a 2-counter machine C halts <strong>on</strong> the zero input (i.e.,<br />

when starting <str<strong>on</strong>g>with</str<strong>on</strong>g> c1 = c2 = 0).<br />

Jančar 1994: an algorithm A<br />

so that<br />

C −→ A −→ N C 1 , NC 2<br />

if C halts (<strong>on</strong> zero input) then the behaviours <str<strong>on</strong>g>of</str<strong>on</strong>g> N C 1 , NC 2 differ<br />

‘drastically’ (<strong>on</strong>e can perform a trace which the other cannot)<br />

if C does not halt then the behaviours <str<strong>on</strong>g>of</str<strong>on</strong>g> N C 1 , NC 2<br />

in a strict sense (the nets are bisimilar)<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

are the same<br />

Kolloquium Jena, 14 May 2007 69 /<br />

89


Reducti<strong>on</strong> <str<strong>on</strong>g>of</str<strong>on</strong>g> halting problem to Petri net equivalences<br />

c2 s1 s2 s3 s4 s5 sn<br />

c1<br />

•<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

s6<br />

. . .<br />

Kolloquium Jena, 14 May 2007 70 /<br />

89


Reducti<strong>on</strong> <str<strong>on</strong>g>of</str<strong>on</strong>g> halting problem to Petri net equivalences<br />

c2 s1 s2 s3 s4 s5 sn<br />

c1<br />

•<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

s6<br />

. . .<br />

Kolloquium Jena, 14 May 2007 70 /<br />

89


Reducti<strong>on</strong> <str<strong>on</strong>g>of</str<strong>on</strong>g> halting problem to Petri net equivalences<br />

•<br />

c2 s1 s2 s3 s4 s5 sn<br />

• . . .<br />

c1<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

s6<br />

Kolloquium Jena, 14 May 2007 70 /<br />

89


Reducti<strong>on</strong> <str<strong>on</strong>g>of</str<strong>on</strong>g> halting problem to Petri net equivalences<br />

c2 s1 s2 s3 s4 s5 sn<br />

•<br />

c1<br />

•<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

s6<br />

. . .<br />

Kolloquium Jena, 14 May 2007 70 /<br />

89


Reducti<strong>on</strong> <str<strong>on</strong>g>of</str<strong>on</strong>g> halting problem to Petri net equivalences<br />

c2 s1 s2 s3 s4 s5 sn<br />

•<br />

c1<br />

•<br />

+<br />

+<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

s6<br />

. . .<br />

Kolloquium Jena, 14 May 2007 70 /<br />

89


Reducti<strong>on</strong> <str<strong>on</strong>g>of</str<strong>on</strong>g> halting problem to Petri net equivalences<br />

c2 s1 s2 s3 s4 s5 sn<br />

c1<br />

•<br />

+ +<br />

+ +<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

s6<br />

. . .<br />

Kolloquium Jena, 14 May 2007 70 /<br />

89


Reducti<strong>on</strong> <str<strong>on</strong>g>of</str<strong>on</strong>g> halting problem to Petri net equivalences<br />

c2 s1 s2 s3 s4 s5 sn<br />

c1<br />

•<br />

+ +<br />

+ +<br />

p2<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

s6<br />

. . .<br />

p1<br />

Kolloquium Jena, 14 May 2007 70 /<br />

89


Reducti<strong>on</strong> <str<strong>on</strong>g>of</str<strong>on</strong>g> halting problem to Petri net equivalences<br />

c2 s1 s2 s3 s4 s5 sn<br />

c1<br />

•<br />

+ +<br />

+ +<br />

p2<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

s6<br />

. . .<br />

•<br />

p1<br />

Kolloquium Jena, 14 May 2007 70 /<br />

89


Reducti<strong>on</strong> - c<strong>on</strong>t.<br />

•<br />

•<br />

.<br />

• •<br />

• •<br />

• • • •<br />

• •<br />

• •<br />

• • • •<br />

• •<br />

• •<br />

• •<br />

• •<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

•<br />

•<br />

Kolloquium Jena, 14 May 2007 71 /<br />

89<br />

•<br />

.


Simulati<strong>on</strong> <strong>on</strong> <strong>on</strong>e-counter nets - semilinear<br />

p(m) is not simulated by q(n) ... red<br />

p(m) is simulated by q(n) ... black<br />

• • • • • • • • •<br />

n • • • • • • • • •<br />

. • • • • • • • • •<br />

• • • • • • • • •<br />

1 • • • • • • • • •<br />

0 • • • • • • • • •<br />

0 1 2 . . . m<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

??<br />

Kolloquium Jena, 14 May 2007 72 /<br />

89


Bisimilarity over ‘c<strong>on</strong>text-free’ processes decidable<br />

C<strong>on</strong>text-free grammar (in Greibach NF)<br />

finitely many rules <str<strong>on</strong>g>of</str<strong>on</strong>g> the type A1 → aB1B2 . . . Bk<br />

Processes BPA (sequential)<br />

A1A2 . . . An<br />

a<br />

b<br />

B1B2 . . . BkA2 . . . An<br />

a a b<br />

. . .<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Processes BPP (parallel)<br />

A1<br />

a<br />

B1B2 . . . Bk<br />

Christensen, Hirshfeld, Moller (1993)<br />

decidable (n<strong>on</strong>primitive recursive<br />

upper bound)<br />

Srba (2002) PSPACE-hard<br />

Jančar (2003) PSPACE-complete<br />

Kolloquium Jena, 14 May 2007 73 /<br />

89


DPDA language equivalence, PDA <strong>bisimilarity</strong><br />

G. Sénizergues (1997, 2001)<br />

The language equivalence problem for deterministic pushdown automata is<br />

decidable<br />

C. Stirling (2002)<br />

Simplified the pro<str<strong>on</strong>g>of</str<strong>on</strong>g> substantially, and showed that it is primitive recursive<br />

———————————–<br />

G. Sénizergues (1998, 2005)<br />

Decidability <str<strong>on</strong>g>of</str<strong>on</strong>g> bisimulati<strong>on</strong> equivalence for equati<strong>on</strong>al graphs <str<strong>on</strong>g>of</str<strong>on</strong>g> finite<br />

out-degree.<br />

———————————–<br />

An open problem (a possible extensi<strong>on</strong> to Type -1 systems) solved<br />

negatively:<br />

Jančar, Srba: Undecidability results for <strong>bisimilarity</strong> <strong>on</strong> prefix rewrite<br />

systems (FoSSaCS 2006)<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 74 /<br />

89


Bisimulati<strong>on</strong> game<br />

2 Players: Attacker and Defender<br />

Game board: a labelled transiti<strong>on</strong> system<br />

Rules for playing from an initial positi<strong>on</strong> (s0, t0):<br />

REPEAT<br />

in the current positi<strong>on</strong> (s, t)<br />

Attacker performs a move from <strong>on</strong>e <str<strong>on</strong>g>of</str<strong>on</strong>g> the states s, t<br />

a<br />

(either s −→ s ′ a<br />

or t −→ t ′ ); if not possible, Defender has w<strong>on</strong>.<br />

Defender resp<strong>on</strong>ds by a move from the other state, labelled by the<br />

same acti<strong>on</strong> a; thus a new positi<strong>on</strong> (s ′ , t ′ ) arises.<br />

If Defender cannot resp<strong>on</strong>d, Attacker has w<strong>on</strong>.<br />

Any infinite play is viewed as Defender’s winning.<br />

Fact: s0 ∼ t0 iff Defender has a winning strategy from (s0, t0).<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 75 /<br />

89


Pushdown graphs; generated by Type 0 systems<br />

pX<br />

pX<br />

qA<br />

pX<br />

c<br />

b<br />

−→ pXA<br />

c<br />

−→ qε<br />

a<br />

−→ qε<br />

b<br />

pXA<br />

q qA<br />

a<br />

c<br />

b<br />

pXAA<br />

c<br />

qAA<br />

Type 0 system: finite sets <str<strong>on</strong>g>of</str<strong>on</strong>g> rules w1<br />

(the same class <str<strong>on</strong>g>of</str<strong>on</strong>g> generated graphs)<br />

a<br />

b<br />

a<br />

a<br />

−→ w2<br />

An involved result: Bisimilarity is decidable<br />

(Sénizergues (1998,2005), then Stirling)<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

pXAAA<br />

c<br />

qAAA<br />

b<br />

a<br />

. . .<br />

. . .<br />

Kolloquium Jena, 14 May 2007 76 /<br />

89


Type -1 systems; rules R a → w<br />

X<br />

XA∗ A<br />

c<br />

X<br />

b<br />

−→ XA<br />

c<br />

−→ ε<br />

a<br />

−→ ε<br />

c<br />

b<br />

XA<br />

ε A<br />

a<br />

b<br />

a<br />

XAA<br />

AA<br />

b<br />

a<br />

c<br />

XAAA<br />

c<br />

AAA<br />

Stirling, Sénizergues: is <strong>bisimilarity</strong> decidable ?<br />

Sénizergues’ decidability result for equati<strong>on</strong>al graphs <str<strong>on</strong>g>of</str<strong>on</strong>g> finite out-degree<br />

(equivalent to the case R a<br />

−→ w <str<strong>on</strong>g>with</str<strong>on</strong>g> prefix-free R)<br />

Maybe in the normed case ?<br />

(u is normed if each path from u can be prol<strong>on</strong>ged to reach ε)<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

b<br />

a<br />

. . .<br />

. . .<br />

Kolloquium Jena, 14 May 2007 77 /<br />

89


Hierarchy <str<strong>on</strong>g>of</str<strong>on</strong>g> prefix rewriting<br />

Type Form <str<strong>on</strong>g>of</str<strong>on</strong>g> Rewrite Rules<br />

Type -2 R1<br />

a<br />

−→ R2<br />

Type -1a/-1b R a<br />

−→ w / w a<br />

−→ R<br />

Type 0 w a<br />

−→ w ′<br />

Type 1 1<br />

2 pX a<br />

Type 2<br />

−→ qw<br />

X a<br />

−→ w<br />

Type 3 X a<br />

−→ Y , X a<br />

−→ ε<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Type -2<br />

Type -1a Type -1b<br />

Type 0 = Type 1 1<br />

2<br />

Type 2<br />

Type 3<br />

Kolloquium Jena, 14 May 2007 78 /<br />

89


Our results<br />

Normed Processes Unnormed Processes<br />

Type -2<br />

Type -1b<br />

Type -1a<br />

Type 0, and decidable decidable<br />

Type 1 1<br />

2<br />

Type 2<br />

EXPTIME-hard<br />

∈ P<br />

EXPTIME-hard<br />

∈ 2-EXPTIME (?)<br />

P-hard PSPACE-hard<br />

Type 3 P-complete P-complete<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 79 /<br />

89


Our results<br />

Normed Processes Unnormed Processes<br />

Type -2 Σ 1 1 -complete Σ1 1 -complete<br />

Type -1b Π 0 1 -complete Σ1 1 -complete<br />

Type -1a Π 0 1 -complete Π0 1 -complete<br />

Type 0, and decidable decidable<br />

Type 1 1<br />

2 EXPTIME-hard EXPTIME-hard<br />

Type 2 ∈ P ∈ 2-EXPTIME (?)<br />

P-hard PSPACE-hard<br />

Type 3 P-complete P-complete<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 79 /<br />

89


Our results<br />

Normed Processes Unnormed Processes<br />

Type -2 Σ 1 1 -complete Σ1 1 -complete<br />

Type -1b Π 0 1 -complete Σ1 1 -complete<br />

Type -1a Π 0 1 -complete Π0 1 -complete<br />

Type 0, and decidable decidable<br />

Type 1 1<br />

2 EXPTIME-hard EXPTIME-hard<br />

Type 2 ∈ P ∈ 2-EXPTIME (?)<br />

P-hard PSPACE-hard<br />

Type 3 P-complete P-complete<br />

The main new result: Bisimilarity is undecidable <strong>on</strong> Type -1a systems.<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 79 /<br />

89


Inf-PCP (a versi<strong>on</strong> <str<strong>on</strong>g>of</str<strong>on</strong>g> Post Corresp<strong>on</strong>dence Problem)<br />

A PCP-instance :<br />

u1 u2 . . . un<br />

v1 v2 . . . vn<br />

ui, vi : n<strong>on</strong>empty words in an alphabet<br />

An infinite initial soluti<strong>on</strong>: a sequence i1, i2, i3, . . . from {1, 2, . . . , n} such<br />

that i1=1 and ui1ui2 ui3ui4 · · · = vi1vi2 vi3vi4 · · ·<br />

Given a Turing machine M, <str<strong>on</strong>g>with</str<strong>on</strong>g> instructi<strong>on</strong>s (q0, a) → (q1, b, +1), . . . ,<br />

and an input word, say w = aabab, we can c<strong>on</strong>struct PCP-instance so<br />

that: M does not halt <strong>on</strong> w ⇐⇒ there is an infinite initial soluti<strong>on</strong>.<br />

# q0a . . . a b . . .<br />

#q0aabab# bq1 . . . a b . . .<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 80 /<br />

89


Inf-PCP (a versi<strong>on</strong> <str<strong>on</strong>g>of</str<strong>on</strong>g> Post Corresp<strong>on</strong>dence Problem)<br />

A PCP-instance :<br />

u1 u2 . . . un<br />

v1 v2 . . . vn<br />

ui, vi : n<strong>on</strong>empty words in an alphabet<br />

An infinite initial soluti<strong>on</strong>: a sequence i1, i2, i3, . . . from {1, 2, . . . , n} such<br />

that i1=1 and ui1ui2 ui3ui4 · · · = vi1vi2 vi3vi4 · · ·<br />

Given a Turing machine M, <str<strong>on</strong>g>with</str<strong>on</strong>g> instructi<strong>on</strong>s (q0, a) → (q1, b, +1), . . . ,<br />

and an input word, say w = aabab, we can c<strong>on</strong>struct PCP-instance so<br />

that: M does not halt <strong>on</strong> w ⇐⇒ there is an infinite initial soluti<strong>on</strong>.<br />

# q0a . . . a b . . .<br />

#q0aabab# bq1 . . . a b . . .<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 80 /<br />

89


Inf-PCP (a versi<strong>on</strong> <str<strong>on</strong>g>of</str<strong>on</strong>g> Post Corresp<strong>on</strong>dence Problem)<br />

A PCP-instance :<br />

u1 u2 . . . un<br />

v1 v2 . . . vn<br />

ui, vi : n<strong>on</strong>empty words in an alphabet<br />

An infinite initial soluti<strong>on</strong>: a sequence i1, i2, i3, . . . from {1, 2, . . . , n} such<br />

that i1=1 and ui1ui2 ui3ui4 · · · = vi1vi2 vi3vi4 · · ·<br />

Given a Turing machine M, <str<strong>on</strong>g>with</str<strong>on</strong>g> instructi<strong>on</strong>s (q0, a) → (q1, b, +1), . . . ,<br />

and an input word, say w = aabab, we can c<strong>on</strong>struct PCP-instance so<br />

that: M does not halt <strong>on</strong> w ⇐⇒ there is an infinite initial soluti<strong>on</strong>.<br />

# q0a . . . a b . . .<br />

#q0aabab# bq1 . . . a b . . .<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 80 /<br />

89


Inf-PCP (a versi<strong>on</strong> <str<strong>on</strong>g>of</str<strong>on</strong>g> Post Corresp<strong>on</strong>dence Problem)<br />

A PCP-instance :<br />

u1 u2 . . . un<br />

v1 v2 . . . vn<br />

ui, vi : n<strong>on</strong>empty words in an alphabet<br />

An infinite initial soluti<strong>on</strong>: a sequence i1, i2, i3, . . . from {1, 2, . . . , n} such<br />

that i1=1 and ui1ui2 ui3ui4 · · · = vi1vi2 vi3vi4 · · ·<br />

Given a Turing machine M, <str<strong>on</strong>g>with</str<strong>on</strong>g> instructi<strong>on</strong>s (q0, a) → (q1, b, +1), . . . ,<br />

and an input word, say w = aabab, we can c<strong>on</strong>struct PCP-instance so<br />

that: M does not halt <strong>on</strong> w ⇐⇒ there is an infinite initial soluti<strong>on</strong>.<br />

# q0a . . . a b . . .<br />

#q0aabab# bq1 . . . a b . . .<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 80 /<br />

89


Inf-PCP (a versi<strong>on</strong> <str<strong>on</strong>g>of</str<strong>on</strong>g> Post Corresp<strong>on</strong>dence Problem)<br />

A PCP-instance :<br />

u1 u2 . . . un<br />

v1 v2 . . . vn<br />

ui, vi : n<strong>on</strong>empty words in an alphabet<br />

An infinite initial soluti<strong>on</strong>: a sequence i1, i2, i3, . . . from {1, 2, . . . , n} such<br />

that i1=1 and ui1ui2 ui3ui4 · · · = vi1vi2 vi3vi4 · · ·<br />

Given a Turing machine M, <str<strong>on</strong>g>with</str<strong>on</strong>g> instructi<strong>on</strong>s (q0, a) → (q1, b, +1), . . . ,<br />

and an input word, say w = aabab, we can c<strong>on</strong>struct PCP-instance so<br />

that: M does not halt <strong>on</strong> w ⇐⇒ there is an infinite initial soluti<strong>on</strong>.<br />

# q0a . . . a b . . .<br />

#q0aabab# bq1 . . . a b . . .<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

#<br />

#q0aabab#<br />

Kolloquium Jena, 14 May 2007 80 /<br />

89


Inf-PCP (a versi<strong>on</strong> <str<strong>on</strong>g>of</str<strong>on</strong>g> Post Corresp<strong>on</strong>dence Problem)<br />

A PCP-instance :<br />

u1 u2 . . . un<br />

v1 v2 . . . vn<br />

ui, vi : n<strong>on</strong>empty words in an alphabet<br />

An infinite initial soluti<strong>on</strong>: a sequence i1, i2, i3, . . . from {1, 2, . . . , n} such<br />

that i1=1 and ui1ui2 ui3ui4 · · · = vi1vi2 vi3vi4 · · ·<br />

Given a Turing machine M, <str<strong>on</strong>g>with</str<strong>on</strong>g> instructi<strong>on</strong>s (q0, a) → (q1, b, +1), . . . ,<br />

and an input word, say w = aabab, we can c<strong>on</strong>struct PCP-instance so<br />

that: M does not halt <strong>on</strong> w ⇐⇒ there is an infinite initial soluti<strong>on</strong>.<br />

# q0a . . . a b . . .<br />

#q0aabab# bq1 . . . a b . . .<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

#q0a<br />

#q0aabab#bq1<br />

Kolloquium Jena, 14 May 2007 80 /<br />

89


Inf-PCP (a versi<strong>on</strong> <str<strong>on</strong>g>of</str<strong>on</strong>g> Post Corresp<strong>on</strong>dence Problem)<br />

A PCP-instance :<br />

u1 u2 . . . un<br />

v1 v2 . . . vn<br />

ui, vi : n<strong>on</strong>empty words in an alphabet<br />

An infinite initial soluti<strong>on</strong>: a sequence i1, i2, i3, . . . from {1, 2, . . . , n} such<br />

that i1=1 and ui1ui2 ui3ui4 · · · = vi1vi2 vi3vi4 · · ·<br />

Given a Turing machine M, <str<strong>on</strong>g>with</str<strong>on</strong>g> instructi<strong>on</strong>s (q0, a) → (q1, b, +1), . . . ,<br />

and an input word, say w = aabab, we can c<strong>on</strong>struct PCP-instance so<br />

that: M does not halt <strong>on</strong> w ⇐⇒ there is an infinite initial soluti<strong>on</strong>.<br />

# q0a . . . a b . . .<br />

#q0aabab# bq1 . . . a b . . .<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

#q0aa<br />

#q0aabab#bq1 a<br />

Kolloquium Jena, 14 May 2007 80 /<br />

89


Inf-PCP (a versi<strong>on</strong> <str<strong>on</strong>g>of</str<strong>on</strong>g> Post Corresp<strong>on</strong>dence Problem)<br />

A PCP-instance :<br />

u1 u2 . . . un<br />

v1 v2 . . . vn<br />

ui, vi : n<strong>on</strong>empty words in an alphabet<br />

An infinite initial soluti<strong>on</strong>: a sequence i1, i2, i3, . . . from {1, 2, . . . , n} such<br />

that i1=1 and ui1ui2 ui3ui4 · · · = vi1vi2 vi3vi4 · · ·<br />

Given a Turing machine M, <str<strong>on</strong>g>with</str<strong>on</strong>g> instructi<strong>on</strong>s (q0, a) → (q1, b, +1), . . . ,<br />

and an input word, say w = aabab, we can c<strong>on</strong>struct PCP-instance so<br />

that: M does not halt <strong>on</strong> w ⇐⇒ there is an infinite initial soluti<strong>on</strong>.<br />

# q0a . . . a b . . .<br />

#q0aabab# bq1 . . . a b . . .<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

#q0aa b . . .<br />

#q0aabab#bq1 ab. . .<br />

Kolloquium Jena, 14 May 2007 80 /<br />

89


Inf-PCP (a versi<strong>on</strong> <str<strong>on</strong>g>of</str<strong>on</strong>g> Post Corresp<strong>on</strong>dence Problem)<br />

A PCP-instance :<br />

u1 u2 . . . un<br />

v1 v2 . . . vn<br />

ui, vi : n<strong>on</strong>empty words in an alphabet<br />

An infinite initial soluti<strong>on</strong>: a sequence i1, i2, i3, . . . from {1, 2, . . . , n} such<br />

that i1=1 and ui1ui2 ui3ui4 · · · = vi1vi2 vi3vi4 · · ·<br />

Given a Turing machine M, <str<strong>on</strong>g>with</str<strong>on</strong>g> instructi<strong>on</strong>s (q0, a) → (q1, b, +1), . . . ,<br />

and an input word, say w = aabab, we can c<strong>on</strong>struct PCP-instance so<br />

that: M does not halt <strong>on</strong> w ⇐⇒ there is an infinite initial soluti<strong>on</strong>.<br />

# q0a . . . a b . . .<br />

#q0aabab# bq1 . . . a b . . .<br />

#q0aa b . . .<br />

#q0aabab#bq1 ab. . .<br />

So neg-HP is reducible to inf-PCP; inf-PCP is Π 0 1 -complete.<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 80 /<br />

89


Inf-PCP (a versi<strong>on</strong> <str<strong>on</strong>g>of</str<strong>on</strong>g> Post Corresp<strong>on</strong>dence Problem)<br />

A PCP-instance :<br />

u1 u2 . . . un<br />

v1 v2 . . . vn<br />

ui, vi : n<strong>on</strong>empty words in an alphabet<br />

An infinite initial soluti<strong>on</strong>: a sequence i1, i2, i3, . . . from {1, 2, . . . , n} such<br />

that i1=1 and ui1ui2 ui3ui4 · · · = vi1vi2 vi3vi4 · · ·<br />

Given a Turing machine M, <str<strong>on</strong>g>with</str<strong>on</strong>g> instructi<strong>on</strong>s (q0, a) → (q1, b, +1), . . . ,<br />

and an input word, say w = aabab, we can c<strong>on</strong>struct PCP-instance so<br />

that: M does not halt <strong>on</strong> w ⇐⇒ there is an infinite initial soluti<strong>on</strong>.<br />

# q0a . . . a b . . .<br />

#q0aabab# bq1 . . . a b . . .<br />

#q0aa b . . .<br />

#q0aabab#bq1 ab. . .<br />

So neg-HP is reducible to inf-PCP; inf-PCP is Π 0 1 -complete.<br />

Note: we can even require |ui| ≤ |vi|<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 80 /<br />

89


Inf-PCP is reducible to <strong>bisimilarity</strong> <strong>on</strong> (normed) Type -1a<br />

u1 u2 . . . un<br />

v1 v2 . . . vn<br />

ui, vi ∈ {A, B} + , |ui| ≤ |vi|<br />

Observati<strong>on</strong>: The following c<strong>on</strong>diti<strong>on</strong>s are equivalent<br />

ui1ui2 ui3 · · · = vi1vi2 vi3 · · ·<br />

∀m: ui1ui2 · · · uim is a prefix <str<strong>on</strong>g>of</str<strong>on</strong>g> vi1vi2 · · · vim<br />

∀m: (ui1ui2 · · · uim) R is a suffix <str<strong>on</strong>g>of</str<strong>on</strong>g> (vi1vi2 · · · vim) R<br />

∀m: (uim) R (uim−1 )R · · · (ui1 )R is a suffix <str<strong>on</strong>g>of</str<strong>on</strong>g> (vim) R (vim−1 )R · · · (vi1 )R<br />

A game: Defender stepwise generates a sequence<br />

. . . Iim . . . Ii3Ii2 Ii1 (<str<strong>on</strong>g>with</str<strong>on</strong>g><br />

i1 = 1)<br />

Attacker has a possibility to stop this process and win whenever<br />

(uim) R (uim−1 )R · · · (ui1 )R is not a suffix <str<strong>on</strong>g>of</str<strong>on</strong>g> (vim) R (vim−1 )R · · · (vi1 )R<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 81 /<br />

89


Implementati<strong>on</strong> <str<strong>on</strong>g>of</str<strong>on</strong>g> the game; generating rules<br />

X c<br />

−→ Y<br />

X c<br />

−→ Yi X ′ c<br />

−→ Yi<br />

Yi<br />

i<br />

−→ X ′ Ii<br />

Y i<br />

−→ XIi<br />

XI1 ⊥<br />

Yi<br />

c c<br />

j<br />

−→ XIj<br />

YI1 ⊥ . . . Y8I1 ⊥ . . .<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

for all i ∈ {1, 2, . . . , n}<br />

for all i ∈ {1, 2, . . . , n}<br />

for all i, j ∈ {1, 2, . . . , n}, i �= j<br />

X ′ I1 ⊥<br />

c<br />

. . . Y8I1 ⊥ . . .<br />

Kolloquium Jena, 14 May 2007 82 /<br />

89


Implementati<strong>on</strong> <str<strong>on</strong>g>of</str<strong>on</strong>g> the game; generating rules<br />

X c<br />

−→ Y<br />

X c<br />

−→ Yi X ′ c<br />

−→ Yi<br />

Yi<br />

i<br />

−→ X ′ Ii<br />

Y i<br />

−→ XIi<br />

YI1 ⊥<br />

XI1 ⊥<br />

Yi<br />

c c<br />

5<br />

j<br />

−→ XIj<br />

. . . Y8I1 ⊥ . . .<br />

8<br />

. . . XI5I1 ⊥ . . . XI8I1 ⊥<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

for all i ∈ {1, 2, . . . , n}<br />

for all i ∈ {1, 2, . . . , n}<br />

for all i, j ∈ {1, 2, . . . , n}, i �= j<br />

X ′ I1 ⊥<br />

c<br />

. . . Y8I1 ⊥<br />

5 8<br />

. . .<br />

XI5I1 ⊥ . . . X ′ I8I1 ⊥<br />

Kolloquium Jena, 14 May 2007 82 /<br />

89


Implementati<strong>on</strong> <str<strong>on</strong>g>of</str<strong>on</strong>g> the game; generating rules<br />

X c<br />

−→ Y<br />

X c<br />

−→ Yi X ′ c<br />

−→ Yi<br />

Yi<br />

i<br />

−→ X ′ Ii<br />

Y i<br />

−→ XIi<br />

YI1 ⊥<br />

XI1 ⊥<br />

Yi<br />

c c<br />

5<br />

j<br />

−→ XIj<br />

. . . Y8I1 ⊥ . . .<br />

8<br />

. . . XI5I1 ⊥ . . . XI8I1 ⊥<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

for all i ∈ {1, 2, . . . , n}<br />

for all i ∈ {1, 2, . . . , n}<br />

for all i, j ∈ {1, 2, . . . , n}, i �= j<br />

X ′ I1 ⊥<br />

c<br />

. . . Y8I1 ⊥<br />

5 8<br />

. . .<br />

XI5I1 ⊥ . . . X ′ I8I1 ⊥<br />

Kolloquium Jena, 14 May 2007 82 /<br />

89


Switch-to-checking rules<br />

XI7I15I3I8I1 ⊥ X ′ I7I15I3I8I1 ⊥<br />

(ui7 )R (ui15 )R (ui3 )R (ui8 )R (ui1 )R (vi7 )R (vi15 )R (vi3 )R (vi8 )R (vi1 )R<br />

X d<br />

−→ C<br />

X (I ∗ )Ii<br />

d<br />

−→ C ′ w X ′ (I ∗ )Ii<br />

Notati<strong>on</strong>: I ∗ stands for (I1 + I2 + · · · + In) ∗ ;<br />

XI7I15I3I8I1 ⊥<br />

d<br />

d<br />

−→ C ′ w for all i ∈ {1, 2, . . . , n}<br />

and all suffices w <str<strong>on</strong>g>of</str<strong>on</strong>g> v R<br />

i<br />

X ′ I7I15I3I8I1 ⊥<br />

CI7I15I3I8I1 ⊥ C ′ wI8I1 ⊥<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

d<br />

Kolloquium Jena, 14 May 2007 83 /<br />

89


Checking rules<br />

CI7I15I3I8I1 ⊥ C ′ wI8I1 ⊥<br />

We want to guarantee: CI7I15I3I8I1 ⊥ is bisimilar to C ′ wI8I1 ⊥<br />

iff<br />

(ui7 )R (ui15 )R (ui3 )R (ui8 )R (ui1 )R = w(vi8 )R (vi1 )R<br />

CA a<br />

−→ C C ′ A a<br />

−→ C ′<br />

CB b<br />

C⊥ e<br />

CIi<br />

−→ C C ′ B b<br />

−→ C ′<br />

−→ ε C ′ ⊥ e<br />

−→ ε<br />

h(uR i )<br />

−→ C tail(uR i ) C ′ Ii<br />

h(v R<br />

i )<br />

−→ C ′ tail(v R<br />

i )<br />

for all i ∈ {1, 2, . . . , n}<br />

Notati<strong>on</strong>. h(w) = a when head(w) = A, h(w) = b when head(w) = B<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 84 /<br />

89


Summary <str<strong>on</strong>g>of</str<strong>on</strong>g> the reducti<strong>on</strong>: inf-PCP → bisim-Type-1a<br />

u1 u2 . . . un<br />

v1 v2 . . . vn<br />

−→<br />

generating rules<br />

switch-to-checking rules<br />

checking rules<br />

There is an infinite initial soluti<strong>on</strong> ⇐⇒ XI1 ⊥ is bisimilar <str<strong>on</strong>g>with</str<strong>on</strong>g> X ′ I1 ⊥<br />

(Moreover: XI1 ⊥, X ′ I1 ⊥ are normed processes.)<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 85 /<br />

89


Formal methods (formal <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g>) in industry<br />

In reality, mainly simulati<strong>on</strong> and testing,<br />

but the need <str<strong>on</strong>g>of</str<strong>on</strong>g> formal methods is felt more and more widely<br />

(need <str<strong>on</strong>g>of</str<strong>on</strong>g> incorporating them into the s<str<strong>on</strong>g>of</str<strong>on</strong>g>tware engineering technologies)<br />

complex, distributed, parallel hardware and s<str<strong>on</strong>g>of</str<strong>on</strong>g>tware<br />

(e.g. in embedded systems hardware/s<str<strong>on</strong>g>of</str<strong>on</strong>g>tware mixture)<br />

Brief ‘history’ <str<strong>on</strong>g>of</str<strong>on</strong>g> model checking:<br />

1980s (Clarke, Emers<strong>on</strong>, Sifakis, ...)<br />

finite state systems (traffic light c<strong>on</strong>troller)<br />

1990s<br />

MC penetrates the hardware industry (Intel, Motorola, ...)<br />

(also communicati<strong>on</strong> protocols, ...)<br />

2000s<br />

penetrati<strong>on</strong> <str<strong>on</strong>g>of</str<strong>on</strong>g> (infinite state) MC into industry (s<str<strong>on</strong>g>of</str<strong>on</strong>g>tware)<br />

R. Leino (Micros<str<strong>on</strong>g>of</str<strong>on</strong>g>t research, USA) (AVIS 2005),<br />

BLAST (Berkeley lazy abstracti<strong>on</strong> s<str<strong>on</strong>g>of</str<strong>on</strong>g>tware tool), ...<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 86 /<br />

89


Active research areas<br />

specificati<strong>on</strong> formalisms<br />

(oriented <strong>on</strong> the user; graphical toolkits,<br />

interface for theorem provers, ...)<br />

process calculi (π-calculus, mobile agents, security, typing, ...)<br />

coping <str<strong>on</strong>g>with</str<strong>on</strong>g> the state explosi<strong>on</strong><br />

(data domains, recursi<strong>on</strong>, c<strong>on</strong>currency, real time, ...)<br />

reducti<strong>on</strong> (partial order reducti<strong>on</strong>, symmetries [hardware], ...)<br />

encoding (BDD’s, symbolic model checking, ...)<br />

abstracti<strong>on</strong> (data, predicates, c<strong>on</strong>trol ...)<br />

compositi<strong>on</strong>ality<br />

effective algorithms (complexity, decidability)<br />

methods for <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> infinite state systems, parametrized systems<br />

real time systems, hybrid systems, probabilistic systems<br />

heuristics, experiments, ...<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 87 /<br />

89


C<strong>on</strong>ferences<br />

<str<strong>on</strong>g>Some</str<strong>on</strong>g> specialized c<strong>on</strong>ferences in the area <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Tools and algorithms for the c<strong>on</strong>structi<strong>on</strong> and analysis <str<strong>on</strong>g>of</str<strong>on</strong>g> systems (TACAS)<br />

(part <str<strong>on</strong>g>of</str<strong>on</strong>g> European Joint C<strong>on</strong>ferences <strong>on</strong> Theory and Practice <str<strong>on</strong>g>of</str<strong>on</strong>g> S<str<strong>on</strong>g>of</str<strong>on</strong>g>tware<br />

(ETAPS))<br />

(TACAS 2006, 12th Int. C<strong>on</strong>f., March 27-30, Vienna, Austria)<br />

Computer Aided Verificati<strong>on</strong> (CAV)<br />

(CAV 2006, 18th Int. C<strong>on</strong>f., August 16-21, Seattle, Washingt<strong>on</strong>, USA)<br />

C<strong>on</strong>currency theory (C<strong>on</strong>cur)<br />

(C<strong>on</strong>cur 2006, 17th Int. C<strong>on</strong>f., August 27-30, B<strong>on</strong>n, Germany)<br />

Automated Technology for Verificati<strong>on</strong> and Analysis (ATVA)<br />

(ATVA 2006, 4th Int. Symposium, October 23-26, Beijing, China)<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 88 /<br />

89


Textbooks, survey books<br />

<str<strong>on</strong>g>Some</str<strong>on</strong>g> recent survey books <strong>on</strong> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g> (and related topics)<br />

Clarke E. and Grumberg O. and Peled D.<br />

Model checking, MIT Press 1999<br />

Bergstra J. and P<strong>on</strong>se A. and Smolka S.(editors)<br />

Handbook <str<strong>on</strong>g>of</str<strong>on</strong>g> Process Algebra, Elsevier 2001<br />

Bérard B. and others (from LSV ENS Cachan, France)<br />

Systems and S<str<strong>on</strong>g>of</str<strong>on</strong>g>tware Verificati<strong>on</strong>, Springer 2001<br />

Peled D.<br />

S<str<strong>on</strong>g>of</str<strong>on</strong>g>tware reliability methods, Springer 2001<br />

Schneider K.<br />

Verificati<strong>on</strong> <str<strong>on</strong>g>of</str<strong>on</strong>g> reactive systems, Springer 2004<br />

Petr Jančar (TU Ostrava) <str<strong>on</strong>g>Some</str<strong>on</strong>g> <str<strong>on</strong>g>aspects</str<strong>on</strong>g> <str<strong>on</strong>g>of</str<strong>on</strong>g> <str<strong>on</strong>g>verificati<strong>on</strong></str<strong>on</strong>g><br />

Kolloquium Jena, 14 May 2007 89 /<br />

89

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

Saved successfully!

Ooh no, something went wrong!