Hopfield cyclic-sweep convergence (finite-state argument) #
This file uses the tie-handling progress lemma from progress.lean to prove the classical
finite-state global dynamics facts for cyclic sweeps:
- No nontrivial cycles for the full-sweep update
cycleUpdate(hence convergence). - A coarse convergence bound of at most
2^nsweeps (and thereforen * 2^nsingle-coordinate updates) from any initial state, by a pigeonhole argument on the finite state spaceBool^n.
We keep the statement at the “sweep level” (one full pass over coordinates). Connecting this to
seqStates with cyclicUseq is routine and can be layered on top.
The full-sweep update map whose iterates define Hopfield cyclic dynamics.
Instances For
With symmetric weights and zero diagonal, a periodic orbit of the sweep is a fixed point.
This is the heart of the Hopfield convergence argument: energy never increases along a sweep, so on a cycle it must be constant, and then the active-unit count would have to strictly increase around the cycle and return to its starting value, which is impossible.
A fixed point is reached within Fintype.card (State n) sweeps.
Finitely many states plus no nontrivial cycles gives termination; the bound is the crude pigeonhole one, not a claim about how fast the network actually settles.
The same bound written as 2 ^ n, since a state is one bit per unit.