Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article
Public Access

Compositional recurrence analysis revisited

Published: 14 June 2017 Publication History
  • Get Citation Alerts
  • Abstract

    Compositional recurrence analysis (CRA) is a static-analysis method based on a combination of symbolic analysis and abstract interpretation. This paper addresses the problem of creating a context-sensitive interprocedural version of CRA that handles recursive procedures. The problem is non-trivial because there is an "impedance mismatch" between CRA, which relies on analysis techniques based on regular languages (i.e., Tarjan's path-expression method), and the context-free-language underpinnings of context-sensitive analysis.
    We show how to address this impedance mismatch by augmenting the CRA abstract domain with additional operations. We call the resulting algorithm Interprocedural CRA (ICRA). Our experiments with ICRA show that it has broad overall strength compared with several state-of-the-art software model checkers.

    Supplementary Material

    Auxiliary Archive (pldi17-main225-s.zip)
    This ZIP archive contains a virtual machine in OVA (Open Virtualization Archive) format. The virtual machine contains an installation of ICRA, which is the program analysis tool that implements the ideas described in the associate publication, "Compositional Recurrence Analysis Revisited." For more information about the virtual machine, see the README.txt file inside the ZIP archive. For detailed information about how to use the virtual machine to run ICRA, see the README.txt file inside the virtual machine at the path "~/Newton/README.txt".

    References

    [1]
    APRON. APRON numerical abstract domain library.
    [2]
    R. Backhouse and B. Carré. Regular algebra applied to pathfinding problems. J. Inst. Maths. Applics., 15, 1975.
    [3]
    D. Beyer and M. Keremoglu. CPAchecker: A tool for configurable software verification. In CAV, 2011.
    [4]
    S. Biallas, J. Brauer, A. King, and S. Kowalewski. Loop leaping with closures. In SAS, 2012.
    [5]
    A. Bouajjani, J. Esparza, and O. Maler. Reachability analysis of pushdown automata: Application to model checking. In CONCUR, 1997.
    [6]
    M. Bozga, R. Iosif, F. Koneˇ cný, and T. Vojnar. Tool demonstration of the FLATA counter automata toolset. In Workshop on Invariant Generation, 2012.
    [7]
    Q. Carbonneaux, J. Hoffmann, and Z. Shao. Compositional certified resource bounds. In PLDI, 2015.
    [8]
    Q. Carbonneaux, J. Hoffmann, and Z. Shao. Compositional certified resource bounds (extended version). YALEU/DCS/TR-1505, Yale Univ., New Haven, CT, Apr. 2015.
    [9]
    B. Carré. An algebra for network routing problems. J. Inst. Maths. Applics., 7, 1971.
    [10]
    P. Cousot and R. Cousot. Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints. In POPL, 1977.
    [11]
    P. Cousot and N. Halbwachs. Automatic discovery of linear constraints among variables of a program. In POPL, 1978.
    [12]
    L. de Moura and N. Bjørner. Z3: An efficient SMT solver. In TACAS, 2008.
    [13]
    J. Esparza, S. Kiefer, and M. Luttenberger. Newtonian program analysis. J. ACM, 57(6), 2010.
    [14]
    A. Farzan and Z. Kincaid. Compositional recurrence analysis. In FMCAD, 2015.
    [15]
    A. Finkel, B.Willems, and P. Wolper. A direct symbolic approach to model checking pushdown systems. ENTCS, 9, 1997.
    [16]
    P. Ganty, R. Iosif, and F. Koneˇ cný. Underapproximation of procedure summaries for integer programs. Softw. Tools for Tech. Transfer, 2016.
    [17]
    Corrected version available as arXiv:1210.4289v3 (10.1007/s10009-016-0420-7).
    [18]
    M. Gondran and M. Minoux. Graphs, Dioids and Semirings: New Models and Algorithms. Springer-Verlag, 2010.
    [19]
    L. Gonnord and P. Schrammel. Abstract acceleration in linear relation analysis. SCP, 93, 2014.
    [20]
    S. Gulwani and F. Zuleger. The reachability-bound problem. In PLDI, 2010.
    [21]
    S. Gulwani, K. Mehra, and T. Chilimbi. SPEED: Precise and efficient static estimation of program computational complexity. In POPL, 2009.
    [22]
    A. Gurfinkel, T. Kahsai, A. Komuravelli, and J. Navas. The SeaHorn verification framework. In CAV, 2015.
    [23]
    M. Heizmann, J. Christ, D. Dietsch, E. Ermis, J. Hoenicke, M. Lindenmann, A. Nutz, C. Schilling, and A. Podelski. Ultimate Automizer with SMTInterpol (competition contribution). In TACAS, 2013.
    [24]
    B. Jeannet, P. Schrammel, and S. Sankaranarayanan. Abstract acceleration of general linear loops. In POPL, 2014.
    [25]
    E. Karpenkov, D. Monniaux, and P. Wendler. Program analysis with local policy iteration. In VMCAI, 2016.
    [26]
    N. Kidd, A. Lal, and T. Reps. WALi: The Weighted Automaton Library, 2007.
    [27]
    G. Kildall. A unified approach to global program optimization. In POPL, 1973.
    [28]
    Z. Kincaid, J. Breck, A. Forouhi Boroujeni, and T. Reps. Compositional recurrence analysis revisited. TR-1840, Comp. Sci. Dept., Univ. of Wisconsin, Madison, WI, Oct. 2016. Revised, Apr. 2017.
    [29]
    D. Kroening, N. Sharygina, S. Tonetta, A. Tsitovich, and C. Wintersteiger. Loop summarization using abstract transformers. In ATVA, 2008.
    [30]
    A. Lal and T. Reps. Improving pushdown system model checking. In CAV, 2006.
    [31]
    A. Lal and T. Reps. Reducing concurrent analysis under a context bound to sequential analysis. Formal Methods in System Design, 35(1):73–97, 2009.
    [32]
    A. Lal, T. Touili, N. Kidd, and T. Reps. Interprocedural analysis of concurrent programs under a context bound. In TACAS, 2008.
    [33]
    J. Leroux and G. Sutre. Accelerated data-flow analysis. In SAS, 2007.
    [34]
    T. Reps. Program analysis via graph reachability. IST, 40, 1998.
    [35]
    T. Reps, S. Schwoon, S. Jha, and D. Melski. Weighted pushdown systems and their application to interprocedural dataflow analysis. SCP, 58, 2005.
    [36]
    T. Reps, E. Turetsky, and P. Prabhu. Newtonian program analysis via tensor product. In POPL, 2016.
    [37]
    G. Rote. Path problems in graphs. In Computational Graph Theory (Computing Supplementum 7). Springer-Verlag, 1990.
    [38]
    B. Ryder and M. Paul. Elimination algorithms for data flow analysis. ACM Comput. Surv., 18(3):277–316, 1986.
    [39]
    M. Sharir and A. Pnueli. Two approaches to interprocedural data flow analysis. In Program Flow Analysis: Theory and Applications. Prentice-Hall, 1981.
    [40]
    SVCOMP16. 5th Int. competition on software verification (SV-COMP16), 2016.
    [41]
    R. Tarjan. Fast algorithms for solving path problems. J. ACM, 28(3):594–614, 1981.

    Cited By

    View all
    • (2024)Requirement-Dependent Extra Invariant Patterns in Deductive Verification of PoST Programs2024 IEEE 25th International Conference of Young Professionals in Electron Devices and Materials (EDM)10.1109/EDM61683.2024.10615007(1900-1905)Online publication date: 28-Jun-2024
    • (2024)On Polynomial Expressions with C-Finite Recurrences in Loops with Nested Nondeterministic BranchesComputer Aided Verification10.1007/978-3-031-65627-9_20(409-430)Online publication date: 26-Jul-2024
    • (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
    • Show More Cited By

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 52, Issue 6
    PLDI '17
    June 2017
    708 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/3140587
    Issue’s Table of Contents
    • cover image ACM Conferences
      PLDI 2017: Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation
      June 2017
      708 pages
      ISBN:9781450349888
      DOI:10.1145/3062341
    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: 14 June 2017
    Published in SIGPLAN Volume 52, Issue 6

    Check for updates

    Author Tags

    1. Invariant generation
    2. Resource bounds

    Qualifiers

    • Article

    Funding Sources

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)108
    • Downloads (Last 6 weeks)11
    Reflects downloads up to 09 Aug 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)Requirement-Dependent Extra Invariant Patterns in Deductive Verification of PoST Programs2024 IEEE 25th International Conference of Young Professionals in Electron Devices and Materials (EDM)10.1109/EDM61683.2024.10615007(1900-1905)Online publication date: 28-Jun-2024
    • (2024)On Polynomial Expressions with C-Finite Recurrences in Loops with Nested Nondeterministic BranchesComputer Aided Verification10.1007/978-3-031-65627-9_20(409-430)Online publication date: 26-Jul-2024
    • (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)Learning to Synthesize Relational InvariantsProceedings of the 37th IEEE/ACM International Conference on Automated Software Engineering10.1145/3551349.3556942(1-12)Online publication date: 10-Oct-2022
    • (2022)DynaplexProceedings of the ACM/IEEE 44th International Conference on Software Engineering: Companion Proceedings10.1145/3510454.3516853(61-64)Online publication date: 21-May-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
    • (2022)PDAAAL: A Library for Reachability Analysis of Weighted Pushdown SystemsAutomated Technology for Verification and Analysis10.1007/978-3-031-19992-9_14(225-230)Online publication date: 21-Oct-2022
    • (2022)Affine Loop Invariant Generation via Matrix AlgebraComputer Aided Verification10.1007/978-3-031-13185-1_13(257-281)Online publication date: 7-Aug-2022
    • (2021)Dynaplex: analyzing program complexity using dynamically inferred recurrence relationsProceedings of the ACM on Programming Languages10.1145/34855155:OOPSLA(1-23)Online publication date: 15-Oct-2021
    • (2021)Automatic amortized resource analysis with the Quantum physicist’s methodProceedings of the ACM on Programming Languages10.1145/34735815:ICFP(1-29)Online publication date: 19-Aug-2021
    • Show More Cited By

    View Options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Get Access

    Login options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media