approaching the coverability problem continuouslyinfo.usherbrooke.ca/mblondin/slides/tacas16.pdf ·...

128
Approaching the Coverability Problem Continuously . Michael Blondin , Alain Finkel, Christoph Haase, Serge Haddad . . . . .

Upload: others

Post on 10-Jan-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Approaching the Coverability Problem Continuously.

Michael Blondin, Alain Finkel, Christoph Haase, Serge Haddad

......

Page 2: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

(Discrete) Petri nets

..

.....

.... 2.

..

..Places .Transitions .

Pre =

(1 20 0

).

Post =

(0 10 1

).Marking

1/12

Page 3: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

(Discrete) Petri nets

..

.....

.... 2.

..

..Places .Transitions .

Pre =

(1 20 0

).

Post =

(0 10 1

).Marking

1/12

Page 4: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

(Discrete) Petri nets

..

.....

.... 2.

..

..Places .Transitions .

Pre =

(1 20 0

).

Post =

(0 10 1

).Marking

1/12

Page 5: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

(Discrete) Petri nets

.

.

...

..

.... 2.

..

..Places .Transitions .

Pre =

(1 20 0

).

Post =

(0 10 1

).Marking

1/12

Page 6: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

(Discrete) Petri nets

.

.

...

..

.... 2.

..

..Places .Transitions .

Pre =

(1 20 0

).

Post =

(0 10 1

).Marking

1/12

Page 7: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

(Discrete) Petri nets

.

....

...... 2

.

..

..Places .Transitions .

Pre =

(1 20 0

).

Post =

(0 10 1

).Marking

1/12

Page 8: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

(Discrete) Petri nets

.

....

...... 2

.

..

..Places .Transitions .

Pre =

(1 20 0

).

Post =

(0 10 1

).Marking

1/12

Page 9: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

(Discrete) Petri nets

..

.....

.... 2

.

..

..Places .Transitions .

Pre =

(1 20 0

).

Post =

(0 10 1

).Marking

1/12

Page 10: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

(Discrete) Petri nets

..

.....

.... 2

.

..

..Places .Transitions .

Pre =

(1 20 0

).

Post =

(0 10 1

).Marking

1/12

Page 11: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

(Discrete) Petri nets

..

.....

.... 2

.

..

..Places .Transitions .

Pre =

(1 20 0

).

Post =

(0 10 1

).Marking

1/12

Page 12: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Verifying safety with Petri nets

...

Process 1

.

..while True:

..

.

x = True..while

.

y: pass..# ..critical section

..

.

x = False

.

..

......

.

....

..

...........

..

.......

..

.

..

..............................................

...

Process 2

.

..while True:.... ..

.

y = True..if

.

x then:..

.

y = False..while

.

x: pass..goto ..

..# ..critical section..

.

y = False

..

Coverability problem

...Processes at both ..⇐⇒

..each .. ..≥ 1..critical sections .. ..≥ 0

..

Lamport mutual exclusion "1-bit algorithm"

2/12

Page 13: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Verifying safety with Petri nets

...

Process 1

.

..while True:

..

.

x = True..while

.

y: pass..# ..critical section

..

.

x = False

.

..

......

.

....

..

...........

..

.......

..

.

..

..............................................

...

Process 2

.

..while True:.... ..

.

y = True..if

.

x then:..

.

y = False..while

.

x: pass..goto ..

..# ..critical section..

.

y = False

..

Coverability problem

...Processes at both ..⇐⇒

..each .. ..≥ 1..critical sections .. ..≥ 0

..

Lamport mutual exclusion "1-bit algorithm"

2/12

Page 14: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Verifying safety with Petri nets

...

Process 1

.

..while True:

..

.

x = True..while

.

y: pass..# ..critical section

..

.

x = False

.

..

......

.

....

..

...........

..

.......

..

.

..

..............................................

...

Process 2

.

..while True:.... ..

.

y = True..if

.

x then:..

.

y = False..while

.

x: pass..goto ..

..# ..critical section..

.

y = False

..

Coverability problem

...Processes at both ..⇐⇒

..each .. ..≥ 1..critical sections .. ..≥ 0

..

Lamport mutual exclusion "1-bit algorithm"

2/12

Page 15: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Verifying safety with Petri nets

...

Process 1

.

..while True:

..

.

x = True..while

.

y: pass..# ..critical section

..

.

x = False

.

..

......

.

....

..

...........

..

.......

..

.

..

..............................................

...

Process 2

.

..while True:.... ..

.

y = True..if

.

x then:..

.

y = False..while

.

x: pass..goto ..

..# ..critical section..

.

y = False

..

Coverability problem

...Processes at both ..⇐⇒

..each .. ..≥ 1..critical sections .. ..≥ 0

..

Lamport mutual exclusion "1-bit algorithm"

2/12

Page 16: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Verifying safety with Petri nets

...

Process 1

.

..while True:

..

.

x = True..while

.

y: pass..# ..critical section

..

.

x = False

.........

.

....

..

...........

..

.......

..

.

..

..............................................

...

Process 2

.

..while True:.... ..

.

y = True..if

.

x then:..

.

y = False..while

.

x: pass..goto ..

..# ..critical section..

.

y = False

..

Coverability problem

...Processes at both ..⇐⇒

..each .. ..≥ 1..critical sections .. ..≥ 0

..

Lamport mutual exclusion "1-bit algorithm"

2/12

Page 17: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Verifying safety with Petri nets

...

Process 1

.

..while True:

..

.

x = True..while

.

y: pass..# ..critical section

..

.

x = False

.........

.

..................

.

.......

..

.

..

..............................................

...

Process 2

.

..while True:.... ..

.

y = True..if

.

x then:..

.

y = False..while

.

x: pass..goto ..

..# ..critical section..

.

y = False

..

Coverability problem

...Processes at both ..⇐⇒

..each .. ..≥ 1..critical sections .. ..≥ 0

..

Lamport mutual exclusion "1-bit algorithm"

2/12

Page 18: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Verifying safety with Petri nets

...

Process 1

.

..while True:

...x = True..while

.

y: pass..# ..critical section

...x = False

.........

.

..................

.

..........

..

..............................................

...

Process 2

.

..while True:.... ..

.

y = True..if .x then:..

.

y = False..while .x: pass

..goto ....# ..critical section

..

.

y = False

..

Coverability problem

...Processes at both ..⇐⇒

..each .. ..≥ 1..critical sections .. ..≥ 0

..

Lamport mutual exclusion "1-bit algorithm"

2/12

Page 19: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Verifying safety with Petri nets

...

Process 1

.

..while True:

..

.

x = True..while .y: pass

..# ..critical section..

.

x = False

.........

.

..................

.

..........................................................

...

Process 2

.

..while True:.... ...y = True

..if

.

x then:...y = False..while

.

x: pass..goto ..

..# ..critical section...y = False

..

Coverability problem

...Processes at both ..⇐⇒

..each .. ..≥ 1..critical sections .. ..≥ 0

..

Lamport mutual exclusion "1-bit algorithm"

2/12

Page 20: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Verifying safety with Petri nets

...

Process 1

.

..while True:

..

.

x = True..while

.

y: pass..# ..critical section

..

.

x = False

.........

.

..................

.

..........................................................

...

Process 2

.

..while True:.... ..

.

y = True..if

.

x then:..

.

y = False..while

.

x: pass..goto ..

..# ..critical section..

.

y = False

..

Coverability problem

...Processes at both ..⇐⇒

..each .. ..≥ 1..critical sections .. ..≥ 0

..

Lamport mutual exclusion "1-bit algorithm"

2/12

Page 21: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Verifying safety with Petri nets

...

Process 1

.

..while True:

..

.

x = True..while

.

y: pass..# ..critical section

..

.

x = False

........

.

..................

.

...........................................................

...

Process 2

.

..while True:.... ..

.

y = True..if

.

x then:..

.

y = False..while

.

x: pass..goto ..

..# ..critical section..

.

y = False

..

Coverability problem

...Processes at both ..⇐⇒

..each .. ..≥ 1..critical sections .. ..≥ 0

..

Lamport mutual exclusion "1-bit algorithm"

2/12

Page 22: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Verifying safety with Petri nets

...

Process 1

.

..while True:

..

.

x = True..while

.

y: pass..# ..critical section

..

.

x = False

........

.

..................

.

...........................................................

...

Process 2

.

..while True:.... ..

.

y = True..if

.

x then:..

.

y = False..while

.

x: pass..goto ..

..# ..critical section..

.

y = False

..

Coverability problem

...Processes at both ..⇐⇒

..each .. ..≥ 1..critical sections .. ..≥ 0

..

Lamport mutual exclusion "1-bit algorithm"

2/12

Page 23: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Verifying safety with Petri nets

...

Process 1

.

..while True:

..

.

x = True..while

.

y: pass..# ..critical section

..

.

x = False

........

.

..................

.

...........................................................

...

Process 2

.

..while True:.... ..

.

y = True..if

.

x then:..

.

y = False..while

.

x: pass..goto ..

..# ..critical section..

.

y = False

..

Coverability problem

...Processes at both ..⇐⇒

..each .. ..≥ 1..critical sections .. ..≥ 0

..

Lamport mutual exclusion "1-bit algorithm"

2/12

Page 24: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Verifying safety with Petri nets

...

Process 1

.

..while True:

..

.

x = True..while

.

y: pass..# ..critical section

..

.

x = False

........

.

..................

.

...........................................................

...

Process 2

.

..while True:.... ..

.

y = True..if

.

x then:..

.

y = False..while

.

x: pass..goto ..

..# ..critical section..

.

y = False

..

Coverability problem

...Processes at both ..⇐⇒

..each .. ..≥ 1..critical sections .. ..≥ 0

..

Lamport mutual exclusion "1-bit algorithm"

2/12

Page 25: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Coverability problem

ProblemInput: Petri net N , initial marking m0, target marking m

Question: Is some m′ ≥ m reachable from m0 in N ?

How to solve it?

• Forward: build reachability tree from initial marking• Backward: find predecessors of markings covering target• EXPSPACE-complete

.

3/12

Page 26: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Coverability problem

ProblemInput: Petri net N , initial marking m0, target marking m

Question: Is some m′ ≥ m reachable from m0 in N ?

How to solve it?

• Forward: build reachability tree from initial marking• Backward: find predecessors of markings covering target• EXPSPACE-complete

.

3/12

Page 27: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Coverability problem

ProblemInput: Petri net N , initial marking m0, target marking m

Question: Is some m′ ≥ m reachable from m0 in N ?

How to solve it? Karp & Miller '69

• Forward: build reachability tree from initial marking• Backward: find predecessors of markings covering target• EXPSPACE-complete

.

3/12

Page 28: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Coverability problem

ProblemInput: Petri net N , initial marking m0, target marking m

Question: Is some m′ ≥ m reachable from m0 in N ?

How to solve it? Arnold & Latteux '78, Abdulla et al. '96

• Forward: build reachability tree from initial marking• Backward: find predecessors of markings covering target• EXPSPACE-complete

.

3/12

Page 29: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Coverability problem

ProblemInput: Petri net N , initial marking m0, target marking m

Question: Is some m′ ≥ m reachable from m0 in N ?

How to solve it? Lipton '76, Rackoff '78

• Forward: build reachability tree from initial marking• Backward: find predecessors of markings covering target• EXPSPACE-complete

.

3/12

Page 30: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Coverability problem

ProblemInput: Petri net N , initial marking m0, target marking m

Question: Is some m′ ≥ m reachable from m0 in N ?

How to solve it?

• Forward: build reachability tree from initial marking• Backward: find predecessors of markings covering target• EXPSPACE-complete

.3/12

Page 31: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Backward algorithm

..

Cannot cover

.

target marking

...... 2.

....

4/12

Page 32: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Backward algorithm

..

Cannot cover

.

target marking

...... 2...

....

What initial markings may cover (0, 2)?

4/12

Page 33: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Backward algorithm

..

Cannot cover

.

target marking

...... 2.

....

4/12

Page 34: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Backward algorithm

..

Cannot cover

.

target marking

...... 2.

....

4/12

Page 35: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Backward algorithm

..

Cannot cover

.

target marking

...... 2.

....

4/12

Page 36: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Backward algorithm

..

Cannot cover

.

target marking

...... 2.

....

4/12

Page 37: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Backward algorithm

..

Cannot cover

.

target marking

...... 2.

....

4/12

Page 38: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Backward algorithm

..

Cannot cover

.

target marking

...... 2.

....

4/12

Page 39: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Backward algorithm

..

Cannot cover

.

target marking

...... 2.

....

4/12

Page 40: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Backward algorithm

..

Cannot cover

.

target marking

...... 2.

....

Basis size may become doubly exponential(Bozzelli & Ganty '11)

4/12

Page 41: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Backward algorithm

..

Cannot cover

.

target marking

........ 2.

....

We only care about some initial marking...

Speedup by pruning basis!

4/12

Page 42: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Backward algorithm

..

Cannot cover

.

target marking

...... 2.

....

We only care about some initial marking...Speedup by pruning basis!

4/12

Page 43: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

(Discrete) Petri nets

........ 2.

1/2

.

1/4

.

1/2n

.

5/12

Page 44: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

(Discrete) Petri nets

........ 2.

1/2

.

1/4

.

1/2n

.

5/12

Page 45: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

(Discrete) Petri nets

....... 2.

1/2

.

1/4

.

1/2n

..

5/12

Page 46: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

(Discrete) Petri nets

....... 2.

1/2

.

1/4

.

1/2n

..

5/12

Page 47: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

(Discrete) Petri nets ..Continuous

....... 2.

1/2

.

1/4

.

1/2n

..

5/12

Page 48: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

(Discrete) Petri nets ..Continuous

....... 2.

1/2

.

1/4

.

1/2n

..

5/12

Page 49: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

(Discrete) Petri nets ..Continuous

....... 2.

1/2

.

1/4

.

1/2n

...

5/12

Page 50: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

(Discrete) Petri nets ..Continuous

....... 2.

1/2

.

1/4

.

1/2n

...

5/12

Page 51: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

(Discrete) Petri nets ..Continuous

....... 2.

1/2

.

1/4

.

1/2n

....

5/12

Page 52: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

(Discrete) Petri nets ..Continuous

....... 2.

1/2

.

1/4

.

1/2n

....

5/12

Page 53: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

(Discrete) Petri nets ..Continuous

....... 2.

1/2

.

1/4

.

1/2n

.....

5/12

Page 54: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Continuity to over-approximate coverability

m is coverable from m0

..

m is Q-coverable from m0

..

⇒..

⇒m0 and m satisfy conditions ofEsparza, Ledesma-Garza, Majumdar, Meyer & Niksic '14

..

EXPSPACE

.

PTIME

.

PTIME / NP / coNP

.

Safety

6/12

Page 55: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Continuity to over-approximate coverability

m is coverable from m0

..

m is Q-coverable from m0

..

⇒.. ⇒

m0 and m satisfy conditions ofEsparza, Ledesma-Garza, Majumdar, Meyer & Niksic '14

..

EXPSPACE

.

PTIME

.

PTIME / NP / coNP

.

Safety

6/12

Page 56: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Continuity to over-approximate coverability

m is not coverable from m0

.. ⇒m is not Q-coverable from m0

..

⇒..

⇒m0 and m satisfy conditions ofEsparza, Ledesma-Garza, Majumdar, Meyer & Niksic '14

..

EXPSPACE

.

PTIME

.

PTIME / NP / coNP

.

Safety

6/12

Page 57: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Coverability in continuous Petri nets

Fix some continuous Petri net (P, T,Pre,Post)

m is Q-coverable fromm0 iff... Fraca & Haddad '13

there exist m′ ≥ m and v ∈ QT≥0 such that

• m′ = m0 + (Post− Pre) · v

• some execution from m0 fires exactly {t ∈ T : vt > 0}

3

• some execution to m′ fires exactly {t ∈ T : vt > 0}

7

..

Straightforward

.

More subtle

.

Even better approximation

..

Polynomial time!

7/12

Page 58: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Coverability in continuous Petri nets

Fix some continuous Petri net (P, T,Pre,Post)

m is Q-coverable fromm0 iff... Fraca & Haddad '13

there exist m′ ≥ m and v ∈ QT≥0 such that

• m′ = m0 + (Post− Pre) · v

• some execution from m0 fires exactly {t ∈ T : vt > 0}

3

• some execution to m′ fires exactly {t ∈ T : vt > 0}

7

..

Straightforward

.

More subtle

.

Even better approximation

..

Polynomial time!

7/12

Page 59: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Coverability in continuous Petri nets

Fix some continuous Petri net (P, T,Pre,Post)

m is Q-coverable fromm0 iff... Fraca & Haddad '13

there exist m′ ≥ m and v ∈ QT≥0 such that

• m′ = m0 + (Post− Pre) · v

• some execution from m0 fires exactly {t ∈ T : vt > 0}

3

• some execution to m′ fires exactly {t ∈ T : vt > 0}

7

..

Straightforward

.

More subtle

.

Even better approximation

..

Polynomial time!

7/12

Page 60: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Coverability in continuous Petri nets

Fix some continuous Petri net (P, T,Pre,Post)

m is Q-coverable fromm0 iff... Fraca & Haddad '13

there exist m′ ≥ m and v ∈ QT≥0 such that

• m′ = m0 + (Post− Pre) · v

• some execution from m0 fires exactly {t ∈ T : vt > 0}

3

• some execution to m′ fires exactly {t ∈ T : vt > 0}

7

..

Straightforward

.

More subtle

.

Even better approximation

..

Polynomial time!

7/12

Page 61: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Coverability in continuous Petri nets

.. Not Q-coverable from

...... 2.

a

.

b

.... m0 = (2,0).m = (0, 2)

m is Q-coverable fromm0 iff... Fraca & Haddad '13

there exist m′ ≥ m and va, vb ∈ Q≥0 such that

• m′ = m0 + (Post− Pre) · v

• some execution from m0 fires exactly {t ∈ {a,b} : vt > 0}

3

• some execution to m′ fires exactly {t ∈ {a,b} : vt > 0}

7

..

Straightforward

.

More subtle

.

Even better approximation

..

Polynomial time!

7/12

Page 62: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Coverability in continuous Petri nets

.. Not Q-coverable from

...... 2.

a

.

b

.... m0 = (2,0).m = (0, 2)

m is Q-coverable fromm0 iff... Fraca & Haddad '13

there exist m′ ≥ m and va, vb ∈ Q≥0 such that

• 0 ≤ vb + va ≤ 22 ≤ vb

3

• some execution from m0 fires exactly {t ∈ {a,b} : vt > 0}

3

• some execution to m′ fires exactly {t ∈ {a,b} : vt > 0}

7

..

Straightforward

.

More subtle

.

Even better approximation

..

Polynomial time!

7/12

Page 63: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Coverability in continuous Petri nets

.. Not Q-coverable from

...... 2.

a

.

b

.... m0 = (2,0).m = (0, 2)

m is Q-coverable fromm0 iff... Fraca & Haddad '13

there exist m′ ≥ m and va, vb ∈ Q≥0 such that

• 0 ≤ vb + va ≤ 22 ≤ vb

=⇒ va = 0, vb = 2, m′ = m

3

• some execution from m0 fires exactly {t ∈ {a,b} : vt > 0}

3

• some execution to m′ fires exactly {t ∈ {a,b} : vt > 0}

7

..

Straightforward

.

More subtle

.

Even better approximation

..

Polynomial time!

7/12

Page 64: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Coverability in continuous Petri nets

.. Not Q-coverable from

...... 2.

a

.

b

.... m0 = (2,0).m = (0, 2)

m is Q-coverable fromm0 iff... Fraca & Haddad '13

there exist m′ ≥ m and va, vb ∈ Q≥0 such that

• 0 ≤ vb + va ≤ 22 ≤ vb

=⇒ va = 0, vb = 2, m′ = m 3

• some execution from m0 fires exactly {t ∈ {a,b} : vt > 0}

3

• some execution to m′ fires exactly {t ∈ {a,b} : vt > 0}

7

..

Straightforward

.

More subtle

.

Even better approximation

..

Polynomial time!

7/12

Page 65: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Coverability in continuous Petri nets

.. Not Q-coverable from

...... 2.

a

.

b

.... m0 = (2,0).m = (0, 2)

m is Q-coverable fromm0 iff... Fraca & Haddad '13

there exist m′ ≥ m and va, vb ∈ Q≥0 such that

• 0 ≤ vb + va ≤ 22 ≤ vb

=⇒ va = 0, vb = 2, m′ = m 3

• some execution from m0 fires exactly {t ∈ {a,b} : vt > 0}

3

• some execution to m′ fires exactly {t ∈ {a,b} : vt > 0}

7

..

Straightforward

.

More subtle

.

Even better approximation

..

Polynomial time!

7/12

Page 66: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Coverability in continuous Petri nets

.. Not Q-coverable from

...... 2.

a

.

b

.... m0 = (2,0).m = (0, 2)

m is Q-coverable fromm0 iff... Fraca & Haddad '13

there exist m′ ≥ m and va, vb ∈ Q≥0 such that

• 0 ≤ vb + va ≤ 22 ≤ vb

=⇒ va = 0, vb = 2, m′ = m 3

• some execution from m0 fires exactly {b}

3

• some execution to m′ fires exactly {b}

7

..

Straightforward

.

More subtle

.

Even better approximation

..

Polynomial time!

7/12

Page 67: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Coverability in continuous Petri nets

.. Not Q-coverable from

........ 2.

a

.

b

.... m0 = (2,0).m = (0, 2)

m is Q-coverable fromm0 iff... Fraca & Haddad '13

there exist m′ ≥ m and va, vb ∈ Q≥0 such that

• 0 ≤ vb + va ≤ 22 ≤ vb

=⇒ va = 0, vb = 2, m′ = m 3

• some execution from m0 fires exactly {b}

3

• some execution to m′ fires exactly {b}

7

..

Straightforward

.

More subtle

.

Even better approximation

..

Polynomial time!

7/12

Page 68: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Coverability in continuous Petri nets

.. Not Q-coverable from

...... 2.

a

.

b

.... m0 = (2,0).m = (0, 2)

m is Q-coverable fromm0 iff... Fraca & Haddad '13

there exist m′ ≥ m and va, vb ∈ Q≥0 such that

• 0 ≤ vb + va ≤ 22 ≤ vb

=⇒ va = 0, vb = 2, m′ = m 3

• some execution from m0 fires exactly {b} 3

• some execution to m′ fires exactly {b}

7

..

Straightforward

.

More subtle

.

Even better approximation

..

Polynomial time!

7/12

Page 69: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Coverability in continuous Petri nets

.. Not Q-coverable from

...... 2.

a

.

b

.... m0 = (2,0).m = (0, 2)

m is Q-coverable fromm0 iff... Fraca & Haddad '13

there exist m′ ≥ m and va, vb ∈ Q≥0 such that

• 0 ≤ vb + va ≤ 22 ≤ vb

=⇒ va = 0, vb = 2, m′ = m 3

• some execution from m0 fires exactly {b} 3

• some execution to m′ fires exactly {b}

7

..

Straightforward

.

More subtle

.

Even better approximation

..

Polynomial time!

7/12

Page 70: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Coverability in continuous Petri nets

.. Not Q-coverable from

...... 2.

a

.

b

.... m0 = (2,0).m = (0, 2)

m is Q-coverable fromm0 iff... Fraca & Haddad '13

there exist m′ ≥ m and va, vb ∈ Q≥0 such that

• 0 ≤ vb + va ≤ 22 ≤ vb

=⇒ va = 0, vb = 2, m′ = m 3

• some execution from m0 fires exactly {b} 3

• some execution to m′ fires exactly {b}

7

..

Straightforward

.

More subtle

.

Even better approximation

..

Polynomial time!

7/12

Page 71: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Coverability in continuous Petri nets

.. Not Q-coverable from

...... 2.

a

.

b

.... m0 = (2,0).m = (0, 2)

m is Q-coverable fromm0 iff... Fraca & Haddad '13

there exist m′ ≥ m and va, vb ∈ Q≥0 such that

• 0 ≤ vb + va ≤ 22 ≤ vb

=⇒ va = 0, vb = 2, m′ = m 3

• some execution from m0 fires exactly {b} 3

• some execution to m′ fires exactly {b} 7..

Straightforward

.

More subtle

.

Even better approximation

..

Polynomial time!

7/12

Page 72: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Coverability in continuous Petri nets

.. Not Q-coverable from

...... 2.

a

.

b

.... m0 = (2,0).m = (0, 2)

m is Q-coverable fromm0 iff... Fraca & Haddad '13

there exist m′ ≥ m and va, vb ∈ Q≥0 such that

• 0 ≤ vb + va ≤ 22 ≤ vb

=⇒ va = 0, vb = 2, m′ = m 3

• some execution from m0 fires exactly {b} 3

• some execution to m′ fires exactly {b} 7..

Straightforward

.

More subtle

.

Even better approximation

..

Polynomial time!

7/12

Page 73: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Coverability in continuous Petri nets

m is Q-coverable fromm0 iff... Fraca & Haddad '13

there exist m′ ≥ m and v ∈ QT≥0 such that

• m′ = m0 + (Post− Pre) · v

• some execution from m0 fires exactly {t ∈ T : vt > 0}

3

• some execution to m′ fires exactly {t ∈ T : vt > 0}

7

..

Straightforward

.

More subtle

.

Even better approximation

..

Polynomial time!

7/12

Page 74: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Coverability in continuous Petri nets

Logical characterization Contribution

Q-coverability can be encoded in a linear size formula of

existential FO(Q≥0,+, <)

m is Q-coverable fromm0 iff... Fraca & Haddad '13

there exist m′ ≥ m and v ∈ QT≥0 such that

• m′ = m0 + (Post− Pre) · v

• some execution from m0 fires exactly {t ∈ T : vt > 0}

3

• some execution to m′ fires exactly {t ∈ T : vt > 0}

7

..

Straightforward

.

More subtle

.

Even better approximation

..

Polynomial time!

7/12

Page 75: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Coverability in continuous Petri nets

Logical characterization Contribution

Q-coverability can be encoded in a linear size formula of

existential FO(N, +, <)

m is Q-coverable fromm0 iff... Fraca & Haddad '13

there exist m′ ≥ m and v ∈ QT≥0 such that

• m′ = m0 + (Post− Pre) · v

• some execution from m0 fires exactly {t ∈ T : vt > 0}

3

• some execution to m′ fires exactly {t ∈ T : vt > 0}

7

..

Straightforward

.

More subtle

.

Even better approximation

..

Polynomial time!

7/12

Page 76: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Coverability in continuous Petri nets

Logical characterization Contribution

Q-coverability can be encoded in a linear size formula of

existential FO(Q≥0,+, <)

m is Q-coverable fromm0 iff... Fraca & Haddad '13

there exist m′ ≥ m and v ∈ QT≥0 such that

• m′ = m0 + (Post− Pre) · v

• some execution from m0 fires exactly {t ∈ T : vt > 0}

3

• some execution to m′ fires exactly {t ∈ T : vt > 0}

7

..

Straightforward

.

More subtle

.

Even better approximation

..

Polynomial time!

7/12

Page 77: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Coverability in continuous Petri nets

Logical characterization Contribution

Q-coverability can be encoded in a linear size formula of

existential FO(Q≥0,+, <)

m is Q-coverable fromm0 iff... Fraca & Haddad '13

there exist m′ ≥ m and v ∈ QT≥0 such that

• m′ = m0 + (Post− Pre) · v

• some execution from m0 fires exactly {t ∈ T : vt > 0}

3

• some execution to m′ fires exactly {t ∈ T : vt > 0}

7

..

Straightforward

.

More subtle

.

Even better approximation

..

Polynomial time!

7/12

Page 78: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Encoding the firing set conditions

...

.....

..

....

...

...

.

.

...

.

..

1.

2.

3.

4

.

1

. a.

b.

c

.

d

.>

. >.

>

.

>

.............

Testing whether some transitions can be firedfrom initial marking .

8/12

Page 79: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Encoding the firing set conditions

...

.....

..

....

...

...

.

.

...

.

..

1.

2.

3.

4

.

1

. a.

b.

c

.

d

.>

. >.

>

.

>

.............

Testing whether some transitions can be firedfrom initial marking .

8/12

Page 80: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Encoding the firing set conditions

...

.....

..

....

...

...

.

.

...

.

..

1.

2.

3.

4

.

1

. a.

b.

c

.

d

.>

. >.

>

.

>

.............

Testing whether some transitions can be firedfrom initial marking .

8/12

Page 81: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Encoding the firing set conditions

...

.....

..

....

...

...

.

.

...

.

..

1.

2.

3.

4

.

1

. a.

b.

c

.

d

.>

. >.

>

.

>

.............

Simulate a "breadth-first" transitions firing.

8/12

Page 82: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Encoding the firing set conditions

...

.....

..

....

...

...

.

.

...

.

..

1.

2.

3.

4

.

1

. a.

b.

c

.

d

.>

. >.

>

.

>

.............

Simulate a "breadth-first" transitions firingby numbering places/transitions

(Verma, Seidl & Schwentick '05) .8/12

Page 83: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Encoding the firing set conditions

...

.....

..

....

...

...

.

.

...

.

..

1.

2.

3.

4

.

1

. a.

b.

c

.

d

.>

. >.

>

.

>

.............

Simulate a "breadth-first" transitions firingby numbering places/transitions

(Verma, Seidl & Schwentick '05) .8/12

Page 84: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Encoding the firing set conditions

...

.....

..

....

...

...

.

.

...

.

..

1.

2.

3.

4

.

1

. a.

b.

c

.

d

.>

. >.

>

.

>

.............

Simulate a "breadth-first" transitions firingby numbering places/transitions

(Verma, Seidl & Schwentick '05) .8/12

Page 85: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Encoding the firing set conditions

...

.....

..

....

...

...

.

.

...

.

..

1.

2.

3.

4

.

1

. a.

b.

c

.

d

.>

. >.

>

.

>

.............

Simulate a "breadth-first" transitions firingby numbering places/transitions

(Verma, Seidl & Schwentick '05) .8/12

Page 86: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Encoding the firing set conditions

.

..

..

...

.

.

..

..

...

...

.

.

...

.

..

1.

2.

3.

4

.

1

. a.

b.

c

.

d

.>

. >.

>

.

>

.............

Simulate a "breadth-first" transitions firingby numbering places/transitions

(Verma, Seidl & Schwentick '05) .8/12

Page 87: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Encoding the firing set conditions

.

..

..

...

.

.

..

..

...

...

.

.

...

.

..

1.

2.

3.

4

.

1

. a.

b.

c

.

d

.>

. >.

>

.

>

.............

Simulate a "breadth-first" transitions firingby numbering places/transitions

(Verma, Seidl & Schwentick '05) .8/12

Page 88: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Encoding the firing set conditions

.

..

..

...

.

.

..

..

...

...

.

.

...

.

..

1.

2.

3.

4

.

1

. a.

b.

c

.

d

.>

. >.

>

.

>

.............

Simulate a "breadth-first" transitions firingby numbering places/transitions

(Verma, Seidl & Schwentick '05) .8/12

Page 89: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Encoding the firing set conditions

.

..

..

...

.

.

..

..

...

...

.

.

...

.

..

1.

2.

3.

4

.

1

. a.

b.

c

.

d

.>

. >.

>

.

>

.............

Simulate a "breadth-first" transitions firingby numbering places/transitions

(Verma, Seidl & Schwentick '05) .8/12

Page 90: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Encoding the firing set conditions

.

..

......

.

.....

..

....

.

...

.

..

1.

2.

3.

4

.

1

. a.

b.

c

.

d

.>

. >.

>

.

>

.............

Simulate a "breadth-first" transitions firingby numbering places/transitions

(Verma, Seidl & Schwentick '05) .8/12

Page 91: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Encoding the firing set conditions

.

..

......

.

.....

..

...

.

...

.

...

1.

2.

3.

4

.

1

. a.

b.

c

.

d

.>

. >.

>

.

>

.............

Simulate a "breadth-first" transitions firingby numbering places/transitions

(Verma, Seidl & Schwentick '05) .8/12

Page 92: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Encoding the firing set conditions

.

..

......

.

.....

..

...

.

...

.

...

1.

2.

3.

4

.

1

. a.

b.

c

.

d

.>

. >.

>

.

>

.............

Simulate a "breadth-first" transitions firingby numbering places/transitions

(Verma, Seidl & Schwentick '05) .8/12

Page 93: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Encoding the firing set conditions

.

..

......

.

.....

..

...

.

...

.

...

1.

2.

3.

4

.

1

. a.

b.

c

.

d

.>

. >.

>

.

>

.............

φ(x) = ∃y : ∧p∈P y(p) > 0→∧t∈•p y(t) < y(p) · · · .

8/12

Page 94: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Backward coverability modulo Q-coverability

if target marking m is not Q-coverable:return False

X = {target marking m}

while (initial marking m0 not covered by X):B = markings obtained from X one step backwardB = B \ {b ∈ B : ¬φ(b)}if B = ∅: return Falseφ(x) = φ(x) ∧

∧pruned b x ≥ b

X = X ∪ B

return True

..

Polynomial time

.

Q-coverability pruning

.

(better than poly. time)

.

SMT solver guidance

9/12

Page 95: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Backward coverability modulo Q-coverability

if target marking m is not Q-coverable:return False

X = {target marking m}

while (initial marking m0 not covered by X):B = markings obtained from X one step backwardB = B \ {b ∈ B : ¬φ(b)}if B = ∅: return Falseφ(x) = φ(x) ∧

∧pruned b x ≥ b

X = X ∪ B

return True..

Polynomial time

.

Q-coverability pruning

.

(better than poly. time)

.

SMT solver guidance

9/12

Page 96: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Backward coverability modulo Q-coverability

if target marking m is not Q-coverable:return False

X = {target marking m}

while (initial marking m0 not covered by X):B = markings obtained from X one step backwardB = B \ {b ∈ B : ¬φ(b)}if B = ∅: return Falseφ(x) = φ(x) ∧

∧pruned b x ≥ b

X = X ∪ B

return True..

Polynomial time

.

Q-coverability pruning

.

(better than poly. time)

.

SMT solver guidance

9/12

Page 97: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Backward coverability modulo Q-coverability

if target marking m is not Q-coverable:return False

X = {target marking m}

while (initial marking m0 not covered by X):B = markings obtained from X one step backwardB = B \ {b ∈ B : ¬φ(b)}if B = ∅: return Falseφ(x) = φ(x) ∧

∧pruned b x ≥ b

X = X ∪ B

return True..

Polynomial time

.

Q-coverability pruning

.

(better than poly. time)

.

SMT solver guidance

9/12

Page 98: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Backward coverability modulo Q-coverability

if target marking m is not Q-coverable:return False

X = {target marking m}

while (initial marking m0 not covered by X):B = markings obtained from X one step backwardB = B \ {b ∈ B : ¬φ(b)}if B = ∅: return Falseφ(x) = φ(x) ∧

∧pruned b x ≥ b

X = X ∪ B

return True..

Polynomial time

.

Q-coverability pruning

.

(better than poly. time)

.

SMT solver guidance

9/12

Page 99: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Backward coverability modulo Q-coverability

if target marking m is not Q-coverable:return False

X = {target marking m}

while (initial marking m0 not covered by X):B = markings obtained from X one step backwardB = B \ {b ∈ B : ¬φ(b)}if B = ∅: return Falseφ(x) = φ(x) ∧

∧pruned b x ≥ b

X = X ∪ B

return True..

Polynomial time

.

Q-coverability pruning

.

(better than poly. time)

.

SMT solver guidance

9/12

Page 100: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Backward coverability modulo Q-coverability

if target marking m is not Q-coverable:return False

X = {target marking m}

while (initial marking m0 not covered by X):B = markings obtained from X one step backwardB = B \ {b ∈ B : ¬φ(b)}if B = ∅: return Falseφ(x) = φ(x) ∧

∧pruned b x ≥ b

X = X ∪ B

return True..

Polynomial time

.

Q-coverability pruning

.

(better than poly. time)

.

SMT solver guidance

9/12

Page 101: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Backward coverability modulo Q-coverability

if target marking m is not Q-coverable:return False

X = {target marking m}

while (initial marking m0 not covered by X):B = markings obtained from X one step backwardB = B \ {b ∈ B : ¬φ(b)}if B = ∅: return Falseφ(x) = φ(x) ∧

∧pruned b x ≥ b

X = X ∪ B

return True..

Polynomial time

.

Q-coverability pruning

.

(better than poly. time)

.

SMT solver guidance

9/12

Page 102: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Backward coverability modulo Q-coverability

if target marking m is not Q-coverable:return False

X = {target marking m}

while (initial marking m0 not covered by X):B = markings obtained from X one step backwardB = B \ {b ∈ B : ¬φ(b)}if B = ∅: return Falseφ(x) = φ(x) ∧

∧pruned b x ≥ b

X = X ∪ B

return True..

Polynomial time

.

Q-coverability pruning

.

(better than poly. time)

.

SMT solver guidance

9/12

Page 103: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Backward coverability modulo Q-coverability

if target marking m is not Q-coverable:return False

X = {target marking m}

while (initial marking m0 not covered by X):B = markings obtained from X one step backwardB = B \ {b ∈ B : ¬φ(b)}if B = ∅: return Falseφ(x) = φ(x) ∧

∧pruned b x ≥ b

X = X ∪ B

return True..

Polynomial time

.

Q-coverability pruning

.

(better than poly. time)

.

SMT solver guidance

9/12

Page 104: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

An implementation: QCover

• 760 lines of code• uses the MIST .spec format for counter machines• supports dense/sparse matrices through NumPy/SciPy• experimental parallelism support

SMT solver: Z3 (Microsoft research)

• FO(Q≥0,+, <) formula satisfiability• Fraca & Haddad "polynomial time" algorithm

(rational linear programming with <)

10/12

Page 105: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

An implementation: QCover

• 760 lines of code• uses the MIST .spec format for counter machines• supports dense/sparse matrices through NumPy/SciPy• experimental parallelism support

SMT solver: Z3 (Microsoft research)

• FO(Q≥0,+, <) formula satisfiability• Fraca & Haddad "polynomial time" algorithm

(rational linear programming with <)

10/12

Page 106: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

An implementation: QCover

• 760 lines of code• uses the MIST .spec format for counter machines• supports dense/sparse matrices through NumPy/SciPy• experimental parallelism support

SMT solver: Z3 (Microsoft research)

• FO(Q≥0,+, <) formula satisfiability• Fraca & Haddad "polynomial time" algorithm

(rational linear programming with <)

10/12

Page 107: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

An implementation: QCover

• 760 lines of code• uses the MIST .spec format for counter machines• supports dense/sparse matrices through NumPy/SciPy• experimental parallelism support

SMT solver: Z3 (Microsoft research)

• FO(Q≥0,+, <) formula satisfiability• Fraca & Haddad "polynomial time" algorithm

(rational linear programming with <)

10/12

Page 108: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

An implementation: QCover

• 760 lines of code• uses the MIST .spec format for counter machines• supports dense/sparse matrices through NumPy/SciPy• experimental parallelism support

SMT solver: Z3 (Microsoft research)

• FO(Q≥0,+, <) formula satisfiability• Fraca & Haddad "polynomial time" algorithm

(rational linear programming with <)

10/12

Page 109: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

An implementation: QCover

• 760 lines of code• uses the MIST .spec format for counter machines• supports dense/sparse matrices through NumPy/SciPy• experimental parallelism support

SMT solver: Z3 (Microsoft research)

• FO(Q≥0,+, <) formula satisfiability• Fraca & Haddad "polynomial time" algorithm

(rational linear programming with <)

10/12

Page 110: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

An implementation: QCover

• 760 lines of code• uses the MIST .spec format for counter machines• supports dense/sparse matrices through NumPy/SciPy• experimental parallelism support

SMT solver: Z3 (Microsoft research)

• FO(Q≥0,+, <) formula satisfiability• Fraca & Haddad "polynomial time" algorithm

(rational linear programming with <)

10/12

Page 111: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

An implementation: QCover

• 760 lines of code• uses the MIST .spec format for counter machines• supports dense/sparse matrices through NumPy/SciPy• experimental parallelism support

SMT solver: Z3 (Microsoft research)

• FO(Q≥0,+, <) formula satisfiability• Fraca & Haddad "polynomial time" algorithm

(rational linear programming with <)

10/12

Page 112: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Benchmarks

QCover tested against

• mist: Ganty, Meuter, Delzanno, Kalyon, Raskin & Van Begin '07

• bfc: Kaiser, Kroening & Wahl '14

• Petrinizer: Esparza, Ledesma-Garza, Majumdar, Meyer & Niksic '14

Benchmarks

• 176 Petri nets: average of 1054 places & 8458 transitions• Drawn from 5 existing suites

including• Multithreaded C programs with shared memory (bfc)• Mutual exclusion, communication protocols, etc. (mist)• Erlang concurrent programs (soter, D’Osualdo, Kochems & Ong '13)• Message analysis of a medical and a bug tracking system

(Petrinizer)

..

Largest nets proved safe:

.

21143 places7150 trans.

42 secs.

.

6690 places

11934 trans.

21 secs.

.

754 places27370 trans.

3 secs.

11/12

Page 113: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Benchmarks

QCover tested against

• mist: Ganty, Meuter, Delzanno, Kalyon, Raskin & Van Begin '07

• bfc: Kaiser, Kroening & Wahl '14

• Petrinizer: Esparza, Ledesma-Garza, Majumdar, Meyer & Niksic '14

Benchmarks

• 176 Petri nets: average of 1054 places & 8458 transitions• Drawn from 5 existing suites

including• Multithreaded C programs with shared memory (bfc)• Mutual exclusion, communication protocols, etc. (mist)• Erlang concurrent programs (soter, D’Osualdo, Kochems & Ong '13)• Message analysis of a medical and a bug tracking system

(Petrinizer)

..

Largest nets proved safe:

.

21143 places7150 trans.

42 secs.

.

6690 places

11934 trans.

21 secs.

.

754 places27370 trans.

3 secs.

11/12

Page 114: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Benchmarks

QCover tested against

• mist: Ganty, Meuter, Delzanno, Kalyon, Raskin & Van Begin '07

• bfc: Kaiser, Kroening & Wahl '14

• Petrinizer: Esparza, Ledesma-Garza, Majumdar, Meyer & Niksic '14

Benchmarks

• 176 Petri nets: average of 1054 places & 8458 transitions• Drawn from 5 existing suites

including• Multithreaded C programs with shared memory (bfc)• Mutual exclusion, communication protocols, etc. (mist)• Erlang concurrent programs (soter, D’Osualdo, Kochems & Ong '13)• Message analysis of a medical and a bug tracking system

(Petrinizer)

..

Largest nets proved safe:

.

21143 places7150 trans.

42 secs.

.

6690 places

11934 trans.

21 secs.

.

754 places27370 trans.

3 secs.

11/12

Page 115: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Benchmarks

QCover tested against

• mist: Ganty, Meuter, Delzanno, Kalyon, Raskin & Van Begin '07

• bfc: Kaiser, Kroening & Wahl '14

• Petrinizer: Esparza, Ledesma-Garza, Majumdar, Meyer & Niksic '14

Benchmarks

• 176 Petri nets: average of 1054 places & 8458 transitions• Drawn from 5 existing suites

including• Multithreaded C programs with shared memory (bfc)• Mutual exclusion, communication protocols, etc. (mist)• Erlang concurrent programs (soter, D’Osualdo, Kochems & Ong '13)• Message analysis of a medical and a bug tracking system

(Petrinizer)

..

Largest nets proved safe:

.

21143 places7150 trans.

42 secs.

.

6690 places

11934 trans.

21 secs.

.

754 places27370 trans.

3 secs.

11/12

Page 116: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Benchmarks

QCover tested against

• mist: Ganty, Meuter, Delzanno, Kalyon, Raskin & Van Begin '07

• bfc: Kaiser, Kroening & Wahl '14

• Petrinizer: Esparza, Ledesma-Garza, Majumdar, Meyer & Niksic '14

Benchmarks

• 176 Petri nets: average of 1054 places & 8458 transitions• Drawn from 5 existing suites including• Multithreaded C programs with shared memory (bfc)• Mutual exclusion, communication protocols, etc. (mist)• Erlang concurrent programs (soter, D’Osualdo, Kochems & Ong '13)• Message analysis of a medical and a bug tracking system

(Petrinizer)

..

Largest nets proved safe:

.

21143 places7150 trans.

42 secs.

.

6690 places

11934 trans.

21 secs.

.

754 places27370 trans.

3 secs.

11/12

Page 117: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Benchmarks

QCover tested against

• mist: Ganty, Meuter, Delzanno, Kalyon, Raskin & Van Begin '07

• bfc: Kaiser, Kroening & Wahl '14

• Petrinizer: Esparza, Ledesma-Garza, Majumdar, Meyer & Niksic '14

Benchmarks

• 176 Petri nets: average of 1054 places & 8458 transitions• Drawn from 5 existing suites including• Multithreaded C programs with shared memory (bfc)• Mutual exclusion, communication protocols, etc. (mist)• Erlang concurrent programs (soter, D’Osualdo, Kochems & Ong '13)• Message analysis of a medical and a bug tracking system

(Petrinizer)

..

Largest nets proved safe:

.

21143 places7150 trans.

42 secs.

.

6690 places

11934 trans.

21 secs.

.

754 places27370 trans.

3 secs.

11/12

Page 118: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Benchmarks

QCover tested against

• mist: Ganty, Meuter, Delzanno, Kalyon, Raskin & Van Begin '07

• bfc: Kaiser, Kroening & Wahl '14

• Petrinizer: Esparza, Ledesma-Garza, Majumdar, Meyer & Niksic '14

Benchmarks

• 176 Petri nets: average of 1054 places & 8458 transitions• Drawn from 5 existing suites including• Multithreaded C programs with shared memory (bfc)• Mutual exclusion, communication protocols, etc. (mist)• Erlang concurrent programs (soter, D’Osualdo, Kochems & Ong '13)• Message analysis of a medical and a bug tracking system

(Petrinizer)

..

Largest nets proved safe:

.

21143 places7150 trans.

42 secs.

.

6690 places

11934 trans.

21 secs.

.

754 places27370 trans.

3 secs.

11/12

Page 119: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Benchmarks

QCover tested against

• mist: Ganty, Meuter, Delzanno, Kalyon, Raskin & Van Begin '07

• bfc: Kaiser, Kroening & Wahl '14

• Petrinizer: Esparza, Ledesma-Garza, Majumdar, Meyer & Niksic '14

Benchmarks

• 176 Petri nets: average of 1054 places & 8458 transitions• Drawn from 5 existing suites including• Multithreaded C programs with shared memory (bfc)• Mutual exclusion, communication protocols, etc. (mist)• Erlang concurrent programs (soter, D’Osualdo, Kochems & Ong '13)• Message analysis of a medical and a bug tracking system

(Petrinizer)

..

Largest nets proved safe:

.

21143 places7150 trans.

42 secs.

.

6690 places

11934 trans.

21 secs.

.

754 places27370 trans.

3 secs.

11/12

Page 120: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Benchmarks

Markings pruning efficiency across all iterations

Instances proven safe

.....1

.4

.16

.64

.256

.2000

.20 .40.

60

.

80

.

100

.

running time in seconds

.

105/115

.

95

.

63

.35

. QCover . Petrinizer . bfc . mist

..

Largest nets proved safe:

.

21143 places7150 trans.

42 secs.

.

6690 places

11934 trans.

21 secs.

.

754 places27370 trans.

3 secs.

11/12

Page 121: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Benchmarks

Markings pruning efficiency across all iterations

Instances proven safe

.....1

.4

.16

.64

.256

.2000

.20 .40.

60

.

80

.

100

.

running time in seconds

.

105/115

.

95

.

63

.35

. QCover . Petrinizer . bfc . mist

..

Largest nets proved safe:

.

21143 places7150 trans.

42 secs.

.

6690 places

11934 trans.

21 secs.

.

754 places27370 trans.

3 secs.

11/12

Page 122: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Benchmarks

Markings pruning efficiency across all iterations

Instances proven safe

.....1

.4

.16

.64

.256

.2000

.20 .40.

60

.

80

.

100

.

running time in seconds

.

105/115

.

95

.

63

.35

Instances proven safe or unsafe

.....1

.4

.16

.64

.256

.2000

.40 .60.

80

.

100

.

120

.

140

.

running time in seconds

.

142/176

.

122

.

95

.

74

. QCover . Petrinizer . bfc . mist

..

Largest nets proved safe:

.

21143 places7150 trans.

42 secs.

.

6690 places

11934 trans.

21 secs.

.

754 places27370 trans.

3 secs.

11/12

Page 123: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Benchmarks

Markings pruning efficiency across all iterations

.....0.

20.

40.

60.

80.

100.0 .

20

.

40

.

60

..

% pruned markings

.....0.

20.

40.

60.

80.

100.0 .

200

.

400

.

inv. cumulative % pruned markings..

Largest nets proved safe:

.

21143 places7150 trans.

42 secs.

.

6690 places

11934 trans.

21 secs.

.

754 places27370 trans.

3 secs.

11/12

Page 124: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Future work

• Combine our approach with a forward algorithm to betterhandle unsafe instances

• Use more efficient data structures, e.g. sharing trees(Delzanno, Raskin & Van Begin '04)

• Extend to Petri nets with transfer/reset arcs

.....1

.4

.16

.64

.256

.2000

.0 .10.

20

.

30

.

40

.

50

.

60

.

running time in seconds

.

59/61 bfc

.

39 mist

.37 QCover

.

0 Petrinizer (not supported)

.

12/12

Page 125: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Future work

• Combine our approach with a forward algorithm to betterhandle unsafe instances

• Use more efficient data structures, e.g. sharing trees(Delzanno, Raskin & Van Begin '04)

• Extend to Petri nets with transfer/reset arcs

.....1

.4

.16

.64

.256

.2000

.0 .10.

20

.

30

.

40

.

50

.

60

.

running time in seconds

.

59/61 bfc

.

39 mist

.37 QCover

.

0 Petrinizer (not supported)

.

12/12

Page 126: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Future work

• Combine our approach with a forward algorithm to betterhandle unsafe instances

• Use more efficient data structures, e.g. sharing trees(Delzanno, Raskin & Van Begin '04)

• Extend to Petri nets with transfer/reset arcs

.....1

.4

.16

.64

.256

.2000

.0 .10.

20

.

30

.

40

.

50

.

60

.

running time in seconds

.

59/61 bfc

.

39 mist

.37 QCover

.

0 Petrinizer (not supported)

.

12/12

Page 127: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Future work

• Combine our approach with a forward algorithm to betterhandle unsafe instances

• Use more efficient data structures, e.g. sharing trees(Delzanno, Raskin & Van Begin '04)

• Extend to Petri nets with transfer/reset arcs

.....1

.4

.16

.64

.256

.2000

.0 .10.

20

.

30

.

40

.

50

.

60

.

running time in seconds

.

59/61 bfc

.

39 mist

.37 QCover

.

0 Petrinizer (not supported)

.

12/12

Page 128: Approaching the Coverability Problem Continuouslyinfo.usherbrooke.ca/mblondin/slides/TACAS16.pdf · thereexist m′ m and v2 QT 0 suchthat • m′ = m0+(Post Pre) v • someexecutionfromm0

Thank you! Dank u!

12/12