Dualitástétel
A dualitástétel a lineáris programozás fontos tétele. Segítségével ellenőrizhető, hogy tényleg a megfelelő szélsőértéket adták-e meg. De vannak más alkalmazásai is, például a játékelméletben vagy a gráfelméletben.
Általános alak

A duális poliéder függ R megadásától, sőt c-től is. Tekintve ugyanis a dimenziókat,
Bizonyítás
A tétel egy egyszerűbb, szimmetrikus alakja: Tegyük fel, hogy nem üres, és felülről korlátos. Ekkor a primál program maximuma egyenlő a duál program minimumával. Azaz . Az egyik irány könnyű. Hármas szorzattal . A másik irányhoz kell egy megoldáspár, amire az egyenlőség teljesül. Ezek bázismegoldások lesznek. Ha felülről korlátos, akkor maximumát egy bázismegoldáson is felveszi. A bizonyítás folytatásához szükség van egy lemmára. Lemma: legyen nem üres, és felülről korlátos. Ekkor a következők ekvivalensek:
- cx* minden , x* optimális
- nincs növelő irány, azaz nincs x1, hogy x1 , ahol a Q mátrixnak azokat a sorait jelöli, amiket x* egyenlőséggel teljesít
- a c vektor benne van x* aktív sorainak kúpjában, azaz van y*, és ha akkor . Ekvivalensen .
A lemma bizonyítása a Farkas-lemma segítségével: Ha lenne x1 növelő irány, akkor egy kicsit elmozdulva az x1 irányban az vektor még mindig benne lenne R-ben. Ez miatt ellentmond maximalitásának. Ha van x1 növelő irány, akkor a Farkas-lemma balról szorzós alakja szolgáltat egy y1 vektort, amit 0 koordinátákkal kiegészítve y* kapható. Tetszőleges esetén , vagyis y*b felső korlát -re. biztosan optimális, ha , és a 3.-ban jelzett másik állítás ezzel ekvivalens. A tétel bizonyítására visszatérve: a lemma szerint van , amiből , és ezzel vége a bizonyításnak.