Dirac Bra-Ket Notation
By now you have a
complex
inner-product space, its
operators
and adjoints, and the completeness that makes it a Hilbert space. Physicists work in
exactly this world all day — so they invented a notation so slick that it does much of the bookkeeping
for you. It is Dirac notation, or bra-ket notation, and its central
joke is hidden in plain sight: an inner product in mathematics is written
\langle \phi, \psi\rangle, a "bra-c-ket". Split that bracket down the middle
and you get a bra \langle\phi| and a
ket |\psi\rangle. Paul Dirac's playful pun is now the
universal language of quantum mechanics.
The notation is not just cute — it is load-bearing. It makes the type of every object obvious
at a glance, turns the adjoint into a mechanical flip, and lets you write an operator as a little
stack of kets and bras that you can slot into a calculation and cancel like algebra. This page is a
translation guide: everything you already know about inner-product spaces, rewritten in the language a
physics course will actually speak.
Kets and bras: the two kinds of object
A ket |\psi\rangle is just a vector in the Hilbert space —
a state. The label inside is a name, nothing more: |\psi\rangle,
|0\rangle, |\!\uparrow\rangle,
|n\rangle are all just vectors with suggestive names. If you insist on
coordinates, a ket is a column vector.
A bra \langle\phi| is the partner object that is
waiting to eat a ket and return a number. Formally it is a linear functional — a
machine that takes any ket and produces a complex number. In coordinates a bra is a row
vector, and it is the conjugate transpose of the corresponding ket:
|\psi\rangle = \begin{bmatrix} \psi_1 \\ \psi_2 \\ \vdots \end{bmatrix} \quad\longleftrightarrow\quad \langle\psi| = \begin{bmatrix} \overline{\psi_1} & \overline{\psi_2} & \cdots \end{bmatrix}.
That conjugate is the whole reason the notation respects the complex inner product. Turning a ket into
its bra — "taking the dagger" — is the Dirac version of the
adjoint:
flip column to row and conjugate the entries. Every ket has a bra shadow, and vice versa.
The bracket: bra meets ket is an inner product
Slide a bra up against a ket and the two halves close into a full bracket — the
inner product, a single complex number:
\langle\phi|\psi\rangle = \langle \phi, \psi\rangle = \sum_i \overline{\phi_i}\,\psi_i.
In matrix terms it is a row vector times a column vector — a
1\times n times an n\times 1, giving a
1\times 1 number. All the inner-product facts you know translate directly:
-
Norm / normalisation: \langle\psi|\psi\rangle = \lVert\psi\rVert^2,
and a physical state is a unit ket, \langle\psi|\psi\rangle = 1.
-
Conjugate symmetry: swapping bra and ket conjugates the number,
\langle\phi|\psi\rangle = \overline{\langle\psi|\phi\rangle}.
-
Orthogonality: \langle\phi|\psi\rangle = 0 means the two
states are perpendicular — perfectly distinguishable outcomes.
-
Amplitudes: \langle\phi|\psi\rangle is read as "the
amplitude to find \psi in state \phi," and its
squared modulus |\langle\phi|\psi\rangle|^2 is the probability
(the Born rule).
Picture: a state and its amplitudes
Take the simplest quantum system, a two-state qubit with orthonormal basis
|0\rangle and |1\rangle. Any real state is a
unit vector |\psi\rangle = \cos\theta\,|0\rangle + \sin\theta\,|1\rangle.
The amplitude to measure "0" is the bracket
\langle 0|\psi\rangle = \cos\theta — geometrically, the
projection of the state onto the |0\rangle axis. Drag the angle
and watch the two amplitudes trade off. Their squares always add to one,
\cos^2\theta + \sin^2\theta = 1 — total probability conserved, the
Pythagorean heart of normalisation.
The state |\psi\rangle (unit vector) in the orthonormal basis
\{|0\rangle, |1\rangle\}. Its shadows on the two axes are the amplitudes
\langle 0|\psi\rangle = \cos\theta and
\langle 1|\psi\rangle = \sin\theta; each is a bra acting on the ket. The
squared shadows are the measurement probabilities and always sum to 1.
The outer product: a ket-times-bra is an operator
Here is where the notation earns its keep. If bra-times-ket
\langle\phi|\psi\rangle is a number (row × column), then
ket-times-bra |a\rangle\langle b| is the opposite order —
a column × row — which produces an n\times n
matrix: an operator. This "backwards bracket" is the
outer product, and it builds operators out of raw states. Its action on any ket is
pure bookkeeping — the pieces just associate:
\big(|a\rangle\langle b|\big)\,|\psi\rangle = |a\rangle\,\underbrace{\langle b|\psi\rangle}_{\text{a number}} = \langle b|\psi\rangle\;|a\rangle.
It takes any state, measures its overlap with |b\rangle, and re-emits that
much of |a\rangle. The most important special case is
|n\rangle\langle n|, the projector onto the direction
|n\rangle: it keeps the part of a state along
|n\rangle and throws the rest away.
Two identities that do all the work
With outer products in hand, two lines summarise most of the algebra of quantum mechanics.
-
For any orthonormal basis \{|n\rangle\}, the projectors add up to the
identity operator:
\displaystyle\sum_n |n\rangle\langle n| = I.
-
Because it equals I, you may drop it into any expression
for free — this is the famous "insert a complete set of states" trick. Slipping it between a bra
and a ket recovers the expansion in components:
\langle\phi|\psi\rangle = \sum_n \langle\phi|n\rangle\langle n|\psi\rangle.
The second identity expands a state in that basis. Since
|\psi\rangle = I\,|\psi\rangle = \sum_n |n\rangle\langle n|\psi\rangle, the
coordinate of |\psi\rangle along |n\rangle is the
amplitude c_n = \langle n|\psi\rangle — the same
"project onto an orthonormal basis" rule from the very first page, now written in Dirac's shorthand:
|\psi\rangle = \sum_n c_n\,|n\rangle, \qquad c_n = \langle n|\psi\rangle.
Finally, an operator sandwiched between a bra and a ket,
\langle\psi|A|\psi\rangle, is the expectation value — the
average outcome of measuring the observable A in the state
|\psi\rangle. Every prediction in quantum mechanics is one of these
sandwiches.
Worked example — building and using a projector
In the qubit basis, write the states as columns
|0\rangle = \begin{bmatrix}1\\0\end{bmatrix},
|1\rangle = \begin{bmatrix}0\\1\end{bmatrix}. The projector onto
|0\rangle is the outer product
|0\rangle\langle 0| = \begin{bmatrix}1\\0\end{bmatrix}\begin{bmatrix}1 & 0\end{bmatrix} = \begin{bmatrix}1 & 0\\ 0 & 0\end{bmatrix}.
Apply it to a general state
|\psi\rangle = \begin{bmatrix}\cos\theta\\ \sin\theta\end{bmatrix} and it
keeps only the top entry: |0\rangle\langle 0|\psi\rangle = \cos\theta\,|0\rangle.
The probability of measuring "0" is then
\langle\psi|\,\big(|0\rangle\langle 0|\big)\,|\psi\rangle = |\langle 0|\psi\rangle|^2 = \cos^2\theta,
recovering the Born rule directly from the notation. And the completeness relation checks out:
|0\rangle\langle 0| + |1\rangle\langle 1| = \begin{bmatrix}1&0\\0&0\end{bmatrix} + \begin{bmatrix}0&0\\0&1\end{bmatrix} = \begin{bmatrix}1&0\\0&1\end{bmatrix} = I.
The two projectors tile up to the identity, exactly as promised.
Dirac notation shines brightest in infinite dimensions. There the "basis" is the continuum of
position kets |x\rangle, and the amplitude
\langle x|\psi\rangle — the overlap of the state with "being exactly at
x" — is the wavefunction
\psi(x). The completeness sum becomes an integral,
\int |x\rangle\langle x|\,dx = I, and inserting it turns an abstract
bracket into a familiar integral: \langle\phi|\psi\rangle = \int \overline{\phi(x)}\,\psi(x)\,dx,
the L^2 inner product. The momentum eigenstate written in the position
basis, \langle x|p\rangle = e^{ipx/\hbar}, is nothing but a plane wave — and
the change from the "position basis" to the "momentum basis" is exactly a Fourier transform. One
notation, one set of rules, and both the matrix mechanics of Heisenberg and the wave mechanics of
Schrödinger fall out as different choices of basis.
Order is everything: \langle b|a\rangle is a number, but
|a\rangle\langle b| is an operator. They look almost identical on
the page, yet one is a scalar (row × column, a 1\times 1) and the other a
whole matrix (column × row, an n\times n). Mixing them up is the classic
beginner's error. A safe habit: read left to right and track the shapes — a bra on the left wanting a
ket on the right closes to a number; a ket on the left with a bra on the right stays open as an
operator.
The second trap is the conjugate. The bra of
c\,|\psi\rangle is \overline{c}\,\langle\psi|,
not c\,\langle\psi| — turning a ket into its bra conjugates every
scalar. That is exactly why \langle\phi|\psi\rangle = \overline{\langle\psi|\phi\rangle}
rather than being symmetric. Forgetting the conjugate is how sign and phase errors creep into a
calculation.