submodular function defined