07Signals on Faces: 2-Cochains
We've now put data on vertices (0-cochains, Chapter 1) and edges (1-cochains, Chapter 2). The next level up: 2-cochains, which assign a value to each face. Physically, these represent fluxes, area densities, or — in the thermal context — effective material properties over a tile region.
Our complex has only two faces ($\sigma_1$, $\sigma_2$), so a 2-cochain is just a vector in $\mathbb{R}^2$. But the algebra is the same at any scale.
The Laplacian on Faces: $\mathbf{L}_2$
Since our complex has no rank-3 cells (no tetrahedra), there is no $\mathbf{B}_{2,3}$ matrix and hence no upper Laplacian. The face Laplacian is purely lower:
This is beautifully parallel to $\mathbf{L}_0$. The graph Laplacian $\mathbf{L}_0 = \mathbf{D} - \mathbf{A}$ has degree on the diagonal and $-1$ for adjacent vertices. The face Laplacian $\mathbf{L}_2$ has "boundary edge count" on the diagonal and $\pm 1$ for faces sharing a boundary edge. The same structure repeats at every rank.
Eigenstructure of $\mathbf{L}_2$
For a 2×2 matrix, the eigenvalues are immediate from the characteristic polynomial $\lambda^2 - 6\lambda + 8 = (\lambda - 2)(\lambda - 4) = 0$:
No zero eigenvalue — meaning $\beta_2 = 0$: the complex encloses no voids. The low-frequency mode $\mathbf{v}_0 = (1,1)$ assigns the same value to both faces (smooth). The high-frequency mode $\mathbf{v}_1 = (1,-1)$ assigns opposite values (oscillating). This is the "Fourier basis" for face signals on our tiny complex.
08The Complete Hodge Diamond
Pulling together all three Laplacians, we can now state the full spectral picture of our simplicial complex:
| Rank | Objects | Count | Laplacian | Eigenvalues | β_k |
|---|---|---|---|---|---|
| 0 | Vertices | 4 | $\mathbf{L}_0 = \mathbf{B}_1\mathbf{B}_1^\top$ | 0, 2, 4, 4 | 1 |
| 1 | Edges | 5 | $\mathbf{L}_1 = \mathbf{B}_1^\top\mathbf{B}_1 + \mathbf{B}_{1,2}\mathbf{B}_{1,2}^\top$ | 2, 2, 4, 4, 4 | 0 |
| 2 | Faces | 2 | $\mathbf{L}_2 = \mathbf{B}_{1,2}^\top\mathbf{B}_{1,2}$ | 2, 4 | 0 |
The $k$-th Betti number $\beta_k = \dim\ker\mathbf{L}_k$ counts the number of zero eigenvalues of the Hodge Laplacian at rank $k$. It measures a topological feature of the complex:
$\beta_0 = 1$ — one connected component
$\beta_1 = 0$ — no independent loops (every cycle bounds a face)
$\beta_2 = 0$ — no enclosed voids (no "hollow" regions)
These are topological invariants: they don't change if you deform the complex continuously, and they are computable purely from the combinatorial structure (the incidence matrices).
The Euler characteristic check: $\chi = \beta_0 - \beta_1 + \beta_2 = 1 - 0 + 0 = 1$. Independently: $\chi = |V| - |E| + |F| = 4 - 5 + 2 = 1$ ✓. This is the Euler–Poincaré theorem — the alternating sum of cell counts equals the alternating sum of Betti numbers.
The Complete Discrete de Rham Complex
We can now draw the full picture with all the operators we've built:
This is the foundation everything else builds on. Chapters 4–7 will generalize this structure: combinatorial complexes relax the simplicial constraints; higher-order message passing replaces the Laplacian with learned operators; and the Hodge decomposition tells us exactly what information each rank can capture. But the core algebraic machinery — incidence matrices, boundary operators, Hodge Laplacians, Betti numbers — is everything you've now seen worked out by hand.