Abstract
During explicit software model checking, the tools spend a lot of time in state matching. This is implied not only by processing a huge number of states, but also by the fact that state representation is usually not small either. In this article, we present two dead variable analyses; applying them during the code-model-checking process results in size reduction of both state representation and explored state space itself. We implemented the analyses inside Java PathFinder and evaluate their impact in terms of memory and time reduction using several non-trivial benchmarks.
Similar content being viewed by others
References
Adámek J et al (2006) Component reliability extensions for fractal component model. http://d3s.mff.cuni.cz/software/ft/
Bruneton E et al (2004) An open component model and its support in java. In: Crnkovic I, Stafford JA, Schmidt HW, Wallnau KC (eds) CBSE, LNCS, vol 3054. Springer, Berlin, pp 7–22
Bozga M, Fernandez J-C, Ghirvu L (1999) State space reduction based on live variables analysis. In: Cortesi A, Filé G (eds) Static analysis, 6th international symposium, SAS ’99, Venice, Italy, September 22–24, 1999, Proceedings. Lecture Notes in Computer Science, vol 1694. Springer, pp 164–178
Christel B, Joost-Pieter K (2008) Principles of model checking. The MIT Press, Cambridge
Corbett JC et al (2000) Bandera: extracting finite-state models from java source code. In: Ghezzi C, Jazayeri M, Wolf AL (eds) Proceedings of the 22nd International Conference on on Software Engineering, ICSE 2000, Limerick Ireland, June 4–11, 2000. ACM, pp 439–448
Concurrency tool comparison repository. https://facwiki.cs.byu.edu/vv-lab/index.php/Concurrency_Tool_Comparison
Dillenseger B (2009) Clif, a framework based on fractal for flexible, distributed load testing. Ann Telecommun 64(1): 101–120
Doron P (1993) All from one, one for all: on model checking using representatives. In: Proceedings of the 5th International Conference on Computer Aided Verification, CAV ’93. Springer-Verlag, London, pp 409–423
Fernandez J-C, Bozga M, Ghirvu L (2003) State space reduction based on live variables analysis. Sci Comput Program 47(2–3): 203–220
Holzmann GJ (2004) The SPIN Model Checker—primer and reference manual. Addison-Wesley, Reading
Huffman David A (1952) A method for the construction of minimum-redundancy codes. Proc Inst Radio Eng 9(40): 1098–1101
Jančík P, Kofroň J (2016) Dead variable analysis for multi-threaded heap manipulating programs. In: Proceedings of 31st ACM Symposium on Applied Computing. ACM
Lewis M, Jones M (2006) A dead variable analysis for explicit model checking. In: Hatcliff J, Tip F (eds) Proceedings of the 2006 ACM SIGPLAN Workshop on Partial Evaluation and Semantics-based Program Manipulation, Charleston, South Carolina, USA, January 9–10, 2006. ACM, pp 48–57
Lubomír B et al (2007) CoCoME in fractal. LNCS 5153: 357–387
MURPHI Model Checker. http://formalverification.cs.utah.edu/Murphi/
Nguyen VY, Ruys TC (2009) Memoised garbage collection for software model checking. In: Proceedings of Tools and Algorithms for the Construction and Analysis of Systems. Springer, Berlin, pp 201–214
Parallel Java Benchmarks. https://bitbucket.org/pag-lab/pjbench
Parízek P, Lhoták O (2011) Identifying future field accesses in exhaustive state space traversal. In: Alexander P, Pasareanu CS, Hosking JG (eds) 26th IEEE/ACM International Conference on Automated Software Engineering (ASE 2011), Lawrence, KS, USA, November 6–10, 2011. IEEE Computer Society, pp 93–102
Parízek P, Lhoták O (2015) Model checking of concurrent programs with static analysis of field accesses. Sci Comput Program 98(Part 4): 735–763
Pavel J, Pavel P, Jan K (2012) BeJC: checking compliance between java implementation and behavior specification. In: Proceedings of the 17th international doctoral symposium on components and architecture, WCOP ’12. ACM, New York, pp 31–36
Run-length encoding. https://en.wikipedia.org/wiki/Run-length_encoding
Self JP, Mercer EG (2007) On-the-fly dynamic dead variable analysis. In: Bosnacki D, Edelkamp S (eds) Model Checking Software, 14th International SPIN Workshop, Berlin, Germany, July 1–3, 2007, Proceedings. Lecture Notes in Computer Science, vol 4595. Springer, pp 113–130
Visser W, Havelund K, Brat GP, Park S, Lerda F (2003) Model checking programs. Autom Softw Eng 10(2): 203–232
Yorav K, Grumberg O (2004) Static analysis for state-space reductions preserving temporal logics. Form Methods Syst Des 25(1): 67–96
Author information
Authors and Affiliations
Corresponding author
Additional information
Michael Butler
This work was partially supported by the Grant Agency of the Czech Republic Project 14-11384S.
Rights and permissions
About this article
Cite this article
Jančík, P., Kofroň, J. On partial state matching. Form Asp Comp 29, 777–803 (2017). https://doi.org/10.1007/s00165-016-0413-z
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00165-016-0413-z