{"publisher":"ACM","abstract":[{"text":"We study the problem of developing efficient approaches for proving\r\nworst-case bounds of non-deterministic recursive programs. Ranking functions\r\nare sound and complete for proving termination and worst-case bounds of\r\nnonrecursive programs. First, we apply ranking functions to recursion,\r\nresulting in measure functions. We show that measure functions provide a sound\r\nand complete approach to prove worst-case bounds of non-deterministic recursive\r\nprograms. Our second contribution is the synthesis of measure functions in\r\nnonpolynomial forms. We show that non-polynomial measure functions with\r\nlogarithm and exponentiation can be synthesized through abstraction of\r\nlogarithmic or exponentiation terms, Farkas' Lemma, and Handelman's Theorem\r\nusing linear programming. While previous methods obtain worst-case polynomial\r\nbounds, our approach can synthesize bounds of the form $\\mathcal{O}(n\\log n)$\r\nas well as $\\mathcal{O}(n^r)$ where $r$ is not an integer. We present\r\nexperimental results to demonstrate that our approach can obtain efficiently\r\nworst-case bounds of classical recursive algorithms such as (i) Merge-Sort, the\r\ndivide-and-conquer algorithm for the Closest-Pair problem, where we obtain\r\n$\\mathcal{O}(n \\log n)$ worst-case bound, and (ii) Karatsuba's algorithm for\r\npolynomial multiplication and Strassen's algorithm for matrix multiplication,\r\nwhere we obtain $\\mathcal{O}(n^r)$ bound such that $r$ is not an integer and\r\nclose to the best-known bounds for the respective algorithms.","lang":"eng"}],"user_id":"4359f0d1-fa6c-11eb-b949-802e58b17ae8","oa":1,"external_id":{"arxiv":["1705.00317"],"isi":["000564108400001"]},"oa_version":"Preprint","isi":1,"publication":"ACM Transactions on Programming Languages and Systems","doi":"10.1145/3339984","ec_funded":1,"language":[{"iso":"eng"}],"year":"2019","day":"01","date_updated":"2024-03-25T23:30:18Z","article_type":"original","intvolume":" 41","main_file_link":[{"url":"https://arxiv.org/abs/1705.00317","open_access":"1"}],"article_number":"20","related_material":{"record":[{"id":"639","status":"public","relation":"earlier_version"},{"id":"8934","status":"public","relation":"dissertation_contains"}]},"citation":{"ama":"Chatterjee K, Fu H, Goharshady AK. Non-polynomial worst-case analysis of recursive programs. ACM Transactions on Programming Languages and Systems. 2019;41(4). doi:10.1145/3339984","chicago":"Chatterjee, Krishnendu, Hongfei Fu, and Amir Kafshdar Goharshady. “Non-Polynomial Worst-Case Analysis of Recursive Programs.” ACM Transactions on Programming Languages and Systems. ACM, 2019. https://doi.org/10.1145/3339984.","mla":"Chatterjee, Krishnendu, et al. “Non-Polynomial Worst-Case Analysis of Recursive Programs.” ACM Transactions on Programming Languages and Systems, vol. 41, no. 4, 20, ACM, 2019, doi:10.1145/3339984.","apa":"Chatterjee, K., Fu, H., & Goharshady, A. K. (2019). Non-polynomial worst-case analysis of recursive programs. ACM Transactions on Programming Languages and Systems. ACM. https://doi.org/10.1145/3339984","ista":"Chatterjee K, Fu H, Goharshady AK. 2019. Non-polynomial worst-case analysis of recursive programs. ACM Transactions on Programming Languages and Systems. 41(4), 20.","ieee":"K. Chatterjee, H. Fu, and A. K. Goharshady, “Non-polynomial worst-case analysis of recursive programs,” ACM Transactions on Programming Languages and Systems, vol. 41, no. 4. ACM, 2019.","short":"K. Chatterjee, H. Fu, A.K. Goharshady, ACM Transactions on Programming Languages and Systems 41 (2019)."},"month":"10","author":[{"full_name":"Chatterjee, Krishnendu","id":"2E5DCA20-F248-11E8-B48F-1D18A9856A87","last_name":"Chatterjee","first_name":"Krishnendu","orcid":"0000-0002-4561-241X"},{"full_name":"Fu, Hongfei","first_name":"Hongfei","last_name":"Fu"},{"full_name":"Goharshady, Amir Kafshdar","id":"391365CE-F248-11E8-B48F-1D18A9856A87","last_name":"Goharshady","first_name":"Amir Kafshdar","orcid":"0000-0003-1702-6584"}],"date_published":"2019-10-01T00:00:00Z","title":"Non-polynomial worst-case analysis of recursive programs","project":[{"name":"Efficient Algorithms for Computer Aided Verification","grant_number":"ICT15-003","_id":"25892FC0-B435-11E9-9278-68D0E5697425"},{"name":"Rigorous Systems Engineering","grant_number":"S 11407_N23","call_identifier":"FWF","_id":"25832EC2-B435-11E9-9278-68D0E5697425"},{"_id":"2581B60A-B435-11E9-9278-68D0E5697425","name":"Quantitative Graph Games: Theory and Applications","call_identifier":"FP7","grant_number":"279307"},{"_id":"267066CE-B435-11E9-9278-68D0E5697425","name":"Quantitative Analysis of Probablistic Systems with a focus on Crypto-currencies"},{"_id":"266EEEC0-B435-11E9-9278-68D0E5697425","name":"Quantitative Game-theoretic Analysis of Blockchain Applications and Smart Contracts"}],"scopus_import":"1","date_created":"2019-11-13T08:33:43Z","issue":"4","department":[{"_id":"KrCh"}],"article_processing_charge":"No","type":"journal_article","_id":"7014","status":"public","publication_status":"published","quality_controlled":"1","volume":41}