  Although it is easy to prove the sufficient conditions for optimality of a
linear program, the necessary conditions pose a pedagogical challenge. A
widespread practice in deriving the necessary conditions is to invoke Farkas'
lemma, but proofs of Farkas' lemma typically involve "nonlinear" topics such as
separating hyperplanes between disjoint convex sets, or else more advanced
LP-related material such as duality and anti-cycling strategies in the simplex
method. An alternative approach taken previously by several authors is to avoid
Farkas' lemma through a direct proof of the necessary conditions. In that
spirit, this paper presents what we believe to be an "elementary" proof of the
necessary conditions that does not rely on Farkas' lemma and is independent of
the simplex method, relying only on linear algebra and a perturbation technique
published in 1952 by Charnes. No claim is made that the results are new, but we
hope that the proofs may be useful for those who teach linear programming.
