This book presents a theory of necessary conditions for an extremum, including formal conditions for an extremum and computational methods. It states the general results of the theory and shows how these results can be particularized to specific problems.