[{"main_file_link":[{"url":"https://doi.org/10.1145/3385412.3385980","open_access":"1"}],"title":"Inductive sequentialization of asynchronous programs","external_id":{"isi":["000614622300016"]},"related_material":{"record":[{"relation":"dissertation_contains","status":"public","id":"8332"}]},"publication":"Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation","citation":{"chicago":"Kragl, Bernhard, Constantin Enea, Thomas A Henzinger, Suha Orhun Mutluergil, and Shaz Qadeer. “Inductive Sequentialization of Asynchronous Programs.” In <i>Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation</i>, 227–42. Association for Computing Machinery, 2020. <a href=\"https://doi.org/10.1145/3385412.3385980\">https://doi.org/10.1145/3385412.3385980</a>.","ieee":"B. Kragl, C. Enea, T. A. Henzinger, S. O. Mutluergil, and S. Qadeer, “Inductive sequentialization of asynchronous programs,” in <i>Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation</i>, London, United Kingdom, 2020, pp. 227–242.","short":"B. Kragl, C. Enea, T.A. Henzinger, S.O. Mutluergil, S. Qadeer, in:, Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation, Association for Computing Machinery, 2020, pp. 227–242.","ista":"Kragl B, Enea C, Henzinger TA, Mutluergil SO, Qadeer S. 2020. Inductive sequentialization of asynchronous programs. Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation. PLDI: Programming Language Design and Implementation, 227–242.","mla":"Kragl, Bernhard, et al. “Inductive Sequentialization of Asynchronous Programs.” <i>Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation</i>, Association for Computing Machinery, 2020, pp. 227–42, doi:<a href=\"https://doi.org/10.1145/3385412.3385980\">10.1145/3385412.3385980</a>.","apa":"Kragl, B., Enea, C., Henzinger, T. A., Mutluergil, S. O., &#38; Qadeer, S. (2020). Inductive sequentialization of asynchronous programs. In <i>Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation</i> (pp. 227–242). London, United Kingdom: Association for Computing Machinery. <a href=\"https://doi.org/10.1145/3385412.3385980\">https://doi.org/10.1145/3385412.3385980</a>","ama":"Kragl B, Enea C, Henzinger TA, Mutluergil SO, Qadeer S. Inductive sequentialization of asynchronous programs. In: <i>Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation</i>. Association for Computing Machinery; 2020:227-242. doi:<a href=\"https://doi.org/10.1145/3385412.3385980\">10.1145/3385412.3385980</a>"},"project":[{"grant_number":"Z211","call_identifier":"FWF","_id":"25F42A32-B435-11E9-9278-68D0E5697425","name":"The Wittgenstein Prize"}],"scopus_import":"1","abstract":[{"lang":"eng","text":"Asynchronous programs are notoriously difficult to reason about because they spawn computation tasks which take effect asynchronously in a nondeterministic way. Devising inductive invariants for such programs requires understanding and stating complex relationships between an unbounded number of computation tasks in arbitrarily long executions. In this paper, we introduce inductive sequentialization, a new proof rule that sidesteps this complexity via a sequential reduction, a sequential program that captures every behavior of the original program up to reordering of coarse-grained commutative actions. A sequential reduction of a concurrent program is easy to reason about since it corresponds to a simple execution of the program in an idealized synchronous environment, where processes act in a fixed order and at the same speed. We have implemented and integrated our proof rule in the CIVL verifier, allowing us to provably derive fine-grained implementations of asynchronous programs. We have successfully applied our proof rule to a diverse set of message-passing protocols, including leader election protocols, two-phase commit, and Paxos."}],"day":"01","oa_version":"Published Version","page":"227-242","publication_status":"published","date_updated":"2023-09-07T13:18:00Z","status":"public","publication_identifier":{"isbn":["9781450376136"]},"quality_controlled":"1","month":"06","isi":1,"department":[{"_id":"ToHe"}],"date_created":"2020-06-25T11:40:16Z","conference":{"name":"PLDI: Programming Language Design and Implementation","start_date":"2020-06-15","end_date":"2020-06-20","location":"London, United Kingdom"},"user_id":"4359f0d1-fa6c-11eb-b949-802e58b17ae8","article_processing_charge":"No","_id":"8012","oa":1,"author":[{"first_name":"Bernhard","full_name":"Kragl, Bernhard","id":"320FC952-F248-11E8-B48F-1D18A9856A87","last_name":"Kragl","orcid":"0000-0001-7745-9117"},{"last_name":"Enea","first_name":"Constantin","full_name":"Enea, Constantin"},{"first_name":"Thomas A","full_name":"Henzinger, Thomas A","orcid":"0000-0002-2985-7724","id":"40876CD8-F248-11E8-B48F-1D18A9856A87","last_name":"Henzinger"},{"full_name":"Mutluergil, Suha Orhun","first_name":"Suha Orhun","last_name":"Mutluergil"},{"first_name":"Shaz","full_name":"Qadeer, Shaz","last_name":"Qadeer"}],"date_published":"2020-06-01T00:00:00Z","year":"2020","publisher":"Association for Computing Machinery","doi":"10.1145/3385412.3385980","language":[{"iso":"eng"}],"type":"conference"},{"date_published":"2020-06-11T00:00:00Z","oa":1,"_id":"8089","author":[{"orcid":"0000-0002-4561-241X","last_name":"Chatterjee","id":"2E5DCA20-F248-11E8-B48F-1D18A9856A87","first_name":"Krishnendu","full_name":"Chatterjee, Krishnendu"},{"last_name":"Fu","id":"3AAD03D6-F248-11E8-B48F-1D18A9856A87","first_name":"Hongfei","full_name":"Fu, Hongfei"},{"orcid":"0000-0003-1702-6584","last_name":"Goharshady","id":"391365CE-F248-11E8-B48F-1D18A9856A87","first_name":"Amir Kafshdar","full_name":"Goharshady, Amir Kafshdar"},{"first_name":"Ehsan Kafshdar","full_name":"Goharshady, Ehsan Kafshdar","last_name":"Goharshady"}],"type":"conference","publisher":"Association for Computing Machinery","year":"2020","language":[{"iso":"eng"}],"doi":"10.1145/3385412.3385969","isi":1,"quality_controlled":"1","publication_identifier":{"isbn":["9781450376136"]},"month":"06","article_processing_charge":"No","user_id":"2DF688A6-F248-11E8-B48F-1D18A9856A87","conference":{"location":"London, United Kingdom","name":"PLDI: Programming Language Design and Implementation","end_date":"2020-06-20","start_date":"2020-06-15"},"department":[{"_id":"KrCh"}],"date_created":"2020-07-05T22:00:45Z","abstract":[{"text":"We consider the classical problem of invariant generation for programs with polynomial assignments and focus on synthesizing invariants that are a conjunction of strict polynomial inequalities. We present a sound and semi-complete method based on positivstellensaetze, i.e. theorems in semi-algebraic geometry that characterize positive polynomials over a semi-algebraic set.\r\n\r\nOn the theoretical side, the worst-case complexity of our approach is subexponential, whereas the worst-case complexity of the previous complete method (Kapur, ACA 2004) is doubly-exponential. Even when restricted to linear invariants, the best previous complexity for complete invariant generation is exponential (Colon et al, CAV 2003). On the practical side, we reduce the invariant generation problem to quadratic programming (QCLP), which is a classical optimization problem with many industrial solvers. We demonstrate the applicability of our approach by providing experimental results on several academic benchmarks. To the best of our knowledge, the only previous invariant generation method that provides completeness guarantees for invariants consisting of polynomial inequalities is (Kapur, ACA 2004), which relies on quantifier elimination and cannot even handle toy programs such as our running example.","lang":"eng"}],"publication_status":"published","page":"672-687","oa_version":"Preprint","day":"11","status":"public","date_updated":"2025-06-02T08:53:42Z","external_id":{"isi":["000614622300045"],"arxiv":["1902.04373"]},"related_material":{"record":[{"id":"8934","status":"public","relation":"dissertation_contains"}]},"title":"Polynomial invariant generation for non-deterministic recursive programs","publication":"Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation","main_file_link":[{"open_access":"1","url":"https://arxiv.org/abs/1902.04373"}],"scopus_import":"1","project":[{"call_identifier":"FWF","grant_number":"S 11407_N23","_id":"25832EC2-B435-11E9-9278-68D0E5697425","name":"Rigorous Systems Engineering"},{"_id":"25892FC0-B435-11E9-9278-68D0E5697425","name":"Efficient Algorithms for Computer Aided Verification","grant_number":"ICT15-003"}],"arxiv":1,"citation":{"ista":"Chatterjee K, Fu H, Goharshady AK, Goharshady EK. 2020. Polynomial invariant generation for non-deterministic recursive programs. Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation. PLDI: Programming Language Design and Implementation, 672–687.","apa":"Chatterjee, K., Fu, H., Goharshady, A. K., &#38; Goharshady, E. K. (2020). Polynomial invariant generation for non-deterministic recursive programs. In <i>Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation</i> (pp. 672–687). London, United Kingdom: Association for Computing Machinery. <a href=\"https://doi.org/10.1145/3385412.3385969\">https://doi.org/10.1145/3385412.3385969</a>","short":"K. Chatterjee, H. Fu, A.K. Goharshady, E.K. Goharshady, in:, Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation, Association for Computing Machinery, 2020, pp. 672–687.","mla":"Chatterjee, Krishnendu, et al. “Polynomial Invariant Generation for Non-Deterministic Recursive Programs.” <i>Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation</i>, Association for Computing Machinery, 2020, pp. 672–87, doi:<a href=\"https://doi.org/10.1145/3385412.3385969\">10.1145/3385412.3385969</a>.","ama":"Chatterjee K, Fu H, Goharshady AK, Goharshady EK. Polynomial invariant generation for non-deterministic recursive programs. In: <i>Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation</i>. Association for Computing Machinery; 2020:672-687. doi:<a href=\"https://doi.org/10.1145/3385412.3385969\">10.1145/3385412.3385969</a>","chicago":"Chatterjee, Krishnendu, Hongfei Fu, Amir Kafshdar Goharshady, and Ehsan Kafshdar Goharshady. “Polynomial Invariant Generation for Non-Deterministic Recursive Programs.” In <i>Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation</i>, 672–87. Association for Computing Machinery, 2020. <a href=\"https://doi.org/10.1145/3385412.3385969\">https://doi.org/10.1145/3385412.3385969</a>.","ieee":"K. Chatterjee, H. Fu, A. K. Goharshady, and E. K. Goharshady, “Polynomial invariant generation for non-deterministic recursive programs,” in <i>Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation</i>, London, United Kingdom, 2020, pp. 672–687."}}]
