A 0-1 integer program asks whether a system of linear inequalities admits a solution where every variable is restricted to zero or one. The whole problem fits in a single line:
Karp's reduction from SAT is one step. Each Boolean variable becomes a 0-1 integer; each clause becomes an inequality. Take a three-literal clause where the second variable is negated:
It turns into the linear constraint
Read (2) carefully: every literal contributes a 1 if it is satisfied, and the sum being at least 1 means at least one literal is satisfied — exactly what the clause requires. Stack one such inequality per clause, and form (1) is a SAT instance in 0-1 IP clothing.
Drop linearity for nonlinear terms and you get general integer programming, which is also NP-hard. Drop the integrality and you get linear programming, which is in P (Khachiyan 1979). The whole modern field of mixed-integer programming — Gurobi, CPLEX, COIN-OR — is industrial-strength infrastructure for problems that, formally, are this one.