{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2024,9,11]],"date-time":"2024-09-11T06:50:01Z","timestamp":1726037401299},"publisher-location":"Cham","reference-count":41,"publisher":"Springer International Publishing","isbn-type":[{"type":"print","value":"9783030255428"},{"type":"electronic","value":"9783030255435"}],"license":[{"start":{"date-parts":[[2019,1,1]],"date-time":"2019-01-01T00:00:00Z","timestamp":1546300800000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2019]]},"DOI":"10.1007\/978-3-030-25543-5_10","type":"book-chapter","created":{"date-parts":[[2019,7,12]],"date-time":"2019-07-12T12:03:09Z","timestamp":1562932989000},"page":"155-173","update-policy":"http:\/\/dx.doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":1,"title":["Icing: Supporting Fast-Math Style Optimizations in a Verified Compiler"],"prefix":"10.1007","author":[{"given":"Heiko","family":"Becker","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Eva","family":"Darulova","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Magnus O.","family":"Myreen","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Zachary","family":"Tatlock","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","published-online":{"date-parts":[[2019,7,12]]},"reference":[{"key":"10_CR1","unstructured":"LLVM language reference manual - fast-math flags (2019). https:\/\/llvm.org\/docs\/LangRef.html#fast-math-flags"},{"key":"10_CR2","unstructured":"Semantics of floating point math in GCC (2019). https:\/\/gcc.gnu.org\/wiki\/FloatingPointMath"},{"key":"10_CR3","doi-asserted-by":"crossref","unstructured":"Becker, H., Zyuzin, N., Monat, R., Darulova, E., Myreen, M.O., Fox, A.: A verified certificate checker for finite-precision error bounds in Coq and HOL4. In: 2018 Formal Methods in Computer Aided Design (FMCAD), pp. 1\u201310. IEEE (2018)","DOI":"10.23919\/FMCAD.2018.8603019"},{"issue":"5","key":"10_CR4","doi-asserted-by":"publisher","first-page":"196","DOI":"10.1145\/780822.781153","volume":"38","author":"Bruno Blanchet","year":"2003","unstructured":"Blanchet, B., et al.: A static analyzer for large safety-critical software. In: PLDI (2003)","journal-title":"ACM SIGPLAN Notices"},{"key":"10_CR5","doi-asserted-by":"crossref","unstructured":"Boldo, S., Jourdan, J.H., Leroy, X., Melquiond, G.: A formally-verified c compiler supporting floating-point arithmetic. In: 2013 21st IEEE Symposium on Computer Arithmetic (ARITH), pp. 107\u2013115. IEEE (2013)","DOI":"10.1109\/ARITH.2013.30"},{"issue":"2","key":"10_CR6","doi-asserted-by":"publisher","first-page":"135","DOI":"10.1007\/s10817-014-9317-x","volume":"54","author":"S Boldo","year":"2015","unstructured":"Boldo, S., Jourdan, J.H., Leroy, X., Melquiond, G.: Verified compilation of floating-point computations. J. Autom. Reasoning 54(2), 135\u2013163 (2015)","journal-title":"J. Autom. Reasoning"},{"key":"10_CR7","doi-asserted-by":"publisher","unstructured":"Boldo, S., Melquiond, G.: Flocq: a unified library for proving floating-point algorithms in Coq. In: 19th IEEE International Symposium on Computer Arithmetic, ARITH, pp. 243\u2013252 (2011). https:\/\/doi.org\/10.1109\/ARITH.2011.40","DOI":"10.1109\/ARITH.2011.40"},{"key":"10_CR8","unstructured":"Brain, M., Tinelli, C., Ruemmer, P., Wahl, T.: An automatable formal semantics for IEEE-754 floating-point arithmetic. Technical report (2015). http:\/\/smt-lib.org\/papers\/BTRW15.pdf"},{"key":"10_CR9","unstructured":"Cadar, C., Dunbar, D., Engler, D.: KLEE: unassisted and automatic generation of high-coverage tests for complex systems programs. In: OSDI (2008)"},{"key":"10_CR10","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"3","DOI":"10.1007\/978-3-540-89330-1_2","volume-title":"Programming Languages and Systems","author":"L Chen","year":"2008","unstructured":"Chen, L., Min\u00e9, A., Cousot, P.: A sound floating-point polyhedra abstract domain. In: Ramalingam, G. (ed.) APLAS 2008. LNCS, vol. 5356, pp. 3\u201318. Springer, Heidelberg (2008). https:\/\/doi.org\/10.1007\/978-3-540-89330-1_2"},{"key":"10_CR11","doi-asserted-by":"crossref","unstructured":"Chiang, W.F., Baranowski, M., Briggs, I., Solovyev, A., Gopalakrishnan, G., Rakamari\u0107, Z.: Rigorous floating-point mixed-precision tuning. In: Symposium on Principles of Programming Languages (POPL), pp. 300\u2013315. ACM (2017)","DOI":"10.1145\/3093333.3009846"},{"key":"10_CR12","unstructured":"Corden, M., Kreitzer, D.: Consistency of floating-point results using the Intel compiler. Technical report, Intel Corporation (2010)"},{"key":"10_CR13","doi-asserted-by":"crossref","unstructured":"Damouche, N., Martel, M.: Mixed precision tuning with salsa. In: PECCS, pp. 185\u2013194. SciTePress (2018)","DOI":"10.5220\/0006915500470056"},{"key":"10_CR14","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"31","DOI":"10.1007\/978-3-319-19458-5_3","volume-title":"Formal Methods for Industrial Critical Systems","author":"N Damouche","year":"2015","unstructured":"Damouche, N., Martel, M., Chapoutot, A.: Intra-procedural optimization of the numerical accuracy of programs. In: N\u00fa\u00f1ez, M., G\u00fcdemann, M. (eds.) FMICS 2015. LNCS, vol. 9128, pp. 31\u201346. Springer, Cham (2015). https:\/\/doi.org\/10.1007\/978-3-319-19458-5_3"},{"key":"10_CR15","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"270","DOI":"10.1007\/978-3-319-89960-2_15","volume-title":"Tools and Algorithms for the Construction and Analysis of Systems","author":"E Darulova","year":"2018","unstructured":"Darulova, E., Izycheva, A., Nasir, F., Ritter, F., Becker, H., Bastian, R.: Daisy - framework for analysis and optimization of numerical programs (tool paper). In: Beyer, D., Huisman, M. (eds.) TACAS 2018. LNCS, vol. 10805, pp. 270\u2013287. Springer, Cham (2018). https:\/\/doi.org\/10.1007\/978-3-319-89960-2_15"},{"key":"10_CR16","doi-asserted-by":"crossref","unstructured":"Darulova, E., Sharma, S., Horn, E.: Sound mixed-precision optimization with rewriting. In: ICCPS (2018)","DOI":"10.1109\/ICCPS.2018.00028"},{"key":"10_CR17","doi-asserted-by":"crossref","unstructured":"De Dinechin, F., Lauter, C.Q., Melquiond, G.: Assisted verification of elementary functions using Gappa. In: ACM Symposium on Applied Computing, pp. 1318\u20131322. ACM (2006)","DOI":"10.1145\/1141277.1141584"},{"key":"10_CR18","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"232","DOI":"10.1007\/978-3-642-18275-4_17","volume-title":"Verification, Model Checking, and Abstract Interpretation","author":"E Goubault","year":"2011","unstructured":"Goubault, E., Putot, S.: Static analysis of finite precision computations. In: Jhala, R., Schmidt, D. (eds.) VMCAI 2011. LNCS, vol. 6538, pp. 232\u2013247. Springer, Heidelberg (2011). https:\/\/doi.org\/10.1007\/978-3-642-18275-4_17"},{"key":"10_CR19","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"186","DOI":"10.1007\/3-540-60275-5_65","volume-title":"Higher Order Logic Theorem Proving and Its Applications","author":"J Harrison","year":"1995","unstructured":"Harrison, J.: Floating point verification in HOL. In: Thomas Schubert, E., Windley, P.J., Alves-Foss, J. (eds.) TPHOLs 1995. LNCS, vol. 971, pp. 186\u2013199. Springer, Heidelberg (1995). https:\/\/doi.org\/10.1007\/3-540-60275-5_65"},{"key":"10_CR20","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"529","DOI":"10.1007\/11526841_35","volume-title":"FM 2005: Formal Methods","author":"J Harrison","year":"2005","unstructured":"Harrison, J.: Floating-point verification. In: Fitzgerald, J., Hayes, I.J., Tarlecki, A. (eds.) FM 2005. LNCS, vol. 3582, pp. 529\u2013532. Springer, Heidelberg (2005). https:\/\/doi.org\/10.1007\/11526841_35"},{"key":"10_CR21","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"661","DOI":"10.1007\/978-3-642-02658-4_52","volume-title":"Computer Aided Verification","author":"B Jeannet","year":"2009","unstructured":"Jeannet, B., Min\u00e9, A.: Apron: a library of numerical abstract domains for static analysis. In: Bouajjani, A., Maler, O. (eds.) CAV 2009. LNCS, vol. 5643, pp. 661\u2013667. Springer, Heidelberg (2009). https:\/\/doi.org\/10.1007\/978-3-642-02658-4_52"},{"key":"10_CR22","doi-asserted-by":"crossref","unstructured":"Jourdan, J.H.: Verasco: a formally verified C static analyzer. Ph.D. thesis, Universit\u00e9 Paris Diderot (Paris 7), May 2016","DOI":"10.1145\/2676726.2676966"},{"key":"10_CR23","doi-asserted-by":"crossref","unstructured":"Lee, W., Sharma, R., Aiken, A.: On automatically proving the correctness of math.h implementations. In: POPL (2018)","DOI":"10.1145\/3158135"},{"key":"10_CR24","doi-asserted-by":"crossref","unstructured":"Leroy, X.: Formal certification of a compiler back-end, or: programming a compiler with a proof assistant. In: 33rd ACM Symposium on Principles of Programming Languages, pp. 42\u201354. ACM Press (2006)","DOI":"10.1145\/1111320.1111042"},{"issue":"4","key":"10_CR25","doi-asserted-by":"publisher","first-page":"363","DOI":"10.1007\/s10817-009-9155-4","volume":"43","author":"X Leroy","year":"2009","unstructured":"Leroy, X.: A formally verified compiler back-end. J. Autom. Reasoning 43(4), 363\u2013446 (2009). http:\/\/xavierleroy.org\/publi\/compcert-backend.pdf","journal-title":"J. Autom. Reasoning"},{"key":"10_CR26","doi-asserted-by":"crossref","unstructured":"Liew, D., Schemmel, D., Cadar, C., Donaldson, A.F., Z\u00e4hl, R., Wehrle, K.: Floating-point symbolic execution: a case study in n-version programming. In: Proceedings of the 32nd IEEE\/ACM International Conference on Automated Software Engineering. IEEE Press (2017)","DOI":"10.1109\/ASE.2017.8115670"},{"key":"10_CR27","doi-asserted-by":"crossref","unstructured":"Lopes, N.P., Menendez, D., Nagarakatte, S., Regehr, J.: Provably correct peephole optimizations with alive. In: PLDI (2015)","DOI":"10.1145\/2737924.2737965"},{"issue":"4","key":"10_CR28","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1145\/3015465","volume":"43","author":"V Magron","year":"2017","unstructured":"Magron, V., Constantinides, G., Donaldson, A.: Certified roundoff error bounds using semidefinite programming. ACM Trans. Math. Softw. 43(4), 1\u201334 (2017)","journal-title":"ACM Trans. Math. Softw."},{"key":"10_CR29","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"317","DOI":"10.1007\/978-3-662-53413-7_16","volume-title":"Static Analysis","author":"D Menendez","year":"2016","unstructured":"Menendez, D., Nagarakatte, S., Gupta, A.: Alive-FP: automated verification of floating point based peephole optimizations in LLVM. In: Rival, X. (ed.) SAS 2016. LNCS, vol. 9837, pp. 317\u2013337. Springer, Heidelberg (2016). https:\/\/doi.org\/10.1007\/978-3-662-53413-7_16"},{"key":"10_CR30","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"213","DOI":"10.1007\/978-3-319-66266-4_14","volume-title":"Computer Safety, Reliability, and Security","author":"M Moscato","year":"2017","unstructured":"Moscato, M., Titolo, L., Dutle, A., Mu\u00f1oz, C.A.: Automatic estimation of verified floating-point round-off errors via static analysis. In: Tonetta, S., Schoitsch, E., Bitsch, F. (eds.) SAFECOMP 2017. LNCS, vol. 10488, pp. 213\u2013229. Springer, Cham (2017). https:\/\/doi.org\/10.1007\/978-3-319-66266-4_14"},{"key":"10_CR31","doi-asserted-by":"crossref","unstructured":"N\u00f6tzli, A., Brown, F.: LifeJacket: verifying precise floating-point optimizations in LLVM. In: Proceedings of the 5th ACM SIGPLAN International Workshop on State of the Art in Program Analysis, pp. 24\u201329. ACM (2016)","DOI":"10.1145\/2931021.2931024"},{"key":"10_CR32","doi-asserted-by":"crossref","unstructured":"Panchekha, P., Sanchez-Stern, A., Wilcox, J.R., Tatlock, Z.: Automatically improving accuracy for floating point expressions. In: Conference on Programming Language Design and Implementation (PLDI) (2015)","DOI":"10.1145\/2737924.2737959"},{"issue":"1","key":"10_CR33","first-page":"21","volume":"18","author":"M P\u00fcschel","year":"2004","unstructured":"P\u00fcschel, M., et al.: SPIRAL - a generator for platform-adapted libraries of signal processing alogorithms. IJHPCA 18(1), 21\u201345 (2004)","journal-title":"IJHPCA"},{"key":"10_CR34","doi-asserted-by":"crossref","unstructured":"Ramananandro, T., Mountcastle, P., Meister, B., Lethin, R.: A unified Coq framework for verifying C programs with floating-point computations. In: Certified Programs and Proofs (CPP) (2016)","DOI":"10.1145\/2854065.2854066"},{"key":"10_CR35","doi-asserted-by":"crossref","unstructured":"Rubio-Gonz\u00e1lez, C., et al.: Precimonious: tuning assistant for floating-point precision. In: SC (2013)","DOI":"10.1145\/2503210.2503296"},{"key":"10_CR36","doi-asserted-by":"crossref","unstructured":"Schkufza, E., Sharma, R., Aiken, A.: Stochastic optimization of floating-point programs with tunable precision. In: PLDI (2014)","DOI":"10.1145\/2594291.2594302"},{"key":"10_CR37","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"532","DOI":"10.1007\/978-3-319-19249-9_33","volume-title":"FM 2015: Formal Methods","author":"A Solovyev","year":"2015","unstructured":"Solovyev, A., Jacobsen, C., Rakamari\u0107, Z., Gopalakrishnan, G.: Rigorous estimation of floating-point round-off errors with Symbolic Taylor Expansions. In: Bj\u00f8rner, N., de Boer, F. (eds.) FM 2015. LNCS, vol. 9109, pp. 532\u2013550. Springer, Cham (2015). https:\/\/doi.org\/10.1007\/978-3-319-19249-9_33"},{"key":"10_CR38","doi-asserted-by":"crossref","unstructured":"Tan, Y.K., Myreen, M.O., Kumar, R., Fox, A., Owens, S., Norrish, M.: The verified CakeML compiler backend. J. Funct. Program. 29 (2019)","DOI":"10.1017\/S0956796818000229"},{"key":"10_CR39","doi-asserted-by":"crossref","unstructured":"Tristan, J.B., Leroy, X.: Formal verification of translation validators: a case study on instruction scheduling optimizations. In: Proceedings of the 35th ACM Symposium on Principles of Programming Languages (POPL 2008), pp. 17\u201327. ACM Press, January 2008","DOI":"10.1145\/1328438.1328444"},{"key":"10_CR40","doi-asserted-by":"crossref","unstructured":"Tristan, J.B., Leroy, X.: Verified validation of lazy code motion. In: Proceedings of the 2009 ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2009), pp. 316\u2013326 (2009)","DOI":"10.1145\/1542476.1542512"},{"key":"10_CR41","doi-asserted-by":"crossref","unstructured":"Tristan, J.B., Leroy, X.: A simple, verified validator for software pipelining. In: Proceedings of the 37th ACM Symposium on Principles of Programming Languages (POPL 2010), pp. 83\u201392. ACM Press (2010)","DOI":"10.1145\/1706299.1706311"}],"container-title":["Lecture Notes in Computer Science","Computer Aided Verification"],"original-title":[],"language":"en","link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-030-25543-5_10","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2022,9,23]],"date-time":"2022-09-23T20:11:22Z","timestamp":1663963882000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/978-3-030-25543-5_10"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2019]]},"ISBN":["9783030255428","9783030255435"],"references-count":41,"URL":"https:\/\/doi.org\/10.1007\/978-3-030-25543-5_10","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"type":"print","value":"0302-9743"},{"type":"electronic","value":"1611-3349"}],"subject":[],"published":{"date-parts":[[2019]]},"assertion":[{"value":"12 July 2019","order":1,"name":"first_online","label":"First Online","group":{"name":"ChapterHistory","label":"Chapter History"}},{"value":"CAV","order":1,"name":"conference_acronym","label":"Conference Acronym","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"International Conference on Computer Aided Verification","order":2,"name":"conference_name","label":"Conference Name","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"New York City, NY","order":3,"name":"conference_city","label":"Conference City","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"USA","order":4,"name":"conference_country","label":"Conference Country","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"2019","order":5,"name":"conference_year","label":"Conference Year","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"15 July 2019","order":7,"name":"conference_start_date","label":"Conference Start Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"18 July 2019","order":8,"name":"conference_end_date","label":"Conference End Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"31","order":9,"name":"conference_number","label":"Conference Number","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"cav0","order":10,"name":"conference_id","label":"Conference ID","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"http:\/\/i-cav.org\/2019\/","order":11,"name":"conference_url","label":"Conference URL","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Double-blind","order":1,"name":"type","label":"Type","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"EasyChair","order":2,"name":"conference_management_system","label":"Conference Management System","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"258","order":3,"name":"number_of_submissions_sent_for_review","label":"Number of Submissions Sent for Review","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"67","order":4,"name":"number_of_full_papers_accepted","label":"Number of Full Papers Accepted","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"0","order":5,"name":"number_of_short_papers_accepted","label":"Number of Short Papers Accepted","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"26% - The value is computed by the equation \"Number of Full Papers Accepted \/ Number of Submissions Sent for Review * 100\" and then rounded to a whole number.","order":6,"name":"acceptance_rate_of_full_papers","label":"Acceptance Rate of Full Papers","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"3","order":7,"name":"average_number_of_reviews_per_paper","label":"Average Number of Reviews per Paper","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"9","order":8,"name":"average_number_of_papers_per_reviewer","label":"Average Number of Papers per Reviewer","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"No","order":9,"name":"external_reviewers_involved","label":"External Reviewers Involved","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}}]}}