Linear Algebra
Dual Space
V* = Hom(V, F) — the set of all linear functionals; same dimension as V in finite-dim
The dual space V* of a vector space V over a field F is the set of all linear functionals — linear maps V → F. V* is itself a vector space; in finite dimensions, dim V* = dim V, and any basis {e₁, …, eₙ} of V has a unique dual basis {e¹, …, eⁿ} satisfying eⁱ(eⱼ) = δⁱⱼ. Double dual: V** ≅ V canonically when V is finite-dimensional (the canonical isomorphism v ↦ ev_v sends v to "evaluation at v"). In infinite dimensions, V** is generally larger than V; reflexive spaces (those where V ≅ V**) include all Hilbert spaces. Riesz representation theorem identifies V* with V for Hilbert spaces. Used in defining tensors, differential forms, weak topology, distribution theory.
- DefinitionV* = Hom(V, F)
- Finite-dimdim V* = dim V
- Dual basiseⁱ(eⱼ) = δⁱⱼ
- Double dualV** ≅ V (finite-dim)
- ReflexiveHilbert spaces
- Riesz rep theoremV* ≅ V for Hilbert
Watch the 60-second explainer
A condensed visual walkthrough — narrated, captioned, under a minute.
Why dual space matters
- Differential forms. The cotangent space T_p* M of a manifold is a dual space; differential forms are sections of cotangent bundles. Integration on manifolds, de Rham cohomology, and Stokes' theorem are formulated entirely in terms of dual spaces — without them, "integration of a function over a curve" has no coordinate-free meaning.
- Weak topology. The weak topology on V is defined as the coarsest topology making every functional in V* continuous. It's strictly weaker than the norm topology in infinite dimensions and crucial in functional analysis: bounded sets are weakly precompact (Banach-Alaoglu), enabling existence proofs in PDE and optimization.
- Distributions. Generalized functions like the Dirac delta live in the dual of test functions — δ ∈ S' is defined by δ(φ) = φ(0). Distribution theory (Schwartz, 1950s) gives a rigorous framework for "functions" that are too singular to be functions, by reinterpreting them as functionals on smooth test functions.
- Optimization Lagrangians. Convex duality theory writes a primal problem and a dual problem related by Legendre-Fenchel transform. The dual variable lives naturally in V* (the "co-vector" space). Karush-Kuhn-Tucker conditions, linear programming duality, and convex conjugates all live there.
- Tensors. A tensor of type (p, q) is a multilinear map V* × … × V* × V × … × V → F (with p copies of V* and q copies of V). Without dual spaces, you can't write a clean coordinate-free definition of tensors — and physics (general relativity, fluid mechanics) becomes a notational mess.
- Quantum mechanics. Bra-ket notation: |ψ⟩ is a vector in Hilbert space H, ⟨ψ| is the corresponding element of H*. The pairing ⟨φ|ψ⟩ is the dual pairing — an inner product via Riesz representation. Operators have adjoints A* : H* → H* defined by ⟨φ| (A|ψ⟩) = (⟨φ|A) |ψ⟩, which only makes sense once you have V*.
- Functional analysis. Banach space theory studies continuous duals X* of normed spaces; the reflexive condition X = X** is central. Hahn-Banach theorem (extending functionals) is a workhorse. Conjugate exponents 1/p + 1/q = 1 give (Lp)* = Lq, generalizing inner product duality to general p.
Common misconceptions
- V* is concrete. V* is abstract until you pick a basis. After fixing a basis of V (and hence the dual basis of V*), V* is concretely isomorphic to V via row-vector representation. Without the basis choice, there's no canonical way to view a functional as a vector — they're different kinds of objects.
- V = V*. Same dimension in finite-dim, but no canonical isomorphism without extra structure (an inner product or a chosen basis). The "natural" isomorphism people sometimes assume — sending eⱼ to its dual eʲ — is basis-dependent: change basis and the map changes. Distinguishing V from V* protects against bugs in covariant/contravariant tensor computations.
- Always reflexive. Only finite-dim spaces and Hilbert spaces are automatically reflexive. Famous non-reflexive: ℓ¹ (its dual is ℓ^∞, but the dual of ℓ^∞ is much bigger than ℓ¹), c₀ (dual is ℓ¹, but dual of ℓ¹ is ℓ^∞ ⊋ c₀), L¹(ℝ). Reflexivity is a strong condition with major consequences for compactness.
- Continuous = algebraic dual. In topology, V* usually means continuous dual (functionals that are continuous w.r.t. the norm). The algebraic dual (all linear functionals, possibly discontinuous) is much larger in infinite dimensions. For Banach spaces, the relevant V* is always the continuous dual; algebraic dual is rarely used.
- Dual basis is "the same" basis. The dual basis {eⁱ} consists of functionals, not vectors of V. Concrete: for V = ℝ² with basis e₁ = (1,0), e₂ = (0,1), the dual basis vectors are e¹ = (the function (x,y) ↦ x) and e² = (the function (x,y) ↦ y). They live in V*, not V — different space.
- Dual is dimension-doubling. No — dim V* = dim V in finite-dim. Confusion may come from mixing V and V*; their direct sum V ⊕ V* has dimension 2n, but each individually has dimension n. Tangent + cotangent bundles together (the symplectic phase space) have dimension 2n, but each tangent space alone has dimension n.
Worked example
Take V = ℝ³ with standard basis e₁ = (1,0,0), e₂ = (0,1,0), e₃ = (0,0,1). The dual space V* consists of linear functionals ℝ³ → ℝ. The dual basis e¹, e², e³ extracts coordinates: e¹(x,y,z) = x, e²(x,y,z) = y, e³(x,y,z) = z.
A general functional φ(x,y,z) = 2x − 3y + 7z can be written 2e¹ − 3e² + 7e³. As a row vector in the dual basis: [2, −3, 7]. Its action on a vector v = (a,b,c) is the matrix product [2 −3 7][a b c]^T = 2a − 3b + 7c. This is why functionals are often drawn as "row vectors" while elements of V are "column vectors" — they pair via matrix multiplication.
Now change basis. Let f₁ = (1,1,0), f₂ = (1,−1,0), f₃ = (0,0,1) — still a basis of V. The dual basis {f¹, f², f³} is determined by fⁱ(fⱼ) = δⁱⱼ. Solving: f¹(x,y,z) = (x+y)/2, f²(x,y,z) = (x−y)/2, f³(x,y,z) = z. Note these are different functionals than e¹, e², e³ — even though both are dual bases, they're dual to different bases of V. This shows there's no basis-free identification of V with V*.
Double dual: V** consists of functionals on V*. The map ev: V → V** sends v to the functional "evaluate at v": ev(v)(φ) = φ(v). For v = (1,2,3): ev(v)(φ) = φ(1,2,3). If φ = 2e¹ − 3e² + 7e³, then ev(v)(φ) = 2 − 6 + 21 = 17. The map ev is a vector-space isomorphism (in finite-dim), and it's the canonical one — definable without choosing a basis.
Frequently asked questions
What is a linear functional concretely?
A linear functional on V over field F is a map φ: V → F satisfying φ(au + bv) = a·φ(u) + b·φ(v). Concrete examples: on ℝ³, φ(x,y,z) = 3x − 2y + 5z is a functional represented by the row vector [3, −2, 5]. On the space of continuous functions on [0,1], φ(f) = ∫₀¹ f(x)dx is a functional. On polynomials, φ(p) = p(7) (evaluation at 7) is a functional. Every linear functional in finite-dim is given by dot product with some fixed vector once you fix a basis.
What is the dual basis?
Given a basis {e₁, …, eₙ} of V, the dual basis {e¹, …, eⁿ} of V* is defined by eⁱ(eⱼ) = δⁱⱼ (1 if i=j, else 0). So eⁱ extracts the i-th coordinate of any vector v expressed in the original basis. Concretely on ℝⁿ with standard basis: e¹(x₁,…,xₙ) = x₁, e²(x₁,…,xₙ) = x₂, etc. The dual basis is unique once the basis is fixed. It demonstrates dim V* = dim V in finite dimensions: every functional φ = Σ φ(eⱼ)·eʲ.
Why is V** = V in finite dimensions but not always in infinite?
There's a canonical map V → V** sending v to the 'evaluation at v' functional ev_v(φ) = φ(v). This map is always injective and linear. In finite dimensions, dim V = dim V* = dim V**, so injective implies surjective, hence isomorphism. In infinite dimensions, V* is typically much larger than V (more functionals than vectors), and V** can be larger still. For example, V = c₀₀ (eventually-zero sequences) has V* = ℓ^∞ and V** = (ℓ^∞)* which is huge — strictly larger than c₀₀.
What does Riesz representation say for Hilbert spaces?
Riesz representation theorem: every continuous linear functional φ on a Hilbert space H is given by φ(x) = ⟨x, y⟩ for a unique y ∈ H. Hence H* (the continuous dual) is isometrically isomorphic to H itself. The isomorphism is conjugate-linear over ℂ (φ ↔ y), linear over ℝ. This makes Hilbert spaces 'self-dual' and reflexive — H** = H. Quantum mechanics uses bra-ket notation |x⟩ for elements of H, ⟨y| for elements of H* representing inner-product-with-y; Riesz says the bra-ket pairing is exactly the dual pairing.
How are differential forms related (cotangent space)?
On a smooth manifold M, the tangent space T_p M at point p is a vector space of velocity vectors. Its dual T_p* M is called the cotangent space — elements are linear functionals on tangent vectors. A differential 1-form is a section of the cotangent bundle (a smooth assignment of a covector to each point). The differential df of a function f gives such a 1-form: df(v) = directional derivative of f in direction v. Higher-degree forms ω ∈ Λᵏ(T_p* M) generalize. Integration on manifolds, de Rham cohomology, and Stokes' theorem all live in this dual world.
How does dual space appear in distribution theory?
Distributions (generalized functions) are continuous linear functionals on a space of test functions — typically the Schwartz space S(ℝⁿ) of rapidly decreasing smooth functions, with dual S' called tempered distributions. The Dirac delta δ is the functional δ(φ) = φ(0). Derivatives of distributions are defined by transferring to test functions: T'(φ) = −T(φ'). This lets you differentiate non-differentiable objects like step functions. Fourier transforms extend from S to S'. The whole framework rests on dual spaces — distributions live in V*, not V.