Dual Spaces and Linear Functionals

A linear functional is the most modest object in linear algebra: a rule that eats a vector and returns a single number, linearly. Yet the collection of all such rules on a space VV is itself a full-blooded vector space — the dual space V∗V^* — and almost every place where physics carries an index downstairs rather than upstairs is secretly a statement about V∗V^*. Momentum is dual to velocity, a bra is dual to a ket, a gradient is dual to a displacement, a row is dual to a column. The dual construction is the algebraic engine behind covariance and contravariance in tensor analysis, behind Dirac's bra–ket formalism, and behind the rigorous meaning of "measure the ii-th component." Three facts organize everything that follows. First, in finite dimensions a basis {ei}\{e_i\} of VV manufactures a matching dual basis {ei}\{e^i\} through the pairing ei(ej)=δije^i(e_j)=\delta^i{}_j, so dim⁡V∗=dim⁡V\dim V^*=\dim V and the two spaces are isomorphic — but only after a basis is chosen, never canonically. Second, that missing canonical map arrives the moment you add an inner product: the Riesz representation theorem realizes every functional as φ(x)=⟨v,x⟩\varphi(x)=\langle v,x\rangle for a unique Riesz vector vv, and over C\mathbb{C} that correspondence is conjugate-linear — exactly Dirac's antilinear bra map. Third, the double dual V∗∗V^{**} is different in kind: the evaluation map x↦(φ↦φ(x))x\mapsto(\varphi\mapsto\varphi(x)) identifies VV with V∗∗V^{**} with no choice at all. We build the dual basis and its contragredient law, prove the canonical embedding into the double dual, prove Riesz, and cash it out as bras, gradients, momenta, and the metric that raises and lowers indices.

Key takeaways
  • The dual space V∗V^* is the set of all linear maps φ:V→F\varphi:V\to\mathbb{F} (linear functionals, covectors, one-forms); under pointwise operations it is itself a vector space.
  • A basis {ei}\{e_i\} of VV induces a unique dual basis {ei}\{e^i\} by ei(ej)=δije^i(e_j)=\delta^i{}_j, so dim⁡V∗=dim⁡V\dim V^*=\dim V — hence V≅V∗V\cong V^* in finite dimensions, but the isomorphism depends on the basis and is not canonical.
  • Under a change of basis the dual basis transforms contragrediently (by the inverse), which is the precise origin of the words covariant and contravariant.
  • The double dual carries a canonical, basis-free isomorphism J:V→V∗∗J:V\to V^{**}, J(x)(φ)=φ(x)J(x)(\varphi)=\varphi(x) — finite-dimensional spaces are reflexive.
  • An inner product makes the identification canonical: Riesz gives φ(x)=⟨v,x⟩\varphi(x)=\langle v,x\rangle with a unique vv, and over C\mathbb{C} the map φ↦v\varphi\mapsto v is conjugate-linear — this is exactly why (λ∣ψ⟩)†=λˉ⟨ψ∣(\lambda\lvert\psi\rangle)^\dagger=\bar\lambda\langle\psi\rvert.
  • Key idea: a dual vector is a machine that linearly converts vectors into numbers; choosing a basis names these machines (the dual basis), and an inner product canonically converts each vector into such a machine (Riesz).

Where this lives today

Duality stopped being abstract the moment quantum mechanics made the bra–ket its native grammar, and it reappears wherever "linear measurement" is the operative idea. In scattering theory the plane-wave and delta-function "states" are not in the Hilbert space at all — they live in the dual of a dense space of smooth test functions, formalized as the rigged Hilbert space or Gelfand triple Φ⊂H⊂Φ∗\Phi\subset H\subset\Phi^*, which is what makes Dirac's ⟨x∣p⟩=eipx\langle x\vert p\rangle=e^{ipx} rigorous. In numerical PDE, the weak formulation behind every finite-element solver recasts a differential equation as "find uu such that a bilinear form equals a given functional for all test functions," and the Lax–Milgram theorem — a direct descendant of Riesz — guarantees a unique solution; this is the mathematics inside structural, fluid, and electromagnetic simulation codes. Machine learning leans on the same result: a reproducing kernel Hilbert space is defined by demanding that evaluation-at-a-point be a bounded functional, so Riesz hands you a representing "kernel," and the representer theorem behind support-vector machines and kernel ridge regression is Riesz duality doing the heavy lifting. Even gravitational-wave detection is dual-space work — matched filtering applies a functional (the inner product of data with a template) and reads its value. Wherever a gradient, a momentum, a bra, or a test-function pairing appears, V∗V^* is quietly in charge.

The physical picture

Picture a vector as an arrow and a covector as a stack of parallel, evenly spaced rulings — the level surfaces of a linear function. The functional's value on a vector is simply the number of rulings the arrow pierces, a "pierce count" that needs no coordinates and no length: it is defined by counting, not measuring. Where the covector is "strong" the rulings crowd together and a fixed arrow pierces more of them. Vectors point; covectors slice. The first figure makes this concrete for the simplest covector, the dual-basis element that just reads off a coordinate.

Figure
A covector is a stack of level rulings and its value on a vector is how many rulings the arrow pierces — the dual-basis covector e¹ reads the first component, so e¹(v) = 3 for v = 3e₁ + 1.5e₂, while a vector gliding along the rulings scores 0
Vectors point, covectors slice — the pairing φ(v) counts pierced rulings 0 1 2 3 4 5 level rulings of e¹ (constant x) O v = 3e₁ + 1.5e₂ e¹(v) = 3 rulings pierced w runs along a ruling e¹(w) = 0

A basis labels each vector by its components viv^i, and the dual basis is nothing more exotic than the operation "read off the ii-th component," ei(v)=vie^i(v)=v^i. So covectors are the measurement devices that extract coordinates — logically prior to the numbers in a column, not derived from them. But notice what is missing: nothing so far tells you which covector "is" a given vector. The arrow lives in VV, the rulings live in V∗V^*, and the two spaces face each other across a gap that no amount of pure linear algebra can bridge. An inner product is exactly the structure that glues them, and the Riesz vector is the vector whose "count my rulings" role reproduces ⟨v,⋅⟩\langle v,\cdot\rangle; in Dirac's language, the inner product is what turns a ket into a bra. The second figure lays out the three spaces of duality and the maps between them, marking which are free and which cost you a choice.

Figure
The three spaces of duality: choosing a basis names the dual basis via eⁱ(eⱼ) = δⁱⱼ so dim V = dim V = dim V<strong> = n, an inner product supplies the Riesz map v ↦ ⟨v,·⟩ from V to V, and the evaluation map J from V to V is a canonical isomorphism that needs no basis at all
Duality in one diagram: what is free (J) and what costs a choice (Riesz) V vectors, kets basis {eⱼ} V* covectors, bras eⁱ(eⱼ) = δⁱⱼ V** evaluations φ ↦ φ(x) Riesz v ↦ ⟨v,·⟩ J: x ↦ (φ ↦ φ(x)) — canonical, basis-free ≅ needs an inner product conjugate-linear over ℂ dim V = dim V* = dim V** = n

The core equations

A linear functional is defined by exactly two demands: it lands in the scalar field, and it respects linear combinations. Collecting every such map gives the dual space, the primary object of this article.

V∗={ φ:V→F∣φ(αx+βy)=α φ(x)+β φ(y) }(1)V^* = \{\,\varphi: V\to\mathbb{F} \mid \varphi(\alpha x+\beta y)=\alpha\,\varphi(x)+\beta\,\varphi(y)\,\} \qquad (1)

where: VV — a vector space over a field F\mathbb{F} (here R\mathbb{R} or C\mathbb{C}); φ\varphi — a linear functional, also called a covector or one-form; α,β\alpha,\beta — scalars in F\mathbb{F}; V∗V^* — the dual space of all such functionals. Read it as: V∗V^* collects every linear "measuring device" you can point at VV. The dual space is not merely a set — it inherits its own linear structure by combining functionals pointwise, value by value on each input vector, which makes "the space of measurements" a vector space in its own right.

(φ+ψ)(x)=φ(x)+ψ(x),(λφ)(x)=λ φ(x)(2)(\varphi+\psi)(x)=\varphi(x)+\psi(x),\qquad (\lambda\varphi)(x)=\lambda\,\varphi(x) \qquad (2)

where: φ,ψ\varphi,\psi — functionals in V∗V^*; λ\lambda — a scalar; xx — any vector in VV. Read it as: covectors add and scale exactly like ordinary functions, so every vector-space axiom holds automatically. Once VV has a basis, V∗V^* acquires a canonical partner basis. The dual basis {ei}\{e^i\} is fixed by demanding that eie^i return 11 on eie_i and 00 on every other basis vector, and every functional then expands in it with its own values as coordinates.

ei(ej)=δij,φ=∑iφ(ei) ei(3)e^i(e_j)=\delta^i{}_j,\qquad \varphi=\sum_i \varphi(e_i)\,e^i \qquad (3)

where: {ej}\{e_j\} — a basis of VV; {ei}\{e^i\} — the induced dual basis of V∗V^*; δij\delta^i{}_j — the Kronecker delta (11 if i=ji=j, else 00); φ(ei)\varphi(e_i) — the (covariant) components of φ\varphi. Read it as: eie^i is the "extract coordinate ii" functional, and any φ\varphi is a weighted sum of coordinate-extractors. Change the basis of VV and the dual basis must move too — but oppositely, so that the pairing ei(ej)=δije^i(e_j)=\delta^i{}_j is preserved. If the new basis is built from the old one by a matrix MM, the new dual basis is built by the inverse of MM.

e~i=∑j(M−1)ij ejwhene~i=∑jMji ej(4)\tilde e^i = \sum_j (M^{-1})^i{}_j\, e^j \quad\text{when}\quad \tilde e_i=\sum_j M^j{}_i\, e_j \qquad (4)

where: MjiM^j{}_i — the change-of-basis matrix on VV; (M−1)ij(M^{-1})^i{}_j — its inverse, which drives the dual basis; e~i,e~i\tilde e_i,\tilde e^i — the new basis and its new dual. Read it as: bases and their duals transform contragrediently — this opposite behavior is the entire content of the words covariant and contravariant. Duality can be applied twice. The dual of V∗V^* is the double dual V∗∗V^{**}, and one map into it needs no arbitrary choice at all: send a vector xx to the operation "evaluate any covector at xx."

J:V→V∗∗,J(x)(φ)=φ(x)(5)J:V\to V^{**},\qquad J(x)(\varphi)=\varphi(x) \qquad (5)

where: V∗∗V^{**} — the dual of V∗V^*, i.e. functionals acting on covectors; J(x)J(x) — the "evaluation at xx" element of V∗∗V^{**}. Read it as: a vector is also a machine that eats covectors, and this reinterpretation is automatic — no basis, no inner product. Adding an inner product changes the game. On any Hilbert space (in particular any finite-dimensional inner-product space) every bounded functional is secretly an inner product against one fixed vector, and that vector is unique. This is the Riesz representation theorem, the bridge from V∗V^* back to VV.

∀ φ∈V∗  ∃! v∈V:  φ(x)=⟨v,x⟩and∥φ∥=∥v∥(6)\forall\,\varphi\in V^*\ \ \exists!\,v\in V:\ \ \varphi(x)=\langle v,x\rangle\quad\text{and}\quad \|\varphi\|=\|v\| \qquad (6)

where: ⟨⋅,⋅⟩\langle\cdot,\cdot\rangle — the inner product (taken linear in the second slot in the complex case); vv — the unique Riesz vector representing φ\varphi; ∥φ∥\|\varphi\| — the operator norm of the functional. Read it as: an inner product supplies the missing canonical bridge V∗→VV^*\to V, and it is even an isometry. In an orthonormal basis the Riesz vector is written down instantly: its components are the complex conjugates of the functional's components. This is Riesz made fully concrete.

v=∑iφ(ei)‾ ei(orthonormal basis {ei}, ⟨ei,ej⟩=δij)(7)v=\sum_i \overline{\varphi(e_i)}\,e_i \qquad (\text{orthonormal basis } \{e_i\},\ \langle e_i,e_j\rangle=\delta_{ij}) \qquad (7)

where: (⋅)‾\overline{(\cdot)} — complex conjugation (drop it in the real case); eie_i — an orthonormal basis vector. Read it as: in an orthonormal basis, "raising the index" of a covector is just conjugating its components — nothing else happens. Dirac's notation is Riesz in disguise. A ket is a vector in the Hilbert space; the matching bra is its Riesz functional, and the bra–ket product is exactly the inner product.

⟨ψ∣  =  ( ∣ψ⟩ )†,⟨ψ∣ϕ⟩=⟨ψ,ϕ⟩(8)\langle\psi\rvert \;=\; \big(\,\lvert\psi\rangle\,\big)^\dagger,\qquad \langle\psi\vert\phi\rangle=\langle\psi,\phi\rangle \qquad (8)

where: ∣ψ⟩\lvert\psi\rangle — a ket in the Hilbert space HH; ⟨ψ∣\langle\psi\rvert — the bra, the Riesz functional ⟨ψ,⋅⟩∈H∗\langle\psi,\cdot\rangle\in H^*; †\dagger — the conjugate transpose or Hermitian adjoint. Read it as: the dagger is the Riesz map, and because Riesz is conjugate-linear over C\mathbb{C}, scaling a ket by λ\lambda scales its bra by λˉ\bar\lambda. In component language, an inner product is a metric gijg_{ij}, and Riesz becomes the familiar act of lowering an index with gg and raising it back with the inverse metric.

ωi=gij vj,vi=gij ωj(9)\omega_i = g_{ij}\,v^j,\qquad v^i = g^{ij}\,\omega_j \qquad (9)

where: gij=⟨ei,ej⟩g_{ij}=\langle e_i,e_j\rangle — the metric (inner-product) components; gijg^{ij} — the inverse metric; vjv^j — contravariant (vector) components; ωi\omega_i — covariant (covector) components. Read it as: raising and lowering indices is not bookkeeping magic — it is the Riesz isomorphism written out in coordinates.

Derivation AThe dual basis exists, is unique, and matches the dimension of V

The goal is to prove that a single basis {ei}\{e_i\} of a finite-dimensional space VV manufactures a genuine basis {ei}\{e^i\} of V∗V^* — that the objects defined by ei(ej)=δije^i(e_j)=\delta^i{}_j actually exist as functionals, span every possible functional, and are linearly independent, so that dim⁡V∗=dim⁡V\dim V^*=\dim V. It is worth watching exactly where finite-dimensionality is used, since in infinite dimensions the "dual basis" fails to span and the clean picture breaks.

Step 1. Define each candidate functional on the basis and extend by linearity: set ei(ej)=δije^i(e_j)=\delta^i{}_j, so ei ⁣(∑jvjej)=vie^i\!\big(\sum_j v^j e_j\big)=v^i. Since a linear map is fixed by arbitrary values on a basis, each eie^i is a well-defined element of V∗V^*. Why: existence of eie^i is not assumed but follows from the theorem that values on a basis determine a linear map.

Step 2. Span V∗V^*: for any φ\varphi and any v=∑jvjejv=\sum_j v^j e_j, φ(v)=∑jvjφ(ej)=∑jφ(ej) ej(v)\varphi(v)=\sum_j v^j\varphi(e_j)=\sum_j \varphi(e_j)\,e^j(v), so φ=∑jφ(ej) ej\varphi=\sum_j \varphi(e_j)\,e^j. Why: every functional is pinned down by the finite list φ(ej)\varphi(e_j), so the coordinate-extractors already generate all of V∗V^*.

Step 3. Independence: if ∑iciei=0\sum_i c_i e^i=0, feed it eje_j to get (∑iciei)(ej)=cj=0\big(\sum_i c_i e^i\big)(e_j)=c_j=0 for every jj. Why: evaluating on each basis vector isolates the coefficients one at a time, forcing them all to vanish.

Step 4. Conclude: a spanning, independent set is a basis, so dim⁡V∗=dim⁡V\dim V^*=\dim V and ei↦eie_i\mapsto e^i is an isomorphism V≅V∗V\cong V^*. Why: that isomorphism rests on a chosen basis, so it is not canonical — a different basis gives a different identification, the subtlety the whole article turns on. *Verified: ei(ej)=δije^i(e_j)=\delta^i{}_j, spanning identity φ=∑jφ(ej)ej\varphi=\sum_j\varphi(e_j)e^j, and independence cj=0c_j=0; standard result (Halmos §15; Stone and Goldbart). A verifier should recheck that specifying values on a basis yields a unique functional and that the argument breaks when the basis is infinite.*

Go deeper · Derivation B · 1 minThe canonical isomorphism between a space and its double dual
Derivation BThe canonical isomorphism between a space and its double dual

The goal is to prove that the evaluation map J:V→V∗∗J:V\to V^{**}, J(x)(φ)=φ(x)J(x)(\varphi)=\varphi(x), is a genuine isomorphism in finite dimensions and that — crucially — it uses no basis and no inner product anywhere in its construction. This is what makes reflexivity a fact about VV itself rather than a chosen coordinate system, exactly the property the plain dual V≅V∗V\cong V^* lacks. We verify J(x)J(x) is a functional on V∗V^*, JJ is linear and injective, and a dimension count closes the argument.

Step 1. For fixed xx, J(x)∈V∗∗J(x)\in V^{**}: J(x)(αφ+βψ)=(αφ+βψ)(x)=α J(x)(φ)+β J(x)(ψ)J(x)(\alpha\varphi+\beta\psi)=(\alpha\varphi+\beta\psi)(x)=\alpha\,J(x)(\varphi)+\beta\,J(x)(\psi). Why: "evaluate at xx" is linear in the functional evaluated, so it is a genuine element of the double dual.

Step 2. JJ is linear in xx: for every φ\varphi, J(αx+βy)(φ)=φ(αx+βy)=(αJ(x)+βJ(y))(φ)J(\alpha x+\beta y)(\varphi)=\varphi(\alpha x+\beta y)=\big(\alpha J(x)+\beta J(y)\big)(\varphi). Why: holding for all test covectors φ\varphi, the two elements of V∗∗V^{**} are equal, so JJ is linear.

Step 3. Injectivity: suppose J(x)=0J(x)=0, i.e. φ(x)=0\varphi(x)=0 for every φ\varphi. If x≠0x\neq0, extend xx to a basis {x=e1,e2,… }\{x=e_1,e_2,\dots\}; then e1(x)=1≠0e^1(x)=1\neq0, a contradiction, so ker⁡J={0}\ker J=\{0\}. Why: the dual basis sees every nonzero vector, so none can be invisible to all functionals — this spends the previous derivation.

Step 4. Close by dimension: dim⁡V∗∗=dim⁡V∗=dim⁡V\dim V^{**}=\dim V^*=\dim V, and an injective linear map between equal finite dimensions is bijective. Why: no step used a basis to define JJ — it appeared only inside injectivity — so the isomorphism is canonical and VV is reflexive. *Verified: standard result (Halmos §16; Stone and Goldbart). A verifier should recheck the linearity in both slots, the basis-extension step for injectivity, and the twofold dimension equality.*

Go deeper · Derivation C · 1 minThe Riesz representation theorem on a Hilbert space
Derivation CThe Riesz representation theorem on a Hilbert space

The goal is to prove the theorem that supplies the canonical bridge V∗→VV^*\to V once an inner product is present: every continuous linear functional φ\varphi on a Hilbert space HH has the form φ(x)=⟨v,x⟩\varphi(x)=\langle v,x\rangle for one and only one vector vv, with ∥φ∥=∥v∥\|\varphi\|=\|v\|. The proof is constructive — it finds vv as a rescaled normal to the kernel of φ\varphi — and pins down where completeness is indispensable, which is why the theorem fails on a general pre-Hilbert space. The inner product is conjugate-linear in its first slot, linear in its second.

Step 1. The kernel N=ker⁡φ=φ−1({0})N=\ker\varphi=\varphi^{-1}(\{0\}). If φ=0\varphi=0 take v=0v=0; otherwise continuity makes NN a closed subspace with N≠HN\neq H. Why: closedness of NN lets us later invoke orthogonal decomposition, and boundedness of φ\varphi is what delivers it.

Step 2. A normal direction: by the projection theorem H=N⊕N⊥H=N\oplus N^{\perp}, and since N≠HN\neq H there is z∈N⊥z\in N^{\perp} with z≠0z\neq0. Why: the one step needing completeness — in an incomplete space N⊥N^{\perp} can be trivial even when φ≠0\varphi\neq0, and no representing vector exists.

Step 3. Reduce any xx to that line: form u=φ(x) z−φ(z) xu=\varphi(x)\,z-\varphi(z)\,x, so φ(u)=φ(x)φ(z)−φ(z)φ(x)=0\varphi(u)=\varphi(x)\varphi(z)-\varphi(z)\varphi(x)=0, giving u∈Nu\in N and ⟨z,u⟩=0\langle z,u\rangle=0. Why: subtracting the right multiple of zz kills the functional, projecting xx onto the one direction that carries all of φ\varphi.

Step 4. Expand and solve: 0=⟨z,u⟩=φ(x) ∥z∥2−φ(z) ⟨z,x⟩0=\langle z,u\rangle=\varphi(x)\,\|z\|^2-\varphi(z)\,\langle z,x\rangle gives φ(x)=φ(z)∥z∥2 ⟨z,x⟩=⟨φ(z)‾∥z∥2 z, x⟩\varphi(x)=\dfrac{\varphi(z)}{\|z\|^2}\,\langle z,x\rangle=\Big\langle \dfrac{\overline{\varphi(z)}}{\|z\|^2}\,z,\ x\Big\rangle, so v=φ(z)‾∥z∥2 zv=\dfrac{\overline{\varphi(z)}}{\|z\|^2}\,z. Why: the conjugate on φ(z)\varphi(z) appears because pulling a scalar from the first slot conjugates it — the germ of the antilinear bra map.

Step 5. Uniqueness and isometry: if ⟨v1,x⟩=⟨v2,x⟩\langle v_1,x\rangle=\langle v_2,x\rangle for all xx, set x=v1−v2x=v_1-v_2 to force v1=v2v_1=v_2; Cauchy–Schwarz with equality at x=vx=v gives ∥φ∥=∥v∥\|\varphi\|=\|v\|. Why: uniqueness makes φ↦v\varphi\mapsto v well-defined, and the norm equality upgrades it to an isometry. *Verified: Reed and Simon Vol. I, Theorem II.4. A verifier should confirm the projection-theorem step, that φ(u)=0\varphi(u)=0 exactly, the conjugation in Step 4, and the Cauchy–Schwarz equality case for the norm.*

Limiting cases

How duality behaves as you strip away or add structure:

CaseResultMeaning
Finite dimension, no inner productdim⁡V∗=dim⁡V,V≅V∗\dim V^*=\dim V,\quad V\cong V^* (non-canonical)An isomorphism exists but depends on a chosen basis; no preferred functional is attached to a given vector.
Finite dimension with inner productφ(x)=⟨v,x⟩,v\varphi(x)=\langle v,x\rangle,\quad v uniqueRiesz gives a canonical (conjugate-linear over C\mathbb{C}) bijection V→V∗V\to V^*; an orthonormal basis makes it the identity on coordinates.
Double dual, any finite dimensionJ:V→V∗∗, J(x)(φ)=φ(x)J:V\to V^{**},\ J(x)(\varphi)=\varphi(x)Always a canonical isomorphism, needing neither basis nor inner product; VV is reflexive.
Infinite-dimensional Hilbert spaceH∗≅HH^*\cong H via Riesz (continuous dual)Riesz survives for bounded functionals; the algebraic dual is strictly larger, but H∗∗≅HH^{**}\cong H so HH stays reflexive.
Infinite-dimensional normed, non-HilbertV⊊V∗∗V\subsetneq V^{**} possibleGeneral Banach spaces need not be reflexive (c0c_0, L1L^1); with no inner product, Riesz simply does not apply.

Worked examples

1 · Dual bases transform contragrediently (fully worked)

In a 2D space with basis {e1,e2}\{e_1,e_2\}, shear to a new basis e~1=e1+e2\tilde e_1=e_1+e_2, e~2=e2\tilde e_2=e_2. Find the new dual basis, then track the components of the functional φ\varphi with φ(e1)=2\varphi(e_1)=2, φ(e2)=−3\varphi(e_2)=-3 in both bases and confirm they move oppositely to the basis vectors.

Step 1. Read off MM from e~i=∑jMjiej\tilde e_i=\sum_j M^j{}_i e_j: the columns are the new basis vectors' old components, so M=(1011)M=\begin{pmatrix}1&0\\1&1\end{pmatrix} (with M11=1,M21=1,M12=0,M22=1M^1{}_1=1,M^2{}_1=1,M^1{}_2=0,M^2{}_2=1). Its inverse is M−1=(10−11)M^{-1}=\begin{pmatrix}1&0\\-1&1\end{pmatrix}.

Step 2. Build the new dual basis from equation (4), e~i=∑j(M−1)ijej\tilde e^i=\sum_j (M^{-1})^i{}_j e^j: this gives e~1=e1\tilde e^1=e^1 and e~2=−e1+e2\tilde e^2=-e^1+e^2. Sanity-check duality directly — e~2(e~1)=(−e1+e2)(e1+e2)=−1+1=0\tilde e^2(\tilde e_1)=(-e^1+e^2)(e_1+e_2)=-1+1=0 and e~2(e~2)=(−e1+e2)(e2)=1\tilde e^2(\tilde e_2)=(-e^1+e^2)(e_2)=1, and likewise e~1(e~1)=1\tilde e^1(\tilde e_1)=1, e~1(e~2)=0\tilde e^1(\tilde e_2)=0. So e~i(e~j)=δij\tilde e^i(\tilde e_j)=\delta^i{}_j holds. New dual basis: e~1=e1, e~2=e2−e1\tilde e^1=e^1,\ \tilde e^2=e^2-e^1.

Step 3. Now the components of φ\varphi. In the new basis φ~i=φ(e~i)\tilde\varphi_i=\varphi(\tilde e_i): φ~1=φ(e1+e2)=2+(−3)=−1\tilde\varphi_1=\varphi(e_1+e_2)=2+(-3)=-1 and φ~2=φ(e2)=−3\tilde\varphi_2=\varphi(e_2)=-3. Compare with the covariant transformation law φ~i=∑jMjiφj\tilde\varphi_i=\sum_j M^j{}_i\varphi_j: φ~1=1⋅2+1⋅(−3)=−1\tilde\varphi_1=1\cdot2+1\cdot(-3)=-1 and φ~2=0⋅2+1⋅(−3)=−3\tilde\varphi_2=0\cdot2+1\cdot(-3)=-3 — a perfect match. Covector components transform with MM (covariantly); the dual basis vectors transform with M−1M^{-1} — opposite directions, which is the whole point of the word contragredient.

2 · The Riesz vector under a non-standard metric (fully worked)

Equip R2\mathbb{R}^2 with the inner product whose metric is g=(2112)g=\begin{pmatrix}2&1\\1&2\end{pmatrix}. Find the Riesz vector vv representing the functional φ(x)=x1+x2\varphi(x)=x^1+x^2, i.e. the covector with components ω=(1,1)\omega=(1,1), and verify ⟨v,x⟩=φ(x)\langle v,x\rangle=\varphi(x).

Step 1. Raise the index with the inverse metric, vi=gijωjv^i=g^{ij}\omega_j. Since det⁡g=3\det g=3, g−1=13(2−1−12)g^{-1}=\frac13\begin{pmatrix}2&-1\\-1&2\end{pmatrix}. Then v1=13(2⋅1−1⋅1)=13v^1=\tfrac13(2\cdot1-1\cdot1)=\tfrac13 and v2=13(−1⋅1+2⋅1)=13v^2=\tfrac13(-1\cdot1+2\cdot1)=\tfrac13. Riesz vector: v=(13,13)v=\big(\tfrac13,\tfrac13\big).

Step 2. Verify by lowering back, ωi=gijvj\omega_i=g_{ij}v^j: ω1=2⋅13+1⋅13=1\omega_1=2\cdot\tfrac13+1\cdot\tfrac13=1 and ω2=1⋅13+2⋅13=1\omega_2=1\cdot\tfrac13+2\cdot\tfrac13=1, recovering ω=(1,1)\omega=(1,1). Equivalently, for any x=(a,b)x=(a,b) the inner product is ⟨v,x⟩=vTg x=a+b=φ(x)\langle v,x\rangle=v^{\mathsf T} g\, x=a+b=\varphi(x). The representing vector is not (1,1)(1,1) — the metric skews it to (13,13)(\tfrac13,\tfrac13), which is exactly why the Riesz map depends on the inner product and is invisible to bare linear algebra.

3 · Conjugate-linearity of the bra map

In C2\mathbb{C}^2 with the standard inner product, take ∣ψ⟩=(1, i)\lvert\psi\rangle=(1,\,i); write its bra and the bra of i∣ψ⟩i\lvert\psi\rangle.

Step 1. The bra is the conjugate transpose, ⟨ψ∣=(1, −i)\langle\psi\rvert=(1,\,-i), with ⟨ψ∣ψ⟩=1⋅1+(−i)(i)=2=∥ψ∥2\langle\psi\vert\psi\rangle=1\cdot1+(-i)(i)=2=\|\psi\|^2. Scaling the ket by λ=i\lambda=i gives i∣ψ⟩=(i,−1)i\lvert\psi\rangle=(i,-1), whose bra is (−i, −1)=−i (1, −i)=λˉ ⟨ψ∣(-i,\,-1)=-i\,(1,\,-i)=\bar\lambda\,\langle\psi\rvert. Scaling a ket by λ\lambda scales its bra by λˉ\bar\lambda: the Riesz/dagger map is conjugate-linear, as equation (8) demands.

Physics of the portrait

The dual space is where three strands of twentieth-century mathematics braid together — the integral representations Hadamard and Fréchet were chasing, the abstract functional analysis Banach would systematize, and the operator formalism Dirac needed for quantum mechanics. The knot that ties them is one theorem, and it carries the name of the Hungarian analyst who proved it.

Origins · 1 minFrigyes Riesz and how this was discovered
FR
Frigyes Riesz
1880–1956, Hungarian mathematician, a founder of functional analysis · the representation theorem that turns functionals into vectors

Frigyes (Frédéric) Riesz was one of the architects of functional analysis, the discipline that treats functions as points in infinite-dimensional spaces and linear operations on them as geometry. Working in Kolozsvár and later Szeged, he asked the question that now defines the field: given the abstract space of square-integrable functions, what do its continuous linear functionals actually look like? In 1907, simultaneously with Maurice Fréchet, he answered that every such functional is an inner product against one fixed function — the theorem this article proves. Two years later he extended representation to continuous functions on an interval via Stieltjes integrals, a result that grew into the Riesz–Markov–Kakutani theorem linking functionals to measures, and in 1910 he built the LpL^p spaces and identified their duals, cementing the idea that a space and its dual are partners of equal standing. His name is stamped across the subject — the Riesz lemma, the Riesz–Fischer theorem, the Riesz representation theorem, the F. and M. Riesz theorem with his brother Marcel. When Dirac later wrote a bra as the object dual to a ket, he was invoking Riesz whether or not he cited it: the bra is the Riesz functional of the ket, and the antilinearity Dirac built into the notation is the conjugation that Riesz's proof forces on the complex inner product.

History
1903
— Hadamard represents continuous linear functionals on a function space as limits of integrals
1907
— Riesz and Fréchet independently show every functional on square-integrable functions is an inner product
1909
— Riesz represents functionals on continuous functions by Stieltjes integrals, seeding the measure viewpoint
1927
— Hahn and Banach prove the extension theorem that guarantees dual spaces are large enough to separate points
1939
— Dirac names the dual vectors of quantum mechanics bras, to be paired with kets

Going further

Texts. Stone and Goldbart, Mathematics for Physics, chapter on linear algebra and dual spaces · Arfken, Weber and Harris, Mathematical Methods for Physicists, 7th ed., Ch. 2–3 (tensors, covariant and contravariant indices) · Hassani, Mathematical Physics, Ch. 1–2 and the chapter on Hilbert spaces (Riesz–Fréchet) · Nakahara, Geometry, Topology and Physics, §2.5 (cotangent spaces and one-forms) · Byron and Fuller, Mathematics of Classical and Quantum Physics, Ch. 3–5 · Halmos, Finite-Dimensional Vector Spaces, §13–17 · Reed and Simon, Methods of Modern Mathematical Physics I, §II.2 (Riesz lemma).

Provenance. The dual-basis construction and its spanning and independence proofs follow Halmos §13–17 and Stone and Goldbart; the contragredient transformation law and index raising and lowering follow Arfken–Weber–Harris Ch. 2–3 and Byron and Fuller; the canonical embedding into the double dual follows Halmos §16; the Riesz representation theorem and the adjoint it spawns follow Reed and Simon Vol. I §II.2 and Hassani's Hilbert-space chapter; the cotangent and one-form language follows Nakahara §2.5. A verifier should recompute: the spanning identity and independence argument; the contragredient relation and shear example (e~2=e2−e1\tilde e^2=e^2-e^1, covector components (−1,−3)(-1,-3)); the injectivity of JJ by basis extension; the Riesz construction v=φ(z)‾z/∥z∥2v=\overline{\varphi(z)}z/\|z\|^2, especially the conjugation and completeness steps; and the metric example v=(13,13)v=(\tfrac13,\tfrac13) for g=(2112)g=\big(\begin{smallmatrix}2&1\\1&2\end{smallmatrix}\big). No empirical constants are used.

Prerequisites. Vector Spaces and Subspaces · Linear Independence, Basis, and Dimension · Linear Operators and Matrix Representations · Inner-Product Spaces and Norms. Leads to. Adjoint and Hermitian Operators · Change of Basis and Similarity Transformations · Orthogonality and the Gram–Schmidt Process.

Ask the tutor: Ask me to walk through the Riesz construction for a functional of your choosing, or to show exactly how a bra becomes a row of conjugated components in your favorite basis.

If V and V* have the same dimension, why not just call them equal?

Because "same dimension" only buys you an isomorphism, and every such isomorphism here rests on a choice. Pick a basis {ei}\{e_i\} and you get the map ei↦eie_i\mapsto e^i; pick a different basis and you get a genuinely different map, with no principled way to prefer one — there is no arrow V→V∗V\to V^* definable from the abstract space alone. Contrast V→V∗∗V\to V^{**}, which the evaluation map defines with zero choices. So V∗V^* deserves to be tracked separately: conflating it with VV works only with an inner product in hand, and even then the identification is conjugate-linear over C\mathbb{C}, not the innocent equality "same space" suggests.

What actually goes wrong with dual bases in infinite dimensions?

In finite dimensions the family {ei}\{e^i\} is both dual to {ei}\{e_i\} and spans all of V∗V^*. In infinite dimensions the second property collapses. You can still define coordinate functionals eie^i, but a general functional is an infinite combination of them, and infinite combinations are forbidden in an algebraic (finite-support) basis — so the {ei}\{e^i\} fail to span the full algebraic dual, which is enormously larger than VV. The repair is analytic, not algebraic: restrict to continuous functionals and add a topology. On a Hilbert space an orthonormal basis plus Riesz then describes the continuous dual faithfully, which is why physics lives in Hilbert space rather than in bare algebraic duals.

Where exactly does completeness enter the Riesz proof, and what breaks without it?

It enters in one place: the claim that a nonzero functional's kernel has a nonzero orthogonal complement. That rests on the orthogonal-decomposition theorem H=N⊕N⊥H=N\oplus N^{\perp}, which is a theorem about complete inner-product spaces. In an incomplete (pre-Hilbert) space the kernel NN of a discontinuous or even continuous functional can be dense, so N⊥={0}N^{\perp}=\{0\} even though φ≠0\varphi\neq0, and then there is simply no vector vv with φ(x)=⟨v,x⟩\varphi(x)=\langle v,x\rangle. A concrete symptom: on the space of finitely supported sequences with the ℓ2\ell^2 inner product, the functional φ(x)=∑nxn/n\varphi(x)=\sum_n x_n/n is bounded but has no representing vector inside the space. Completeness is exactly what fills the missing limit point.

How is the bra–ket formalism just this dual-space machinery?

Directly. A ket ∣ψ⟩\lvert\psi\rangle is a vector in a Hilbert space HH; the bra ⟨ψ∣\langle\psi\rvert is its Riesz functional ⟨ψ,⋅⟩∈H∗\langle\psi,\cdot\rangle\in H^*; and the bracket ⟨ψ∣ϕ⟩\langle\psi\vert\phi\rangle is that functional evaluated on ∣ϕ⟩\lvert\phi\rangle, equal to the inner product. The dagger that turns a ket into a bra is the Riesz map, and because Riesz is conjugate-linear over C\mathbb{C} it conjugates scalars: (λ∣ψ⟩)†=λˉ⟨ψ∣(\lambda\lvert\psi\rangle)^\dagger=\bar\lambda\langle\psi\rvert. Operator adjoints slot in the same way — A†A^\dagger is defined by ⟨A†y,x⟩=⟨y,Ax⟩\langle A^\dagger y,x\rangle=\langle y,Ax\rangle, i.e. Riesz applied to x↦⟨y,Ax⟩x\mapsto\langle y,Ax\rangle. The whole notation is shorthand for "vectors, their duals, and the inner product that connects them."

Why are gradients and momenta covectors rather than vectors?

Because they are defined by how they pair with a displacement, not by pointing anywhere. The differential df\mathrm{d}f eats a displacement vector and returns the linear change in ff — that is the definition of a functional, so df\mathrm{d}f lives in the cotangent (dual) space. The "gradient" ∇f\nabla f you picture as an arrow is really the Riesz partner of df\mathrm{d}f, made by the metric, ∇f=gij∂jf ∂i\nabla f=g^{ij}\partial_j f\,\partial_i; change the metric and the arrow changes while df\mathrm{d}f does not. Likewise the canonical momentum pi=∂L/∂q˙ip_i=\partial L/\partial\dot q^i is the functional conjugate to velocity q˙i\dot q^i, so it transforms contragrediently and the pairing piq˙ip_i\dot q^i is coordinate-independent. Seeing these as covectors makes their transformation laws and index positions inevitable rather than arbitrary.

Is the Dirac delta a function, and what does duality say about it?

The Dirac delta is not a function; it is a functional. Defined by δa(φ)=φ(a)\delta_a(\varphi)=\varphi(a), it eats a test function and returns its value at the point aa — a perfectly good linear map on a space of test functions, hence an element of that space's dual. What it is not is an inner product against any ordinary function, so it lies outside the range of Riesz on L2L^2: there is no locally integrable gg with ∫gφ=φ(a)\int g\varphi=\varphi(a). This is the whole point of distribution theory — it enlarges the class of functionals beyond the Riesz-representable ones, giving rigorous meaning to point sources, Green's functions, and weak solutions of PDEs. The delta is the cleanest example that the dual space genuinely contains objects the original space does not.

Before this

Where this leads