Algebraic Cycles in Neural Codes
DH, MO, CB, TOC, DB
1. The Graph as a 1-Dimensional Space
Take a graph $\Gamma$. Think of it as:
vertices = 0-cells, edges = 1-cells.
So you get chain groups:
$$C_0(\Gamma) \cong \mathbb{Z}^V, \qquad C_1(\Gamma) \cong \mathbb{Z}^E$$with boundary map
$$\partial : C_1 \to C_0$$This is the incidence matrix.
2. Divisors = 0-Chains
$$\mathrm{Div}(\Gamma) = C_0(\Gamma)$$So a divisor is just:
$$D = \sum a_v \cdot v$$Nothing fancy — just integer weights on vertices.
3. Principal Divisors = Flows Coming from Potentials
Take a function $f : V \to \mathbb{Z}$. This gives a "gradient flow" on edges:
$$df \in C_1$$Then apply boundary:
$$\partial(df) \in C_0$$This is exactly the graph Laplacian:
$$\Delta f = \partial\, df$$So:
$$\mathrm{Prin}(\Gamma) = \mathrm{im}(\Delta)$$functions = potentials. principal divisors = divergences of gradient flows.
4. Picard = Charges Modulo Conservative Flows
$$\mathrm{Pic}(\Gamma) = C_0 / \mathrm{im}(\Delta)$$Configurations of charge modulo what you can redistribute via flows.
Purely algebraic. Built from local redistribution rules.
5. Where Cycles Enter
$$\ker(\partial) \subset C_1$$These are cycles:
$$H_1(\Gamma, \mathbb{Z})$$Flows with zero divergence everywhere.
So: gradients = flows with no curl. Cycles = flows with no divergence.
This is a discrete version of the gradient vs harmonic vs curl-free / divergence-free decomposition.
6. The Hidden Pairing
There is a natural pairing between divisors (charges) and cycles (loops).
A divisor induces a "potential," and cycles measure periods. More concretely:
Solve $\Delta f = D$ over $\mathbb{R}$, not $\mathbb{Z}$. Then integrate $df$ along cycles.
This gives:
$$\text{periods} \in H_1(\Gamma, \mathbb{R})$$But: changing $D$ by a principal divisor doesn't change periods. And integer cycles give a lattice.
So you land in:
$$H_1(\Gamma, \mathbb{R}) / H_1(\Gamma, \mathbb{Z})$$7. That Quotient is the Jacobian
$$\mathrm{Jac}(\Gamma) = H_1(\Gamma, \mathbb{R}) / H_1(\Gamma, \mathbb{Z})$$This is a torus.
From cycles alone: integer cycles = lattice. Real cycles = vector space. Quotient = torus.
8. How Pic and Jac Match
From the divisor side:
$$\mathrm{Pic}^0(\Gamma) = \ker(\deg) / \mathrm{im}(\Delta)$$From the cycle side:
$$\mathrm{Jac}(\Gamma) = H_1(\Gamma, \mathbb{R}) / H_1(\Gamma, \mathbb{Z})$$These are canonically isomorphic.
9. Why They Feel Different
Because they come from dual constructions:
| Pic side | Jac side |
| built from 0-chains | built from 1-cycles |
| quotient by Laplacian | quotient of $\mathbb{R}^g$ by lattice |
| local redistribution rules | global topology |
| combinatorial / discrete | geometric / continuous |
10. The Conceptual Bridge
The Laplacian gives an isomorphism:
$$C_0^0 \;\longleftrightarrow\; (\ker \partial)^*$$Degree-zero divisors ≈ dual of cycles.
Then: modding out by principal divisors corresponds to taking periods modulo integers. And that's exactly how the torus appears.
11. Clean Mental Picture
$\mathrm{Div}(\Gamma)$ = charges.
$\mathrm{Prin}(\Gamma)$ = charges you can neutralize locally via flows.
$\mathrm{Pic}(\Gamma)$ = global charge configurations.
Meanwhile:
Cycles = conserved flows.
$\mathrm{Jac}(\Gamma)$ = space of possible global "circulations."
The theorem is:
global charge configurations = global circulation states.
12. Why Grothendieck's Language Hides This
Because he starts from line bundles (global objects) and cohomology, instead of flows, Laplacians, and cycles.
So the local → global physical intuition disappears, and you're left with:
Pic = abstract classification. Jac = geometric object.
What you're doing — building from cycles/rings — is actually the most concrete way to see the truth:
Pic is the "charge picture." Jac is the "cycle/period picture." The Laplacian is the bridge between them.
13. The Algebra
Everything above was $\mathbb{Z}$-linear algebra on a graph. Here is what the objects actually are.
The ring
$$\mathcal{O}(\Gamma) = \mathrm{Map}(V, \mathbb{Z})$$Integer-valued functions on vertices. Pointwise operations. This is the coordinate ring.
Modules
$\mathrm{Div}(\Gamma)$ is an $\mathcal{O}(\Gamma)$-module: $f \cdot D = \sum f(v)\, a_v \cdot v$. The Laplacian is an $\mathcal{O}(\Gamma)$-module map. $\mathrm{Prin}(\Gamma)$ is a submodule. $\mathrm{Pic}(\Gamma)$ is the quotient module.
Line bundles
A line bundle on $\Gamma$ is a locally free $\mathcal{O}_\Gamma$-module of rank 1. At each vertex it looks like $\mathcal{O}_\Gamma$; transition data along edges encodes the twist. Each divisor $D$ gives a line bundle $\mathcal{O}(D)$. Two divisors give isomorphic bundles iff they differ by a principal divisor.
$$\mathrm{Pic}(\Gamma) \cong \{\text{rank-1 locally free } \mathcal{O}_\Gamma\text{-modules}\} / {\cong}$$The group operation is tensor product.
Characters
A character of $\mathrm{Jac}(\Gamma)$ is a homomorphism $\mathrm{Jac}(\Gamma) \to \mathbb{R}/\mathbb{Z}$.
$$\mathrm{Jac}(\Gamma)^{\widehat{}} \;\cong\; H_1(\Gamma, \mathbb{Z})$$The Pontryagin dual of the Jacobian is the cycle lattice. Each independent loop $\gamma$ is a character: it reads off flux through $\gamma$, mod integers. Jac is a torus because its dual is free abelian of rank $g$. Each cycle is a coordinate.