  In the vicinity of a solution of a nonlinear programming problem at which
both strict complementarity and linear independence of the active constraints
may fail to hold, we describe a technique for distinguishing weakly active from
strongly active constraints. We show that this information can be used to
modify the sequential quadratic programming algorithm so that it exhibits
superlinear convergence to the solution under assumptions weaker than those
made in previous analyses.
