We present a new approach for automatic termination analysis of functional programs. Several methods have been presented which
try to find a well-founded ordering such that the arguments in the recursive calls are smaller than the corresponding inputs.
However, previously developed approaches for automated termination analysis often disregard the conditions under which the recursive calls are evaluated. Hence, the existing methods fail for an important class of algorithms where
the necessary information for proving termination is ‘hidden’ in the conditions. In this paper we develop the inductive evaluation method which analyzes the auxiliary functions occurring in the conditions of the recursive calls. We also discuss an extension
of our method to partial functions in order to determine their domains automatically. The proposed technique proved successful for termination analysis
of numerous algorithms in functional as well as imperative programming languages.