This book presents a state-of-the-art theory in the field of proof complexity, aiming to construct hard propositional tautologies needed to solve the P vs. NP problem in the negative. The theory is introduced step by step, starting with the historic background, and several potential new avenues of research are highlighted.