The finite-dimensional picture¶
In , a linear map is represented by an matrix . The transpose is the matrix satisfying
The fundamental theorem of linear algebra decomposes and into four mutually orthogonal subspaces:
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.patches import Polygon
fig, ax = plt.subplots(figsize=(10, 5.5))
s = 0.9 # half-diagonal of range/row space diamonds
sn = 0.55 # half-diagonal of null space diamonds (smaller)
def diamond(cx, cy, s):
"""Vertices of a square rotated 45 degrees, centered at (cx, cy)."""
return np.array([[cx + s, cy], [cx, cy + s], [cx - s, cy], [cx, cy - s]])
left_cx, right_cx = -2.5, 2.5
# Left pair: R(A^T) above, N(A) below, meeting at the shared corner
null_verts = diamond(left_cx, -sn, sn)
ax.add_patch(Polygon(null_verts, facecolor='#d62728', alpha=0.15,
edgecolor='#d62728', lw=2))
ax.text(left_cx, -sn, r'$\mathrm{N}(A)$', ha='center', va='center',
fontsize=12, color='#d62728', fontweight='bold')
ax.text(left_cx - sn - 0.1, -sn, 'dim $n{-}r$', ha='right', fontsize=9, color='#d62728')
row_verts = diamond(left_cx, s, s)
ax.add_patch(Polygon(row_verts, facecolor='#1f77b4', alpha=0.2,
edgecolor='#1f77b4', lw=2))
ax.text(left_cx, s, r'$\mathrm{R}(A^T)$', ha='center', va='center',
fontsize=13, color='#1f77b4', fontweight='bold')
ax.text(left_cx - s - 0.1, s, 'dim $r$', ha='right', fontsize=10, color='#1f77b4')
ax.text(left_cx, 2*s + 0.25, r'$\mathbb{R}^n$',
ha='center', fontsize=14, fontweight='bold')
# Right pair: R(A) above, N(A^T) below, meeting at the shared corner
coker_verts = diamond(right_cx, -sn, sn)
ax.add_patch(Polygon(coker_verts, facecolor='#ff7f0e', alpha=0.15,
edgecolor='#ff7f0e', lw=2))
ax.text(right_cx, -sn, r'$\mathrm{N}(A^T)$', ha='center', va='center',
fontsize=12, color='#ff7f0e', fontweight='bold')
ax.text(right_cx + sn + 0.1, -sn, 'dim $m{-}r$', ha='left', fontsize=9, color='#ff7f0e')
range_verts = diamond(right_cx, s, s)
ax.add_patch(Polygon(range_verts, facecolor='#2ca02c', alpha=0.2,
edgecolor='#2ca02c', lw=2))
ax.text(right_cx, s, r'$\mathrm{R}(A)$', ha='center', va='center',
fontsize=13, color='#2ca02c', fontweight='bold')
ax.text(right_cx + s + 0.15, s, 'dim $r$', ha='left', fontsize=10, color='#2ca02c')
ax.text(right_cx, 2*s + 0.25, r'$\mathbb{R}^m$',
ha='center', fontsize=14, fontweight='bold')
# Arrow: A maps R(A^T) -> R(A)
ax.annotate('', xy=(right_cx - s - 0.15, 2*s + 0.25),
xytext=(left_cx + s + 0.15, 2*s + 0.25),
arrowprops=dict(arrowstyle='->', lw=2.5, color='black'))
ax.text(0, 2*s + 0.45, '$A$', ha='center', fontsize=15, fontweight='bold')
ax.set_xlim(-4.5, 4.5)
ax.set_ylim(-2.2, 2.8)
ax.set_aspect('equal')
ax.axis('off')
plt.tight_layout()
plt.show()
The four fundamental subspaces of an matrix of rank . The domain decomposes into the row space (dimension ) and the nullspace (dimension ), which are orthogonal complements. The codomain decomposes into the column space (dimension ) and the left nullspace (dimension ). The map sends isomorphically onto , and kills .
The four subspace picture says: and are perfectly coupled. The kernel of one is the orthogonal complement of the range of the other. This is the cleanest version of the story, and it relies on two features of :
Inner product: orthogonal complements make sense.
Finite dimensions: all subspaces are closed, and ranges are automatically closed.
In infinite dimensions, both features can fail. The adjoint theory generalizes this picture, but the four subspace relations require progressively more assumptions as we move away from the finite-dimensional setting.
The Banach adjoint (transpose)¶
Definition 1 (Banach adjoint)
Let be normed spaces and a bounded linear operator. The adjoint (or transpose) is defined by
The definition is simple: takes a functional on and pulls it back to a functional on by precomposing with . If defines a foliation of , then defines a foliation of whose level sets are the preimages under of the level sets of .
Proposition 1 (Basic properties)
Let be bounded. Then:
is bounded with .
and .
(reversal of order).
is injective if and only if .
is surjective only if is bounded below (i.e., for some ).
Proof 1
(1) For : , so . For the reverse, the sup formula <hb-sup-formula> gives , so .
(3) .
(4) means for all , i.e., vanishes on . By Hahn-Banach (classification of closures <hb-closures>), vanishes on . So iff the only functional vanishing on is zero, iff .
The four subspace relations: general Banach spaces¶
To state the four subspace relations in Banach spaces, we need a substitute for orthogonal complements. Since we have no inner product, we use annihilators.
Definition 2 (Annihilator)
Annihilators are the Banach-space replacement for orthogonal complements. In a Hilbert space with Riesz identification, reduces to the usual orthogonal complement. But in general, lives in the dual space, not in itself.
Theorem 1 (Four subspace relations (general Banach spaces))
Let be Banach spaces and a bounded linear operator. Then:
Proof 2
(1) iff iff for all iff .
(2) iff for all iff for all . By the distinguishing property <hb-separation>, this holds iff iff .
(3) From (1), . For any subspace , the classification of closures gives . Applying this to yields (3).
(4) If , then for some sequence in . For : . So .
Remark 1 (The asymmetry in relation (4))
Relation (4) is an inclusion, not an equality. This is the key difference from the finite-dimensional case, and it arises because:
In (3), we used , which is a theorem about (using Hahn-Banach for ).
To upgrade (4) to equality, we would need for subspaces . This requires Hahn-Banach applied to with functionals from , and it gives (weak* closure), which equals (norm closure) only when is reflexive.
So in a non-reflexive space, can be a proper subset of even after taking its closure. The “missing” elements of are functionals that annihilate but cannot be reached as limits of .
The closed range theorem¶
The most important application of the four subspace picture is the closed range theorem, which restores full symmetry when the range is closed.
Theorem 2 (Closed Range Theorem (Banach))
Let be Banach spaces and bounded. Then
When this holds, relation (4) becomes an equality:
Proof 3
Sketch. () If is closed, the open mapping theorem applied to gives a bounded inverse. One then shows that implies (restricted to ) converge, producing with .
() Apply the same argument to .
Equality in (4). If is closed, then . For the reverse inclusion: if , then defines a functional on . Since induces an isomorphism (by the closed range), we can pull back to a functional on , extend by Hahn-Banach to , and verify .
The closed range condition is a property of the operator , not the ambient space. It is essential for solvability of equations: has a solution iff , and the closed range theorem lets us check this via the adjoint: iff for all . An alternative route to full equality in relation (4) is to work in a reflexive space, where it holds for every bounded operator automatically. An important class of operators with closed range are the Fredholm operators, discussed in Application: Fredholm Operators.
Reflexive spaces: full symmetry restored¶
In a reflexive space ( via the canonical embedding), the asymmetry in relation (4) disappears.
Theorem 3 (Four subspace relations (reflexive spaces))
Let be reflexive Banach spaces and bounded. Then all four relations hold with equality:
Proof 4
Relations (1)--(3) hold in any Banach space. For (4): in a reflexive space, every functional on comes from an element of , so the weak* closure and the norm closure of any convex subset of coincide. Therefore for subspaces , and applying this to gives .
Reflexivity restores the full symmetry of the finite-dimensional picture: each kernel is the annihilator of the other’s range, and vice versa. No closed range assumption is needed for the four relations to hold (though the ranges themselves may still not be closed).
Hilbert spaces: orthogonal complements¶
In a Hilbert space, the Riesz representation theorem identifies with , and annihilators become orthogonal complements. The Banach adjoint becomes the Hilbert adjoint, defined by the familiar relation:
Definition 3 (Hilbert adjoint)
Let be Hilbert spaces and a bounded linear operator. The Hilbert adjoint is the unique operator satisfying
The Hilbert adjoint maps back into the same type of space (not the dual), which is why we can write the four subspace decompositions as orthogonal direct sums within and themselves.
Corollary 1 (Four subspaces in Hilbert space)
Let be Hilbert spaces and bounded. Then:
The four subspaces satisfy:
All orthogonal complements are taken in the ambient Hilbert space (not the dual).
This is exactly the finite-dimensional picture, with closures added to account for the possibility that ranges are not closed. Every vector in decomposes uniquely into a component killed by and a component in the closure of what produces.
See the four subspace picture above, which now carries over with , , and , and closures added to account for possibly non-closed ranges.