{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,3,11]],"date-time":"2026-03-11T01:30:59Z","timestamp":1773192659387,"version":"3.50.1"},"publisher-location":"Berlin, Heidelberg","reference-count":37,"publisher":"Springer Berlin Heidelberg","isbn-type":[{"value":"9783540213772","type":"print"},{"value":"9783540247562","type":"electronic"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2004]]},"DOI":"10.1007\/978-3-540-24756-2_1","type":"book-chapter","created":{"date-parts":[[2010,7,28]],"date-time":"2010-07-28T00:18:31Z","timestamp":1280276311000},"page":"1-20","source":"Crossref","is-referenced-by-count":148,"title":["SLAM and Static Driver Verifier: Technology Transfer of Formal Methods inside Microsoft"],"prefix":"10.1007","author":[{"given":"Thomas","family":"Ball","sequence":"first","affiliation":[]},{"given":"Byron","family":"Cook","sequence":"additional","affiliation":[]},{"given":"Vladimir","family":"Levin","sequence":"additional","affiliation":[]},{"given":"Sriram K.","family":"Rajamani","sequence":"additional","affiliation":[]}],"member":"297","reference":[{"key":"1_CR1","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"230","DOI":"10.1007\/3-540-45789-5_18","volume-title":"Static Analysis","author":"S. Adams","year":"2002","unstructured":"Adams, S., Ball, T., Das, M., Lerner, S., Rajamani, S.K., Seigle, M., Weimer, W.: Speeding up dataflow analysis using flow-insensitive pointer analysis. In: Hermenegildo, M.V., Puebla, G. (eds.) SAS 2002. LNCS, vol.\u00a02477, pp. 230\u2013246. Springer, Heidelberg (2002)"},{"key":"1_CR2","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"388","DOI":"10.1007\/978-3-540-24730-2_30","volume-title":"Tools and Algorithms for the Construction and Analysis of Systems","author":"T. Ball","year":"2004","unstructured":"Ball, T., Cook, B., Das, S., Rajamani, S.K.: Refining approximations in software predicate abstraction. In: Jensen, K., Podelski, A. (eds.) TACAS 2004. LNCS, vol.\u00a02988, pp. 388\u2013403. Springer, Heidelberg (2004)"},{"key":"1_CR3","doi-asserted-by":"crossref","unstructured":"Ball, T., Cook, B., Lahiri, S.K., Zhang, L.: Zapato: Automatic theorem proving for predicate abstraction refinement. Under review (2004)","DOI":"10.1007\/978-3-540-27813-9_36"},{"issue":"2","key":"1_CR4","doi-asserted-by":"publisher","first-page":"142","DOI":"10.1016\/0890-5401(92)90017-A","volume":"98","author":"J.R. Burch","year":"1992","unstructured":"Burch, J.R., Clarke, E.M., McMillan, K.L., Dill, D.L., Hwang, L.J.: Symbolic model checking: 1020 states and beyond. Information and Computation\u00a098(2), 142\u2013170 (1992)","journal-title":"Information and Computation"},{"key":"1_CR5","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"crossref","DOI":"10.1007\/3-540-45420-9","volume-title":"Tools and Algorithms for the Construction and Analysis of Systems","author":"T. Ball","year":"2001","unstructured":"Ball, T., Chaki, S., Rajamani, S.K.: Parameterized verification of multithreaded software libraries. In: Margaria, T., Yi, W. (eds.) TACAS 2001. LNCS, vol.\u00a02031, Springer, Heidelberg (2001)"},{"key":"1_CR6","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"93","DOI":"10.1007\/978-3-540-24730-2_7","volume-title":"Tools and Algorithms for the Construction and Analysis of Systems","author":"T. Ball","year":"2004","unstructured":"Ball, T., Levin, V., Xei, F.: Automatic creation of environment models via training. In: Jensen, K., Podelski, A. (eds.) TACAS 2004. LNCS, vol.\u00a02988, pp. 93\u2013107. Springer, Heidelberg (2004)"},{"key":"1_CR7","doi-asserted-by":"publisher","first-page":"203","DOI":"10.1145\/378795.378846","volume-title":"PLDI 2001: Programming Language Design and Implementation","author":"T. Ball","year":"2001","unstructured":"Ball, T., Majumdar, R., Millstein, T., Rajamani, S.K.: Automatic predicate abstraction of C programs. In: PLDI 2001: Programming Language Design and Implementation, pp. 203\u2013213. ACM, New York (2001)"},{"key":"1_CR8","unstructured":"Ball, T., Millstein, T., Rajamani, S.K.: Polymorphic predicate abstraction. Technical Report MSR-TR-2001-10, Microsoft Research (2001)"},{"key":"1_CR9","first-page":"97","volume-title":"POPL 2003: Principles of programming languages","author":"T. Ball","year":"2003","unstructured":"Ball, T., Naik, M., Rajamani, S.K.: From symptom to cause: Localizing errors in counterexample traces. In: POPL 2003: Principles of programming languages, pp. 97\u2013105. ACM, New York (2003)"},{"key":"1_CR10","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"268","DOI":"10.1007\/3-540-45319-9_19","volume-title":"Tools and Algorithms for the Construction and Analysis of Systems","author":"T. Ball","year":"2001","unstructured":"Ball, T., Podelski, A., Rajamani, S.K.: Boolean and cartesian abstractions for model checking C programs. In: Margaria, T., Yi, W. (eds.) TACAS 2001. LNCS, vol.\u00a02031, pp. 268\u2013283. Springer, Heidelberg (2001)"},{"key":"1_CR11","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"158","DOI":"10.1007\/3-540-46002-0_12","volume-title":"Tools and Algorithms for the Construction and Analysis of Systems","author":"T. Ball","year":"2002","unstructured":"Ball, T., Podelski, A., Rajamani, S.K.: On the relative completeness of abstraction refinement. In: Katoen, J.-P., Stevens, P. (eds.) TACAS 2002. LNCS, vol.\u00a02280, pp. 158\u2013172. Springer, Heidelberg (2002)"},{"issue":"7","key":"1_CR12","doi-asserted-by":"publisher","first-page":"775","DOI":"10.1002\/(SICI)1097-024X(200006)30:7<775::AID-SPE309>3.0.CO;2-H","volume":"30","author":"W.R. Bush","year":"2000","unstructured":"Bush, W.R., Pincus, J.D., Sielaff, D.J.: A static analyzer for finding dynamic programming errors. Software-Practice and Experience\u00a030(7), 775\u2013802 (2000)","journal-title":"Software-Practice and Experience"},{"key":"1_CR13","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"113","DOI":"10.1007\/10722468_7","volume-title":"SPIN Model Checking and Software Verification","author":"T. Ball","year":"2000","unstructured":"Ball, T., Rajamani, S.K.: Bebop: A symbolic model checker for Boolean programs. In: Havelund, K., Penix, J., Visser, W. (eds.) SPIN 2000. LNCS, vol.\u00a01885, pp. 113\u2013130. Springer, Heidelberg (2000)"},{"key":"1_CR14","unstructured":"Ball, T., Rajamani, S.K.: Boolean programs: A model and process for software analysis. Technical Report MSR-TR-2000-14, Microsoft Research (January 2000)"},{"key":"1_CR15","doi-asserted-by":"publisher","first-page":"97","DOI":"10.1145\/379605.379690","volume-title":"PASTE 2001: Workshop on Program Analysis for Software Tools and Engineering","author":"T. Ball","year":"2001","unstructured":"Ball, T., Rajamani, S.K.: Bebop: A path-sensitive interprocedural dataflow engine. In: PASTE 2001: Workshop on Program Analysis for Software Tools and Engineering, pp. 97\u2013103. ACM, New York (2001)"},{"key":"1_CR16","unstructured":"Ball, T., Rajamani, S.K.: SLIC: A specification language for interface checking. Technical Report MSR-TR-2001-21, Microsoft Research (2001)"},{"key":"1_CR17","unstructured":"Ball, T., Rajamani, S.K.: Generating abstract explanations of spurious counterexamples in C programs. Technical Report MSR-TR-2002-09, Microsoft Research (January 2002)"},{"key":"1_CR18","first-page":"1","volume-title":"POPL 2002: Principles of Programming Languages","author":"T. Ball","year":"2002","unstructured":"Ball, T., Rajamani, S.K.: The SLAM project: Debugging system software via static analysis. In: POPL 2002: Principles of Programming Languages, January 2002, pp. 1\u20133. ACM, New York (2002)"},{"issue":"8","key":"1_CR19","doi-asserted-by":"publisher","first-page":"677","DOI":"10.1109\/TC.1986.1676819","volume":"C-35","author":"R.E. Bryant","year":"1986","unstructured":"Bryant, R.E.: Graph-based algorithms for boolean function manipulation. IEEE Transactions on Computers\u00a0C-35(8), 677\u2013691 (1986)","journal-title":"IEEE Transactions on Computers"},{"key":"1_CR20","first-page":"238","volume-title":"POPL 1977: Principles of Programming Languages","author":"P. Cousot","year":"1977","unstructured":"Cousot, P., Cousot, R.: Abstract interpretation: a unified lattice model for the static analysis of programs by construction or approximation of fixpoints. In: POPL 1977: Principles of Programming Languages, pp. 238\u2013252. ACM, New York (1977)"},{"key":"1_CR21","doi-asserted-by":"crossref","first-page":"385","DOI":"10.1109\/ICSE.2003.1201217","volume-title":"ICSE 2003: International Conference on Software Engineering","author":"S. Chaki","year":"2003","unstructured":"Chaki, S., Clarke, E., Groce, A., Jha, S., Veith, H.: Modular verification of software components in c. In: ICSE 2003: International Conference on Software Engineering, pp. 385\u2013395. ACM, New York (2003)"},{"key":"1_CR22","unstructured":"Chailloux, E., Manoury, P., Pagano, B.: D\u00e9velopment d\u2019Applications. Avec Objective CAML, O\u2019Reilly, Paris"},{"key":"1_CR23","doi-asserted-by":"publisher","first-page":"73","DOI":"10.1145\/502034.502042","volume-title":"SOSP 2001: Symposium on Operating System Principles","author":"A. Chou","year":"2001","unstructured":"Chou, A., Yang, J., Chelf, B., Hallem, S., Engler, D.: An empirical study of operating systems errors. In: SOSP 2001: Symposium on Operating System Principles, pp. 73\u201388. ACM, New York (2001)"},{"key":"1_CR24","doi-asserted-by":"publisher","first-page":"35","DOI":"10.1145\/349299.349309","volume-title":"PLDI 2000: Programming Language Design and Implementation","author":"M. Das","year":"2000","unstructured":"Das, M.: Unification-based pointer analysis with directional assignments. In: PLDI 2000: Programming Language Design and Implementation, pp. 35\u201346. ACM, New York (2000)"},{"key":"1_CR25","doi-asserted-by":"publisher","first-page":"59","DOI":"10.1145\/378795.378811","volume-title":"PLDI 2001: Programming Language Design and Implementation","author":"R. DeLine","year":"2001","unstructured":"DeLine, R., F\u00e4hndrich, M.: Enforcing high-level protocols in low-level software. In: PLDI 2001: Programming Language Design and Implementation, pp. 59\u201369. ACM, New York (2001)"},{"key":"1_CR26","unstructured":"DeLine, R., F\u00e4hndrich, M.: The Fugue protocol checker: Is your software baroque? Technical Report MSR-TR-2004-07, Microsoft Research (2004)"},{"key":"1_CR27","doi-asserted-by":"publisher","first-page":"57","DOI":"10.1145\/512529.512538","volume-title":"PLDI 2002: Programming Language Design and Implementation","author":"M. Das","year":"2002","unstructured":"Das, M., Lerner, S., Seigle, M.: ESP: Path-sensitive program verification in polynomial time. In: PLDI 2002: Programming Language Design and Implementation, June 2002, pp. 57\u201368. ACM, New York (2002)"},{"key":"1_CR28","unstructured":"Detlefs, D., Nelson, G., Saxe, J.B.: Simplify: A theorem prover for program checking. Technical Report HPL-2003-148, HP Labs (2003)"},{"key":"1_CR29","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"324","DOI":"10.1007\/3-540-44585-4_30","volume-title":"Computer Aided Verification","author":"J. Esparza","year":"2001","unstructured":"Esparza, J., Schwoon, S.: A bdd-based model checker for recursive programs. In: Berry, G., Comon, H., Finkel, A. (eds.) CAV 2001. LNCS, vol.\u00a02102, pp. 324\u2013336. Springer, Heidelberg (2001)"},{"key":"1_CR30","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"crossref","first-page":"72","DOI":"10.1007\/3-540-63166-6_10","volume-title":"Computer Aided Verification","author":"S. Graf","year":"1997","unstructured":"Graf, S., Sa\u00efdi, H.: Construction of abstract state graphs with PVS. In: Grumberg, O. (ed.) CAV 1997. LNCS, vol.\u00a01254, pp. 72\u201383. Springer, Heidelberg (1997)"},{"key":"1_CR31","doi-asserted-by":"publisher","first-page":"58","DOI":"10.1145\/503272.503279","volume-title":"POPL 2002","author":"T.A. Henzinger","year":"2002","unstructured":"Henzinger, T.A., Jhala, R., Majumdar, R., Sutre, G.: Lazy abstraction. In: POPL 2002, January 2002, pp. 58\u201370. ACM, New York (2002)"},{"key":"1_CR32","volume-title":"Computer-aided Verification of Coordinating Processes","author":"R.P. Kurshan","year":"1994","unstructured":"Kurshan, R.P.: Computer-aided Verification of Coordinating Processes. Princeton University Press, Princeton (1994)"},{"key":"1_CR33","doi-asserted-by":"crossref","unstructured":"Larus, J.R., Ball, T., Das, M., DeLine, R., F\u00e4hndrich, M., Pincus, J., Rajamani, S.K., Venkatapathy, R.: Righting software. IEEE Software (2004) (to appear)","DOI":"10.1109\/MS.2004.1293079"},{"key":"1_CR34","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"104","DOI":"10.1007\/3-540-44829-2_7","volume-title":"Model Checking Software","author":"K.R.M. Leino","year":"2003","unstructured":"Leino, K.R.M.: A sat characterization of boolean-program correctness. In: Ball, T., Rajamani, S.K. (eds.) SPIN 2003. LNCS, vol.\u00a02648, pp. 104\u2013120. Springer, Heidelberg (2003)"},{"key":"1_CR35","first-page":"49","volume-title":"POPL 1995: Principles of Programming Languages","author":"T. Reps","year":"1995","unstructured":"Reps, T., Horwitz, S., Sagiv, M.: Precise interprocedural dataflow analysis via graph reachability. In: POPL 1995: Principles of Programming Languages, pp. 49\u201361. ACM, New York (1995)"},{"key":"1_CR36","unstructured":"Somenzi, F.: Colorado university decision diagram package, Technical Report available from ftp:\/\/vlsi.colorado.edu\/pub University of Colorado, Boulder(1998)"},{"key":"1_CR37","first-page":"189","volume-title":"Program Flow Analysis: Theory and Applications","author":"M. Sharir","year":"1981","unstructured":"Sharir, M., Pnueli, A.: Two approaches to interprocedural data flow analysis. In: Program Flow Analysis: Theory and Applications, pp. 189\u2013233. Prentice-Hall, Englewood Cliffs (1981)"}],"container-title":["Lecture Notes in Computer Science","Integrated Formal Methods"],"original-title":[],"link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-540-24756-2_1","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2019,5,31]],"date-time":"2019-05-31T19:33:36Z","timestamp":1559331216000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/978-3-540-24756-2_1"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2004]]},"ISBN":["9783540213772","9783540247562"],"references-count":37,"URL":"https:\/\/doi.org\/10.1007\/978-3-540-24756-2_1","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"value":"0302-9743","type":"print"},{"value":"1611-3349","type":"electronic"}],"subject":[],"published":{"date-parts":[[2004]]}}}