ACM Transactions on Programming Languages and Systems (TOPLAS)
Implementing mathematics with the Nuprl proof development system
Implementing mathematics with the Nuprl proof development system
Journal of the ACM (JACM)
ACE: an automatic complexity evaluator
ACM Transactions on Programming Languages and Systems (TOPLAS)
Strictness analysis aids time analysis
POPL '88 Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
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
KIDS: A Semiautomatic Program Development System
IEEE Transactions on Software Engineering
The Z notation: a reference manual
The Z notation: a reference manual
Introduction to HOL: a theorem proving environment for higher order logic
Introduction to HOL: a theorem proving environment for higher order logic
Synthesis of ML programs in the system Coq
Journal of Symbolic Computation - Special issue on automatic programming
Optimality and inefficiency: what isn't a cost model of the lambda calculus?
Proceedings of the first ACM SIGPLAN international conference on Functional programming
Constructively formalizing automata theory
Proof, language, and interaction
Communications of the ACM
An axiomatic basis for computer programming
Communications of the ACM
The Mathematica Book
Constructions: A Higher Order Proof System for Mechanizing Mathematics
EUROCAL '85 Invited Lectures from the European Conference on Computer Algebra-Volume I - Volume I
PVS: A Prototype Verification System
CADE-11 Proceedings of the 11th International Conference on Automated Deduction: Automated Deduction
Complexity Analysis for a Lazy Higher-Order Language
ESOP '90 Proceedings of the 3rd European Symposium on Programming
Moving proofs-as-programs into practice
ASE '97 Proceedings of the 12th international conference on Automated software engineering (formerly: KBSE)
Improving the Efficiency of Nuprl Proofs
Improving the Efficiency of Nuprl Proofs
Dead Code Elimination Through Type Inference
Dead Code Elimination Through Type Inference
A Note on the Standard Strategy for Developing Loop Invariants and Loops
A Note on the Standard Strategy for Developing Loop Invariants and Loops
Automated complexity analysis of Nuprl extracted programs
Journal of Functional Programming
On Lexicographic Termination Ordering with Space Bound Certifications
PSI '02 Revised Papers from the 4th International Andrei Ershov Memorial Conference on Perspectives of System Informatics: Akademgorodok, Novosibirsk, Russia
Automated complexity analysis of Nuprl extracted programs
Journal of Functional Programming
Automated higher-order complexity analysis
Theoretical Computer Science - Implicit computational complexity
Static determination of quantitative resource usage for higher-order programs
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Automatic Complexity Analysis for Programs Extracted from Coq Proof
Electronic Notes in Theoretical Computer Science (ENTCS)
A Large-Scale Experiment in Executing Extracted Programs
Electronic Notes in Theoretical Computer Science (ENTCS)
Inferring cost equations for recursive, polymorphic and higher-order functional programs
IFL'03 Proceedings of the 15th international conference on Implementation of Functional Languages
Multivariate amortized resource analysis
ACM Transactions on Programming Languages and Systems (TOPLAS)
Hi-index | 0.00 |
This paper describes the Automated Complexity Analysis Prototype (ACAp) system for automated complexity analysis of functional programs synthesized with the Nuprl proof development system. We define a simple abstract cost model for NUPRL's term language based on the current call-by-name evaluator. The framework uses abstract functions and abstract lists to facilitate reasoning about primitive recursive programs with first-order functions, lazy lists and a subclass of higher-order functions. The ACAp system automatically derives upper bounds on the time complexity of NUPRL extracts relative to a given profiling semantics. Analysis proceeds by abstract interpretation of the extract, where symbolic evaluation rules extend standard evaluation to terms with free variables. Symbolic evaluation of recursive programs generates systems of multi-variable difference equations, which are solved using the MATHEMATICA computer algebra system. The use of the system is exemplified by analyzing a proof extract that computes the maximum segment sum of a list and a functional program that determines the minimum of a list via sorting. For both results, we compare call-by-name to call-by-value evaluation.