Introduction Promela and state-space generation Implementation Benchmark Conclusion
A Promela front-end for Spot
Guillaume Sadegh
LRDE – EPITA Research and Development Laboratory
July 02, 2008
Guillaume Sadegh A Promela front-end for Spot 1 / 27
A Promela front-end for Spot Guillaume Sadegh LRDE EPITA Research - - PowerPoint PPT Presentation
Introduction Promela and state-space generation Implementation Benchmark Conclusion A Promela front-end for Spot Guillaume Sadegh LRDE EPITA Research and Development Laboratory July 02, 2008 Guillaume Sadegh A Promela front-end for
Introduction Promela and state-space generation Implementation Benchmark Conclusion
Guillaume Sadegh A Promela front-end for Spot 1 / 27
Introduction Promela and state-space generation Implementation Benchmark Conclusion
Guillaume Sadegh A Promela front-end for Spot 2 / 27
Introduction Promela and state-space generation Implementation Benchmark Conclusion
Guillaume Sadegh A Promela front-end for Spot 3 / 27
Introduction Promela and state-space generation Implementation Benchmark Conclusion
Guillaume Sadegh A Promela front-end for Spot 3 / 27
Introduction Promela and state-space generation Implementation Benchmark Conclusion
Guillaume Sadegh A Promela front-end for Spot 3 / 27
Introduction Promela and state-space generation Implementation Benchmark Conclusion
Guillaume Sadegh A Promela front-end for Spot 3 / 27
Introduction Promela and state-space generation Implementation Benchmark Conclusion
Guillaume Sadegh A Promela front-end for Spot 3 / 27
Introduction Promela and state-space generation Implementation Benchmark Conclusion
Guillaume Sadegh A Promela front-end for Spot 3 / 27
Introduction Promela and state-space generation Implementation Benchmark Conclusion
Guillaume Sadegh A Promela front-end for Spot 4 / 27
Introduction Promela and state-space generation Implementation Benchmark Conclusion
Guillaume Sadegh A Promela front-end for Spot 5 / 27
Introduction Promela and state-space generation Implementation Benchmark Conclusion
Guillaume Sadegh A Promela front-end for Spot 6 / 27
Introduction Promela and state-space generation Implementation Benchmark Conclusion
Guillaume Sadegh A Promela front-end for Spot 7 / 27
Introduction Promela and state-space generation Implementation Benchmark Conclusion
Guillaume Sadegh A Promela front-end for Spot 7 / 27
Introduction Promela and state-space generation Implementation Benchmark Conclusion
Guillaume Sadegh A Promela front-end for Spot 8 / 27
Introduction Promela and state-space generation Implementation Benchmark Conclusion
chan stick_1 = [ 1 ]
{ bool } ; chan stick_2 = [ 1 ]
{ bool } ; byte p1 , p2 ; /∗ Id
processes ∗/ proctype philo (chan l e f t _ s t i c k , r i g h t _ s t i c k ) { do : : l e f t _ s t i c k ?_ ; /∗ Wait f o r data from the l e f t s t i c k ∗/ take_r : r i g h t _ s t i c k ?_ ; /∗ Wait f o r data from the r i g h t s t i c k ∗/ release_l : l e f t _ s t i c k ! 1 ; /∗ F i l l the l e f t s t i c k ∗/ release_r : r i g h t _ s t i c k ! 1 ; /∗ F i l l the r i g h t s t i c k ∗/
} i n i t { atomic { stick_1 ! 1 ; stick_2 ! 1 ; p1 = run philo ( stick_1 , stick_2 ) ; /∗ Philosopher 1 ∗/ p2 = run philo ( stick_2 , stick_1 ) ; /∗ Philosopher 2 ∗/ } }
Guillaume Sadegh A Promela front-end for Spot 9 / 27
Introduction Promela and state-space generation Implementation Benchmark Conclusion
Guillaume Sadegh A Promela front-end for Spot 10 / 27
Introduction Promela and state-space generation Implementation Benchmark Conclusion
Guillaume Sadegh A Promela front-end for Spot 10 / 27
Introduction Promela and state-space generation Implementation Benchmark Conclusion
Guillaume Sadegh A Promela front-end for Spot 10 / 27
Introduction Promela and state-space generation Implementation Benchmark Conclusion
Guillaume Sadegh A Promela front-end for Spot 10 / 27
Introduction Promela and state-space generation Implementation Benchmark Conclusion
Guillaume Sadegh A Promela front-end for Spot 10 / 27
Introduction Promela and state-space generation Implementation Benchmark Conclusion
never { T0 _ i ni t : i f : : ( philo [ p1 ] @release_r ) −> goto accept_S9 : : (1) −> goto T0 _ i ni t f i ; accept_S9 : i f : : (1) −> goto T0 _ i ni t f i ; }
Guillaume Sadegh A Promela front-end for Spot 11 / 27
Introduction Promela and state-space generation Implementation Benchmark Conclusion
Guillaume Sadegh A Promela front-end for Spot 12 / 27
Introduction Promela and state-space generation Implementation Benchmark Conclusion
Guillaume Sadegh A Promela front-end for Spot 13 / 27
Introduction Promela and state-space generation Implementation Benchmark Conclusion
Guillaume Sadegh A Promela front-end for Spot 14 / 27
Introduction Promela and state-space generation Implementation Benchmark Conclusion
Guillaume Sadegh A Promela front-end for Spot 14 / 27
Introduction Promela and state-space generation Implementation Benchmark Conclusion
Guillaume Sadegh A Promela front-end for Spot 14 / 27
Introduction Promela and state-space generation Implementation Benchmark Conclusion Existing hack
Guillaume Sadegh A Promela front-end for Spot 15 / 27
Introduction Promela and state-space generation Implementation Benchmark Conclusion NIPS Virtual Machine
Guillaume Sadegh A Promela front-end for Spot 16 / 27
Introduction Promela and state-space generation Implementation Benchmark Conclusion NIPS Virtual Machine
Guillaume Sadegh A Promela front-end for Spot 16 / 27
Introduction Promela and state-space generation Implementation Benchmark Conclusion NIPS Virtual Machine
Guillaume Sadegh A Promela front-end for Spot 17 / 27
Introduction Promela and state-space generation Implementation Benchmark Conclusion NIPS Virtual Machine
Guillaume Sadegh A Promela front-end for Spot 18 / 27
Introduction Promela and state-space generation Implementation Benchmark Conclusion NIPS Virtual Machine
Guillaume Sadegh A Promela front-end for Spot 18 / 27
Introduction Promela and state-space generation Implementation Benchmark Conclusion NIPS Virtual Machine
Guillaume Sadegh A Promela front-end for Spot 19 / 27
Introduction Promela and state-space generation Implementation Benchmark Conclusion
Guillaume Sadegh A Promela front-end for Spot 20 / 27
Introduction Promela and state-space generation Implementation Benchmark Conclusion
Guillaume Sadegh A Promela front-end for Spot 21 / 27
Introduction Promela and state-space generation Implementation Benchmark Conclusion
Guillaume Sadegh A Promela front-end for Spot 22 / 27
Introduction Promela and state-space generation Implementation Benchmark Conclusion
Guillaume Sadegh A Promela front-end for Spot 23 / 27
Introduction Promela and state-space generation Implementation Benchmark Conclusion
◮ We can compare emptiness check algorithms of Spot and
◮ Extend SPIN to generate a state-space explorer. ◮ Write a Promela state-space explorer from scratch. Guillaume Sadegh A Promela front-end for Spot 24 / 27
Introduction Promela and state-space generation Implementation Benchmark Conclusion
◮ We can compare emptiness check algorithms of Spot and
◮ Extend SPIN to generate a state-space explorer. ◮ Write a Promela state-space explorer from scratch. Guillaume Sadegh A Promela front-end for Spot 24 / 27
Introduction Promela and state-space generation Implementation Benchmark Conclusion
Guillaume Sadegh A Promela front-end for Spot 25 / 27
Introduction Promela and state-space generation Implementation Benchmark Conclusion
Guillaume Sadegh A Promela front-end for Spot 26 / 27
Introduction Promela and state-space generation Implementation Benchmark Conclusion
Guillaume Sadegh A Promela front-end for Spot 27 / 27