approaching the coverability problem continuouslyinfo.usherbrooke.ca/mblondin/slides/tacas16.pdf ·...
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/1.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/2.jpg)
(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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/3.jpg)
(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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/4.jpg)
(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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/5.jpg)
(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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/6.jpg)
(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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/7.jpg)
(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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/8.jpg)
(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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/9.jpg)
(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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/10.jpg)
(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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/11.jpg)
(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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/12.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/13.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/14.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/15.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/16.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/17.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/18.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/19.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/20.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/21.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/22.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/23.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/24.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/25.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/26.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/27.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/28.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/29.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/30.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/31.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/32.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/33.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/34.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/35.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/36.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/37.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/38.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/39.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/40.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/41.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/42.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/43.jpg)
(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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/44.jpg)
(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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/45.jpg)
(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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/46.jpg)
(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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/47.jpg)
(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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/48.jpg)
(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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/49.jpg)
(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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/50.jpg)
(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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/51.jpg)
(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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/52.jpg)
(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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/53.jpg)
(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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/54.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/55.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/56.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/57.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/58.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/59.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/60.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/61.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/62.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/63.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/64.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/65.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/66.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/67.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/68.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/69.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/70.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/71.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/72.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/73.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/74.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/75.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/76.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/77.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/78.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/79.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/80.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/81.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/82.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/83.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/84.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/85.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/86.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/87.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/88.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/89.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/90.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/91.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/92.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/93.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/94.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/95.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/96.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/97.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/98.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/99.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/100.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/101.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/102.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/103.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/104.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/105.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/106.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/107.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/108.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/109.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/110.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/111.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/112.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/113.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/114.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/115.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/116.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/117.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/118.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/119.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/120.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/121.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/122.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/123.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/124.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/125.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/126.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/127.jpg)
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](https://reader033.vdocuments.mx/reader033/viewer/2022041603/5e324f55a894164ea80f372c/html5/thumbnails/128.jpg)
Thank you! Dank u!
12/12