{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,2,5]],"date-time":"2026-02-05T10:03:51Z","timestamp":1770285831128,"version":"3.49.0"},"reference-count":53,"publisher":"Elsevier BV","issue":"4","license":[{"start":{"date-parts":[[2013,4,1]],"date-time":"2013-04-01T00:00:00Z","timestamp":1364774400000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/www.elsevier.com\/tdm\/userlicense\/1.0\/"},{"start":{"date-parts":[[2017,4,1]],"date-time":"2017-04-01T00:00:00Z","timestamp":1491004800000},"content-version":"vor","delay-in-days":1461,"URL":"https:\/\/www.elsevier.com\/open-access\/userlicense\/1.0\/"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Science of Computer Programming"],"published-print":{"date-parts":[[2013,4]]},"DOI":"10.1016\/j.scico.2012.07.004","type":"journal-article","created":{"date-parts":[[2012,8,14]],"date-time":"2012-08-14T11:15:40Z","timestamp":1344942940000},"page":"390-411","source":"Crossref","is-referenced-by-count":6,"title":["Dual analysis for proving safety and finding bugs"],"prefix":"10.1016","volume":"78","author":[{"given":"Corneliu","family":"Popeea","sequence":"first","affiliation":[]},{"given":"Wei-Ngan","family":"Chin","sequence":"additional","affiliation":[]}],"member":"78","reference":[{"key":"10.1016\/j.scico.2012.07.004_br000005","series-title":"Proceedings of the ACM Symposium on Principles of Programming Languages","first-page":"174","article-title":"Model checking for programming languages using Verisoft","author":"Godefroid","year":"1997"},{"key":"10.1016\/j.scico.2012.07.004_br000010","series-title":"Proceedings of the ACM Conference on Programming Language Design and Implementation","first-page":"213","article-title":"DART: directed automated random testing","author":"Godefroid","year":"2005"},{"key":"10.1016\/j.scico.2012.07.004_br000015","series-title":"Proceedings of the ACM Symposium on Principles of Programming Languages","first-page":"84","article-title":"Automatic discovery of linear restraints among variables of a program","author":"Cousot","year":"1978"},{"key":"10.1016\/j.scico.2012.07.004_br000020","series-title":"SAS","first-page":"3","article-title":"Static analysis in disjunctive numerical domains","volume":"vol. 4134","author":"Sankaranarayanan","year":"2006"},{"key":"10.1016\/j.scico.2012.07.004_br000025","series-title":"Proceedings of the ACM Conference on Programming Language Design and Implementation","first-page":"196","article-title":"A static analyzer for large safety-critical software","author":"Blanchet","year":"2003"},{"key":"10.1016\/j.scico.2012.07.004_br000030","series-title":"SAS","first-page":"303","article-title":"Understanding the origin of alarms in Astr\u00e9e","volume":"vol. 3672","author":"Rival","year":"2005"},{"key":"10.1016\/j.scico.2012.07.004_br000035","series-title":"SPIN","first-page":"103","article-title":"Automatically validating temporal safety properties of interfaces","volume":"vol. 2057","author":"Ball","year":"2001"},{"key":"10.1016\/j.scico.2012.07.004_br000040","series-title":"Proceedings of the ACM Symposium on Principles of Programming Languages","first-page":"58","article-title":"Lazy abstraction","author":"Henzinger","year":"2002"},{"key":"10.1016\/j.scico.2012.07.004_br000045","series-title":"CAV","first-page":"154","article-title":"Counterexample-guided abstraction refinement","author":"Clarke","year":"2000"},{"key":"10.1016\/j.scico.2012.07.004_br000050","doi-asserted-by":"crossref","unstructured":"B.S. Gulavani, T.A. Henzinger, Y. Kannan, A.V. Nori, S.K. Rajamani, SYNERGY: a new algorithm for property checking, in: [51], pp. 117\u2013127.","DOI":"10.1145\/1181775.1181790"},{"key":"10.1016\/j.scico.2012.07.004_br000055","series-title":"Proceedings of the ACM Symposium on Principles of Programming Languages","first-page":"43","article-title":"Compositional may-must program analysis: unleashing the power of alternation","author":"Godefroid","year":"2010"},{"key":"10.1016\/j.scico.2012.07.004_br000060","series-title":"SAC","first-page":"2137","article-title":"Dual analysis for proving safety and finding bugs","author":"Popeea","year":"2010"},{"key":"10.1016\/j.scico.2012.07.004_br000065","unstructured":"W. Kelly, V. Maslov, W. Pugh, et al., The Omega Library Version 1.1.0 Interface Guide, 1996."},{"key":"10.1016\/j.scico.2012.07.004_br000070","doi-asserted-by":"crossref","first-page":"102","DOI":"10.1145\/135226.135233","article-title":"A practical algorithm for exact array dependence analysis","volume":"35","author":"Pugh","year":"1992","journal-title":"Commun. ACM"},{"key":"10.1016\/j.scico.2012.07.004_br000075","doi-asserted-by":"crossref","first-page":"635","DOI":"10.1145\/291889.291900","article-title":"Constraint-based array dependence analysis","volume":"20","author":"Pugh","year":"1998","journal-title":"ACM Trans. Program. Lang. Syst."},{"key":"10.1016\/j.scico.2012.07.004_br000080","doi-asserted-by":"crossref","unstructured":"P. Cousot, R. Cousot, Modular static program analysis, in: [52], pp. 159\u2013178.","DOI":"10.1007\/3-540-45937-5_13"},{"key":"10.1016\/j.scico.2012.07.004_br000085","series-title":"PADO","first-page":"63","article-title":"Constraint abstractions","volume":"vol. 2053","author":"Gustavsson","year":"2001"},{"key":"10.1016\/j.scico.2012.07.004_br000090","doi-asserted-by":"crossref","first-page":"576","DOI":"10.1145\/363235.363259","article-title":"An axiomatic basis for computer programming","volume":"12","author":"Hoare","year":"1969","journal-title":"Commun. ACM"},{"key":"10.1016\/j.scico.2012.07.004_br000095","series-title":"Proceedings of the Symposium in Applied Mathematics","doi-asserted-by":"crossref","first-page":"19","DOI":"10.1090\/psapm\/019\/0235771","article-title":"Assigning meanings to programs","author":"Floyd","year":"1967"},{"key":"10.1016\/j.scico.2012.07.004_br000100","doi-asserted-by":"crossref","first-page":"453","DOI":"10.1145\/360933.360975","article-title":"Guarded commands, nondeterminacy and formal derivation of programs","volume":"18","author":"Dijkstra","year":"1975","journal-title":"Commun. ACM"},{"key":"10.1016\/j.scico.2012.07.004_br000105","series-title":"ASIAN","first-page":"331","article-title":"Inferring disjunctive postconditions","volume":"vol. 4435","author":"Popeea","year":"2006"},{"key":"10.1016\/j.scico.2012.07.004_br000110","doi-asserted-by":"crossref","unstructured":"B. Hackett, A. Aiken, How is aliasing used in systems software?, in: [51], pp. 69\u201380.","DOI":"10.1145\/1181775.1181785"},{"key":"10.1016\/j.scico.2012.07.004_br000115","series-title":"Proceedings of the ACM Symposium on Principles of Programming Languages","first-page":"147","article-title":"Proving non-termination","author":"Gupta","year":"2008"},{"key":"10.1016\/j.scico.2012.07.004_br000120","series-title":"Principles of Program Analysis","author":"Nielson","year":"1999"},{"key":"10.1016\/j.scico.2012.07.004_br000125","doi-asserted-by":"crossref","unstructured":"G.C. Necula, S. McPeak, S.P. Rahul, W. Weimer, CIL: Intermediate language and tools for analysis and transformation of C programs, in: [52], pp. 213\u2013228.","DOI":"10.1007\/3-540-45937-5_16"},{"key":"10.1016\/j.scico.2012.07.004_br000130","series-title":"Functional Programming, Workshops in Computing","first-page":"62","article-title":"The Glasgow Haskell Compiler: A retrospective","author":"Hall","year":"1992"},{"key":"10.1016\/j.scico.2012.07.004_br000135","series-title":"PEPM","first-page":"177","article-title":"A practical and precise inference and specializer for array bound checks elimination","author":"Popeea","year":"2008"},{"key":"10.1016\/j.scico.2012.07.004_br000140","unstructured":"National Institute of Standards and Technology, Java SciMark benchmark for scientific computing, 2004. http:\/\/math.nist.gov\/scimark2\/."},{"key":"10.1016\/j.scico.2012.07.004_br000145","doi-asserted-by":"crossref","first-page":"803","DOI":"10.1002\/cpe.728","article-title":"The LINPACK benchmark: past, present and future","volume":"15","author":"Dongarra","year":"2003","journal-title":"Concurrency and Computation: Practice and Experience"},{"key":"10.1016\/j.scico.2012.07.004_br000150","doi-asserted-by":"crossref","first-page":"505","DOI":"10.1007\/s10009-007-0044-z","article-title":"The software model checker Blast","volume":"9","author":"Beyer","year":"2007","journal-title":"STTT"},{"key":"10.1016\/j.scico.2012.07.004_br000155","series-title":"ASE","first-page":"389","article-title":"A buffer overflow benchmark for software model checkers","author":"Ku","year":"2007"},{"key":"10.1016\/j.scico.2012.07.004_br000160","series-title":"Proceedings of the ACM Symposium on Principles of Programming Languages","first-page":"132","article-title":"Implementation of an array bound checker","author":"Suzuki","year":"1977"},{"key":"10.1016\/j.scico.2012.07.004_br000165","series-title":"Proceedings of the Second International Symposium on Programming","first-page":"106","article-title":"Static determination of dynamic properties of programs","author":"Cousot","year":"1976"},{"key":"10.1016\/j.scico.2012.07.004_br000170","doi-asserted-by":"crossref","first-page":"31","DOI":"10.1007\/s10990-006-8609-1","article-title":"The octagon abstract domain","volume":"19","author":"Min\u00e9","year":"2006","journal-title":"Higher-Order and Symbolic Computation"},{"key":"10.1016\/j.scico.2012.07.004_br000175","series-title":"Proceedings of the ACM Conference on Programming Language Design and Implementation","first-page":"231","article-title":"Precise and efficient static array bound checking for large embedded C programs","author":"Venet","year":"2004"},{"key":"10.1016\/j.scico.2012.07.004_br000180","series-title":"ACM Conference on Computer and Communications Security","first-page":"322","article-title":"EXE: automatically generating inputs of death","author":"Cadar","year":"2006"},{"key":"10.1016\/j.scico.2012.07.004_br000185","series-title":"Proceedings of the ACM Symposium on Principles of Programming Languages","first-page":"351","article-title":"Scalable error detection using boolean satisfiability","author":"Xie","year":"2005"},{"key":"10.1016\/j.scico.2012.07.004_br000190","series-title":"Proceedings of the ACM Symposium on Principles of Programming Languages","first-page":"47","article-title":"Compositional dynamic test generation","author":"Godefroid","year":"2007"},{"key":"10.1016\/j.scico.2012.07.004_br000195","series-title":"ICSE","first-page":"422","article-title":"Check \u2019n\u2019 crash: combining static checking and testing","author":"Csallner","year":"2005"},{"key":"10.1016\/j.scico.2012.07.004_br000200","series-title":"Proceedings of the ACM Conference on Programming Language Design and Implementation","first-page":"234","article-title":"Extended static checking for Java","author":"Flanagan","year":"2002"},{"key":"10.1016\/j.scico.2012.07.004_br000205","doi-asserted-by":"crossref","first-page":"92","DOI":"10.1145\/1052883.1052895","article-title":"Finding bugs is easy","volume":"39","author":"Hovemeyer","year":"2004","journal-title":"SIGPLAN Notices"},{"key":"10.1016\/j.scico.2012.07.004_br000210","unstructured":"C. Popeea, Disjunctive invariants for modular static analysis, Ph.D. Thesis, Dept of Computer Science, National University of Singapore, 2008."},{"key":"10.1016\/j.scico.2012.07.004_br000215","series-title":"Proceedings of the ACM Conference on Programming Language Design and Implementation","first-page":"46","article-title":"Abstract debugging of higher-order imperative languages","author":"Bourdoncle","year":"1993"},{"key":"10.1016\/j.scico.2012.07.004_br000220","series-title":"APLAS","first-page":"347","article-title":"Abstract dependences for alarm diagnosis","volume":"vol. 3780","author":"Rival","year":"2005"},{"key":"10.1016\/j.scico.2012.07.004_br000225","doi-asserted-by":"crossref","unstructured":"I. Dillig, T. Dillig, A. Aiken, Sound, complete and scalable path-sensitive analysis, in: [53], pp. 270\u2013280.","DOI":"10.1145\/1375581.1375615"},{"key":"10.1016\/j.scico.2012.07.004_br000230","doi-asserted-by":"crossref","unstructured":"S. Gulwani, S. Srivastava, R. Venkatesan, Program analysis as constraint solving, in: [53], pp. 281\u2013292.","DOI":"10.1145\/1375581.1375616"},{"key":"10.1016\/j.scico.2012.07.004_br000235","doi-asserted-by":"crossref","first-page":"181","DOI":"10.1016\/0743-1066(92)90031-W","article-title":"Bottom-up dataflow analysis of normal logic programs","volume":"13","author":"Marriott","year":"1992","journal-title":"J. Log. Program."},{"key":"10.1016\/j.scico.2012.07.004_br000240","doi-asserted-by":"crossref","first-page":"316","DOI":"10.1145\/1118890.1118892","article-title":"When and how to develop domain-specific languages","volume":"37","author":"Mernik","year":"2005","journal-title":"ACM Comput. Surv."},{"key":"10.1016\/j.scico.2012.07.004_br000245","series-title":"SCAM","first-page":"168","article-title":"Rascal: A domain specific language for source code analysis and manipulation","author":"Klint","year":"2009"},{"key":"10.1016\/j.scico.2012.07.004_br000250","series-title":"Proceedings of the ACM Symposium on Principles of Programming Languages","first-page":"238","article-title":"Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints","author":"Cousot","year":"1977"},{"key":"10.1016\/j.scico.2012.07.004_br000255","series-title":"Proceedings of the 14th ACM SIGSOFT International Symposium on Foundations of Software Engineering, FSE 2006, Portland, Oregon, USA, November 5\u201311, 2006","year":"2006"},{"key":"10.1016\/j.scico.2012.07.004_br000260","series-title":"Compiler Construction, 11th International Conference, CC 2002, Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2002, Grenoble, France, April 8\u201312, 2002, Proceedings","volume":"vol. 2304","year":"2002"},{"key":"10.1016\/j.scico.2012.07.004_br000265","series-title":"Proceedings of the ACM SIGPLAN 2008 Conference on Programming Language Design and Implementation, Tucson, AZ, USA, June 7\u201313, 2008","year":"2008"}],"container-title":["Science of Computer Programming"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/api.elsevier.com\/content\/article\/PII:S0167642312001323?httpAccept=text\/plain","content-type":"text\/plain","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/api.elsevier.com\/content\/article\/PII:S0167642312001323?httpAccept=text\/xml","content-type":"text\/xml","content-version":"vor","intended-application":"text-mining"}],"deposited":{"date-parts":[[2019,7,2]],"date-time":"2019-07-02T17:08:30Z","timestamp":1562087310000},"score":1,"resource":{"primary":{"URL":"https:\/\/linkinghub.elsevier.com\/retrieve\/pii\/S0167642312001323"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2013,4]]},"references-count":53,"journal-issue":{"issue":"4","published-print":{"date-parts":[[2013,4]]}},"alternative-id":["S0167642312001323"],"URL":"https:\/\/doi.org\/10.1016\/j.scico.2012.07.004","relation":{},"ISSN":["0167-6423"],"issn-type":[{"value":"0167-6423","type":"print"}],"subject":[],"published":{"date-parts":[[2013,4]]}}}