On constraint qualifications in nonlinear programming