Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article
Open access

Non-polynomial Worst-Case Analysis of Recursive Programs

Published: 12 October 2019 Publication History

Abstract

We study the problem of developing efficient approaches for proving worst-case bounds of non-deterministic recursive programs. Ranking functions are sound and complete for proving termination and worst-case bounds of non-recursive programs. First, we apply ranking functions to recursion, resulting in measure functions. We show that measure functions provide a sound and complete approach to prove worst-case bounds of non-deterministic recursive programs. Our second contribution is the synthesis of measure functions in non-polynomial forms. We show that non-polynomial measure functions with logarithm and exponentiation can be synthesized through abstraction of logarithmic or exponentiation terms, Farkas Lemma, and Handelman’s Theorem using linear programming. While previous methods obtain polynomial worst-case bounds, our approach can synthesize bounds of various forms including O(n log n) and O(nr), where r is not an integer. We present experimental results to demonstrate that our approach can efficiently obtain worst-case bounds of classical recursive algorithms such as (i) Merge sort, Heap sort, and the divide-and-conquer algorithm for the Closest Pair problem, where we obtain O(n log n) worst-case bound, and (ii) Karatsuba’s algorithm for polynomial multiplication and Strassen’s algorithm for matrix multiplication, for which we obtain O(nr) bounds such that r is not an integer and is close to the best-known bound for the respective algorithm. Besides the ability to synthesize non-polynomial bounds, we also show that our approach is equally capable of obtaining polynomial worst-case bounds for classical programs such as Quick sort and the dynamic programming algorithm for computing Fibonacci numbers.

References

[1]
Elvira Albert, Puri Arenas, Samir Genaim, Miguel Gómez-Zamalloa, German Puebla, Diana V. Ramírez-Deantes, Guillermo Román-Díez, and Damiano Zanardini. 2009. Termination and cost analysis with COSTA and its user interfaces. Electr. Notes Theor. Comput. Sci. 258, 1 (2009), 109–121.
[2]
Elvira Albert, Puri Arenas, Samir Genaim, and Germán Puebla. 2008. Automatic inference of upper bounds for recurrence relations in cost analysis. In Proceedings of the 15th International Symposium on Static Analysis (SAS’08), (Lecture Notes in Computer Science), María Alpuente and Germán Vidal (Eds.). Vol. 5079, Springer, 221--237.
[3]
Elvira Albert, Puri Arenas, Samir Genaim, Germán Puebla, and Damiano Zanardini. 2007. Cost analysis of Java bytecode. In Programming Languages and Systems, 16th European Symposium on Programming (ESOP’07), held as part of the Proceedings of the Joint European Conferences on Theory and Practics of Software (ETAPS’07), (Lecture Notes in Computer Science), Rocco De Nicola (Ed.), Vol. 4421. Springer, 157--172.
[4]
Christophe Alias, Alain Darte, Paul Feautrier, and Laure Gonnord. 2010. Multi-dimensional rankings, program termination, and complexity bounds of flowchart programs. In Proceedings of the Static Analysis Symposium (SAS’10), (LNCS), Radhia Cousot and Matthieu Martel (Eds.). Vol. 6337, Springer, 117--133.
[5]
Rajeev Alur and Swarat Chaudhuri. 2010. Temporal reasoning for procedural programs. In Proceedings of the 11th International Conference on Verification, Model Checking, and Abstract Interpretation (VMCAI’10), (Lecture Notes in Computer Science), Gilles Barthe and Manuel V. Hermenegildo (Eds.), Vol. 5944. Springer, 45--60.
[6]
Roberto Bagnara, Patricia M Hill, Elisa Ricci, and Enea Zaffanella. 2003. Precise widening operators for convex polyhedra. In Proceedings of the International Static Analysis Symposium. Springer, 337--354.
[7]
Robert G. Bartle and Donald R. Sherbert. 2011. Introduction to Real Analysis (4th ed.). John Wiley 8 Sons, Inc.
[8]
Rastislav Bodík and Rupak Majumdar (Eds.). 2016. Proceedings of the 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL’16). ACM.
[9]
Olivier Bournez and Florent Garnier. 2005. Proving positive almost-sure termination. In 16th International Conference on Term Rewriting and Applications (RTA'05). Lecture Notes in Computer Science, Vol. 3467. Springer, 323--337.
[10]
Aaron R. Bradley, Zohar Manna, and Henny B. Sipma. 2005. Linear ranking with reachability. In Proceedings of the 17th International Conference on Computer Aided Verification (CAV’05), (Lecture Notes in Computer Science), Kousha Etessami and Sriram K. Rajamani (Eds.), Vol. 3576. Springer, 491--504.
[11]
Marc Brockschmidt, Fabian Emmes, Stephan Falke, Carsten Fuhs, and Jürgen Giesl. 2016. Analyzing runtime and size complexity of integer programs. ACM Trans. Program. Lang. Syst. 38, 4 (2016), 13:1--13:50. http://dl.acm.org/citation.cfm?id=2866575.
[12]
Giuseppe Castagna and Andrew D. Gordon (Eds.). 2017. Proceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming Languages (POPL’17). ACM.
[13]
Aleksandar Chakarov and Sriram Sankaranarayanan. 2013. Probabilistic program analysis with martingales. In Proceedings of the 25th International Conference on Computer Aided Verification (CAV’13), (Lecture Notes in Computer Science), Natasha Sharygina and Helmut Veith (Eds.). Vol. 8044, Springer, 511--526.
[14]
Krishnendu Chatterjee, Hongfei Fu, and Amir Kafshdar Goharshady. 2016. Termination analysis of probabilistic programs through Positivstellensatz’s. In Proceedings of the 28th International Conference on Computer Aided Verification (CAV’16), Part I Lecture Notes in Computer Science, Swarat Chaudhuri and Azadeh Farzan (Eds.). Vol. 9779, Springer, 3--22.
[15]
Krishnendu Chatterjee, Hongfei Fu, and Amir Kafshdar Goharshady. 2017. Non-polynomial worst-case analysis of recursive programs. In Proceedings of the 29th International Conference on Computer Aided Verification (CAV’17), Part II, Lecture Notes in Computer Science, Rupak Majumdar and Viktor Kuncak (Eds.). Vol. 10427, Springer, 41--63.
[16]
Krishnendu Chatterjee, Hongfei Fu, Amir Kafshdar Goharshady, and Ehsan Kafshdar Goharshady. 2019. Polynomial invariant generation for non-deterministic recursive programs. CoRR abs/1902.04373 (2019). arxiv:1902.04373 http://arxiv.org/abs/1902.04373.
[17]
Krishnendu Chatterjee, Hongfei Fu, Petr Novotný, and Rouzbeh Hasheminezhad. 2016. Algorithmic analysis of qualitative and quantitative termination problems for affine probabilistic programs, See Reference Bodík and Majumdar [8], 327--342.
[18]
Krishnendu Chatterjee, Petr Novotný, and Đorđe Žikelić. 2017. Stochastic invariants for probabilistic termination, See Reference Castagna and Gordon [12], 145--160.
[19]
Wei-Ngan Chin and Siau-Cheng Khoo. 2001. Calculating sized types. Higher-Order. Comput. 14, 2--3 (2001), 261--300.
[20]
Michael Colón, Sriram Sankaranarayanan, and Henny Sipma. 2003. Linear invariant generation using non-linear constraint solving. In Proceedings of the 15th International Conference on Computer Aided Verification (CAV’03), Lecture Notes in Computer Science, Warren A. Hunt Jr. and Fabio Somenzi (Eds.). Vol. 2725, Springer, 420--432.
[21]
Michael Colón and Henny Sipma. 2001. Synthesis of linear ranking functions. In Proceedings of the 7th International ConferenceTools and Algorithms for the Construction and Analysis of Systems (TACAS’01), held as part of the Joint European Conferences on Theory and Practice of Software (ETAPS’01), Lecture Notes in Computer Science, Tiziana Margaria and Wang Yi (Eds.). Vol. 2031, Springer, 67--81.
[22]
Byron Cook, Andreas Podelski, and Andrey Rybalchenko. 2006. Termination proofs for systems code. In Proceedings of the Programming Language Design and Implementation Conference (PLDI’06), Michael I. Schwartzbach and Thomas Ball (Eds.). ACM, 415--426.
[23]
Byron Cook, Andreas Podelski, and Andrey Rybalchenko. 2009. Summarization for termination: No return! Formal Methods Syst. Des. 35, 3 (2009), 369--387.
[24]
Byron Cook, Abigail See, and Florian Zuleger. 2013. Ramsey vs. Lexicographic termination proving. In Proceedings of the International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS’13), Lecture Notes in Computer Science, Nir Piterman and Scott A. Smolka (Eds.). Vol. 7795, Springer, 47--61.
[25]
Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. 2009. Introduction to Algorithms (3rd ed.). MIT Press.
[26]
Patrick Cousot. 2005. Proving program invariance and termination by parametric abstraction, Lagrangian relaxation and semidefinite programming. In Proceedings of the 6th International Conference on Verification, Model Checking, and Abstract Interpretation (VMCAI’05), Lecture Notes in Computer Science, Radhia Cousot (Ed.). Vol. 3385, Springer, 1--24.
[27]
Patrick Cousot and Radhia Cousot. 1977. Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints. In Conference Record of the 4th ACM Symposium on Principles of Programming Languages, Robert M. Graham, Michael A. Harrison, and Ravi Sethi (Eds.). ACM, 238--252.
[28]
Patrick Cousot and Radhia Cousot. 2012. An abstract interpretation framework for termination. In Proceedings of the ACM SIGPLAN Symposium on Principles of Programming Languages (POPL’12), John Field and Michael Hicks (Eds.). ACM, 245--258.
[29]
J. Farkas. 1894. A Fourier-féle mechanikai elv alkalmazásai (Hungarian). Math. Term. Értesitö 12 (1894), 457--472.
[30]
Luis María Ferrer Fioriti and Holger Hermanns. 2015. Probabilistic termination: Soundness, completeness, and compositionality. In Proceedings of the 42nd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL’15), Sriram K. Rajamani and David Walker (Eds.). ACM, 489--501.
[31]
Philippe Flajolet, Bruno Salvy, and Paul Zimmermann. 1991. Automatic average-case analysis of algorithm. Theor. Comput. Sci. 79, 1 (1991), 37--109.
[32]
Robert W. Floyd. 1967. Assigning meanings to programs. Mathematical Aspects of Computer Science (Proceedings of a Symposium in Applied Mathematics), J. T. Schwarz (Ed.) 19 (1967), 19--32.
[33]
Hongfei Fu and Krishnendu Chatterjee. 2019. Termination of nondeterministic probabilistic programs. In Proceedings of the 20th International Conference on Verification, Model Checking, and Abstract Interpretation (VMCAI’19), Lecture Notes in Computer Science, Constantin Enea and Ruzica Piskac (Eds.). Vol. 11388, Springer, 468--490.
[34]
Stéphane Gimenez and Georg Moser. 2016. The complexity of interaction, See Reference Bodík and Majumdar [8], 243--255.
[35]
Kurt Gödel. On undecidable propositions of formal mathematical systems. 1934. A reprint of XXXI 484. The Journal of Symbolic Logic 55, 1 (1934), 347. https://doi.org/10.2307/2274987
[36]
Bernd Grobauer. 2001. Cost recurrences for DML programs. In Proceedings of the 6th ACM SIGPLAN International Conference on Functional Programming (ICFP’01), Benjamin C. Pierce (Ed.). ACM, 253--264.
[37]
Bhargav S. Gulavani and Sumit Gulwani. 2008. A numerical abstract domain based on expression abstraction and max operator with application in timing analysis. In Proceedings of the 20th International Conference on Computer Aided Verification (CAV’08), Lecture Notes in Computer Science, Aarti Gupta and Sharad Malik (Eds.). Vol. 5123, Springer, 370--384.
[38]
Sumit Gulwani. 2009. SPEED: Symbolic complexity bound analysis. In Proceedings of the 21st International Conference on Computer Aided Verification, (CAV’09), Lecture Notes in Computer Science, Ahmed Bouajjani and Oded Maler (Eds.). Vol. 5643, Springer, 51--62.
[39]
Sumit Gulwani, Krishna K. Mehra, and Trishul M. Chilimbi. 2009. SPEED: Precise and efficient static estimation of program computational complexity. In Proceedings of the 36th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL’09), Zhong Shao and Benjamin C. Pierce (Eds.). ACM, 127--139.
[40]
D. Handelman. 1988. Representing polynomials by positive linear functions on compact convex polyhedra. Pac. J. Math. 132 (1988), 35--62.
[41]
Wim H. Hesselink. 1993. Proof rules for recursive procedures. Form. Asp. Comput. 5, 6 (1993), 554--570.
[42]
Jan Hoffmann, Klaus Aehlig, and Martin Hofmann. 2012. Multivariate amortized resource analysis. ACM Trans. Program. Lang. Syst. 34, 3 (2012), 14.
[43]
Jan Hoffmann, Klaus Aehlig, and Martin Hofmann. 2012. Resource aware ML. In Proceedings of the 24th International Conference on Computer Aided Verification (CAV’12), Lecture Notes in Computer Science, P. Madhusudan and Sanjit A. Seshia (Eds.). Vol. 7358, Springer, 781--786.
[44]
Jan Hoffmann and Martin Hofmann. 2010. Amortized resource analysis with polymorphic recursion and partial big-step operational semantics. In Proceedings of the 8th Asian Symposium on Programming Languages and Systems (APLAS’10), Lecture Notes in Computer Science, Kazunori Ueda (Ed.). Vol. 6461, Springer, 172--187.
[45]
Jan Hoffmann and Martin Hofmann. 2010. Amortized resource analysis with polynomial potential. In Proceedings of the 19th European Symposium on Programming Languages and Systems (ESOP’10), held as part of the Joint European Conferences on Theory and Practice of Software (ETAPS’10), Lecture Notes in Computer Science, Andrew D. Gordon (Ed.). Vol. 6012, Springer, 287--306.
[46]
Martin Hofmann and Steffen Jost. 2003. Static prediction of heap space usage for first-order functional programs. In Conference Record of POPL 2003: Proceedings of the 30th SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Alex Aiken and Greg Morrisett (Eds.). ACM, 185--197.
[47]
Martin Hofmann and Steffen Jost. 2006. Type-based amortised heap-space analysis. In Proceedings of the 15th European Symposium on Programming Languages and Systems (ESOP’06) held as part of the Joint European Conferences on Theory and Practice of Software (ETAPS’06), Lecture Notes in Computer Science, Peter Sestoft (Ed.). Vol. 3924, Springer, 22--37.
[48]
Martin Hofmann and Dulma Rodriguez. 2009. Efficient type-checking for amortised heap-space analysis. In Proceedings of the 23rd International Workshop on the Conference on Computer Science Logic (CSL’09), Lecture Notes in Computer Science, Erich Grädel and Reinhard Kahle (Eds.). Vol. 5771, Springer, 317--331.
[49]
John Hughes and Lars Pareto. 1999. Recursion and dynamic data-structures in bounded space: Towards embedded ML programming. In Proceedings of the 4th ACM SIGPLAN International Conference on Functional Programming (ICFP’99), Didier Rémi and Peter Lee (Eds.). ACM, 70--81.
[50]
John Hughes, Lars Pareto, and Amr Sabry. 1996. Proving the correctness of reactive systems using sized types. In Conference Record of POPL’96: Proceedings of the 23rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Hans-Juergen Boehm and Guy L. Steele Jr. (Eds.). ACM Press, 410--423.
[51]
Claire Jones. 1989. Probabilistic Non-Determinism. Ph.D. Dissertation. The University of Edinburgh.
[52]
Steffen Jost, Kevin Hammond, Hans-Wolfgang Loidl, and Martin Hofmann. 2010. Static determination of quantitative resource usage for higher-order programs. In Proceedings of the 37th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL’10), Manuel V. Hermenegildo and Jens Palsberg (Eds.). ACM, 223--236.
[53]
Steffen Jost, Hans-Wolfgang Loidl, Kevin Hammond, Norman Scaife, and Martin Hofmann. 2009. “Carbon credits” for resource-bounded computations using amortised analysis. In Proceedings of the Internaional Conference on Formal Methods (FM’09), Lecture Notes in Computer Science, Ana Cavalcanti and Dennis Dams (Eds.). Vol. 5850, Springer, 354--369.
[54]
Donald E. Knuth. 1973. The Art of Computer Programming, Volume I--III. Addison-Wesley.
[55]
Takuya Kuwahara, Tachio Terauchi, Hiroshi Unno, and Naoki Kobayashi. 2014. Automatic termination verification for higher-order functional programs. In Proceedings of the 23rd European Symposium on Programming Languages and Systems (ESOP'14). Lecture Notes in Computer Science, Vol. 8410, Zhong Shao (Ed.). Springer, 392--411.
[56]
Chin Soon Lee. 2009. Ranking functions for size-change termination. ACM Trans. Program. Lang. Syst. 31, 3 (2009), 10:1--10:42.
[57]
Chin Soon Lee, Neil D. Jones, and Amir M. Ben-Amram. 2001. The size-change principle for program termination. In Proceedings of the Principles of Programming Languages Symposium (POPL’01), Chris Hankin and Dave Schmidt (Eds.). ACM, 81--92.
[58]
lpsolve 2016. lp_solve 5.5.2.3. Retrieved from http://lpsolve.sourceforge.net/5.5/.
[59]
Martin Lukasiewycz. 2008. Java ILP—Java Interface to ILP Solvers. Retrieved from http://javailp.sourceforge.net/.
[60]
Federico Olmedo, Benjamin Lucien Kaminski, Joost-Pieter Katoen, and Christoph Matheja. 2016. Reasoning about recursive probabilistic programs. In Proceedings of the 31st Annual ACM/IEEE Symposium on Logic in Computer Science (LICS’16), Martin Grohe, Eric Koskinen, and Natarajan Shankar (Eds.). ACM, 672--681.
[61]
Andreas Podelski and Andrey Rybalchenko. 2004. A complete method for the synthesis of linear ranking functions. In Proceedings of the 5th International Conference on Verification, Model Checking, and Abstract Interpretation, (VMCAI’04), Lecture Notes in Computer Science, Bernhard Steffen and Giorgio Levi (Eds.). Vol. 2937, Springer, 239--251.
[62]
Sriram Sankaranarayanan, Henny B. Sipma, and Zohar Manna. 2004. Constraint-based linear-relations analysis. In International Static Analysis Symposium. Springer, 53--68.
[63]
Alexander Schrijver. 1999. Theory of Linear and Integer Programming. Wiley.
[64]
Alexander Schrijver. 2003. Combinatorial Optimization—Polyhedra and Efficiency. Springer.
[65]
Liyong Shen, Min Wu, Zhengfeng Yang, and Zhenbing Zeng. 2013. Generating exact nonlinear ranking functions by symbolic-numeric hybrid method. J. Syst. Sci. 8 Complexity 26, 2 (2013), 291--301.
[66]
Olha Shkaravska, Ron van Kesteren, and Marko C. J. D. van Eekelen. 2007. Polynomial size analysis of first-order functions. In Proceedings of the 8th International Conference on Typed Lambda Calculi and Applications (TLCA’07), Lecture Notes in Computer Science, Simona Ronchi Della Rocca (Ed.). Vol. 4583, Springer, 351--365.
[67]
Moritz Sinn, Florian Zuleger, and Helmut Veith. 2014. A simple and scalable static analysis for bound analysis and amortized complexity analysis. In Proceedings of the International Conference on Computer-aided Verification (CAV’14), Lecture Notes in Computer Science, Armin Biere and Roderick Bloem (Eds.). Vol. 8559, Springer, 745--761.
[68]
Kirack Sohn and Allen Van Gelder. 1991. Termination detection in logic programs using argument sizes. In Proceedings of the 10th ACM SIGACT-SIGMOD-SIGART Symposium on Principles of Database Systems, Daniel J. Rosenkrantz (Ed.). ACM Press, 216--226.
[69]
Akhilesh Srikanth, Burak Sahin, and William R. Harris. 2017. Complexity verification using guided theorem enumeration, See Reference Castagna and Gordon [12], 639--652.
[70]
Caterina Urban. 2013. The abstract domain of segmented ranking functions. In Proceedings of the Static Analysis Symposium (SAS’13), Lecture Notes in Computer Science, Francesco Logozzo and Manuel Fähndrich (Eds.). Vol. 7935, Springer, 43--62.
[71]
Reinhard Wilhelm, Jakob Engblom, Andreas Ermedahl, Niklas Holsti, Stephan Thesing, David B. Whalley, Guillem Bernat, Christian Ferdinand, Reinhold Heckmann, Tulika Mitra, Frank Mueller, Isabelle Puaut, Peter P. Puschner, Jan Staschulat, and Per Stenström. 2008. The worst-case execution-time problem—Overview of methods and survey of tools. ACM Trans. Embedded Comput. Syst. 7, 3 (2008), 36:1--36:53.
[72]
Lu Yang, Chaochen Zhou, Naijun Zhan, and Bican Xia. 2010. Recent advances in program verification through computer algebra. Front. Comput. Sci. Chin. 4, 1 (2010), 1--16.

Cited By

View all
  • (2024)Robust Resource Bounds with Static Analysis and Bayesian InferenceProceedings of the ACM on Programming Languages10.1145/36563808:PLDI(76-101)Online publication date: 20-Jun-2024
  • (2024)An Intelligent Scheduling System for Large-Scale Online JudgingComputer Science and Education. Computer Science and Technology10.1007/978-981-97-0730-0_24(265-279)Online publication date: 26-Feb-2024
  • (2024)Empirically Scalable Invariant Generation Leveraging Divide-and-Conquer with PruningTheoretical Aspects of Software Engineering10.1007/978-3-031-64626-3_19(324-342)Online publication date: 29-Jul-2024
  • Show More Cited By

Index Terms

  1. Non-polynomial Worst-Case Analysis of Recursive Programs

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Transactions on Programming Languages and Systems
    ACM Transactions on Programming Languages and Systems  Volume 41, Issue 4
    December 2019
    186 pages
    ISSN:0164-0925
    EISSN:1558-4593
    DOI:10.1145/3366632
    Issue’s Table of Contents
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 12 October 2019
    Accepted: 01 May 2019
    Revised: 01 February 2019
    Received: 01 August 2017
    Published in TOPLAS Volume 41, Issue 4

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. Recursive programs
    2. worst-case analysis

    Qualifiers

    • Research-article
    • Research
    • Refereed

    Funding Sources

    • Vienna Science and Technology Fund (WWTF)
    • ERC
    • DOC Fellowship of the Austrian Academy of Sciences
    • Austrian Science Fund (FWF) NFN
    • Natural Science Foundation of China (NSFC)
    • CDZ project CAP (GZ 1023)
    • IBM Ph.D.Fellowship program

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)149
    • Downloads (Last 6 weeks)12
    Reflects downloads up to 18 Aug 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)Robust Resource Bounds with Static Analysis and Bayesian InferenceProceedings of the ACM on Programming Languages10.1145/36563808:PLDI(76-101)Online publication date: 20-Jun-2024
    • (2024)An Intelligent Scheduling System for Large-Scale Online JudgingComputer Science and Education. Computer Science and Technology10.1007/978-981-97-0730-0_24(265-279)Online publication date: 26-Feb-2024
    • (2024)Empirically Scalable Invariant Generation Leveraging Divide-and-Conquer with PruningTheoretical Aspects of Software Engineering10.1007/978-3-031-64626-3_19(324-342)Online publication date: 29-Jul-2024
    • (2023)Asparagus: Automated Synthesis of Parametric Gas Upper-Bounds for Smart ContractsProceedings of the ACM on Programming Languages10.1145/36228297:OOPSLA2(882-911)Online publication date: 16-Oct-2023
    • (2023)Inferring Complexity Bounds from Recurrence RelationsProceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3611643.3617853(2198-2200)Online publication date: 30-Nov-2023
    • (2023)Algebro-geometric Algorithms for Template-Based Synthesis of Polynomial ProgramsProceedings of the ACM on Programming Languages10.1145/35860527:OOPSLA1(727-756)Online publication date: 6-Apr-2023
    • (2023)Automatic Amortized Resource Analysis with Regular Recursive Types2023 38th Annual ACM/IEEE Symposium on Logic in Computer Science (LICS)10.1109/LICS56636.2023.10175720(1-14)Online publication date: 26-Jun-2023
    • (2022)Scalable linear invariant generation with Farkas’ lemmaProceedings of the ACM on Programming Languages10.1145/35632956:OOPSLA2(204-232)Online publication date: 31-Oct-2022
    • (2022)DynaplexProceedings of the ACM/IEEE 44th International Conference on Software Engineering: Companion Proceedings10.1145/3510454.3516853(61-64)Online publication date: 19-Oct-2022
    • (2022)Dynaplex: Inferring Asymptotic Runtime Complexity of Recursive Programs2022 IEEE/ACM 44th International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)10.1109/ICSE-Companion55297.2022.9793811(61-64)Online publication date: May-2022
    • Show More Cited By

    View Options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    HTML Format

    View this article in HTML Format.

    HTML Format

    Get Access

    Login options

    Full Access

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media