added constraint generate rule