Diagonalize against time-bounded TMs.
The Time Hierarchy Theorem (Hartmanis & Stearns 1965) is one of the few unconditional separation results in complexity theory. It says that giving a TM strictly more time strictly enlarges what it can decide.
If f(n) ≥ n log n is time-constructible, then TIME(f(n)) ⊊ TIME(f(n) · log f(n)).
The proof is by diagonalisation. Build a TM D that on input ⟨M⟩ simulates M for f(|⟨M⟩|) steps and outputs the opposite of M's answer. D's language is not in TIME(f) (any TIME(f) machine M would disagree with D on input ⟨M⟩) but D runs in time f · log f (the extra log factor accounts for universal-simulation overhead).
P ⊊ EXPTIME. TIME(nk) ⊊ TIME(2n) for every k. EXPTIME strictly contains polynomial time.
TIME(n) ⊊ TIME(n²). Linear time is strictly less than quadratic time.
NL ⊊ PSPACE. Via Space Hierarchy (analogous theorem for space).
Sipser: Theorem 9.10 (Time Hierarchy). Lecture notes: Module 7 slide 5. Companion problems: P45 (hierarchy diagonal), P48 (P ⊊ EXPTIME).