I think this is both sufficient and necessary