{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,12,24]],"date-time":"2025-12-24T12:32:29Z","timestamp":1766579549346,"version":"3.40.3"},"publisher-location":"Cham","reference-count":30,"publisher":"Springer Nature Switzerland","isbn-type":[{"type":"print","value":"9783031712937"},{"type":"electronic","value":"9783031712944"}],"license":[{"start":{"date-parts":[[2024,1,1]],"date-time":"2024-01-01T00:00:00Z","timestamp":1704067200000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/www.springernature.com\/gp\/researchers\/text-and-data-mining"},{"start":{"date-parts":[[2024,1,1]],"date-time":"2024-01-01T00:00:00Z","timestamp":1704067200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.springernature.com\/gp\/researchers\/text-and-data-mining"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2024]]},"DOI":"10.1007\/978-3-031-71294-4_9","type":"book-chapter","created":{"date-parts":[[2024,9,6]],"date-time":"2024-09-06T14:03:47Z","timestamp":1725631427000},"page":"149-165","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":1,"title":["Towards Specification-Guarded Refactoring"],"prefix":"10.1007","author":[{"ORCID":"https:\/\/orcid.org\/0000-0003-1236-7160","authenticated-orcid":false,"given":"Adam D.","family":"Barwell","sequence":"first","affiliation":[]},{"ORCID":"https:\/\/orcid.org\/0000-0001-6030-2885","authenticated-orcid":false,"given":"Christopher","family":"Brown","sequence":"additional","affiliation":[]},{"ORCID":"https:\/\/orcid.org\/0000-0002-4259-9213","authenticated-orcid":false,"given":"Susmit","family":"Sarkar","sequence":"additional","affiliation":[]}],"member":"297","published-online":{"date-parts":[[2024,9,7]]},"reference":[{"key":"9_CR1","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"492","DOI":"10.1007\/11813040_33","volume-title":"FM 2006: Formal Methods","author":"F Bannwart","year":"2006","unstructured":"Bannwart, F., M\u00fcller, P.: Changing programs correctly: refactoring with specifications. In: Misra, J., Nipkow, T., Sekerinski, E. (eds.) FM 2006. LNCS, vol. 4085, pp. 492\u2013507. Springer, Heidelberg (2006). https:\/\/doi.org\/10.1007\/11813040_33"},{"key":"9_CR2","unstructured":"Barendregt, H.P.: The Lambda Calculus Its Syntax and Semantics, revised edn., vol.\u00a0103. North Holland (1984). http:\/\/www.cs.ru.nl\/~henk\/Personal Webpage"},{"key":"9_CR3","doi-asserted-by":"publisher","unstructured":"Barwell, A.D., Brown, C.: A Trustworthy framework for resource-aware embedded programming. In: Proceedings of the 31st Symposium on Implementation and Application of Functional Languages, IFL 2019. Association for Computing Machinery, New York (2021). https:\/\/doi.org\/10.1145\/3412932.3412944","DOI":"10.1145\/3412932.3412944"},{"key":"9_CR4","doi-asserted-by":"crossref","unstructured":"Bereczky, P., Horp\u00e1csi, D., Thompson, S.: Machine-checked natural semantics for core erlang: exceptions and side effects. In: Proceedings of the 19th ACM SIGPLAN International Workshop on Erlang, pp. 1\u201313. ACM, August 2020. https:\/\/kar.kent.ac.uk\/82515\/","DOI":"10.1145\/3406085.3409008"},{"issue":"5","key":"9_CR5","doi-asserted-by":"publisher","first-page":"552","DOI":"10.1017\/S095679681300018X","volume":"23","author":"E Brady","year":"2013","unstructured":"Brady, E.: Idris, a general-purpose dependently typed programming language: design and implementation. J. Funct. Program. 23(5), 552\u2013593 (2013)","journal-title":"J. Funct. Program."},{"issue":"3","key":"9_CR6","doi-asserted-by":"publisher","first-page":"219","DOI":"10.7494\/csci.2017.18.3.1413","volume":"18","author":"E Brady","year":"2017","unstructured":"Brady, E.: Type-driven development of concurrent communicating systems. Comput. Sci. 18(3), 219\u2013240 (2017). https:\/\/doi.org\/10.7494\/csci.2017.18.3.1413","journal-title":"Comput. Sci."},{"key":"9_CR7","unstructured":"Brady, E.: Type-driven Development with Idris. Manning Publications Co., Shelter Island (2017)"},{"key":"9_CR8","unstructured":"Brown, C.: Tool support for refactoring Haskell programs. Ph.D. thesis, Computing Laboratory, University of Kent, Canterbury, Kent, UK, September 2008"},{"key":"9_CR9","doi-asserted-by":"publisher","unstructured":"Brown, C., Barwell, A.D., Marquer, Y., Minh, C., Zendra, O.: Type-driven verification of non-functional properties. In: Proceedings of the 21st International Symposium on Principles and Practice of Declarative Programming, PPDP 2019. Association for Computing Machinery, New York (2019). https:\/\/doi.org\/10.1145\/3354166.3354171","DOI":"10.1145\/3354166.3354171"},{"key":"9_CR10","doi-asserted-by":"publisher","unstructured":"Brown, C., Barwell, A.D., Marquer, Y., Zendra, O., Richmond, T., Gu, C.: Semi-automatic ladderisation: improving code security through rewriting and dependent types. In: Proceedings of the 2022 ACM SIGPLAN International Workshop on Partial Evaluation and Program Manipulation, PEPM 2022, pp. 14\u201327. Association for Computing Machinery, New York (2022). https:\/\/doi.org\/10.1145\/3498886.3502202","DOI":"10.1145\/3498886.3502202"},{"key":"9_CR11","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"31","DOI":"10.1007\/978-3-642-22941-1_3","volume-title":"Trends in Functional Programming","author":"C Brown","year":"2011","unstructured":"Brown, C., Li, H., Thompson, S.: An expression processor: a case study in refactoring Haskell programs. In: Page, R., Horv\u00e1th, Z., Zs\u00f3k, V. (eds.) TFP 2010. LNCS, vol. 6546, pp. 31\u201349. Springer, Heidelberg (2011). https:\/\/doi.org\/10.1007\/978-3-642-22941-1_3"},{"key":"9_CR12","doi-asserted-by":"publisher","unstructured":"Brown, C., Thompson, S.: Clone detection and elimination for Haskell. In: Proceedings of the 2010 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation, PEPM 2010, pp. 111\u2013120. Association for Computing Machinery, New York (2010). https:\/\/doi.org\/10.1145\/1706356.1706378","DOI":"10.1145\/1706356.1706378"},{"issue":"1","key":"9_CR13","doi-asserted-by":"publisher","first-page":"44","DOI":"10.1145\/321992.321996","volume":"24","author":"RM Burstall","year":"1977","unstructured":"Burstall, R.M., Darlington, J.: A transformation system for developing recursive programs. J. ACM 24(1), 44\u201367 (1977). https:\/\/doi.org\/10.1145\/321992.321996","journal-title":"J. ACM"},{"key":"9_CR14","doi-asserted-by":"publisher","unstructured":"Caballero, R., Martin-Martin, E., Riesco, A., Tamarit, S.: A core Erlang semantics for declarative debugging. J. Log. Algebraic Methods Program. 107, 1\u201337 (2019). https:\/\/doi.org\/10.1016\/j.jlamp.2019.05.002","DOI":"10.1016\/j.jlamp.2019.05.002"},{"issue":"3","key":"9_CR15","doi-asserted-by":"publisher","first-page":"106","DOI":"10.1016\/j.scico.2009.10.001","volume":"75","author":"M Cornelio","year":"2010","unstructured":"Cornelio, M., Cavalcanti, A., Sampaio, A.: Sound refactorings. Sci. Comput. Program. 75(3), 106\u2013133 (2010). https:\/\/doi.org\/10.1016\/j.scico.2009.10.001","journal-title":"Sci. Comput. Program."},{"key":"9_CR16","volume-title":"Refactoring: Improving the Design of Existing Code","author":"M Fowler","year":"1999","unstructured":"Fowler, M.: Refactoring: Improving the Design of Existing Code. Addison-Wesley Longman Publishing Co., Inc., USA (1999)"},{"key":"9_CR17","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"629","DOI":"10.1007\/978-3-642-39038-8_26","volume-title":"ECOOP 2013 \u2013 Object-Oriented Programming","author":"M Gligoric","year":"2013","unstructured":"Gligoric, M., Behrang, F., Li, Y., Overbey, J., Hafiz, M., Marinov, D.: Systematic testing of refactoring engines on real software projects. In: Castagna, G. (ed.) ECOOP 2013. LNCS, vol. 7920, pp. 629\u2013653. Springer, Heidelberg (2013). https:\/\/doi.org\/10.1007\/978-3-642-39038-8_26"},{"key":"9_CR18","doi-asserted-by":"publisher","unstructured":"Horp\u00e1csi, D., K\u0151szegi, J., Thompson, S.: Towards trustworthy refactoring in erlang. Electron. Proc. Theoret. Comput. Sci. 216, 83\u2013103 (2016). https:\/\/doi.org\/10.4204\/eptcs.216.5","DOI":"10.4204\/eptcs.216.5"},{"key":"9_CR19","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"190","DOI":"10.1007\/3-540-15975-4_37","volume-title":"Functional Programming Languages and Computer Architecture","author":"T Johnsson","year":"1985","unstructured":"Johnsson, T.: Lambda lifting: transforming programs to recursive equations. In: Jouannaud, J.-P. (ed.) FPCA 1985. LNCS, vol. 201, pp. 190\u2013203. Springer, Heidelberg (1985). https:\/\/doi.org\/10.1007\/3-540-15975-4_37"},{"issue":"7","key":"9_CR20","doi-asserted-by":"publisher","first-page":"107","DOI":"10.1145\/1538788.1538814","volume":"52","author":"X Leroy","year":"2009","unstructured":"Leroy, X.: Formal verification of a realistic compiler. Commun. ACM 52(7), 107\u2013115 (2009). https:\/\/doi.org\/10.1145\/1538788.1538814","journal-title":"Commun. ACM"},{"key":"9_CR21","unstructured":"Li, H.: Refactoring Haskell Programs, September 2006. https:\/\/kar.kent.ac.uk\/14425\/"},{"key":"9_CR22","unstructured":"Li, H., Thompson, S.: Formalisation of Haskell refactorings. In: van Eekelen, M., Hammond, K. (eds.) Trends in Functional Programming, pp. 182\u2013196, September 2005. http:\/\/www.cs.kent.ac.uk\/pubs\/2005\/2250"},{"key":"9_CR23","doi-asserted-by":"crossref","unstructured":"Li, H., Thompson, S., Reinke, C.: The haskell refactorer: HaRe, and its API. In: Boyland, J., Hedin, G. (eds.) Proceedings of the 5th workshop on Language Descriptions, Tools and Applications (LDTA 2005), pp. 182\u2013196, April 2005. http:\/\/www.cs.kent.ac.uk\/pubs\/2005\/2158. published as Volume 141, Number 4 of Electronic Notes in Theoretical Computer Science, http:\/\/www.sciencedirect.com\/science\/journal\/15710661","DOI":"10.1016\/j.entcs.2005.02.053"},{"issue":"2","key":"9_CR24","doi-asserted-by":"publisher","first-page":"126","DOI":"10.1109\/TSE.2004.1265817","volume":"30","author":"T Mens","year":"2004","unstructured":"Mens, T., Tourw\u00e9, T.: A survey of software refactoring. IEEE Trans. Softw. Eng. 30(2), 126\u2013139 (2004). https:\/\/doi.org\/10.1109\/TSE.2004.1265817","journal-title":"IEEE Trans. Softw. Eng."},{"issue":"1","key":"9_CR25","doi-asserted-by":"publisher","first-page":"7","DOI":"10.1017\/S0956796803000418","volume":"13","author":"SL Peyton Jones","year":"2003","unstructured":"Peyton Jones, S.L.: Haskell 98: lexical structure. J. Funct. Program. 13(1), 7\u201316 (2003). https:\/\/doi.org\/10.1017\/S0956796803000418","journal-title":"J. Funct. Program."},{"key":"9_CR26","unstructured":"Peyton\u00a0Jones, S.L., Wadler, P.: A static semantics for Haskell, February 1992. https:\/\/www.microsoft.com\/en-us\/research\/publication\/a-static-semantics-for-haskell\/"},{"key":"9_CR27","doi-asserted-by":"publisher","unstructured":"Rowe, R.N.S., F\u00e9r\u00e9e, H., Thompson, S.J., Owens, S.: characterising renaming within OCaml\u2019s module system: theory and implementation. In: Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2019, pp. 950\u2013965. Association for Computing Machinery, New York (2019). https:\/\/doi.org\/10.1145\/3314221.3314600","DOI":"10.1145\/3314221.3314600"},{"key":"9_CR28","doi-asserted-by":"publisher","unstructured":"Sultana, N., Thompson, S.: Mechanical verification of refactorings. In: Proceedings of the 2008 ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation, PEPM 2008, pp. 51\u201360. Association for Computing Machinery, New York (2008). https:\/\/doi.org\/10.1145\/1328408.1328417","DOI":"10.1145\/1328408.1328417"},{"key":"9_CR29","unstructured":"Thompson, S., Horp\u00e1csi, D.: Refactoring = Substitution + Rewriting (2023). https:\/\/arxiv.org\/abs\/2211.11550"},{"key":"9_CR30","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"331","DOI":"10.1007\/11546382_9","volume-title":"Advanced Functional Programming","author":"S Thompson","year":"2005","unstructured":"Thompson, S.: Refactoring functional programs. In: Vene, V., Uustalu, T. (eds.) AFP 2004. LNCS, vol. 3622, pp. 331\u2013357. Springer, Heidelberg (2005). https:\/\/doi.org\/10.1007\/11546382_9"}],"container-title":["Lecture Notes in Computer Science","Logic-Based Program Synthesis and Transformation"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-031-71294-4_9","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2024,9,6]],"date-time":"2024-09-06T14:05:01Z","timestamp":1725631501000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/978-3-031-71294-4_9"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2024]]},"ISBN":["9783031712937","9783031712944"],"references-count":30,"URL":"https:\/\/doi.org\/10.1007\/978-3-031-71294-4_9","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"type":"print","value":"0302-9743"},{"type":"electronic","value":"1611-3349"}],"subject":[],"published":{"date-parts":[[2024]]},"assertion":[{"value":"7 September 2024","order":1,"name":"first_online","label":"First Online","group":{"name":"ChapterHistory","label":"Chapter History"}},{"value":"LOPSTR","order":1,"name":"conference_acronym","label":"Conference Acronym","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"International Symposium on Logic-Based Program Synthesis and Transformation","order":2,"name":"conference_name","label":"Conference Name","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Milan","order":3,"name":"conference_city","label":"Conference City","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"Italy","order":4,"name":"conference_country","label":"Conference Country","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"2024","order":5,"name":"conference_year","label":"Conference Year","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"9 September 2024","order":7,"name":"conference_start_date","label":"Conference Start Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"10 September 2024","order":8,"name":"conference_end_date","label":"Conference End Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"34","order":9,"name":"conference_number","label":"Conference Number","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"lopstr2024","order":10,"name":"conference_id","label":"Conference ID","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"https:\/\/www.fm24.polimi.it\/?page_id=63#lopstrppdp2024","order":11,"name":"conference_url","label":"Conference URL","group":{"name":"ConferenceInfo","label":"Conference Information"}}]}}