We consider a mathematical programming problem on a Banach space, and we derive necessary conditions for optimality in Lagrange multiplier form. We prove further that “most mathematical programming problems are normal.” The novelty of our approach lies on the one hand in the absence of both differentiability and convexity hypotheses on the functions delimiting the problem, and on the other hand in the method of proof, which is new. The approach unifies the well-known smooth and convex cases besides treating a new general class of problems. The main analytical tool in this paper is an extension to infinite-dimensional spaces of the “generalized gradient” previously introduced by the author. The calculus of the generalized gradient is explored as a preliminary step.