ACM Transactions on Programming Languages and Systems (TOPLAS)
Implementing mathematics with the Nuprl proof development system
Implementing mathematics with the Nuprl proof development system
ACE: an automatic complexity evaluator
ACM Transactions on Programming Languages and Systems (TOPLAS)
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
A composition approach to time analysis of first order lazy functional programs
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
Optimality and inefficiency: what isn't a cost model of the lambda calculus?
Proceedings of the first ACM SIGPLAN international conference on Functional programming
A note on complexity measures for inductive classes in constructive type theory
Information and Computation
Constructively formalizing automata theory
Proof, language, and interaction
Communications of the ACM
Type Theory as a Foundation for Computer Science
TACS '91 Proceedings of the International Conference on Theoretical Aspects of Computer Software
Complexity Analysis for a Lazy Higher-Order Language
ESOP '90 Proceedings of the 3rd European Symposium on Programming
Feasibly constructive proofs and the propositional calculus (Preliminary Version)
STOC '75 Proceedings of seventh annual ACM symposium on Theory of computing
Improving the Efficiency of Nuprl Proofs
Improving the Efficiency of Nuprl Proofs
Quotation and Reflection in Nuprl and Scheme
Quotation and Reflection in Nuprl and Scheme
Automated computational complexity analysis
Automated computational complexity analysis
Automated complexity analysis of Nuprl extracted programs
Journal of Functional Programming
Lightweight semiformal time complexity analysis for purely functional data structures
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Removing useless variables in cost analysis of Java bytecode
Proceedings of the 2008 ACM symposium on Applied computing
Towards execution time estimation in abstract machine-based languages
Proceedings of the 10th international ACM SIGPLAN conference on Principles and practice of declarative programming
Automatic Inference of Upper Bounds for Recurrence Relations in Cost Analysis
SAS '08 Proceedings of the 15th international symposium on Static Analysis
Cost Relation Systems: A Language-Independent Target Language for Cost Analysis
Electronic Notes in Theoretical Computer Science (ENTCS)
User-Definable Resource Usage Bounds Analysis for Java Bytecode
Electronic Notes in Theoretical Computer Science (ENTCS)
Cost analysis of java bytecode
ESOP'07 Proceedings of the 16th European conference on Programming
Static complexity analysis of higher order programs
FOPARA'09 Proceedings of the First international conference on Foundational and practical aspects of resource analysis
Multivariate amortized resource analysis
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Closed-Form Upper Bounds in Static Cost Analysis
Journal of Automated Reasoning
Amortized resource analysis with polymorphic recursion and partial big-step operational semantics
APLAS'10 Proceedings of the 8th Asian conference on Programming languages and systems
Cost analysis of object-oriented bytecode programs
Theoretical Computer Science
Resource analysis by sup-interpretation
FLOPS'06 Proceedings of the 8th international conference on Functional and Logic Programming
Multivariate amortized resource analysis
ACM Transactions on Programming Languages and Systems (TOPLAS)
A static cost analysis for a higher-order language
PLPV '13 Proceedings of the 7th workshop on Programming languages meets program verification
POPL '13 Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
On the Inference of Resource Usage Upper and Lower Bounds
ACM Transactions on Computational Logic (TOCL)
Hi-index | 0.00 |
This paper describes the automated complexity analysis (ACA) system for automated higher-order complexity analysis of functional programs synthesized with the NCPRD proof development system. We introduce a general framework for defining models of computational complexity for functional programs based on an annotation of a given operational language semantics. Within this framework, we use type decomposition and polynomialization to express the complexity of higher-order terms. Symbolic interpretation of open terms automates complexity analysis, which involves generating and solving higher-order recurrence equations. Finally, the use of the ACA system is demonstrated by analyzing three different implementations of the pigeonhole principle.