Inferring Lower Bounds for Runtime Complexity

We present the first approach to deduce lower bounds for innermost runtime complexity of term rewrite systems (TRSs) automatically. Inferring lower runtime bounds is useful to detect bugs and to complement existing techniques that compute upper complexity bounds. The key idea of our approach is to generate suitable families of rewrite sequences of a TRS and to find a relation between the length of such a rewrite sequence and the size of the first term in the sequence. We implemented our approach in the tool AProVE and evaluated it by extensive experiments.

[1]  Andre Egners,et al.  Hackers in Your Pocket: A Survey of Smartphone Security Across Platforms , 2012 .

[2]  U. Naumann,et al.  Algorithmic Differentiation of Numerical Methods : Tangent-Linear and Adjoint Direct Solvers for Systems of Linear Equations , 2012 .

[3]  U. Naumann,et al.  Algorithmic Differentiation of Numerical Methods : Tangent-Linear and Adjoint Solvers for Systems of Nonlinear Equations , 2012 .

[4]  Fabian Emmes,et al.  Automated Complexity Analysis for Prolog by Term Rewriting ∗ , 2003 .

[5]  Daniel Merschen,et al.  Integration und Analyse von Artefakten in der modellbasierten Entwicklung eingebetteter Software , 2014 .

[6]  Klaus Wehrle,et al.  Support for Error Tolerance in the Real-Time Transport Protocol , 2013, ArXiv.

[7]  Jürgen Giesl,et al.  Termination of term rewriting using dependency pairs , 2000, Theor. Comput. Sci..

[8]  Nikolaj Bjørner,et al.  Z3: An Efficient SMT Solver , 2008, TACAS.

[9]  Georg Moser,et al.  Automated Complexity Analysis Based on the Dependency Pair Method , 2008, IJCAR.

[10]  Johannes Waldmann Automatic Termination , 2009, RTA.

[11]  Georg Moser,et al.  The Derivational Complexity Induced by the Dependency Pair Method , 2009, RTA.

[12]  Georg Moser,et al.  Tyrolean Complexity Tool: Features and Usage , 2013, RTA.

[13]  Ulrike Meyer,et al.  SMC-MuSe: A Framework for Secure Multi-Party Computation on MultiSets , 2013, GI-Jahrestagung.

[14]  Jürgen Giesl,et al.  Symbolic evaluation graphs and term rewriting: a general methodology for analyzing logic programs , 2012, PPDP.

[15]  Simone Frintrop,et al.  Sequence Level Salient Object Proposals for Generic Object Detection in Video , 2014 .

[16]  Dieter Hofbauer,et al.  Termination Proofs and the Length of Derivations (Preliminary Version) , 1989, RTA.

[17]  Johannes Waldmann Matchbox: A Tool for Match-Bounded String Rewriting , 2004, RTA.

[18]  Bernhard Rumpe,et al.  MontiArc - Architectural Modeling of Interactive Distributed and Cyber-Physical Systems , 2014, ArXiv.

[19]  Martin Hofmann,et al.  Amortised Resource Analysis and Typed Polynomial Interpretations , 2014, RTA-TLCA.

[20]  Joost-Pieter Katoen,et al.  Performance Analysis of Computing Servers using Stochastic Petri Nets and Markov Automata , 2013 .

[21]  Hans Zantema,et al.  Termination of Term Rewriting: Interpretation and Type Elimination , 1994, J. Symb. Comput..

[22]  Jürgen Giesl,et al.  Analyzing Innermost Runtime Complexity of Term Rewriting by Dependency Pairs , 2013, Journal of Automated Reasoning.

[23]  U. Naumann,et al.  Algorithmic Differentiation of Numerical Methods : Second-Order Tangent and Adjoint Solvers for Systems of Parametrized Nonlinear Equations , 2014 .

[24]  Callum J. Corbett,et al.  Compiler-Generated Subgradient Code for McCormick Relaxations , 2011 .

[25]  Harald Zankl,et al.  Modular Complexity Analysis for Term Rewriting , 2014, Log. Methods Comput. Sci..

[26]  Jürgen Giesl,et al.  Proving Non-looping Non-termination Automatically , 2012, IJCAR.

[27]  Donald E. Knuth,et al.  Johann Faulhaber and sums of powers , 1992, math/9207222.

[28]  Christian von Essen,et al.  Automated Termination Analysis of Java Bytecode by Term Rewriting , 2010, RTA.

[29]  Georg Moser,et al.  A combination framework for complexity , 2013, Inf. Comput..

[30]  Jürgen Giesl,et al.  Proving Termination by Dependency Pairs and Inductive Theorem Proving , 2011, Journal of Automated Reasoning.

[31]  Marc Brockschmidt,et al.  Automated Termination Analysis for Programs with Pointer Arithmetic , 2014 .

[32]  Thomas Noll,et al.  Generating Inductive Predicates for Symbolic Execution of Pointer-Manipulating Programs , 2014, ICGT.

[33]  Jürgen Giesl,et al.  A Dependency Pair Framework for Innermost Complexity Analysis of Term Rewrite Systems , 2011, CADE.

[34]  Jürgen Giesl,et al.  Alternating Runtime and Size Complexity Analysis of Integer Programs , 2014, TACAS.

[35]  Jürgen Giesl,et al.  Automated Termination Proofs for Java Programs with Cyclic Data , 2012, CAV.

[36]  Viet Yen Nguyen,et al.  Trustworthy spacecraft design using formal methods , 2013 .

[37]  Marc Brockschmidt,et al.  Better Termination Proving through Cooperation , 2013, CAV.

[38]  Chang Liu,et al.  Term rewriting and all that , 2000, SOEN.

[39]  Jürgen Giesl,et al.  Proving Termination of Programs Automatically with AProVE , 2014, IJCAR.

[40]  Klaus Wehrle,et al.  SensorCloud: Towards the Interdisciplinary Development of a Trustworthy Platform for Globally Interconnected Sensors and Actuators , 2013, Trusted Cloud Computing.

[41]  Jürgen Giesl,et al.  Automated termination proofs for haskell by term rewriting , 2011, TOPL.

[42]  Joost-Pieter Katoen,et al.  A Local Greibach Normal Form for Hyperedge Replacement Grammars , 2011, LATA.

[43]  Sebastian Junges,et al.  On Gröbner Bases in the Context of Satisfiability-Modulo-Theories Solving over the Real Numbers , 2013, CAI.

[44]  Uwe Naumann,et al.  A Discrete Adjoint Model for OpenFOAM , 2013, ICCS.