This talk interprets logical inference, optimization, and consistency maintenance in constraint programming as posing projection problems. It examines two fundamental methods for computing projections. One is based on the classical idea of Fourier-Motzkin elimination and arises in the context of propositional logic (resolution), probability logic (polyhedral projection), and integer programming (cutting planes). The other is based on constraint generation and appears in the form of conflict clauses for SAT, column generation for probability logic, partial instantiation methods for first-order logic, and Benders decomposition for optimization problems. The latter perspective is giving rise to new and efficient search methods, as for example in logic-based Benders methods.