AbstractThis paper describes the automated complexity analysis (ACA) system for automated higher-order complexity analysis of functional programs synthesized with the NUPRL 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 prin...