{"publication_identifier":{"isbn":["978-331908866-2"]},"doi":"10.1007/978-3-319-08867-9_38","_id":"2218","month":"07","title":"Regression-free synthesis for concurrency","oa_version":"Submitted Version","type":"conference","citation":{"ama":"Cerny P, Henzinger TA, Radhakrishna A, Ryzhyk L, Tarrach T. Regression-free synthesis for concurrency. In: Vol 8559. Springer; 2014:568-584. doi:10.1007/978-3-319-08867-9_38","ista":"Cerny P, Henzinger TA, Radhakrishna A, Ryzhyk L, Tarrach T. 2014. Regression-free synthesis for concurrency. CAV: Computer Aided Verification, LNCS, vol. 8559, 568–584.","chicago":"Cerny, Pavol, Thomas A Henzinger, Arjun Radhakrishna, Leonid Ryzhyk, and Thorsten Tarrach. “Regression-Free Synthesis for Concurrency,” 8559:568–84. Springer, 2014. https://doi.org/10.1007/978-3-319-08867-9_38.","ieee":"P. Cerny, T. A. Henzinger, A. Radhakrishna, L. Ryzhyk, and T. Tarrach, “Regression-free synthesis for concurrency,” presented at the CAV: Computer Aided Verification, Vienna, Austria, 2014, vol. 8559, pp. 568–584.","mla":"Cerny, Pavol, et al. Regression-Free Synthesis for Concurrency. Vol. 8559, Springer, 2014, pp. 568–84, doi:10.1007/978-3-319-08867-9_38.","short":"P. Cerny, T.A. Henzinger, A. Radhakrishna, L. Ryzhyk, T. Tarrach, in:, Springer, 2014, pp. 568–584.","apa":"Cerny, P., Henzinger, T. A., Radhakrishna, A., Ryzhyk, L., & Tarrach, T. (2014). Regression-free synthesis for concurrency (Vol. 8559, pp. 568–584). Presented at the CAV: Computer Aided Verification, Vienna, Austria: Springer. https://doi.org/10.1007/978-3-319-08867-9_38"},"oa":1,"publisher":"Springer","publication_status":"published","conference":{"name":"CAV: Computer Aided Verification","end_date":"2014-07-22","start_date":"2014-07-18","location":"Vienna, Austria"},"language":[{"iso":"eng"}],"file_date_updated":"2020-07-14T12:45:33Z","publist_id":"4749","author":[{"first_name":"Pavol","full_name":"Cerny, Pavol","last_name":"Cerny"},{"last_name":"Henzinger","id":"40876CD8-F248-11E8-B48F-1D18A9856A87","orcid":"0000−0002−2985−7724","first_name":"Thomas A","full_name":"Henzinger, Thomas A"},{"full_name":"Radhakrishna, Arjun","first_name":"Arjun","id":"3B51CAC4-F248-11E8-B48F-1D18A9856A87","last_name":"Radhakrishna"},{"last_name":"Ryzhyk","first_name":"Leonid","full_name":"Ryzhyk, Leonid"},{"last_name":"Tarrach","id":"3D6E8F2C-F248-11E8-B48F-1D18A9856A87","orcid":"0000-0003-4409-8487","first_name":"Thorsten","full_name":"Tarrach, Thorsten"}],"user_id":"2DF688A6-F248-11E8-B48F-1D18A9856A87","page":"568 - 584","department":[{"_id":"ToHe"}],"alternative_title":["LNCS"],"date_created":"2018-12-11T11:56:23Z","file":[{"checksum":"a631d3105509f239724644e77a1212e2","creator":"system","file_id":"4995","access_level":"open_access","relation":"main_file","date_updated":"2020-07-14T12:45:33Z","content_type":"application/pdf","file_size":416732,"file_name":"IST-2014-297-v1+1_cav14-final.pdf","date_created":"2018-12-12T10:13:14Z"},{"access_level":"open_access","file_id":"4996","checksum":"f8b0f748cc9fa697ca992cc56c87bc4e","creator":"system","date_updated":"2020-07-14T12:45:33Z","content_type":"application/pdf","date_created":"2018-12-12T10:13:15Z","file_name":"IST-2014-297-v2+1_cav14-final2.pdf","file_size":616293,"relation":"main_file"}],"ddc":["000"],"year":"2014","date_published":"2014-07-22T00:00:00Z","has_accepted_license":"1","project":[{"_id":"25EE3708-B435-11E9-9278-68D0E5697425","name":"Quantitative Reactive Modeling","grant_number":"267989","call_identifier":"FP7"},{"grant_number":"S11402-N23","call_identifier":"FWF","_id":"25F5A88A-B435-11E9-9278-68D0E5697425","name":"Moderne Concurrency Paradigms"}],"pubrep_id":"297","volume":8559,"related_material":{"record":[{"status":"public","id":"1130","relation":"dissertation_contains"}]},"main_file_link":[{"url":"https://link.springer.com/chapter/10.1007%2F978-3-319-08867-9_38","open_access":"1"}],"ec_funded":1,"date_updated":"2023-09-07T11:57:01Z","intvolume":" 8559","abstract":[{"lang":"eng","text":"While fixing concurrency bugs, program repair algorithms may introduce new concurrency bugs. We present an algorithm that avoids such regressions. The solution space is given by a set of program transformations we consider in the repair process. These include reordering of instructions within a thread and inserting atomic sections. The new algorithm learns a constraint on the space of candidate solutions, from both positive examples (error-free traces) and counterexamples (error traces). From each counterexample, the algorithm learns a constraint necessary to remove the errors. From each positive examples, it learns a constraint that is necessary in order to prevent the repair from turning the trace into an error trace. We implemented the algorithm and evaluated it on simplified Linux device drivers with known bugs."}],"status":"public","day":"22","quality_controlled":"1"}