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

Software engineering and automated deduction

Published: 31 May 2014 Publication 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.
[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.
[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.
[4]
J. Barnes. High Integrity Software: The SPARK Approach to Safety and Security. Addison-Wesley, 2003.
[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.
[6]
C. Barrett and C. Tinelli. CVC3. In W. Damm and H. Hermanns, editors, CAV, volume 4590 of LNCS, pages 298–302. Springer, 2007.
[7]
B. Beckert, R. Hähnle, and P. H. Schmitt, editors. Verification of Object-Oriented Software: The KeY Approach. LNCS 4334. Springer, 2007.
[8]
Y. Bertot and P. Castéran. Interactive Theorem Proving and Program Development. Springer, 2004. Coq home page: http://coq.inria.fr/.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[16]
R. S. Boyer and J. S. Moore. A Computational Logic Handbook. Academic Press, NY, 1988.
[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.
[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.
[19]
R. E. Bryant. Graph-based algorithms for boolean function manipulation. IEEE Transactions on Computers, 1986.
[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.
[21]
M. Buro and H. K. Büning. Report on a SAT Competition. Bulletin of the EATCS, 49, 1993.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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/.
[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.
[35]
S. Cruanes, G. Hamon, S. Owre, and N. Shankar. Tool Integration with the Evidential Tool Bus. In VMCAI, pages 275–294, 2013.
[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.
[37]
M. Davis, G. Logemann, and D. W. Loveland. A machine program for theorem-proving. Commun. ACM, 5(7):394–397, 1962.
[38]
M. Davis and H. Putnam. A computing procedure for quantification theory. J. ACM, 7(3):201–215, 1960.
[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.
[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.
[41]
D. Detlefs, G. Nelson, and J. B. Saxe. Simplify: a theorem prover for program checking. J. ACM, 52(3):365–473, 2005.
[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.
[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.
[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.
[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.
[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.
[47]
J. Fisher, D. Harel, and T. A. Henzinger. Biology as reactivity. Commun. ACM, 54(10):72–82, Oct. 2011.
[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.
[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.
[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.
[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.
[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.
[53]
G. Gonthier. Formal proof: The four-color theorem. Notices of the AMS, 55(11):1382–1394, Dec. 2008.
[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/.
[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.
[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.
[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.
[58]
C. A. R. Hoare. An axiomatic basis for computer programming. Comm. ACM, 12(10):576–583, 1969.
[59]
G. J. Holzmann. The SPIN Model Checker: Primer and Reference Manual. Addison-Wesley, 2003.
[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.
[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.
[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.
[63]
M. Jose and R. Majumdar. Cause clue clauses: Error localization using maximum satisfiability. SIGPLAN Not., 46(6):437–446, June 2011.
[64]
M. Kaufmann, P. Manolios, and J. S. Moore. Computer-Aided Reasoning: An Approach, volume 3 of Advances in Formal Methods. Kluwer, 2000.
[65]
J. C. King. Symbolic execution and program testing. CACM, 19(7):385–394, 1976.
[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.
[67]
L. Kovács and A. Voronkov. First-Order Theorem Proving and Vampire. In Sharygina and Veith {102}, pages 1–35.
[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.
[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.
[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.
[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.
[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.
[73]
X. Leroy. Formal verification of a realistic compiler. Commun. ACM, 52(7):107–115, 2009.
[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.
[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.
[76]
J. P. Marques-Silva and K. A. Sakallah. GRASP - A New Search Algorithm for Satisfiability. In ICCAD, 1996.
[77]
J. McCarthy. Recursive functions of symbolic expressions and their computation by machine. Commun. ACM, 3(4):184–195, 1960.
[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.
[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.
[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.
[81]
G. Nelson. Techniques for program verification. Technical Report CSL81-10, Xerox Palo Alto Research Center, 1981.
[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}.
[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.
[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/.
[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.
[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.
[87]
H. Palikareva and C. Cadar. Multi-solver support in symbolic execution. In Sharygina and Veith {102}, pages 53–68.
[88]
F. Pelletier, G. Sutcliffe, and C. Suttner. The Development of CASC. AI Communications, 15(2-3):79–90, 2002.
[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.
[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.
[91]
A. Robinson and A. Voronkov, editors. Handbook of Automated Reasoning. Elsevier Science, 2001.
[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.
[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.
[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.
[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.
[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.
[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.
[98]
N. Shankar. Metamathematics, Machines, and Gödel’s Proof. Cambridge Tracts in Theoretical Computer Science. CUP, Cambridge, UK, 1994.
[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.
[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.
[101]
N. Shankar. Automated deduction for verification. ACM Comput. Surv, 41(4):20:1–56, 2009.
[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.
[103]
J. Siekmann and G. Wrightson, editors. Automation of Reasoning: Classical Papers on Computational Logic, Volumes 1 & 2. Springer, 1983.
[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.
[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.
[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.
[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.
[108]
G. Sutcliffe. The 6th IJCAR Automated Theorem Proving System Competition - CASC-J6. AI Communications, 26(2):211–223, 2013.
[109]
G. Sutcliffe and C. Suttner. The State of CASC. AI Communications, 19(1):35–48, 2006.
[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.
[111]
W. Visser, K. Havelund, G. Brat, S. Park, and F. Lerda. Model checking programs. Automated Software Engg., 10(2):203–232, Apr. 2003.
[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.
[113]
J. von Neumann. John von Neumann, Collected Works, Volume V. Pergamon Press, Oxford, 1961.
[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.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
FOSE 2014: Future of Software Engineering Proceedings
May 2014
224 pages
ISBN:9781450328654
DOI:10.1145/2593882
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]

Sponsors

In-Cooperation

  • TCSE: IEEE Computer Society's Tech. Council on Software Engin.

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 31 May 2014

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. SMT
  2. automated deduction
  3. symbolic execution

Qualifiers

  • Article

Conference

ICSE '14
Sponsor:

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)9
  • Downloads (Last 6 weeks)0
Reflects downloads up to 17 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2023)Probabilistic program performance analysis with confidence intervalsInformation and Software Technology10.1016/j.infsof.2022.107143156:COnline publication date: 15-Feb-2023
  • (2021)Quantifying Software Reliability via Model-CountingQuantitative Evaluation of Systems10.1007/978-3-030-85172-9_4(59-79)Online publication date: 23-Aug-2021
  • (2019)Improving complex SMT strategies with learningInternational Transactions in Operational Research10.1111/itor.1265027:2(1162-1188)Online publication date: 15-Mar-2019
  • (2016)A retrospective analysis of SAC requirementsACM SIGAPP Applied Computing Review10.1145/2993231.299323416:2(26-41)Online publication date: 29-Aug-2016
  • (2016)Designing minimal effective normative systems with the help of lightweight formal methodsProceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering10.1145/2950290.2950307(50-60)Online publication date: 1-Nov-2016
  • (2016)Retrospective, relevance, and trends of SAC requirements engineering trackProceedings of the 31st Annual ACM Symposium on Applied Computing10.1145/2851613.2851757(1264-1269)Online publication date: 4-Apr-2016

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media