skip to main content
10.1145/2593882.2593899acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
Article

Software engineering and automated deduction

Published:31 May 2014Publication History

ABSTRACT

Software poses a range of engineering challenges. How do we capture the expected behavior of the software? How can we check if such behavioral descriptions are consistent and valid? How do we generate test instances that explore and examine different parts of the software. We focus on the underlying technology by which a number of these problems can be reduced to a logical form and answered using automated deduction. In the first part we briefly summarize the use of automated deduction within software engineering. Then we consider some of the current and future trends in software engineering and the type of advances it may require from automated deduction. We observe that in the past software engineering problems were solved by merely leveraging advances in automated deduction, especially in SAT and SMT solving, whereas we are now entering a phase where advances in automated deduction are also driven by software engineering requirements.

References

  1. G. Audemard and L. Simon. Predicting Learnt Clauses Quality in Modern SAT Solvers. In C. Boutilier, editor, IJCAI, pages 399–404, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. T. Ball, E. Bounimova, V. Levin, R. Kumar, and J. Lichtenberg. The static driver verifier research platform. In Proceedings of the 22Nd International Conference on Computer Aided Verification, CAV’10, pages 119–122, Berlin, Heidelberg, 2010. Springer. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. T. Ball, B. Hackett, S. K. Lahiri, S. Qadeer, and J. Vanegue. Towards scalable modular checking of user-defined properties. In G. T. Leavens, P. W. O’Hearn, and S. K. Rajamani, editors, VSTTE, volume 6217 of LNCS, pages 1–24. Springer, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. J. Barnes. High Integrity Software: The SPARK Approach to Safety and Security. Addison-Wesley, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. M. Barnett, M. Fähndrich, K. R. M. Leino, P. Müller, W. Schulte, and H. Venter. Specification and verification: the Spec# experience. Commun. ACM, 54(6):81–91, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. C. Barrett and C. Tinelli. CVC3. In W. Damm and H. Hermanns, editors, CAV, volume 4590 of LNCS, pages 298–302. Springer, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. B. Beckert, R. Hähnle, and P. H. Schmitt, editors. Verification of Object-Oriented Software: The KeY Approach. LNCS 4334. Springer, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Y. Bertot and P. Castéran. Interactive Theorem Proving and Program Development. Springer, 2004. Coq home page: http://coq.inria.fr/. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. W. R. Bevier, W. A. Hunt, Jr., J. S. Moore, and W. D. Young. An approach to systems verification. Journal of Automated Reasoning, 5(4):411–428, Dec. 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. D. Beyer, T. A. Henzinger, R. Jhala, and R. Majumdar. The Software Model Checker Blast: Applications to Software Engineering. Int. J. Softw. Tools Technol. Transf., 9(5):505–525, Oct. 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. A. Biere. Lingeling, Plingeling and Treengeling Entering the SAT Competition 2013. In Proceedings of SAT Competition 2013, volume B-2013-1 of Department of Computer Science Series of Publications B, pages 51–52, 2013.Google ScholarGoogle Scholar
  12. A. Biere, M. Heule, H. van Maaren, and T. Walsh, editors. Handbook of Satisfiability, volume 185 of Frontiers in Artificial Intelligence and Applications. IOS Press, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. M. Bofill, R. Nieuwenhuis, A. Oliveras, E. Rodríguez-Carbonell, and A. Rubio. The Barcelogic SMT solver. In A. Gupta and S. Malik, editors, Computer Aided Verification, 20th International Conference, CAV 2008, Princeton, NJ, USA, July 7-14, 2008, Proceedings, volume 5123 of LNCS, pages 294–298. Springer, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. E. Bounimova, P. Godefroid, and D. Molnar. Billions and billions of constraints: Whitebox fuzz testing in production. In Proceedings of the 2013 International Conference on Software Engineering, ICSE ’13, pages 122–131, Piscataway, NJ, USA, 2013. IEEE Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. R. S. Boyer, B. Elspas, and K. N. Levitt. SELECT—A formal system for testing and debugging programs by symbolic execution. ACM SIGPLAN Notices, 10(6):234–245, June 1975. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. R. S. Boyer and J. S. Moore. A Computational Logic Handbook. Academic Press, NY, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. R. Brummayer and A. Biere. Boolector: An Efficient SMT Solver for Bit-Vectors and Arrays. In S. Kowalewski and A. Philippou, editors, Tools and Algorithms for the Construction and Analysis of Systems, volume 5505 of LNCS, pages 174–177. Springer, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. R. Bruttomesso, A. Cimatti, A. Franzén, A. Griggio, and R. Sebastiani. The MathSAT 4 SMT solver. In A. Gupta and S. Malik, editors, Computer Aided Verification, 20th International Conference, CAV 2008, Princeton, NJ, USA, July 7-14, 2008, Proceedings, volume 5123 of LNCS, pages 299–303. Springer, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. R. E. Bryant. Graph-based algorithms for boolean function manipulation. IEEE Transactions on Computers, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. J. R. Burch, E. M. Clarke, K. L. McMillan, D. L. Dill, and L. J. Hwang. Symbolic model checking: 10 20 states and beyond. Information and Computation, 98(2):142–170, June 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. M. Buro and H. K. Büning. Report on a SAT Competition. Bulletin of the EATCS, 49, 1993.Google ScholarGoogle Scholar
  22. W. R. Bush, J. D. Pincus, and D. J. Sielaff. A static analyzer for finding dynamic programming errors. Softw., Pract. Exper., 30(7):775–802, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. R. Butler, G. Hagen, J. Maddalon, C. Muñoz, A. Narkawicz, and G. Dowek. How formal methods impels discovery: A short history of an air traffic management project. In C. Muñoz, editor, Proceedings of the Second NASA Formal Methods Symposium (NFM 2010), NASA/CP-2010-216215, pages 34–46, Langley Research Center, Hampton VA, USA, April 2010. NASA.Google ScholarGoogle Scholar
  24. C. Cadar, D. Dunbar, and D. Engler. KLEE: Unassisted and automatic generation of high-coverage tests for complex systems programs. In OSDI, pages 209–224. USENIX Association, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. C. Cadar, P. Godefroid, S. Khurshid, C. S. Pasareanu, K. Sen, N. Tillmann, and W. Visser. Symbolic execution for software testing in practice: preliminary assessment. In R. N. Taylor, H. Gall, and N. Medvidovic, editors, ICSE, pages 1066–1071. ACM, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. P. Chalin, J. R. Kiniry, G. T. Leavens, and E. Poll. Beyond Assertions: Advanced Specification and Verification with JML and ESC/Java2. In F. S. de Boer, M. M. Bonsangue, S. Graf, and W. P. de Roever, editors, FMCO, volume 4111 of LNCS, pages 342–363. Springer, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. C.-H. Cheng, N. Shankar, H. Ruess, and S. Bensalem. EFSMT: A logical framework for cyber-physical systems. arXiv preprint arXiv:1306.3456, 2013.Google ScholarGoogle Scholar
  28. A. Cimatti, E. Clarke, E. Giunchiglia, F. Giunchiglia, M. Pistore, M. Roveri, R. Sebastiani, and A. Tacchella. NuSMV 2: An OpenSource Tool for Symbolic Model Checking. In E. Brinksma and K. Larsen, editors, Computer Aided Verification, volume 2404 of LNCS, pages 359–364. Springer, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. E. Clarke, A. Biere, R. Raimi, and Y. Zhu. Bounded model checking using satisfiability solving. Form. Methods Syst. Des., 19(1):7–34, July 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. E. Clarke, O. Grumberg, S. Jha, Y. Lu, and H. Veith. Counterexample-guided abstraction refinement for symbolic model checking. J. ACM, 50(5):752–794, Sept. 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. L. A. Clarke. A system to generate test data and symbolically execute programs. IEEE Transactions on Software Engineering, 2(3):215–222, Sept. 1976. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. E. Cohen, M. Dahlweid, M. Hillebrand, D. Leinenbach, M. Moskal, T. Santen, W. Schulte, and S. Tobies. VCC: A practical system for verifying concurrent C. In Theorem Proving in Higher Order Logics, pages 23–42. Springer, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. R. L. Constable, S. F. Allen, H. M. Bromley, W. R. Cleaveland, J. F. Cremer, R. W. Harper, D. J. Howe, T. B. Knoblock, N. P. Mendler, P. Panangaden, J. T. Sasaki, and S. F. Smith. Implementing Mathematics with the Nuprl Proof Development System. Prentice Hall, Englewood Cliffs, NJ, 1986. Nuprl home page: http://www.cs. cornell.edu/Info/Projects/NuPRL/. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. B. Cook, J. Fisher, E. Krepska, and N. Piterman. Proving stabilization of biological systems. In R. Jhala and D. Schmidt, editors, Verification, Model Checking, and Abstract Interpretation, volume 6538 of LNCS, pages 134–149. Springer, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. S. Cruanes, G. Hamon, S. Owre, and N. Shankar. Tool Integration with the Evidential Tool Bus. In VMCAI, pages 275–294, 2013.Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. P. Cuoq, F. Kirchner, N. Kosmatov, V. Prevosto, J. Signoles, and B. Yakobowski. Frama-C a software analysis perspective. In G. Eleftherakis, M. Hinchey, and M. Holcombe, editors, SEFM, volume 7504 of LNCS, pages 233–247. Springer, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. M. Davis, G. Logemann, and D. W. Loveland. A machine program for theorem-proving. Commun. ACM, 5(7):394–397, 1962. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. M. Davis and H. Putnam. A computing procedure for quantification theory. J. ACM, 7(3):201–215, 1960. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. L. de Moura, S. Owre, H. Rueß, J. Rushby, N. Shankar, M. Sorea, and A. Tiwari. SAL 2. In R. Alur and D. Peled, editors, Computer Aided Verification, volume 3114 of LNCS, pages 496–500. Springer, 2004.Google ScholarGoogle ScholarCross RefCross Ref
  40. L. M. de Moura and N. Bjørner. Z3: An efficient SMT solver. In C. R. Ramakrishnan and J. Rehof, editors, Tools and Algorithms for the Construction and Analysis of Systems, 14th International Conference, TACAS 2008, volume 4963 of LNCS, pages 337–340. Springer, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. D. Detlefs, G. Nelson, and J. B. Saxe. Simplify: a theorem prover for program checking. J. ACM, 52(3):365–473, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. D. L. Detlefs, K. R. M. Leino, G. Nelson, and J. B. Saxe. Extended static checking. Technical Report 159, COMPAQ Systems Research Center, 1998.Google ScholarGoogle Scholar
  43. B. Dutertre and L. de Moura. A fast linear-arithmetic solver for DPLL(T). In T. Ball and R. B. Jones, editors, CAV, volume 4144 of LNCS, pages 81–94. Springer, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. N. Eén and N. Sörensson. An Extensible SAT-solver. In E. Giunchiglia and A. Tacchella, editors, SAT, volume 2919 of LNCS, pages 502–518. Springer, 2003.Google ScholarGoogle Scholar
  45. B. Elspas, K. N. Levitt, R. J. Waldinger, and A. Waksman. An assessment of techniques for proving program correctness. ACM Comput. Surv., 4(2):97–147, 1972. Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. A. Filieri, C. S. Păsăreanu, and W. Visser. Reliability analysis in Symbolic Pathfinder. In Proceedings of the 2013 International Conference on Software Engineering, ICSE ’13, pages 622–631, Piscataway, NJ, USA, 2013. IEEE Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. J. Fisher, D. Harel, and T. A. Henzinger. Biology as reactivity. Commun. ACM, 54(10):72–82, Oct. 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. C. Flanagan, K. R. M. Leino, M. Lillibridge, G. Nelson, J. B. Saxe, and R. Stata. Extended Static Checking for Java. In J. Knoop and L. J. Hendren, editors, PLDI, pages 234–245. ACM, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. R. W. Floyd. Assigning meanings to programs. In Mathematical Aspects of Computer Science, Proceedings of Symposia in Applied Mathematics, volume XIX, pages 19–32. American Mathematical Society, Providence, Rhode Island, 1967.Google ScholarGoogle Scholar
  50. V. Ganesh and D. L. Dill. A decision procedure for bit-vectors and arrays. In W. Damm and H. Hermanns, editors, CAV, volume 4590 of LNCS, pages 519–531. Springer, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  51. J. Geldenhuys, M. B. Dwyer, and W. Visser. Probabilistic symbolic execution. In Proceedings of the 2012 International Symposium on Software Testing and Analysis, ISSTA 2012, pages 166–176, New York, USA, 2012. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  52. C. P. Gomes, B. Selman, and H. A. Kautz. Boosting combinatorial search through randomization. In J. Mostow and C. Rich, editors, AAAI/IAAI, pages 431–437. AAAI Press / The MIT Press, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  53. G. Gonthier. Formal proof: The four-color theorem. Notices of the AMS, 55(11):1382–1394, Dec. 2008.Google ScholarGoogle Scholar
  54. M. J. C. Gordon and T. F. Melham, editors. Introduction to HOL: A Theorem Proving Environment for Higher-Order Logic. Cambridge University Press, Cambridge, UK, 1993. HOL home page: http: //www.cl.cam.ac.uk/Research/HVG/HOL/. Google ScholarGoogle ScholarDigital LibraryDigital Library
  55. S. Gulwani, S. Jha, A. Tiwari, and R. Venkatesan. Synthesis of loop-free programs. In Proceedings of the 32nd ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI ’11, pages 62–73, New York, NY, USA, 2011. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  56. F. Haedicke, S. Frehse, G. Fey, D. Grosse, and R. Drechsler. metaSMT: Focus On Your Application Not On Solver Integration. In Proceedings of the First International Workshop on Design and Implementation of Formal Tools and Systems (DIFTS), 2011.Google ScholarGoogle Scholar
  57. J. Y. Halpern, R. Harper, N. Immerman, P. G. Kolaitis, M. Vardi, and V. Vianu. On the unusual effectiveness of logic in computer science. The Bulletin of Symbolic Logic, 7(2):213–236, 2001.Google ScholarGoogle ScholarCross RefCross Ref
  58. C. A. R. Hoare. An axiomatic basis for computer programming. Comm. ACM, 12(10):576–583, 1969. Google ScholarGoogle ScholarDigital LibraryDigital Library
  59. G. J. Holzmann. The SPIN Model Checker: Primer and Reference Manual. Addison-Wesley, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  60. F. Howar, M. Isberner, M. Merten, B. Steffen, and D. Beyer. The RERS Grey-Box Challenge 2012: Analysis of Event-Condition-Action Systems. In T. Margaria and B. Steffen, editors, ISoLA (1), volume 7609 of LNCS, pages 608–614. Springer, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  61. D. Jackson. Alloy: A new technology for software modelling. In J.-P. Katoen and P. Stevens, editors, TACAS, volume 2280 of LNCS, page 20. Springer, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  62. E. K. Jackson and W. Schulte. Formula 2.0: A language for formal specifications. In Z. Liu, J. Woodcock, and H. Zhu, editors, ICTAC Training School on Software Engineering, volume 8050 of LNCS, pages 156–206. Springer, 2013.Google ScholarGoogle Scholar
  63. M. Jose and R. Majumdar. Cause clue clauses: Error localization using maximum satisfiability. SIGPLAN Not., 46(6):437–446, June 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  64. M. Kaufmann, P. Manolios, and J. S. Moore. Computer-Aided Reasoning: An Approach, volume 3 of Advances in Formal Methods. Kluwer, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  65. J. C. King. Symbolic execution and program testing. CACM, 19(7):385–394, 1976. Google ScholarGoogle ScholarDigital LibraryDigital Library
  66. G. Klein, J. Andronick, K. Elphinstone, G. Heiser, D. Cock, P. Derrin, D. Elkaduwe, K. Engelhardt, R. Kolanski, M. Norrish, T. Sewell, H. Tuch, and S. Winwood. seL4: formal verification of an operating-system kernel. Commun. ACM, 53(6):107–115, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  67. L. Kovács and A. Voronkov. First-Order Theorem Proving and Vampire. In Sharygina and Veith {102}, pages 1–35.Google ScholarGoogle Scholar
  68. M. Kwiatkowska, G. Norman, and D. Parker. PRISM: Probabilistic Model Checking for Performance and Reliability Analysis. SIGMETRICS Perform. Eval. Rev., 36(4):40–45, Mar. 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  69. A. Legay, B. Delahaye, and S. Bensalem. Statistical model checking: An overview. In H. Barringer, Y. Falcone, B. Finkbeiner, K. Havelund, I. Lee, G. Pace, G. Rosu, O. Sokolsky, and N. Tillmann, editors, Runtime Verification, volume 6418 of LNCS, pages 122–135. Springer, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  70. K. R. M. Leino. Dafny: An automatic program verifier for functional correctness. In Logic for Programming, Artificial Intelligence, and Reasoning, pages 348–370. Springer, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  71. K. R. M. Leino and G. Nelson. An extended static checker for Modula-3. In K. Koskimies, editor, CC, volume 1383 of LNCS, pages 302–305. Springer, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  72. K. R. M. Leino and P. Rümmer. A polymorphic intermediate verification language: Design and logical encoding. In Proceedings of the 16th International Conference on Tools and Algorithms for the Construction and Analysis of Systems, TACAS’10, pages 312–327, Berlin, Heidelberg, 2010. Springer. Google ScholarGoogle ScholarDigital LibraryDigital Library
  73. X. Leroy. Formal verification of a realistic compiler. Commun. ACM, 52(7):107–115, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  74. D. C. Luckham, S. M. German, F. W. von Henke, R. A. Karp, P. W. Milne, D. C. Oppen, W. Polak, and W. L. Scherlis. Stanford Pascal Verifier user manual. CSD Report STAN-CS-79-731, Stanford University, Stanford, CA, Mar. 1979. Google ScholarGoogle Scholar
  75. P. Madhusudan and X. Qiu. Efficient Decision Procedures for Heaps Using STRAND. In E. Yahav, editor, SAS, volume 6887 of LNCS, pages 43–59. Springer, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  76. J. P. Marques-Silva and K. A. Sakallah. GRASP - A New Search Algorithm for Satisfiability. In ICCAD, 1996.Google ScholarGoogle ScholarCross RefCross Ref
  77. J. McCarthy. Recursive functions of symbolic expressions and their computation by machine. Commun. ACM, 3(4):184–195, 1960. Google ScholarGoogle ScholarDigital LibraryDigital Library
  78. S. McPeak, C.-H. Gros, and M. K. Ramanathan. Scalable and incremental software bug detection. In Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering, ESEC/FSE 2013, pages 554–564, New York, NY, USA, 2013. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  79. F. L. Morris and C. B. Jones. An Early Program Proof by Alan Turing. Annals of the History of Computing, 6:139–143, 1984. Google ScholarGoogle ScholarDigital LibraryDigital Library
  80. C. A. Muñoz, V. Carreño, G. Dowek, and R. W. Butler. Formal verification of conflict detection algorithms. STTT, 4(3):371–380, 2003.Google ScholarGoogle ScholarCross RefCross Ref
  81. G. Nelson. Techniques for program verification. Technical Report CSL81-10, Xerox Palo Alto Research Center, 1981.Google ScholarGoogle Scholar
  82. J. v. Neumann and H. H. Goldstine. Planning and coding of problems for an electronic computing instrument. Institute for Advanced Study, Princeton, New Jersey, 1948. Reprinted in {113}.Google ScholarGoogle Scholar
  83. H. D. T. Nguyen, D. Qi, A. Roychoudhury, and S. Chandra. Semfix: program repair via semantic analysis. In D. Notkin, B. H. C. Cheng, and K. Pohl, editors, ICSE, pages 772–781. IEEE / ACM, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  84. T. Nipkow, L. C. Paulson, and M. Wenzel. Isabelle/HOL: A Proof Assistant for Higher-Order Logic. Springer, 2002. Isabelle home page: http://isabelle.in.tum.de/. Google ScholarGoogle ScholarCross RefCross Ref
  85. P. W. O’Hearn, J. C. Reynolds, and H. Yang. Local reasoning about programs that alter data structures. In L. Fribourg, editor, CSL, volume 2142 of LNCS, pages 1–19. Springer, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  86. S. Owre, J. Rushby, N. Shankar, and F. von Henke. Formal Verification for Fault-Tolerant Architectures: Prolegomena to the Design of PVS. IEEETSE, 21(2):107–125, Feb. 1995. PVS home page: http://pvs.csl.sri.com. Google ScholarGoogle ScholarDigital LibraryDigital Library
  87. H. Palikareva and C. Cadar. Multi-solver support in symbolic execution. In Sharygina and Veith {102}, pages 53–68. Google ScholarGoogle ScholarDigital LibraryDigital Library
  88. F. Pelletier, G. Sutcliffe, and C. Suttner. The Development of CASC. AI Communications, 15(2-3):79–90, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  89. C. S. Pˇasˇareanu, W. Visser, D. Bushnell, J. Geldenhuys, P. Mehlitz, and N. Rungta. Symbolic PathFinder: Integrating symbolic execution with model checking for Java bytecode analysis. Automated Software Engineering, 20(3):391–425, 2013.Google ScholarGoogle ScholarCross RefCross Ref
  90. S. Rajan, N. Shankar, and M. Srivas. An integration of model-checking with automated proof checking. In P. Wolper, editor, CAV, volume 939 of LNCS, pages 84–97, Liege, Belgium, June 1995. Springer Verlag. Google ScholarGoogle ScholarDigital LibraryDigital Library
  91. A. Robinson and A. Voronkov, editors. Handbook of Automated Reasoning. Elsevier Science, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  92. J. A. Robinson. A machine-oriented logic based on the resolution principle. JACM, 12(1):23–41, 1965. Reprinted in Siekmann and Wrightson {103}, pages 397–415. Google ScholarGoogle ScholarDigital LibraryDigital Library
  93. J. Rushby, F. von Henke, and S. Owre. An introduction to formal specification and verification using E HDM. Technical Report SRI-CSL-91-2, CSL, MP, Feb. 1991.Google ScholarGoogle Scholar
  94. J. M. Rushby. An evidential tool bus. In K.-K. Lau and R. Banach, editors, ICFEM, volume 3785 of LNCS, pages 36–36. Springer, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  95. S. Sankaranarayanan, A. Chakarov, and S. Gulwani. Static analysis for probabilistic programs: Inferring whole program properties from finitely many paths. In Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI ’13, pages 447–458, New York, NY, USA, 2013. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  96. P. H. Schmitt, M. Ulbrich, and B. Weiß. Dynamic frames in Java dynamic logic. In B. Beckert and C. Marché, editors, Revised Selected Papers, International Conference on Formal Verification of Object-Oriented Software (FoVeOOS 2010), volume 6528 of LNCS, pages 138–152. Springer, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  97. S. Schulz. System Description: E 1.8. In K. McMillan, A. Middeldorp, and A. Voronkov, editors, Proc. of the 19th LPAR, Stellenbosch, volume 8312 of LNCS. Springer, 2013.Google ScholarGoogle ScholarCross RefCross Ref
  98. N. Shankar. Metamathematics, Machines, and Gödel’s Proof. Cambridge Tracts in Theoretical Computer Science. CUP, Cambridge, UK, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  99. N. Shankar. Using decision procedures with a higher-order logic. In Theorem Proving in Higher Order Logics: 14th International Conference, TPHOLs 2001, volume 2152 of LNCS, pages 5–26, Edinburgh, Scotland, Sept. 2001. Springer Verlag. Google ScholarGoogle ScholarDigital LibraryDigital Library
  100. N. Shankar. Trust and automation in verification tools. In S. S. Cha, J.-Y. Choi, M. Kim, I. Lee, and M. Viswanathan, editors, 6th International Symposium on Automated Technology for Verification and Analysis (ATVA 2008), volume 5311 of LNCS, pages 4–17. Springer Verlag, Oct. 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  101. N. Shankar. Automated deduction for verification. ACM Comput. Surv, 41(4):20:1–56, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  102. N. Sharygina and H. Veith, editors. Computer Aided Verification - 25th International Conference, CAV 2013, Saint Petersburg, Russia, July 13-19, 2013. Proceedings, volume 8044 of LNCS. Springer, 2013.Google ScholarGoogle ScholarCross RefCross Ref
  103. J. Siekmann and G. Wrightson, editors. Automation of Reasoning: Classical Papers on Computational Logic, Volumes 1 & 2. Springer, 1983.Google ScholarGoogle Scholar
  104. R. Singh, S. Gulwani, and A. Solar-Lezama. Automated feedback generation for introductory programming assignments. In Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI ’13, pages 15–26, New York, NY, USA, 2013. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  105. A. Solar-Lezama, L. Tancau, R. Bodik, S. Seshia, and V. Saraswat. Combinatorial sketching for finite programs. In Proceedings of the 12th International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS XII, pages 404–415, New York, NY, USA, 2006. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  106. K. T. Stolee and S. Elbaum. Toward Semantic Search via SMT Solver. In Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering, FSE ’12, pages 25:1–25:4, New York, NY, USA, 2012. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  107. G. Sutcliffe. The TPTP Problem Library and Associated Infrastructure: The FOF and CNF Parts, v3.5.0. Journal of Automated Reasoning, 43(4):337–362, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  108. G. Sutcliffe. The 6th IJCAR Automated Theorem Proving System Competition - CASC-J6. AI Communications, 26(2):211–223, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  109. G. Sutcliffe and C. Suttner. The State of CASC. AI Communications, 19(1):35–48, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  110. W. Visser, J. Geldenhuys, and M. B. Dwyer. Green: Reducing, Reusing and Recycling Constraints in Program Analysis. In Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering, FSE ’12, pages 58:1–58:11, New York, NY, USA, 2012. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  111. W. Visser, K. Havelund, G. Brat, S. Park, and F. Lerda. Model checking programs. Automated Software Engg., 10(2):203–232, Apr. 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  112. W. Visser, C. S. Pˇasˇareanu, and S. Khurshid. Test input generation with Java PathFinder. In Proceedings of the 2004 ACM SIGSOFT International Symposium on Software Testing and Analysis, ISSTA ’04, pages 97–107, New York, NY, USA, 2004. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  113. J. von Neumann. John von Neumann, Collected Works, Volume V. Pergamon Press, Oxford, 1961.Google ScholarGoogle Scholar
  114. C. Weidenbach, U. Brahm, T. Hillenbrand, E. Keen, C. Theobalt, and D. Topic. SPASS version 2.0. In A. Voronkov, editor, Automated Deduction – CADE-18, volume 2392 of LNCS, pages 275–279. Springer, July 27-30 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Software engineering and automated deduction

                      Recommendations

                      Comments

                      Login options

                      Check if you have access through your login credentials or your institution to get full access on this article.

                      Sign in
                      • Published in

                        cover image ACM Conferences
                        FOSE 2014: Future of Software Engineering Proceedings
                        May 2014
                        224 pages
                        ISBN:9781450328654
                        DOI:10.1145/2593882

                        Copyright © 2014 ACM

                        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

                        Publisher

                        Association for Computing Machinery

                        New York, NY, United States

                        Publication History

                        • Published: 31 May 2014

                        Permissions

                        Request permissions about this article.

                        Request Permissions

                        Check for updates

                        Qualifiers

                        • Article

                        Upcoming Conference

                        ICSE 2025

                      PDF Format

                      View or Download as a PDF file.

                      PDF

                      eReader

                      View online with eReader.

                      eReader