{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,3,26]],"date-time":"2025-03-26T02:53:25Z","timestamp":1742957605038,"version":"3.40.3"},"publisher-location":"Cham","reference-count":16,"publisher":"Springer International Publishing","isbn-type":[{"type":"print","value":"9783030549961"},{"type":"electronic","value":"9783030549978"}],"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-54997-8_24","type":"book-chapter","created":{"date-parts":[[2020,8,10]],"date-time":"2020-08-10T20:11:50Z","timestamp":1597090310000},"page":"371-387","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":0,"title":["Transformations for Generating Type Refinements"],"prefix":"10.1007","author":[{"given":"Douglas R.","family":"Smith","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Stephen J.","family":"Westfold","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","published-online":{"date-parts":[[2020,8,11]]},"reference":[{"key":"24_CR1","doi-asserted-by":"crossref","unstructured":"Abel, A., Pientka, B., Thibodeau, D., and Setzer, A. Copatterns: programming infinite structures by observations. In: Proceedings of the 40th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2013, pp. 27\u201338 (2013)","DOI":"10.1145\/2480359.2429075"},{"key":"24_CR2","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"151","DOI":"10.1007\/BFb0019443","volume-title":"Foundations of Object-Oriented Languages","author":"WR Cook","year":"1991","unstructured":"Cook, W.R.: Object-oriented programming versus abstract data types. In: de Bakker, J.W., de Roever, W.P., Rozenberg, G. (eds.) REX 1990. LNCS, vol. 489, pp. 151\u2013178. Springer, Heidelberg (1991). \n                    https:\/\/doi.org\/10.1007\/BFb0019443"},{"key":"24_CR3","first-page":"222","volume":"62","author":"B Jacobs","year":"1996","unstructured":"Jacobs, B., Rutten, J.: A tutorial on (co)algebras and (co)induction. Bull. EATCS 62, 222\u2013259 (1996)","journal-title":"Bull. EATCS"},{"key":"24_CR4","unstructured":"Kestrel Institute: Specware System and documentation (2003). \n                    http:\/\/www.specware.org\/"},{"key":"24_CR5","unstructured":"Kreitz, C., Smith, D.R.: Synthesis of network protocols: final report. Technical report, Kestrel Institute (2016). \n                    http:\/\/www.kestrel.edu\/home\/people\/smith\/pub\/HACMS-Final-Report.pdf"},{"issue":"1","key":"24_CR6","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1007\/s10817-008-9099-0","volume":"41","author":"X Leroy","year":"2008","unstructured":"Leroy, X., Blazy, S.: Formal verification of a C-like memory model and its uses for verifying program transformations. J. Autom. Reason. 41(1), 1\u201331 (2008)","journal-title":"J. Autom. Reason."},{"key":"24_CR7","doi-asserted-by":"publisher","DOI":"10.1017\/CBO9781139567879","volume-title":"Systematic Program Design: From Clarity to Efficiency","author":"Y Liu","year":"2013","unstructured":"Liu, Y.: Systematic Program Design: From Clarity to Efficiency. Cambridge University Press, Cambridge (2013)"},{"issue":"3","key":"24_CR8","doi-asserted-by":"publisher","first-page":"402","DOI":"10.1145\/357172.357177","volume":"4","author":"R Paige","year":"1982","unstructured":"Paige, R., Koenig, S.: Finite differencing of computable expressions. ACM Trans. Program. Lang. Syst. 4(3), 402\u2013454 (1982)","journal-title":"ACM Trans. Program. Lang. Syst."},{"key":"24_CR9","doi-asserted-by":"publisher","unstructured":"Pavlovic, D., Pepper, P., Smith, D.R.: Formal derivation of concurrent garbage collectors. In: Bolduc, C., Desharnais, J., Ktari, B. (eds.) MPC 2010. LNCS, vol. 6120, pp. 353\u2013376. Springer, Heidelberg (2010). \n                    https:\/\/doi.org\/10.1007\/978-3-642-13321-3_20\n                    \n                  . Extended version in http:\/\/arxiv.org\/abs\/1006.4342","DOI":"10.1007\/978-3-642-13321-3_20"},{"key":"24_CR10","unstructured":"Smith, D.R.: Another proof of the modularization theorem. Technical report, Kestrel Institute, February 1993. \n                    http:\/\/www.kestrel.edu\/home\/people\/smith\/pub\/modularization.pdf"},{"key":"24_CR11","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"182","DOI":"10.1007\/978-3-540-69149-5_20","volume-title":"Verified Software: Theories, Tools, Experiments","author":"DR Smith","year":"2008","unstructured":"Smith, D.R.: Generating programs plus proofs by refinement. In: Meyer, B., Woodcock, J. (eds.) VSTTE 2005. LNCS, vol. 4171, pp. 182\u2013188. Springer, Heidelberg (2008). \n                    https:\/\/doi.org\/10.1007\/978-3-540-69149-5_20"},{"key":"24_CR12","unstructured":"Smith, D.R., Westbrook, E., Westfold, S.J.: Deriving concurrent garbage collectors: final report. Technical report, Kestrel Institute (2015). \n                    http:\/\/www.kestrel.edu\/home\/people\/smith\/pub\/CRASH-Final-Report.pdf"},{"key":"24_CR13","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"399","DOI":"10.1007\/3-540-60117-1_22","volume-title":"Mathematics of Program Construction","author":"YV Srinivas","year":"1995","unstructured":"Srinivas, Y.V., J\u00fcllig, R.: Specware: formal support for composing software. In: M\u00f6ller, B. (ed.) MPC 1995. LNCS, vol. 947, pp. 399\u2013422. Springer, Heidelberg (1995). \n                    https:\/\/doi.org\/10.1007\/3-540-60117-1_22"},{"issue":"2","key":"24_CR14","doi-asserted-by":"publisher","first-page":"125","DOI":"10.1007\/s10817-009-9120-2","volume":"42","author":"H Tuch","year":"2009","unstructured":"Tuch, H.: Formal verification of C systems code: structured types, separation logic and theorem proving. J. Autom. Reason. 42(2), 125\u2013187 (2009)","journal-title":"J. Autom. Reason."},{"issue":"5","key":"24_CR15","doi-asserted-by":"publisher","first-page":"287","DOI":"10.1016\/0020-0190(94)00203-B","volume":"53","author":"PA Veloso","year":"1995","unstructured":"Veloso, P.A., Maibaum, T.: On the modularization theorem for logical specification. Inf. Process. Lett. 53(5), 287\u2013293 (1995)","journal-title":"Inf. Process. Lett."},{"key":"24_CR16","unstructured":"Wadler, P.: The expression problem. Technical report, Bell Labs, Murray Hill, NJ (1998). \n                    http:\/\/homepages.inf.ed.ac.uk\/wadler\/papers\/expression\/expression.txt"}],"container-title":["Lecture Notes in Computer Science","Formal Methods. FM 2019 International Workshops"],"original-title":[],"language":"en","link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-030-54997-8_24","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2020,8,11]],"date-time":"2020-08-11T08:47:44Z","timestamp":1597135664000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/978-3-030-54997-8_24"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2020]]},"ISBN":["9783030549961","9783030549978"],"references-count":16,"URL":"https:\/\/doi.org\/10.1007\/978-3-030-54997-8_24","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":"11 August 2020","order":1,"name":"first_online","label":"First Online","group":{"name":"ChapterHistory","label":"Chapter History"}},{"value":"FM","order":1,"name":"conference_acronym","label":"Conference Acronym","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"International Symposium on Formal Methods","order":2,"name":"conference_name","label":"Conference Name","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Porto","order":3,"name":"conference_city","label":"Conference City","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Portugal","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":"7 October 2019","order":7,"name":"conference_start_date","label":"Conference Start Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"11 October 2019","order":8,"name":"conference_end_date","label":"Conference End Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"3","order":9,"name":"conference_number","label":"Conference Number","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"fm2019","order":10,"name":"conference_id","label":"Conference ID","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"http:\/\/formalmethods2019.inesctec.pt\/?page_id=84","order":11,"name":"conference_url","label":"Conference URL","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Single-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":"129","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":"44","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":"7","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":"34% - 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":"4","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":"5,5","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)"}}]}}