Abstract
AbstractWhile the problem of mechanized proof of liveness of reactive programs has been studied for decades, there is currently no method of proving liveness that is conceptually simple to apply in practice to realistic problems, can be scaled to large problems without modular decomposition, and does not fail unpredictably due to the use of fragile heuristics. We introduce a method of liveness proof by relational rankings, implement it, and show that it meets these criteria in a realistic industrial case study involving a model of the memory subsystem in a CPU.
Publisher
Springer Nature Switzerland
Reference24 articles.
1. Apple, Inc. Apple Generic Memory Model. https://github.com/kenmcmil/ivy/tree/master/doc/examples/apple
2. Biere, A., Artho, C., Schuppan, V.: Liveness checking as safety checking. Electr. Notes Theor. Comput. Sci. 66(2), 160–177 (2002)
3. Burch, J.R., Clarke, E.M., McMillan, K.L., Dill, D.L., Hwang, L.J.: Symbolic model checking: $${{10}^{20}}$$ states and beyond. In: LICS, pp. 428–439. IEEE Computer Society (1990)
4. Lecture Notes in Computer Science;B Cook,2005
5. de Moura, L.M., Bjørner, N.: Z3: An efficient SMT solver. In: TACAS, pp. 337–340 (2008)