Abstract
This work focuses on checking size annotations of higher-order polymorphic functional programs supporting nested lists. These annotations are in a lambda-calculus that formalize non-linear and non-monothonic polynomial relations between the sizes of arguments and those of the corresponding results of functions.
The presented sizing rules straightforwardly define verification condition generation. Since exact size dependencies are considered (i.e. without subtyping), checking of these conditions amounts to checking conditional equations between polynomials.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Shkaravska, O., van Eekelen, M.C.J.D., van Kesteren, R.: Polynomial size analysis of first-order shapely functions. Logical Methods in Computer Science 5(2) (2009)
Góbi, A., Shkaravska, O., van Eekelen, M.: Size analysis of higher-order functions. In: Peña, R., van Eekelen, M. (eds.) Proceedings of the 12th International Symposium on Trends in Functional Programming, TFP 2011. LNCS, vol. 7193, pp. 77–91 (2011); Also: Tech. Rep. SIC-07/11
Erkok, L.: SMT Based Verification: Symbolic Haskell theorem prover using SMT solving
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)
Brady, E., Hammond, K.: A dependently typed framework for static analysis of program execution costs. In: Butterfield, A., Grelck, C., Huch, F. (eds.) IFL 2005. LNCS, vol. 4015, pp. 74–90. Springer, Heidelberg (2006)
Danielsson, N.A.: Lightweight semiformal time complexity analysis for purely functional data structures. In: Proceedings of the 35th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2008, pp. 133–144. ACM, New York (2008)
Hughes, J., Pareto, L., Sabry, A.: Proving the correctness of reactive systems using sized types. In: Proceedings of the 23rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 1996, St. Petersburg Beach, Florida, USA, pp. 410–423. ACM (1996)
Hughes, J., Pareto, L.: 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 1999, Paris, France, pp. 70–81. ACM (1999)
Chin, W.N., Khoo, S.C.: Calculating sized types. Higher-Order and Symbolic Computation 14, 261–300 (2001)
Abel, A.: Miniagda: Integrating sized and dependent types. In: Bove, A., Komendantskaya, E., Niqui, M. (eds.) Workshop on Partiality And Recursion in Interative Theorem Provers, PAR 2010, Satellite Workshop of ITP 2010 at FLoC (2010)
Abel, A.: A Polymorphic Lambda-Calculus with Sized Higher-Order Types. PhD thesis, Ludwig-Maximilians University, Munich (2006)
Vasconcelos, P.B., Hammond, K.: Inferring cost equations for recursive, polymorphic and higher-order functional programs. In: Trinder, P., Michaelson, G.J., Peña, R. (eds.) IFL 2003. LNCS, vol. 3145, pp. 86–101. Springer, Heidelberg (2004)
Avery, J., Kristiansen, L., Moyen, J.Y.: Static complexity analysis of higher order programs. In: van Eekelen, M., Shkaravska, O. (eds.) FOPARA 2009. LNCS, vol. 6324, pp. 84–99. Springer, Heidelberg (2010)
Jost, S., Hammond, K., Loidl, H.W., Hofmann, M.: Static determination of quantitative resource usage for higher-order programs. SIGPLAN Not. 45, 223–236 (2010)
Albert, E., Arenas, P., Genaim, S., Puebla, G., Zanardini, D.: Cost analysis of object-oriented bytecode programs. Theoretical Computer Science 413(1), 142–159 (2012); Quantitative Aspects of Programming Languages (QAPL 2010)
Montenegro, M., Peña, R., Segura, C.: A space consumption analysis by abstract interpretation. In: van Eekelen, M., Shkaravska, O. (eds.) FOPARA 2009. LNCS, vol. 6324, pp. 34–50. Springer, Heidelberg (2010)
Lucas, S., Pena, R.: Rewriting techniques for analysing termination and complexity bounds of safe programs. In: Proc. Logic-Based Program Synthesis and Transformation, LOPSTR, vol. 8, pp. 43–57 (2008)
Hoffmann, J., Aehlig, K., Hofmann, M.: Multivariate amortized resource analysis. In: Proceedings of the 38th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2011 (2011) (to appear)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Góbi, A., Shkaravska, O., van Eekelen, M. (2013). Higher-Order Size Checking without Subtyping. In: Loidl, HW., Peña, R. (eds) Trends in Functional Programming. TFP 2012. Lecture Notes in Computer Science, vol 7829. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-40447-4_4
Download citation
DOI: https://doi.org/10.1007/978-3-642-40447-4_4
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-40446-7
Online ISBN: 978-3-642-40447-4
eBook Packages: Computer ScienceComputer Science (R0)