theorem aggregateWelfareLoss_nonneg (w z : Fin N → ℝ)
(hw : ∀ n, 0 < w n) (hz : ∀ n, 0 < z n) :
0 ≤ aggregateWelfareLoss w z := by
simp only [aggregateWelfareLoss]
exact Finset.sum_nonneg fun n _ =>
mul_nonneg (le_of_lt (hw n)) (welfareDistanceFn_nonneg (hz n))Theorems 7-8, Propositions 5 and 7, Corollary 3: