Basic Mathematical Programming Theory