Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1007/978-3-319-08867-9_51guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
Article

Symbolic Resource Bound Inference for Functional Programs

Published: 18 July 2014 Publication History

Abstract

We present an approach for inferring symbolic resource bounds for purely functional programs consisting of recursive functions, algebraic data types and nonlinear arithmetic operations. In our approach, the developer specifies the desired shape of the bound as a program expression containing numerical holes which we refer to as templates . For e.g, time ≤ a '—ï height(tree) + b where a , b are unknowns, is a template that specifies a bound on the execution time. We present a scalable algorithm for computing tight bounds for sequential and parallel execution times by solving for the unknowns in the template. We empirically evaluate our approach on several benchmarks that manipulate complex data structures such as binomial heap, lefitist heap, red-black tree and AVL tree. Our implementation is able to infer hard, nonlinear symbolic time bounds for our benchmarks that are beyond the capability of the existing approaches.

References

[1]
Albert, E., Arenas, P., Genaim, S., Puebla, G., Zanardini, D.: Cost analysis of object-oriented bytecode programs. Theor. Comput. Sci.ä413(1), 142—159 (2012)
[2]
Beyene, T.A., Popeea, C., Rybalchenko, A.: Solving existentially quantified horn clauses. In: Sharygina, N., Veith, H. (eds.) CAV 2013. LNCS, vol.ä8044, pp. 869—882. Springer, Heidelberg (2013)
[3]
Beyer, D., Henzinger, T.A., Majumdar, R., Rybalchenko, A.: Invariant synthesis for combined theories. In: Cook, B., Podelski, A. (eds.) VMCAI 2007. LNCS, vol.ä4349, pp. 378—394. Springer, Heidelberg (2007)
[4]
Beyer, D., Henzinger, T.A., Majumdar, R., Rybalchenko, A.: Path invariants. In: PLDI (2007)
[5]
Blanc, R.W., Kneuss, E., Kuncak, V., Suter, P.: An overview of the Leon verification system. In: Scala Workshop (2013)
[6]
Blelloch, G.E., Maggs, B.M.: Parallel algorithms. Communications of the ACMä39, 85—97 (1996)
[7]
Colón, M.A., Sankaranarayanan, S., Sipma, H.B.: Linear invariant generation using non-linear constraint solving. In: Hunt Jr., W.A., Somenzi, F. (eds.) CAV 2003. LNCS, vol.ä2725, pp. 420—432. Springer, Heidelberg (2003)
[8]
Cook, B., Gupta, A., Magill, S., Rybalchenko, A., Simsa, J., Singh, S., Vafeiadis, V.: Finding heap-bounds for hardware synthesis. In: FMCAD (2009)
[9]
Cousot, P.: Proving program invariance and termination by parametric abstraction, lagrangian relaxation and semidefinite programming. In: Cousot, R. (ed.) VMCAI 2005. LNCS, vol.ä3385, pp. 1—24. Springer, Heidelberg (2005)
[10]
de Moura, L., BjØrner, N.S.: Z3: An efficient smt solver. In: Ramakrishnan, C.R., Rehof, J. (eds.) TACAS 2008. LNCS, vol.ä4963, pp. 337—340. Springer, Heidelberg (2008)
[11]
Grebenshchikov, S., Lopes, N.P., Popeea, C., Rybalchenko, A.: Synthesizing software verifiers from proof rules. In: PLDI (2012)
[12]
Guerraoui, R., Kuncak, V., Losa, G.: Speculative linearizability. In: PLDI (2012)
[13]
Gulwani, S., Jha, S., Tiwari, A., Venkatesan, R.: Synthesis of loop-free programs. In: PLDI (2011)
[14]
Gulwani, S., Mehra, K.K., Chilimbi, T.M.: Speed: Precise and efficient static estimation of program computational complexity. In: POPL (2009)
[15]
Gulwani, S., Srivastava, S., Venkatesan, R.: Program analysis as constraint solving. In: PLDI (2008)
[16]
Jacobs, S., Kuncak, V.: Towards complete reasoning about axiomatic specifications. In: Jhala, R., Schmidt, D. (eds.) VMCAI 2011. LNCS, vol.ä6538, pp. 278—293. Springer, Heidelberg (2011)
[17]
Kaufmann, M., Manolios, P., Moore, J.S. (eds.): Computer-Aided Reasoning: ACL2 Case Studies. Kluwer Academic Publishers (2000)
[18]
Kneuss, E., Kuraj, I., Kuncak, V., Suter, P.: Synthesis modulo recursive functions. In: OOPSLA (2013)
[19]
Leroy, X.: Formal verification of a realistic compiler. Commun. ACMä52(7), 107—115 (2009)
[20]
Madhavan, R., Kuncak, V.: Symbolic resource bound inference. Technical Report EPFL-REPORT-190578, EPFL (2014), http://infoscience.epfl.ch/record/190578
[21]
Makarios, T.J.M.: The independence of Tarski's Euclidean axiom. Archive of Formal Proofs, Formal proof development (October 2012), http://afp.sf.net/entries/Tarskis_Geometry.shtml,
[22]
Odersky, M., Spoon, L., Venners, B.: Programming in Scala: A comprehensive step-by-step guide. Artima Press (2008)
[23]
Oppen, D.C.: Elementary bounds for presburger arithmetic. In: Proceedings of the Fifth Annual ACM Symposium on Theory of Computing (1973)
[24]
Rybalchenko, A., Sofronie-Stokkermans, V.: Constraint solving for interpolation. In: Cook, B., Podelski, A. (eds.) VMCAI 2007. LNCS, vol.ä4349, pp. 346—362. Springer, Heidelberg (2007)
[25]
Sankaranarayanan, S., Sipma, H.B., Manna, Z.: Non-linear loop invariant generation using gröbner bases. In: POPL (2004)
[26]
Solar-Lezama, A., Tancau, L., Bodík, R., Seshia, S.A., Saraswat, V.A.: Combinatorial sketching for finite programs. In: ASPLOS (2006)
[27]
Suter, P., Dotta, M., Kuncak, V.: Decision procedures for algebraic data types with abstractions. In: POPL (2010)
[28]
Suter, P., Köksal, A.S., Kuncak, V.: Satisfiability modulo recursive programs. In: Yahav, E. (ed.) SAS 2011. LNCS, vol.ä6887, pp. 298—315. Springer, Heidelberg (2011)
[29]
Yu, L.: A formal model of IEEE floating point arithmetic. Archive of Formal Proofs, Formal proof development (July 2013), http://afp.sf.net/entries/IEEE_Floating_Point.shtml

Cited By

View all
  • (2017)TiML: a functional language for practical complexity analysis with invariantsProceedings of the ACM on Programming Languages10.1145/31339031:OOPSLA(1-26)Online publication date: 12-Oct-2017
  • (2017)Contract-based resource verification for higher-order functions with memoizationACM SIGPLAN Notices10.1145/3093333.300987452:1(330-343)Online publication date: 1-Jan-2017
  • (2017)Contract-based resource verification for higher-order functions with memoizationProceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming Languages10.1145/3009837.3009874(330-343)Online publication date: 1-Jan-2017
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image Guide Proceedings
Proceedings of the 16th International Conference on Computer Aided Verification - Volume 8559
July 2014
873 pages
ISBN:9783319088662
  • Editors:
  • Armin Biere,
  • Roderick Bloem

Publisher

Springer-Verlag

Berlin, Heidelberg

Publication History

Published: 18 July 2014

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 16 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2017)TiML: a functional language for practical complexity analysis with invariantsProceedings of the ACM on Programming Languages10.1145/31339031:OOPSLA(1-26)Online publication date: 12-Oct-2017
  • (2017)Contract-based resource verification for higher-order functions with memoizationACM SIGPLAN Notices10.1145/3093333.300987452:1(330-343)Online publication date: 1-Jan-2017
  • (2017)Contract-based resource verification for higher-order functions with memoizationProceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming Languages10.1145/3009837.3009874(330-343)Online publication date: 1-Jan-2017
  • (2015)Induction for SMT SolversProceedings of the 16th International Conference on Verification, Model Checking, and Abstract Interpretation - Volume 893110.1007/978-3-662-46081-8_5(80-98)Online publication date: 12-Jan-2015

View Options

View options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media