{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,3,27]],"date-time":"2025-03-27T02:17:22Z","timestamp":1743041842609,"version":"3.40.3"},"publisher-location":"Cham","reference-count":38,"publisher":"Springer International Publishing","isbn-type":[{"type":"print","value":"9783030509941"},{"type":"electronic","value":"9783030509958"}],"license":[{"start":{"date-parts":[[2020,1,1]],"date-time":"2020-01-01T00:00:00Z","timestamp":1577836800000},"content-version":"tdm","delay-in-days":0,"URL":"http:\/\/www.springer.com\/tdm"},{"start":{"date-parts":[[2020,1,1]],"date-time":"2020-01-01T00:00:00Z","timestamp":1577836800000},"content-version":"vor","delay-in-days":0,"URL":"http:\/\/www.springer.com\/tdm"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2020]]},"DOI":"10.1007\/978-3-030-50995-8_3","type":"book-chapter","created":{"date-parts":[[2020,6,19]],"date-time":"2020-06-19T23:05:25Z","timestamp":1592607925000},"page":"43-58","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":1,"title":["Deductive Binary Code Verification Against Source-Code-Level Specifications"],"prefix":"10.1007","author":[{"given":"Alexander","family":"Kamkin","sequence":"first","affiliation":[]},{"given":"Alexey","family":"Khoroshilov","sequence":"additional","affiliation":[]},{"given":"Artem","family":"Kotsynyak","sequence":"additional","affiliation":[]},{"given":"Pavel","family":"Putro","sequence":"additional","affiliation":[]}],"member":"297","published-online":{"date-parts":[[2020,6,20]]},"reference":[{"key":"3_CR1","doi-asserted-by":"publisher","unstructured":"Floyd, R.W.: Assigning meanings to programs. In: Proceedings of Symposia in Applied Mathematics, Mathematical Aspects of Computer Science, vol. 19, pp. 19\u201332 (1967). \nhttps:\/\/doi.org\/10.1090\/psapm\/019\/0235771","DOI":"10.1090\/psapm\/019\/0235771"},{"issue":"10","key":"3_CR2","doi-asserted-by":"publisher","first-page":"576","DOI":"10.1145\/363235.363259","volume":"12","author":"CAR Hoare","year":"1969","unstructured":"Hoare, C.A.R.: An axiomatic basis for computer programming. Commun. ACM 12(10), 576\u2013585 (1969). \nhttps:\/\/doi.org\/10.1145\/363235.363259","journal-title":"Commun. ACM"},{"issue":"1","key":"3_CR3","doi-asserted-by":"publisher","first-page":"21","DOI":"10.1145\/2560537","volume":"32","author":"G Klein","year":"2014","unstructured":"Klein, G., et al.: Comprehensive formal verification of an OS microkernel. ACM Trans. Comput. Syst. (TOCS) 32(1), 21\u2013270 (2014). \nhttps:\/\/doi.org\/10.1145\/2560537","journal-title":"ACM Trans. Comput. Syst. (TOCS)"},{"key":"3_CR4","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1007\/978-3-642-35843-2_1","volume-title":"SOFSEM 2013: Theory and Practice of Computer Science","author":"E Cohen","year":"2013","unstructured":"Cohen, E., Paul, W., Schmaltz, S.: Theory of multi core hypervisor verification. In: van Emde Boas, P., Groen, F.C.A., Italiano, G.F., Nawrocki, J., Sack, H. (eds.) SOFSEM 2013. LNCS, vol. 7741, pp. 1\u201327. Springer, Heidelberg (2013). \nhttps:\/\/doi.org\/10.1007\/978-3-642-35843-2_1"},{"key":"3_CR5","doi-asserted-by":"publisher","first-page":"77","DOI":"10.1016\/j.scico.2013.01.006","volume":"82","author":"P Philippaerts","year":"2014","unstructured":"Philippaerts, P., M\u00fchlberg, J.T., Penninckx, W., Smans, J., Jacobs, B., Piessens, F.: Software verification with verifast: industrial case studies. Sci. Comput. Program. 82, 77\u201397 (2014). \nhttps:\/\/doi.org\/10.1016\/j.scico.2013.01.006","journal-title":"Sci. Comput. Program."},{"key":"3_CR6","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"216","DOI":"10.1007\/978-3-030-03421-4_15","volume-title":"Leveraging Applications of Formal Methods, Verification and Validation. Verification","author":"D Efremov","year":"2018","unstructured":"Efremov, D., Mandrykin, M., Khoroshilov, A.: Deductive verification of unmodified Linux kernel library functions. In: Margaria, T., Steffen, B. (eds.) ISoLA 2018. LNCS, vol. 11245, pp. 216\u2013234. Springer, Cham (2018). \nhttps:\/\/doi.org\/10.1007\/978-3-030-03421-4_15"},{"key":"3_CR7","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"472","DOI":"10.1007\/978-3-642-20398-5_35","volume-title":"NASA Formal Methods","author":"DR Cok","year":"2011","unstructured":"Cok, D.R.: OpenJML: JML for Java 7 by extending OpenJDK. In: Bobaru, M., Havelund, K., Holzmann, G.J., Joshi, R. (eds.) NFM 2011. LNCS, vol. 6617, pp. 472\u2013479. Springer, Heidelberg (2011). \nhttps:\/\/doi.org\/10.1007\/978-3-642-20398-5_35"},{"key":"3_CR8","unstructured":"CompCert Project. \nhttp:\/\/compcert.inria.fr"},{"key":"3_CR9","doi-asserted-by":"publisher","unstructured":"Sun, C., Le, V., Zhang, Q., Su, Z.: Toward understanding compiler bugs in GCC and LLVM. In: International Symposium on Software Testing and Analysis (ISSTA), pp. 294\u2013305 (2016). \nhttps:\/\/doi.org\/10.1145\/2931037.2931074","DOI":"10.1145\/2931037.2931074"},{"key":"3_CR10","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"66","DOI":"10.1007\/978-3-319-72308-2_5","volume-title":"Verified Software. Theories, Tools, and Experiments","author":"M Schoolderman","year":"2017","unstructured":"Schoolderman, M.: Verifying branch-free assembly code in Why3. In: Paskevich, A., Wies, T. (eds.) VSTTE 2017. LNCS, vol. 10712, pp. 66\u201383. Springer, Cham (2017). \nhttps:\/\/doi.org\/10.1007\/978-3-319-72308-2_5"},{"key":"3_CR11","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"125","DOI":"10.1007\/978-3-642-37036-6_8","volume-title":"Programming Languages and Systems","author":"J-C Filli\u00e2tre","year":"2013","unstructured":"Filli\u00e2tre, J.-C., Paskevich, A.: Why3\u2014where programs meet provers. In: Felleisen, M., Gardner, P. (eds.) ESOP 2013. LNCS, vol. 7792, pp. 125\u2013128. Springer, Heidelberg (2013). \nhttps:\/\/doi.org\/10.1007\/978-3-642-37036-6_8"},{"key":"3_CR12","unstructured":"Myreen, M.O.: Formal Verification of Machine-Code Programs. Ph.D. Thesis. University of Cambridge (2009). 131 p"},{"key":"3_CR13","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"28","DOI":"10.1007\/978-3-540-71067-7_6","volume-title":"Theorem Proving in Higher Order Logics","author":"K Slind","year":"2008","unstructured":"Slind, K., Norrish, M.: A brief overview of HOL4. In: Mohamed, O.A., Mu\u00f1oz, C., Tahar, S. (eds.) TPHOLs 2008. LNCS, vol. 5170, pp. 28\u201332. Springer, Heidelberg (2008). \nhttps:\/\/doi.org\/10.1007\/978-3-540-71067-7_6"},{"key":"3_CR14","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"25","DOI":"10.1007\/10930755_2","volume-title":"Theorem Proving in Higher Order Logics","author":"A Fox","year":"2003","unstructured":"Fox, A.: Formal specification and verification of ARM6. In: Basin, D., Wolff, B. (eds.) TPHOLs 2003. LNCS, vol. 2758, pp. 25\u201340. Springer, Heidelberg (2003). \nhttps:\/\/doi.org\/10.1007\/10930755_2"},{"key":"3_CR15","doi-asserted-by":"crossref","unstructured":"Crary, K., Sarkar, S.: Foundational Certified Code in a Metalogical Framework. Technical report CMU-CS-03-108. Carnegie Mellon University (2003). 19 p","DOI":"10.1007\/978-3-540-45085-6_9"},{"key":"3_CR16","doi-asserted-by":"publisher","unstructured":"Leroy, X.: Formal certification of a compiler back-end or: programming a compiler with a proof assistant. In: Principles of Programming Languages (POPL), pp. 42\u201354 (2006). \nhttps:\/\/doi.org\/10.1145\/1111037.1111042","DOI":"10.1145\/1111037.1111042"},{"key":"3_CR17","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"12","DOI":"10.1007\/978-3-540-71067-7_3","volume-title":"Theorem Proving in Higher Order Logics","author":"Y Bertot","year":"2008","unstructured":"Bertot, Y.: A short presentation of coq. In: Mohamed, O.A., Mu\u00f1oz, C., Tahar, S. (eds.) TPHOLs 2008. LNCS, vol. 5170, pp. 12\u201316. Springer, Heidelberg (2008). \nhttps:\/\/doi.org\/10.1007\/978-3-540-71067-7_3"},{"key":"3_CR18","unstructured":"Freericks, M.: The nML Machine Description Formalism. Technical report TR SM-IMP\/DIST\/08, TU Berlin CS Department (1993). 47 p"},{"key":"3_CR19","unstructured":"Baudin, P., et al.: ACSL: ANSI\/ISO C Specification Language. Version 1.13 (2018). 114 p"},{"key":"3_CR20","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"314","DOI":"10.1007\/978-3-642-25379-9_23","volume-title":"Certified Programs and Proofs","author":"TMT Nguyen","year":"2011","unstructured":"Nguyen, T.M.T., March\u00e9, C.: Hardware-dependent proofs of numerical programs. In: Jouannaud, J.-P., Shao, Z. (eds.) CPP 2011. LNCS, vol. 7086, pp. 314\u2013329. Springer, Heidelberg (2011). \nhttps:\/\/doi.org\/10.1007\/978-3-642-25379-9_23"},{"key":"3_CR21","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"112","DOI":"10.1007\/11679219_9","volume-title":"Formal Aspects in Security and Trust","author":"G Barthe","year":"2006","unstructured":"Barthe, G., Rezk, T., Saabas, A.: Proof obligations preserving compilation. In: Dimitrakos, T., Martinelli, F., Ryan, P.Y.A., Schneider, S. (eds.) FAST 2005. LNCS, vol. 3866, pp. 112\u2013126. Springer, Heidelberg (2006). \nhttps:\/\/doi.org\/10.1007\/11679219_9"},{"key":"3_CR22","unstructured":"Frama-C Platform. \nhttp:\/\/frama-c.com"},{"key":"3_CR23","unstructured":"GCC, the GNU Compiler Collection. \nhttps:\/\/gcc.gnu.org"},{"key":"3_CR24","unstructured":"Tool Interface Standard (TIS) Executable and Linking Format (ELF), version 1.2 (1995)"},{"key":"3_CR25","unstructured":"Barrett, C., Fontaine, P., Tinelli, C.: The SMT-LIB Standard Version 2.6. Release 18 July 2017. 104 p"},{"key":"3_CR26","unstructured":"RISC-V Foundation. \nhttps:\/\/riscv.org"},{"key":"3_CR27","unstructured":"MicroTESK Framework. \nhttp:\/\/www.microtesk.org"},{"key":"3_CR28","doi-asserted-by":"publisher","unstructured":"Chupilko, M., Kamkin, A., Kotsynyak, A., Protsenko, A., Smolov, S., Tatarnikov, A.: Test Program Generator MicroTESK for RISC-V. In: International Workshop on Microprocessor and SOC Test and Verification (MTV) (2018). 6 p. \nhttps:\/\/doi.org\/10.1109\/MTV.2018.00011","DOI":"10.1109\/MTV.2018.00011"},{"key":"3_CR29","unstructured":"GNU Binutils. \nhttps:\/\/www.gnu.org\/software\/binutils"},{"key":"3_CR30","doi-asserted-by":"publisher","unstructured":"Ottenstein, K., Ballance, R., MacCabe, A.: The program dependence web: a representation supporting control-, data-, and demand-driven interpretation of imperative languages. In: ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), pp. 257\u2013271 (1990). \nhttps:\/\/doi.org\/10.1145\/93542.93578","DOI":"10.1145\/93542.93578"},{"key":"3_CR31","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"477","DOI":"10.1007\/3-540-57659-2_28","volume-title":"Languages and Compilers for Parallel Computing","author":"P Havlak","year":"1994","unstructured":"Havlak, P.: Construction of thinned gated single-assignment form. In: Banerjee, U., Gelernter, D., Nicolau, A., Padua, D. (eds.) LCPC 1993. LNCS, vol. 768, pp. 477\u2013499. Springer, Heidelberg (1994). \nhttps:\/\/doi.org\/10.1007\/3-540-57659-2_28"},{"key":"3_CR32","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"213","DOI":"10.1007\/3-540-45937-5_16","volume-title":"Compiler Construction","author":"GC Necula","year":"2002","unstructured":"Necula, G.C., McPeak, S., Rahul, S.P., Weimer, W.: CIL: intermediate language and tools for analysis and transformation of C programs. In: Horspool, R.N. (ed.) CC 2002. LNCS, vol. 2304, pp. 213\u2013228. Springer, Heidelberg (2002). \nhttps:\/\/doi.org\/10.1007\/3-540-45937-5_16"},{"key":"3_CR33","unstructured":"MicroVer Project. \nhttps:\/\/forge.ispras.ru\/projects\/microver"},{"issue":"3","key":"3_CR34","doi-asserted-by":"publisher","first-page":"123","DOI":"10.15514\/ISPRAS-2019-31(3)-10","volume":"31","author":"PA Putro","year":"2019","unstructured":"Putro, P.A.: Applying high-level function loop invariants for machine code deductive verification. Proc. ISP RAS 31(3), 123\u2013134 (2019). \nhttps:\/\/doi.org\/10.15514\/ISPRAS-2019-31(3)-10","journal-title":"Proc. ISP RAS"},{"key":"3_CR35","doi-asserted-by":"publisher","unstructured":"Churchill, B.R., Padon, O., Sharma, R., Aiken, A.: Semantic program alignment for equivalence checking. In: ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), pp. 1027\u20131040 (2019). \nhttps:\/\/doi.org\/10.1145\/3314221.3314596","DOI":"10.1145\/3314221.3314596"},{"key":"3_CR36","doi-asserted-by":"publisher","unstructured":"Dahiya, M., Bansal, S.: Black-box equivalence checking across compiler optimizations. In: Asian Symposium on Programing Languages and Systems (APLAS), pp. 127\u2013147 (2017). \nhttps:\/\/doi.org\/10.1007\/978-3-319-71237-6_7","DOI":"10.1007\/978-3-319-71237-6_7"},{"key":"3_CR37","unstructured":"CVC4 Solver. \nhttps:\/\/github.com\/CVC4\/CVC4"},{"key":"3_CR38","unstructured":"RISC-V GNU Compiler Toolchain. \nhttps:\/\/github.com\/riscv\/riscv-gnu-toolchain"}],"container-title":["Lecture Notes in Computer Science","Tests and Proofs"],"original-title":[],"language":"en","link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-030-50995-8_3","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2020,6,19]],"date-time":"2020-06-19T23:05:32Z","timestamp":1592607932000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/978-3-030-50995-8_3"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2020]]},"ISBN":["9783030509941","9783030509958"],"references-count":38,"URL":"https:\/\/doi.org\/10.1007\/978-3-030-50995-8_3","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"type":"print","value":"0302-9743"},{"type":"electronic","value":"1611-3349"}],"subject":[],"published":{"date-parts":[[2020]]},"assertion":[{"value":"20 June 2020","order":1,"name":"first_online","label":"First Online","group":{"name":"ChapterHistory","label":"Chapter History"}},{"value":"TAP","order":1,"name":"conference_acronym","label":"Conference Acronym","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"International Conference on Tests and Proofs","order":2,"name":"conference_name","label":"Conference Name","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Bergen","order":3,"name":"conference_city","label":"Conference City","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Norway","order":4,"name":"conference_country","label":"Conference Country","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"2020","order":5,"name":"conference_year","label":"Conference Year","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"23 June 2020","order":7,"name":"conference_start_date","label":"Conference Start Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"26 June 2020","order":8,"name":"conference_end_date","label":"Conference End Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"14","order":9,"name":"conference_number","label":"Conference Number","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"tap2020","order":10,"name":"conference_id","label":"Conference ID","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"https:\/\/tap.sosy-lab.org\/2020\/","order":11,"name":"conference_url","label":"Conference URL","group":{"name":"ConferenceInfo","label":"Conference Information"}}]}}