Weak Duality for Linear Programs