A linear program, together with additional constraints that restrict some of the variables to take on only integer values. The problem of solving integer linear programs is NP-hard.
Input: a graph G=(V,E) with vertex costs c.
Goal: find a vertex cover S of minimum cost, where cost(S) = sum_{v in S} c(v).
Introduce a variable x(v) for each vertex v.
prove: each feasible solution x corresponds to a vertex cover S such that cost(x) = cost(S). (cost(x) denotes the objective function value).
prove: the optimal solution corresponds to a min-cost vertex cover.