{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,7,23]],"date-time":"2025-07-23T12:53:15Z","timestamp":1753275195517,"version":"3.40.3"},"publisher-location":"Cham","reference-count":41,"publisher":"Springer International Publishing","isbn-type":[{"type":"print","value":"9783030816841"},{"type":"electronic","value":"9783030816858"}],"license":[{"start":{"date-parts":[[2021,1,1]],"date-time":"2021-01-01T00:00:00Z","timestamp":1609459200000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"},{"start":{"date-parts":[[2021,7,15]],"date-time":"2021-07-15T00:00:00Z","timestamp":1626307200000},"content-version":"vor","delay-in-days":195,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2021]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>In the <jats:italic>Adapter Design Pattern<\/jats:italic>, a programmer implements a <jats:italic>Target<\/jats:italic> interface by constructing an <jats:italic>Adapter<\/jats:italic> that accesses an existing <jats:italic>Adaptee<\/jats:italic> code. In this work, we present a reactive synthesis interpretation to the adapter design pattern, wherein an algorithm takes an <jats:italic>Adaptee<\/jats:italic> and a <jats:italic>Target<\/jats:italic> transducers, and the aim is to synthesize an <jats:italic>Adapter<\/jats:italic> transducer that, when composed with the <jats:italic>Adaptee<\/jats:italic>, generates a behavior that is equivalent to the behavior of the <jats:italic>Target<\/jats:italic>. One use of such an algorithm is to synthesize controllers that achieve similar goals on different hardware platforms. While this problem can be solved with existing synthesis algorithms, current state-of-the-art tools fail to scale. To cope with the computational complexity of the problem, we introduce a special form of specification format, called <jats:italic>Separated GR(k)<\/jats:italic>, which can be solved with a scalable synthesis algorithm but still allows for a large set of realistic specifications. We solve the realizability and the synthesis problems for Separated GR(<jats:italic>k<\/jats:italic>), and show how to exploit the separated nature of our specification to construct better algorithms, in terms of time complexity, than known algorithms for GR(<jats:italic>k<\/jats:italic>) synthesis. We then describe a tool, called SGR(<jats:italic>k<\/jats:italic>), that we have implemented based on the above approach and show, by experimental evaluation, how our tool outperforms current state-of-the-art tools on various benchmarks and test-cases.<\/jats:p>","DOI":"10.1007\/978-3-030-81685-8_41","type":"book-chapter","created":{"date-parts":[[2021,7,17]],"date-time":"2021-07-17T00:02:35Z","timestamp":1626480155000},"page":"870-893","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":4,"title":["Adapting Behaviors via Reactive Synthesis"],"prefix":"10.1007","author":[{"given":"Gal","family":"Amram","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Suguman","family":"Bansal","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Dror","family":"Fried","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Lucas Martinelli","family":"Tabajara","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Moshe Y.","family":"Vardi","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Gera","family":"Weiss","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","published-online":{"date-parts":[[2021,7,15]]},"reference":[{"key":"41_CR1","unstructured":"Strix website. https:\/\/strix.model.in.tum.de\/"},{"key":"41_CR2","unstructured":"The Reactive Synthesis Competition - SYNTCOMP 2020 Results. http:\/\/www.syntcomp.org\/syntcomp-2020-results\/"},{"key":"41_CR3","unstructured":"Amram, G., Bansal, S., Fried, D., Tabajara, L.M., Vardi, M.Y., Weiss, G.: Adapting behaviors via reactive synthesis (2021). CoRR abs\/2105.13837 http:\/\/arxiv.org\/abs\/2105.13837"},{"key":"41_CR4","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"83","DOI":"10.1007\/978-3-030-30942-8_7","volume-title":"Formal Methods \u2013 The Next 30 Years","author":"G Amram","year":"2019","unstructured":"Amram, G., Maoz, S., Pistiner, O.: GR(1)*: GR(1) specifications extended with existential guarantees. In: ter Beek, M.H., McIver, A., Oliveira, J. (eds.) FM 2019. LNCS, vol. 11800, pp. 83\u2013100. Springer, Cham (2019). https:\/\/doi.org\/10.1007\/978-3-030-30942-8_7"},{"key":"41_CR5","unstructured":"Baier, C., Katoen, J.: Principles of Model Checking. MIT Press, Cambridge (2008)"},{"key":"41_CR6","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"367","DOI":"10.1007\/978-3-319-96145-3_20","volume-title":"Computer Aided Verification","author":"S Bansal","year":"2018","unstructured":"Bansal, S., Namjoshi, K.S., Sa\u2019ar, Y.: Synthesis of asynchronous reactive programs from temporal specifications. In: Chockler, H., Weissenbacher, G. (eds.) CAV 2018. LNCS, vol. 10981, pp. 367\u2013385. Springer, Cham (2018). https:\/\/doi.org\/10.1007\/978-3-319-96145-3_20"},{"key":"41_CR7","doi-asserted-by":"crossref","unstructured":"Bansal, S., Namjoshi, K.S., Sa\u2019ar, Y.: Synthesis of coordination programs from linear temporal specifications. In: Proceedings of POPL (2019)","DOI":"10.1145\/3371122"},{"key":"41_CR8","doi-asserted-by":"crossref","unstructured":"Bloem, R., Galler, S.J., Jobstmann, B., Piterman, N., Pnueli, A., Weiglhofer, M.: Interactive presentation: automatic hardware synthesis from specifications: a case study. In: Proceedings of DATE (2007)","DOI":"10.1109\/DATE.2007.364456"},{"issue":"3","key":"41_CR9","doi-asserted-by":"publisher","first-page":"911","DOI":"10.1016\/j.jcss.2011.08.007","volume":"78","author":"R Bloem","year":"2012","unstructured":"Bloem, R., Jobstmann, B., Piterman, N., Pnueli, A., Sa\u2019ar, Y.: Synthesis of reactive(1) designs. J. Comput. Syst. Sci. 78(3), 911\u2013938 (2012)","journal-title":"J. Comput. Syst. Sci."},{"issue":"8","key":"41_CR10","doi-asserted-by":"publisher","first-page":"677","DOI":"10.1109\/TC.1986.1676819","volume":"35","author":"RE Bryant","year":"1986","unstructured":"Bryant, R.E.: Graph-based algorithms for boolean function manipulation. IEEE Trans. Comput. 35(8), 677\u2013691 (1986)","journal-title":"IEEE Trans. Comput."},{"key":"41_CR11","doi-asserted-by":"crossref","unstructured":"Chakraborty, S., Fried, D., Tabajara, L.M., Vardi, M.Y.: Functional synthesis via input-output separation. In: Proceedings of FMCAD (2018)","DOI":"10.23919\/FMCAD.2018.8603000"},{"key":"41_CR12","unstructured":"Chatterjee, K.: Linear time algorithm for weak parity games (2008). CoRR abs\/0805.1391 http:\/\/arxiv.org\/abs\/0805.1391"},{"issue":"1","key":"41_CR13","doi-asserted-by":"publisher","first-page":"19","DOI":"10.1109\/TSE.2016.2564959","volume":"43","author":"D Ciolek","year":"2016","unstructured":"Ciolek, D., Braberman, V., D\u2019Ippolito, N., Piterman, N., Uchitel, S.: Interaction models and automated control under partial observable environments. IEEE Trans. Softw. Eng. 43(1), 19\u201333 (2016)","journal-title":"IEEE Trans. Softw. Eng."},{"key":"41_CR14","unstructured":"De Giacomo, G., Vardi, M.Y.: Linear temporal logic and linear dynamic logic on finite traces. In: Proceedings of IJCAI (2013)"},{"key":"41_CR15","doi-asserted-by":"crossref","unstructured":"Dwyer, M.B., Avrunin, G.S., Corbett, J.C.: Patterns in property specifications for finite-state verification. In: Proceedings of ICSE (1999)","DOI":"10.1145\/302405.302672"},{"key":"41_CR16","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"101","DOI":"10.1007\/978-3-642-20398-5_9","volume-title":"NASA Formal Methods","author":"R Ehlers","year":"2011","unstructured":"Ehlers, R.: Generalized rabin(1) synthesis with applications to robust system synthesis. In: Bobaru, M., Havelund, K., Holzmann, G.J., Joshi, R. (eds.) NFM 2011. LNCS, vol. 6617, pp. 101\u2013115. Springer, Heidelberg (2011). https:\/\/doi.org\/10.1007\/978-3-642-20398-5_9"},{"key":"41_CR17","doi-asserted-by":"crossref","unstructured":"Fried, D., Legay, A., Ouaknine, J., Vardi, M.Y.: Sequential relational decomposition. In: Proceedings of LICS (2018)","DOI":"10.1145\/3209108.3209203"},{"key":"41_CR18","unstructured":"Gamma, E.: Design Patterns: Elements of Reusable Object-Oriented Software. Pearson Education India, Reading (1995)"},{"key":"41_CR19","doi-asserted-by":"crossref","unstructured":"Grabmayer, C., Endrullis, J., Hendriks, D., Klop, J.W., Moss, L.S.: Automatic sequences and zip-specifications. In: Proceedings of LICS (2012)","DOI":"10.1109\/LICS.2012.44"},{"key":"41_CR20","doi-asserted-by":"crossref","unstructured":"Gr\u00e4del, E., Thomas, W., Wilke, T. (eds.): Automata, Logics, and Infinite Games: A Guide to Current Research (2002)","DOI":"10.1007\/3-540-36387-4"},{"key":"41_CR21","doi-asserted-by":"crossref","unstructured":"Hu, Q., D\u2019Antoni, L.: Automatic program inversion using symbolic transducers. In: SIGPLAN, pp. 376\u2013389, June 2017","DOI":"10.1145\/3140587.3062345"},{"key":"41_CR22","doi-asserted-by":"crossref","unstructured":"Jacobs, S., Klein, F., Schirmer, S.: A high-level LTL synthesis format: TLSF v1.1. In: Proceedings of SYNT (2016)","DOI":"10.4204\/EPTCS.229.10"},{"key":"41_CR23","doi-asserted-by":"crossref","unstructured":"Kocher, P., et al.: Spectre attacks: exploiting speculative execution. In: Proceedings of (S&P 2019) (2019)","DOI":"10.1109\/SP.2019.00002"},{"issue":"2","key":"41_CR24","doi-asserted-by":"publisher","first-page":"332","DOI":"10.1007\/s10703-017-0276-9","volume":"51","author":"B K\u00f6nighofer","year":"2017","unstructured":"K\u00f6nighofer, B., et al.: Shield synthesis. Formal Meth. Syst. Des. 51(2), 332\u2013361 (2017)","journal-title":"Formal Meth. Syst. Des."},{"key":"41_CR25","unstructured":"Koruyeh, E.M., Khasawneh, K.N., Song, C., Abu-Ghazaleh, N.: Spectre returns! speculation attacks using the return stack buffer. In: Proceedings of USENIX (2018)"},{"key":"41_CR26","unstructured":"Lipp, M., et al.: Meltdown: Reading kernel memory from user space. In: Proceedings of USENIX (2018)"},{"key":"41_CR27","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"521","DOI":"10.1007\/3-540-44929-9_36","volume-title":"Theoretical Computer Science: Exploring New Frontiers of Theoretical Informatics","author":"C Loding","year":"2000","unstructured":"Loding, C., Thomas, W.: Alternating automata and logics over infinite words. In: van Leeuwen, J., Watanabe, O., Hagiya, M., Mosses, P.D., Ito, T. (eds.) TCS 2000. LNCS, vol. 1872, pp. 521\u2013535. Springer, Heidelberg (2000). https:\/\/doi.org\/10.1007\/3-540-44929-9_36"},{"key":"41_CR28","doi-asserted-by":"crossref","unstructured":"Maoz, S., Ringert, J.O.: Synthesizing a lego forklift controller in GR(1): a case study. In: Proceedings of SYNT (2015)","DOI":"10.4204\/EPTCS.202.5"},{"key":"41_CR29","doi-asserted-by":"crossref","unstructured":"Maoz, S., Ringert, J.O.: GR(1) synthesis for LTL specification patterns. In: Proceedings of ESEC\/FSE (2016)","DOI":"10.1145\/2786805.2786824"},{"key":"41_CR30","doi-asserted-by":"crossref","unstructured":"Menghi, C., Tsigkanos, C., Pelliccione, P., Ghezzi, C., Berger, T.: Specification patterns for robotic missions. IEEE Trans. Softw. Eng. 1 (2019)","DOI":"10.1109\/TSE.2019.2945329"},{"key":"41_CR31","doi-asserted-by":"crossref","unstructured":"Meyer, P.J., Sickert, S., Luttenberger, M.: Strix: Explicit reactive synthesis strikes back! In: Proceedings of CAV (2018)","DOI":"10.1007\/978-3-319-96145-3_31"},{"issue":"2","key":"41_CR32","first-page":"269","volume":"23","author":"M Mohri","year":"1997","unstructured":"Mohri, M.: Finite-state transducers in language and speech processing. Comput. Linguist. 23(2), 269\u2013311 (1997)","journal-title":"Comput. Linguist."},{"key":"41_CR33","doi-asserted-by":"crossref","unstructured":"Ozay, N., Topcu, U., Murray, R.M.: Distributed power allocation for vehicle management systems. In: Proceedings of CDC-ECC (2011)","DOI":"10.1109\/CDC.2011.6161470"},{"key":"41_CR34","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"213","DOI":"10.1007\/3-540-48057-9_19","volume-title":"Automata Implementation","author":"S Pedrazzini","year":"1999","unstructured":"Pedrazzini, S.: The finite state automata\u2019s design patterns. In: Champarnaud, J.-M., Ziadi, D., Maurel, D. (eds.) WIA 1998. LNCS, vol. 1660, pp. 213\u2013219. Springer, Heidelberg (1999). https:\/\/doi.org\/10.1007\/3-540-48057-9_19"},{"key":"41_CR35","unstructured":"Piterman, N., Pnueli, A.: Faster solutions of rabin and streett games. In: Proceedings of LICS (2006)"},{"key":"41_CR36","doi-asserted-by":"crossref","unstructured":"Pnueli, A.: The temporal logic of programs. In: Proceedings of FOCS (1977)","DOI":"10.1109\/SFCS.1977.32"},{"key":"41_CR37","doi-asserted-by":"crossref","unstructured":"Pnueli, A., Rosner, R.: On the synthesis of a reactive module. In: Proceedings of POPL (1989)","DOI":"10.1145\/75277.75293"},{"key":"41_CR38","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"652","DOI":"10.1007\/BFb0035790","volume-title":"Automata, Languages and Programming","author":"A Pnueli","year":"1989","unstructured":"Pnueli, A., Rosner, R.: On the synthesis of an asynchronous reactive module. In: Ausiello, G., Dezani-Ciancaglini, M., Della Rocca, S.R. (eds.) ICALP 1989. LNCS, vol. 372, pp. 652\u2013671. Springer, Heidelberg (1989). https:\/\/doi.org\/10.1007\/BFb0035790"},{"key":"41_CR39","unstructured":"Somenzi, F.: CUDD: CU Decision Diagram Package Release 3.0.0 (2015). http:\/\/vlsi.colorado.edu\/~fabio\/CUDD\/cudd.pdf"},{"key":"41_CR40","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"147","DOI":"10.1007\/978-3-319-70389-3_10","volume-title":"Hardware and Software: Verification and Testing","author":"S Zhu","year":"2017","unstructured":"Zhu, S., Tabajara, L.M., Li, J., Pu, G., Vardi, M.Y.: A symbolic approach to safety LTL synthesis. In: HVC 2017. LNCS, vol. 10629, pp. 147\u2013162. Springer, Cham (2017). https:\/\/doi.org\/10.1007\/978-3-319-70389-3_10"},{"key":"41_CR41","doi-asserted-by":"crossref","unstructured":"Zhu, S., Tabajara, L.M., Li, J., Pu, G., Vardi, M.Y.: Symbolic LTLf synthesis. In: Proceedings of IJCAI (2017)","DOI":"10.24963\/ijcai.2017\/189"}],"container-title":["Lecture Notes in Computer Science","Computer Aided Verification"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-030-81685-8_41","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2021,7,17]],"date-time":"2021-07-17T00:11:56Z","timestamp":1626480716000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/978-3-030-81685-8_41"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2021]]},"ISBN":["9783030816841","9783030816858"],"references-count":41,"URL":"https:\/\/doi.org\/10.1007\/978-3-030-81685-8_41","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"type":"print","value":"0302-9743"},{"type":"electronic","value":"1611-3349"}],"subject":[],"published":{"date-parts":[[2021]]},"assertion":[{"value":"15 July 2021","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":"2021","order":5,"name":"conference_year","label":"Conference Year","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"20 July 2021","order":7,"name":"conference_start_date","label":"Conference Start Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"23 July 2021","order":8,"name":"conference_end_date","label":"Conference End Date","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"33","order":9,"name":"conference_number","label":"Conference Number","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"cav2021","order":10,"name":"conference_id","label":"Conference ID","group":{"name":"ConferenceInfo","label":"Conference Information"}},{"value":"http:\/\/i-cav.org\/2021\/","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":"290","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":"63","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":"22% - 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":"12","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":"Yes","order":9,"name":"external_reviewers_involved","label":"External Reviewers Involved","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}},{"value":"16 tool papers and 5 invited papers are also included.","order":10,"name":"additional_info_on_review_process","label":"Additional Info on Review Process","group":{"name":"ConfEventPeerReviewInformation","label":"Peer Review Information (provided by the conference organizers)"}}]}}