In computer science, a termination analysis is program analysis which attempts to determine whether the evaluation of a given program will definitely terminate. Because the halting problem is undecidable, termination analysis cannot be total. The aim is to find the answer 'program does terminate' (or 'program does not terminate') whenever this is possible. Without success the algorithm (or human) working on the termination analysis may answer with 'maybe' or continue working infinitely long. In computer science, a termination analysis is program analysis which attempts to determine whether the evaluation of a given program will definitely terminate. Because the halting problem is undecidable, termination analysis cannot be total. The aim is to find the answer 'program does terminate' (or 'program does not terminate') whenever this is possible. Without success the algorithm (or human) working on the termination analysis may answer with 'maybe' or continue working infinitely long. A termination proof is a type of mathematical proof that plays a critical role in formal verification because total correctness of an algorithm depends on termination. A simple, general method for constructing termination proofs involves associating a measure with each step of an algorithm. The measure is taken from the domain of a well-founded relation, such as from the ordinal numbers. If the measure 'decreases' according to the relation along every possible step of the algorithm, it must terminate, because there are no infinite descending chains with respect to a well-founded relation.