Abstract

In this paper we introduce the first known tool for symbolically proving fair-CTL properties of (infinite-state) integer programs. Our solution is based on a reduction to existing techniques for fairness-free CTL model checking via the use of infinite non-deterministic branching to symbolically partition fair from unfair executions. We show the viability of our approach in practice using examples drawn from device drivers and algorithms utilizing shared resources.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Apt, K., Olderog, E.: Fairness in parallel programs: The transformational approach. In: ACM TOPLAS, vol. 10 (1988)Google Scholar
  2. 2.
    Beyene, T.A., Popeea, C., Rybalchenko, A.: Solving existentially quantified horn clauses. In: Sharygina, N., Veith, H. (eds.) CAV 2013. LNCS, vol. 8044, pp. 869–882. Springer, Heidelberg (2013)CrossRefGoogle Scholar
  3. 3.
    Bjørner, N., Browne, A., Colón, M., Finkbeiner, B., Manna, Z., Sipma, H., Uribe, T.: Verifying temporal properties of reactive systems: A step tutorial. FMSD 16(3) (2000)Google Scholar
  4. 4.
    Brockschmidt, M., Cook, B., Fuhs, C.: Better termination proving through cooperation. In: Sharygina, N., Veith, H. (eds.) CAV 2013. LNCS, vol. 8044, pp. 413–429. Springer, Heidelberg (2013)CrossRefGoogle Scholar
  5. 5.
    Cimatti, A., Clarke, E., Giunchiglia, E., Giunchiglia, F., Pistore, M., Roveri, M., Sebastiani, R., Tacchella, A.: Nusmv 2: An opensource tool for symbolic model checking. In: Brinksma, E., Larsen, K.G. (eds.) CAV 2002. LNCS, vol. 2404, p. 359. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  6. 6.
    Clarke, E.M., Emerson, E.A., Sistla, A.P.: Automatic verification of finite-state concurrent systems using temporal logic specifications. ACM TOPLAS 8(2) (1986)Google Scholar
  7. 7.
    Cook, B., Gotsman, A., Parkinson, M., Vafeiadis, V.: Proving that non-blocking algorithms don’t block. In: POPL. ACM (2009)Google Scholar
  8. 8.
    Cook, B., Gotsman, A., Podelski, A., Rybalchenko, A., Vardi, M.: Proving that programs eventually do something good. In: POPL. ACM (2007)Google Scholar
  9. 9.
    Cook, B., Khlaaf, H., Piterman, N.: Fairness for infinite-state systems. TR RN/14/11, UCL (2014)Google Scholar
  10. 10.
    Rybina, T., Voronkov, A.: Faster temporal reasoning for infinite-state programs. In: Baaz, M., Makowsky, J.A. (eds.) CSL 2003. LNCS, vol. 2803, pp. 546–573. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  11. 11.
    Cook, B., Koskinen, E.: Making prophecies with decision predicates. In: POPL. ACM (2011)Google Scholar
  12. 12.
    Cook, B., Koskinen, E.: Reasoning about nondeterminism in programs. In: PLDI. ACM (2013)Google Scholar
  13. 13.
    Cook, B., Koskinen, E., Vardi, M.: Temporal property verification as a program analysis task. In: Gopalakrishnan, G., Qadeer, S. (eds.) CAV 2011. LNCS, vol. 6806, pp. 333–348. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  14. 14.
    Cook, B., See, A., Zuleger, F.: Ramsey vs. lexicographic termination proving. In: Piterman, N., Smolka, S.A. (eds.) TACAS 2013. LNCS, vol. 7795, pp. 47–61. Springer, Heidelberg (2013)Google Scholar
  15. 15.
    David, A., Håkansson, J., Larsen, K.G., Pettersson, P.: Model checking timed automata with priorities using DBM subtraction. In: Asarin, E., Bouyer, P. (eds.) FORMATS 2006. LNCS, vol. 4202, pp. 128–142. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  16. 16.
    Emerson, E.A., Halpern, J.Y.: “Sometimes” and “not never” revisited: On branching versus linear time temporal logic. J. ACM 33(1) (January 1986)Google Scholar
  17. 17.
    Emerson, E.A., Lei, C.-L.: Temporal reasoning under generalized fairness constraints. In: Monien, B., Vidal-Naquet, G. (eds.) STACS 1986. LNCS, vol. 210, pp. 21–36. Springer, Heidelberg (1985)CrossRefGoogle Scholar
  18. 18.
    Harel, D.: Effective transformations on infinite trees, with applications to high undecidability, dominoes and fairness. J. ACM 33, 224–248 (1986)CrossRefMathSciNetGoogle Scholar
  19. 19.
    Kwiatkowska, M., Norman, G., Parker, D.: PRISM 4.0: Verification of probabilistic real-time systems. In: Gopalakrishnan, G., Qadeer, S. (eds.) CAV 2011. LNCS, vol. 6806, pp. 585–591. Springer, Heidelberg (2011)CrossRefGoogle Scholar
  20. 20.
    Pnueli, A., Podelski, A., Rybalchenko, A.: Separating fairness and well-foundedness for the analysis of fair discrete systems. In: Halbwachs, N., Zuck, L.D. (eds.) TACAS 2005. LNCS, vol. 3440, pp. 124–139. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  21. 21.
    Pnueli, A., Sa’ar, Y.: All you need is compassion. In: Logozzo, F., Peled, D.A., Zuck, L.D. (eds.) VMCAI 2008. LNCS, vol. 4905, pp. 233–247. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  22. 22.
    Podelski, A., Rybalchenko, A.: Transition invariants. In: LICS (2004)Google Scholar
  23. 23.
    Schwoon, S.: Moped - A Model-Checker for Pushdown Systems (2002), http://www7.in.tum.de/~schwoon/moped
  24. 24.
    Song, F., Touili, T.: Pushdown model checking for malware detection. In: ESEC/FSE (2013)Google Scholar
  25. 25.
    Vardi, M.Y., Wolper, P.: Reasoning about infinite computations. I&C 115(1), 1–37 (1994)MATHMathSciNetGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2015

Authors and Affiliations

  • Byron Cook
    • 1
  • Heidy Khlaaf
    • 1
  • Nir Piterman
    • 2
  1. 1.University College LondonLondonUK
  2. 2.University of LeicesterLeicesterUK

Personalised recommendations