Advertisement

Some recent advances in automated analysis

  • Erika Ábrahám
  • Klaus Havelund
TACAS 2014

Abstract

Due to the increasing complexity of software systems, there is a growing need for automated and scalable software synthesis and analysis. In the last decade, active research in the formal methods community brought interesting results and valuable tools. However, there are still challenges to face and hard problems that need to be solved. We briefly outline some recent trends, and review some of the latest achievements, introducing six papers selected from the 20th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS 2014).

Keywords

Analysis Parallel algorithms Satisfiability modulo theories Runtime verification Probabilistic systems 

Notes

Acknowledgments

We are grateful to all authors for their contributions and to the reviewers of TACAS’14 and of this special issue for their thorough and valuable work.

References

  1. 1.
    Ábrahám, E.: Building bridges between symbolic computation and satisfiability checking. In: Proceedings of the 2015 ACM International Symposium on Symbolic and Algebraic Computation (ISSAC’15), pp. 1–6. ACM Press, New York (2015)Google Scholar
  2. 2.
    Ábrahám, E., Becker, B., Dehnert, C., Jansen, N., Katoen, J.-P., Wimmer, R.: Counterexample generation for discrete-time Markov models: an introductory survey. In: Formal Methods for Executable Software Models—14th International School on Formal Methods for the Design of Computer, Communication, and Software Systems (SFM’14), Advanced Lectures. LNCS, vol. 8483, pp. 65–121. Springer, Berlin (2014)Google Scholar
  3. 3.
    Ábrahám, E., Bekas, C., Brandic, I., Genaim, S., Johnsen, E.B., Kondov, I., Pllana, S., Streit, A.: Preparing HPC applications for exascale: challenges and recommendations. CoRR. arXiv:1503.06974 (2015)
  4. 4.
    Ábrahám, E., Havelund, K. (eds.): Proceedings of the 20th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS’14). LNCS, vol. 8413. Springer, Berlin (2014)Google Scholar
  5. 5.
    Allan, C., Avgustinov, P., Christensen, A.S., Hendren, L., Kuzins, S., Lhoták, O., de Moor, O., Sereni, D., Sittamplan, G., Tibble, J.: Adding trace matching with free variables to AspectJ. In: Proceedings of the 20th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA’05), pp. 345–364. ACM Press, New York (2005)Google Scholar
  6. 6.
    Armando, A., Carbone, R., Compagna, L.: SATMC: a SAT-based model checker for security-critical systems. In: Proceedings of the 20th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS’14). LNCS, vol. 8413, pp. 31–45. Springer, Berlin (2014)Google Scholar
  7. 7.
    Armando, A., Carbone, R., Compagna, L.: SATMC: a SAT-based model checker for security protocols, business processes, and security APIs. Int. J. Softw. Tools Technol. Transf. doi: 10.1007/s10009-015-0385-y (2015)
  8. 8.
    Artho, C., Havelund, K., Biere, A.: High-level data races. Softw. Test. Verif. Reliab. 13(4), 207–227. doi: 10.1002/stvr.281 (2003)
  9. 9.
    Baier, C., Haverkort, B.R., Hermanns, H., Katoen, J.-P.: Performance evaluation and model checking join forces. Commun. ACM 53(9), 76–85 (2010)CrossRefGoogle Scholar
  10. 10.
    Baier, C., Katoen, J.-P.: Principles of Model Checking. The MIT Press, Cambridge (2008)zbMATHGoogle Scholar
  11. 11.
    Barrett, C., Conway, C.L., Deters, M., Hadarean, L., Jovanović, D., King, T., Reynolds, A., Tinelli, C.: CVC4. In: Proceedings of the 23rd International Conference on Computer Aided Verification (CAV’11). LNCS, vol. 6806, pp. 171–177. Springer, Berlin (2011)Google Scholar
  12. 12.
    Barringer, H.: A Survey of Verification Techniques for Parallel Programs. LNCS, vol. 191. Springer, Berlin (1985)Google Scholar
  13. 13.
    Barringer, H., Falcone, Y., Havelund, K., Reger, G., Rydeheard, D.: Quantified event automata—towards expressive and efficient runtime monitors. In: Proceedings of the 18th International Symposium on Formal Methods (FM’12). LNCS, vol. 7436, pp. 68–84. Springer, Berlin (2012)Google Scholar
  14. 14.
    Barringer, H., Goldberg, A., Havelund, K., Sen, K.: Rule-based runtime verification. In: Proceedings of the 5th International Conference on Verification, Model Checking, and Abstract Interpretation (VMCAI’04). LNCS, vol. 2937, pp. 44–57. Springer, Berlin (2004)Google Scholar
  15. 15.
    Barringer, H., Havelund, K.: TraceContract: a Scala DSL for trace analysis. In: Proceedings of the 17th International Symposium on Formal Methods (FM’11). LNCS, vol. 6664, pp. 57–72. Springer, Berlin (2011)Google Scholar
  16. 16.
    Barringer, H., Rydeheard, D.E., Havelund, K.: Rule systems for run-time monitoring: from Eagle to RuleR. J. Log. Comput. 20(3), 675–706 (2010)MathSciNetCrossRefzbMATHGoogle Scholar
  17. 17.
    Basin, D.A., Klaedtke, F., Müller, S.: Policy monitoring in first-order temporal logic. In: Proceedings of the 22nd International Conference on Computer Aided Verification (CAV’10). LNCS, vol. 6174, pp. 1–18. Springer, Berlin (2010)Google Scholar
  18. 18.
    Bauer, A., Küster, J.-C., Vegliach, G.: From propositional to first-order monitoring. In: Proceedings of the 4th International Conference on Runtime Verification (RV’13). LNCS, vol. 8174, pp. 59–75. Springer, Berlin (2013)Google Scholar
  19. 19.
    Behrmann, G., Hune, T., Vaandrager, F.: Distributing timed model checking—how the search order matters. In: Proceedings of the 12th International Conference on Computer Aided Verification (CAV’00). LNCS, vol. 1855, pp. 216–231. Springer, Berlin (2000)Google Scholar
  20. 20.
    Bensalem, S., Havelund, K.: Dynamic deadlock analysis of multi-threaded programs. In: Proceedings of the First Haifa International Conference on Hardware and Software Verification and Testing (HVC’05). LNCS, vol. 3875, pp. 208–223. Springer, Berlin (2006)Google Scholar
  21. 21.
    Bensalem, S., Havelund, K., Orlandini, A.: Verification and validation meet planning and scheduling. Softw. Tools Technol. Transf. 16(1), 1–12 (2014)CrossRefGoogle Scholar
  22. 22.
    Bodden, E.: MOPBox: A library approach to runtime verification. In: Proceedings of the 2nd International Conference on Runtime Verification (RV’11). LNCS, vol. 7186, pp. 365–369. Springer, Berlin (2011)Google Scholar
  23. 23.
    Bouton, T., de Oliveira, D.C.B., Déharbe, D., Fontaine, P.: veriT: An open, trustable and efficient SMT-solver. In: Proceedings of the 22nd International Conference on Automated Deduction (CADE-22). LNCS, vol. 5663, pp. 151–156. Springer, Berlin (2009)Google Scholar
  24. 24.
    Bruttomesso, R., Pek, E., Sharygina, N., Tsitovich, A.: The OpenSMT solver. In: Proceedings of the 16th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS’10). LNCS, vol. 6015, pp. 150–153. Springer, Berlin (2010)Google Scholar
  25. 25.
    Chen, F., Roşu, G.: Parametric trace slicing and monitoring. In: Proceedings of the 15th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS’09). LNCS, vol. 5505, pp. 246–261 (2009)Google Scholar
  26. 26.
    Cimatti, A., Griggio, A., Schaafsma, B.J., Sebastiani, R.: The MathSAT5 SMT solver. In: Proceedings of the 19th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS’13). LNCS, vol. 7795, pp. 93–107. Springer, Berlin (2013)Google Scholar
  27. 27.
    Corzilius, F., Kremer, G., Junges, S., Schupp, S., Abraham, E.: SMT-RAT: an open source C toolbox for strategic and parallel SMT solving. In: Proceedings of the 18th International Conference on Theory and Applications of Satisfiability Testing (SAT’15). LNCS. Springer, Berlin (2015)Google Scholar
  28. 28.
    Davis, M., Logemann, G., Loveland, D.: A machine program for theorem-proving. Commun. ACM 5(7), 394–397 (1962)MathSciNetCrossRefzbMATHGoogle Scholar
  29. 29.
    Davis, M., Putnam, H.: A computing procedure for quantification theory. J. ACM 7(3), 201–215 (1960)MathSciNetCrossRefzbMATHGoogle Scholar
  30. 30.
    de Moura, L.M., Bjørner, N.: Z3: an efficient SMT solver. In: Proceedings of the 14th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS’08). LNCS, vol. 4963, pp. 337–340. Springer, Berlin (2008)Google Scholar
  31. 31.
    de Roever, W.P., de Boer, F.S., Hannemann, U., Hooman, J., Lakhnech, Y., Poel, M., Zwiers, J.: Concurrency Verification: Introduction to Compositional and Noncompositional Methods. Cambridge Tracts in Theoretical Computer Science, vol. 54. Cambridge University Press, Cambridge (2001)Google Scholar
  32. 32.
    Decker, N., Leucker, M., Thoma, D.: Monitoring modulo theories. In: Proceedings of the 20th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS’14). LNCS, vol. 8413, pp. 341–356. Springer, Berlin (2014)Google Scholar
  33. 33.
    Decker, N., Leucker, M., Thoma, D.: Monitoring modulo theories. Int. J. Softw. Tools Technol. Transf. doi: 10.1007/s10009-015-0380-3 (2015)
  34. 34.
    Dehnert, C., Junges, S., Jansen, N., Corzilius, F., Volk, M., Bruintjes, H., Katoen, J.-P., Ábrahám, E.: Prophesy: a probabilistic parameter synthesis tool. In: Proceedings of the 27th International Conference on Computer Aided Verification (CAV’15). LNCS, vol. 9206, pp. 214–231. Springer, Berlin (2015)Google Scholar
  35. 35.
    Drusinsky, D.: The temporal rover and the ATG rover. In: Proceedings of the 7th International SPIN Workshop on Model Checking and Software Verification (SPIN’00). LNCS, vol. 1885, pp. 323–330. Springer, Berlin (2000)Google Scholar
  36. 36.
    Dutertre, B.: Yices 2.2. In: Proceedings of the 26th International Conference on Computer Aided Verification (CAV’14). LNCS, vol. 8559, pp. 737–744. Springer, Berlin (2014)Google Scholar
  37. 37.
    Dutertre, B., de Moura, L.: A fast linear-arithmetic solver for DPLL(T). In: Proceedings of the 18th International Conference on Computer Aided Verification (CAV’06). LNCS, vol. 4144, pp. 81–94. Springer, Berlin (2006)Google Scholar
  38. 38.
    Eén, N., Sörensson, N.: An extensible SAT-solver. In: Proceedings of the 6th International Conference on Theory and Applications of Satisfiability Testing (SAT’03). LNCS, vol. 2919, pp. 502–518. Springer, Berlin (2004)Google Scholar
  39. 39.
    Falcone, Y., Havelund, K., Reger, G.: A tutorial on runtime verification. In: Summer School Marktoberdorf 2012—Engineering Dependable Software Systems. IOS Press, Amsterdam (2013)Google Scholar
  40. 40.
    Filippidis, I., Holzmann, G.J.: An improvement of the piggyback algorithm for parallel model checking. In: Proceedings of the 2014 International Symposium on Model Checking of Software (SPIN’14), pp. 48–57. ACM Press, New York (2014)Google Scholar
  41. 41.
    Fränzle, M., Herde, C., Teige, T., Ratschan, S., Schubert, T.: Efficient solving of large non-linear arithmetic constraint systems with complex Boolean structure. J. Satisf. Boolean Model. Comput. 1(3–4), 209–236 (2007)zbMATHGoogle Scholar
  42. 42.
    Garavel, H., Mateescu, R., Smarandache, I.: Parallel state space construction for model-checking. In: Proceedings of the 8th International SPIN Workshop on Model Checking of Software (SPIN’01), pp. 217–234. Springer, Berlin (2001)Google Scholar
  43. 43.
    Gibson-Robinson, T., Armstrong, P., Boulgakov, A., Roscoe, A.W.: FDR3: a parallel refinement checker for CSP. Int. J. Softw. Tools Technol. Transf. doi: 10.1007/s10009-015-0377-y (2015)
  44. 44.
    Gibson-Robinson, T., Armstrong, P.J., Boulgakov, A., Roscoe, A.W.: FDR3—a modern refinement checker for CSP. In: Proceedings of the 20th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS’14). LNCS, vol. 8413, pp. 187–201. Springer, Berlin (2014)Google Scholar
  45. 45.
    Giesl, J., Brockschmidt, M., Emmes, F., Frohn, F., Fuhs, C., Otto, C., Plücker, M., Schneider-Kamp, P., Ströder, T., Swiderski, S., Thiemann, R.: Proving termination of programs automatically with AProVE. In: Proceedings of the 7th International Joint Conference on Automated Reasoning (IJCAR’14). LNAI, vol. 8562, pp. 184–191. Springer, Berlin (2014)Google Scholar
  46. 46.
    Goubault-Larrecq, J., Olivain, J.: A smell of ORCHIDS. In: Proceedings of the 8th International Workshop on Runtime Verification (RV’08). LNCS, vol. 5289, pp. 1–20. Springer, Berlin (2008)Google Scholar
  47. 47.
    Hahn, E.M., Hermanns, H., Wachter, B., Zhang, L.: PARAM: a model checker for parametric Markov models. In: Proceedings of the 22nd International Conference on Computer Aided Verification (CAV’10). LNCS, vol. 6174, pp. 660–664. Springer, Berlin (2010)Google Scholar
  48. 48.
    Hallé, S., Villemaire, R.: Runtime enforcement of web service message contracts with data. IEEE Trans. Serv. Comput. 5(2), 192–206 (2012)CrossRefGoogle Scholar
  49. 49.
    Havelund, K.: Rule-based runtime verification revisited. Softw. Tools Technol. Transf. 17(2), 143–170 (2014)CrossRefGoogle Scholar
  50. 50.
    Havelund, K., Goldberg, A.: Verify your runs. In: Proceedings of the 1st IFIP TC 2/WG 2.3 Conference on Verified Software: Theories, Tools, Experiments (VSTTE’05), pp. 374–383 (2008)Google Scholar
  51. 51.
    Havelund, K., Roşu, G.: Efficient monitoring of safety properties. Softw. Tools Technol. Transf. 6(2), 158–173 (2004)CrossRefGoogle Scholar
  52. 52.
    Heyman, T., Geist, D., Grumberg, O., Schuster, A.: Achieving scalability in parallel reachability analysis of very large circuits. In: Proceedings of the 12th International Conference on Computer Aided Verification (CAV’00), pp. 20–35. Springer, Berlin (2000)Google Scholar
  53. 53.
    Holzmann, G.J.: Parallelizing the SPIN model checker. In: Proceedings of the 19th International Workshop on Model Checking Software (SPIN’12). LNCS, vol. 7385, pp. 155–171. Springer, Oxford (2012)Google Scholar
  54. 54.
    Holzmann, G.J.: Proving properties of concurrent programs. In: Proceedings 20th International Symposium on Model Checking Software (SPIN’13). LNCS, vol. 7976, pp. 18–23. Springer, Berlin (2013)Google Scholar
  55. 55.
    Holzmann, G.J., Bošnački, D.: The design of a multicore extension of the SPIN model checker. IEEE Trans. Softw. Eng. 33(10), 659–674 (2007)CrossRefGoogle Scholar
  56. 56.
    Holzmann, G.J., Joshi, R., Groce, A.: Swarm verification techniques. IEEE Trans. Softw. Eng. 37(6), 845–857 (2011)CrossRefGoogle Scholar
  57. 57.
    Isberner, M., Howar, F., Steffen, B.: Learning register automata: from languages to program structures. Mach. Learn. 96(1–2), 65–98 (2014)MathSciNetCrossRefzbMATHGoogle Scholar
  58. 58.
    Katoen, J.-P., Zapreev, I.S., Hahn, E.M., Hermanns, H., Jansen, D.N.: The ins and outs of the probabilistic model checker MRMC. Perform. Eval. 68(2), 90–104 (2011)CrossRefGoogle Scholar
  59. 59.
    Kwiatkowska, M.Z.: Model checking for probability and time: from theory to practice. In: Proceedings of the 18th IEEE Symposium on Logic in Computer Science (LICS’03), pp. 351–360. IEEE Computer Society Press, Piscataway (2003)Google Scholar
  60. 60.
    Kwiatkowska, M.Z., Norman, G., Parker, D.: Stochastic model checking. In: Formal Methods for Performance Evaluation—7th International School on Formal Methods for the Design of Computer, Communication, and Software Systems (SFM’07), Advanced Lectures. LNCS, vol. 4486, pp. 220–270. Springer, Berlin (2007)Google Scholar
  61. 61.
    Kwiatkowska, M.Z., Norman, G., Parker, D.: PRISM 4.0: verification of probabilistic real-time systems. In: Proceedings of the 23rd International Conference on Computer Aided Verification (CAV’11). LNCS, vol. 6806, pp. 585–591 (2011)Google Scholar
  62. 62.
    Lamport, L.: Proving the correctness of multiprocess programs. IEEE Trans. Softw. Eng. 3(2), 125–143 (1977)MathSciNetCrossRefzbMATHGoogle Scholar
  63. 63.
    Lee, I., Kannan, S., Kim, M., Sokolsky, O., Viswanathan, M.: Runtime assurance based on formal specifications. In: Proceedings of the International Conference on Parallel and Distributed Processing Techniques and Applications (PDPTA’99), pp. 279–287. CSREA Press, Las Vegas (1999)Google Scholar
  64. 64.
    Lerda, F., Sisto, R.: Distributed-memory model checking with SPIN. In: Proceedings of the 5th and 6th International SPIN Workshops on Theoretical and Practical Aspects of SPIN Model Checking, pp. 22–39. Springer, Berlin (1999)Google Scholar
  65. 65.
    Leucker, M., Schallhart, C.: A brief account of runtime verification. J. Log. Algebraic Program. 78(5), 293–303 (2008)CrossRefzbMATHGoogle Scholar
  66. 66.
    Levin, G.M., Gries, D.: A proof technique for communicating sequential processes. Acta Inform. 15(3), 281–302 (1981)MathSciNetCrossRefzbMATHGoogle Scholar
  67. 67.
    Lowe, G.: Concurrent depth-first search algorithms. In: Proceedings of the 20th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS’14). LNCS, vol. 8413, pp. 202–216. Springer, Berlin (2014)Google Scholar
  68. 68.
    Lowe, G.: Concurrent depth-first search algorithms based on Tarjan’s algorithm. Int. J. Softw. Tools Technol. Transf. doi: 10.1007/s10009-015-0382-1 (2015)
  69. 69.
    Marques-silva, J.P., Sakallah, K.A.: Grasp: a search algorithm for propositional satisfiability. IEEE Trans. Comput. 48, 506–521 (1999)MathSciNetCrossRefGoogle Scholar
  70. 70.
    Nelson, G., Oppen, D.C.: Simplification by cooperating decision procedures. ACM Trans. Program. Lang. Syst. 1(2), 245–257 (1979)CrossRefzbMATHGoogle Scholar
  71. 71.
    Owicki, S., Gries, D.: Verifying properties of parallel programs: an axiomatic approach. Commun. ACM 19(5), 279–285 (1976)MathSciNetCrossRefzbMATHGoogle Scholar
  72. 72.
    Reiss, S.P., Tarvo, A.: What is my program doing? Program dynamics in programmer’s terms. In: Proceedings of the 2nd International Conference on Runtime Verification (RV’11). LNCS, vol. 7186, pp. 245–259. Springer, Berlin (2011)Google Scholar
  73. 73.
    Savage, S., Burrows, M., Nelson, G., Sobalvarro, P., Anderson, T.: Eraser: A dynamic data race detector for multithreaded programs. ACM Trans. Comput. Syst. 15(4), 391–411 (1997)CrossRefGoogle Scholar
  74. 74.
    Shostak, R.E.: A practical decision procedure for arithmetic with function symbols. J. ACM 26(2), 351–360 (1979)MathSciNetCrossRefzbMATHGoogle Scholar
  75. 75.
    Stern, U., Dill, D.L.: Parallelizing the Mur\(\phi \) verifier. In: Proceedings of the 9th International Conference on Computer Aided Verification (CAV’97), pp. 256–267. Springer, Berlin (1997)Google Scholar
  76. 76.
    Stolz, V., Bodden, E.: Temporal assertions using AspectJ. In: Proceedings of the 5th International Workshop on Runtime Verification (RV’05). ENTCS, vol. 144(4), pp. 109–124. Elsevier, Amsterdam (2006)Google Scholar
  77. 77.
    von Essen, C., Giannakopoulou, D.: Analyzing the next generation airborne collision avoidance system. In: Proceedings of the 20th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS’14). LNCS, vol. 8413, pp. 620–635. Springer, Berlin (2014)Google Scholar
  78. 78.
    von Essen, C., Giannakopoulou, D.: Probabilistic verification and synthesis of the next generation airborne collision avoidance system. Int. J. Softw. Tools Technol. Transf. doi: 10.1007/s10009-015-0388-8 (2015)
  79. 79.
    Wijs, A., Bošnački, D.: GPUexplore: many-core on-the-fly state space exploration using GPUs. In: Proceedings of the 20th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS’14). LNCS, vol. 8413, pp. 233–247. Springer, Berlin (2014)Google Scholar
  80. 80.
    Wijs, A., Bošnački, D.: Many-core on-the-fly model checking of safety properties using GPUs. Int. J. Softw. Tools Technol. Transf. doi: 10.1007/s10009-015-0379-9 (2015)
  81. 81.
    Zankl, H., Middeldorp, A.: Satisfiability of non-linear (ir)rational arithmetic. In: Proceedings of the 16th International Conference on Logic for Programming, Artificial Intelligence, and Reasoning (LPAR-16). LNAI, vol. 6355, pp. 481–500. Springer, Berlin (2010)Google Scholar
  82. 82.
    Zhang, L., Madigan, C.F., Moskewicz, M.H., Malik, S.: Efficient conflict driven learning in a Boolean satisfiability solver. In: Proceedings of the 2001 IEEE/ACM International Conference on Computer Aided Design (ICCAD’01), pp. 279–285. IEEE Computer Society Press, Piscataway (2001)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2015

Authors and Affiliations

  1. 1.RWTH Aachen UniversityAachenGermany
  2. 2.Jet Propulsion LaboratoryCalifornia Institute of TechnologyPasadenaUSA

Personalised recommendations