Proving that a problem requires significant computational resources (time or space) is challenging; many lower bounds remain open. Techniques include adversarial arguments, information-theoretic bounds, and Boolean circuit complexity (showing a problem needs circuits of superpolynomial size). Understanding lower bounds on circuit depth reveals obstacles in proving P ≠ NP.
Study adversarial lower bounds and information-theoretic arguments. Read about the natural proofs barrier and other obstacles to proving P ≠ NP.
You've studied circuit complexity and polynomial-time reductions, so you know that computation can be measured by circuit size and that polynomial reductions preserve problem difficulty. Lower bounds ask the converse question: not "how efficiently can we solve this?" but "how inefficient must any solution be?" Proving a lower bound means showing that *no* algorithm — no matter how clever — can solve the problem faster than some threshold.
The simplest lower bounds come from information-theoretic arguments. If a problem's input encodes n bits that all matter for the output, any algorithm must read them all — giving an Ω(n) lower bound just from input size. For comparison-based sorting, a decision tree that makes binary comparisons must distinguish n! possible orderings of the input. A binary tree of depth d has at most 2^d leaves, so to distinguish n! cases we need depth at least log₂(n!) = Ω(n log n). This is a counting argument: the space of possible outputs is too large to navigate in fewer steps. It applies independently of any specific algorithm.
Adversarial arguments work differently: rather than counting outputs, you show that an adaptive adversary can always force an algorithm to work hard, regardless of its strategy. In the problem of finding a specific element in an unsorted list, an adversary can delay revealing where the target is by answering consistently to every query without placing the element in any already-queried position. No matter what order the algorithm probes, the adversary forces it to examine nearly every element before committing to an answer. The adversary constructs the hard instance *in response to* the algorithm — making the lower bound universal across all possible algorithms.
Circuit complexity lower bounds are far more difficult to obtain, and their difficulty is itself informative. The goal is to show that some specific function (ideally one in NP) requires circuits of superpolynomial size — which would imply P ≠ NP. Early results like the parity function requiring exponential-size constant-depth circuits (the Håstad switching lemma) were celebrated breakthroughs. But proving superpolynomial lower bounds for general (unbounded-depth) circuits has resisted every approach. The natural proofs barrier (Razborov-Rudich) explains part of why: any proof technique that works "generically" on circuit properties would, if successful, also break cryptographic pseudorandom generators — which we strongly believe exist. The barrier is self-referential: the very tools that seem natural for proving lower bounds are blocked by assumptions baked into our confidence in cryptography. Understanding lower bounds today means understanding not just the known results but the landscape of why proofs fail — the barriers that define the frontier of what current mathematics can reach.