gear for constraint solving