We argue that reducing nonlinear programming problems to a simple canonical form is an effective way to analyze them, specially when the problem is degenerate and the usual linear independence hypothesis does not hold. To illustrate this fact we solve an open problem about constraint qualifications using this simple canonical form.