FINGERPRINT — one real number reads a residue tuple up to sign
The object: the cosine sum Θ_M(n) of a residue n over the prime-power factors of any modulus M. It is two things at once: 2k minus the squared chord distance in C^k from the point 0 to the point n on the torus that draws each of the k channels, the prime-power factors q of M, each reading n mod q, as a unit circle, and an eigenvalue of the channel-step graph. It forgets the sign in each channel and nothing else. The primorials Z/p_k#, the products of the first k primes, are one squarefree case.
The fingerprint
Tier: property.
Verifier: fingerprint.py::section_g; fingerprint.py::section_c;
fingerprint.py::section_e.
Let M = q_1 q_2 ⋯ q_k with the q_j powers of k distinct primes, so that Z/M is read through the k channels q_j. The fingerprint of n is the real number
Θ_M(n) = Σ_j 2cos(2πn / q_j).
The sign class of n at q_j is the lesser of n and −n mod q_j, between 0 and q_j/2, and Θ_M depends only on the class tuple, so changing the sign of n in any one channel leaves it unchanged. Those sign changes are multiplication by the sign group G_M = {g : g ≡ ±1 mod each q_j, the signs free}, of order 2 to the number of q_j above 2.
Θ_M has two other readings, both by construction.
The torus. Draw channel j as q_j points on a unit circle and Z/M as the grid of their product, on the torus. Since 2cos t = 2 − 4sin²(t/2),
Θ_M(n) = 2k − |d(n)|², |d(n)|² = Σ_j 4sin²(πn / q_j),
where |d(n)|² is the squared chord distance from the point 0 to the point n.
The spectrum. The channel-step graph is the Cayley graph of Z/M whose steps are ±1 in one channel, the product of the cycles C_{q_j} (at q_j = 2 the two steps coincide and the edge is counted twice). The characters ψ_m(x) = exp(2πi Σ_j m_j x_j/q_j), with x_j = x mod q_j, labelled by CRT coordinates m_j = m mod q_j, are an eigenbasis, ψ_m's eigenvalue Θ_M(m). The label matters: the additive character x ↦ exp(2πi mx/M) is ψ with coordinates m·u_j, where u_j is the inverse of M/q_j mod q_j, so its eigenvalue is Θ_M at the twisted label. Along the primorials, through Z/30 every u_j is ±1 and the twist moves no label up to sign; it first moves one at Z/210, where u = 3 at 5 and u = 4 at 7. Off them it can bite sooner: at Z/15, u = 2 at 5.
The fingerprint theorem
Tier: theorem; observation (the least gaps between fingerprints).
Verifier: proof; fingerprint.py::section_r; fingerprint.py::section_z;
fingerprint.py::section_e; fingerprint.py::section_g.
For every modulus M, Θ_M(n) = Θ_M(m) iff m = gn for some g in the sign group: n and m agree in every channel up to sign, independently. So the distinct fingerprints number
Π_j (⌊q_j / 2⌋ + 1).
Two equivalent statements follow: on the torus, the chord distance from the point 0 fixes a point of Z/M up to reflecting each circle; in the spectrum, each eigenvalue's multiplicity is the size of one sign orbit, so each eigenvalue is as simple as multiplication by the sign group allows. At Z/510510, for instance, 18,144 real numbers name 18,144 orbits, the largest, 1's among them, of 64.
The proof has three steps. Suppose two class tuples give one sum, and let δ_j = 2cos(2πc/q_j) − 2cos(2πc′/q_j), c and c′ being the two tuples' sign classes at q_j, so that the δ_j sum to 0.
Isolation. The prime powers are coprime, so the Galois group of Q(ζ_M) is the product of the groups of the Q(ζ_{q_j}). Average the vanishing sum over the subgroup fixing ζ_{q_j}: δ_j is fixed and every other channel's difference becomes its average over its own group, a rational number. So every δ_j is rational.
One channel. At q = p^e, the value 2cos(2πc/q) generates the real subfield of Q(ζ_{p^a}) with p^a = q/gcd(c, q), its exact level, and irrational values of different exact levels generate fields of different degree. A rational difference of two irrational values puts both in one field, where values of one exact level are Galois conjugates with one common trace, so the difference equals its own average, 0. A rational minus an irrational value is irrational. So a nonzero rational δ_j needs two rational values, and by Niven's theorem (I. Niven, Irrational Numbers, 1956, Corollary 3.12) the rational values of 2cos at rational multiples of 2π are 2, 1, 0, −1 and −2. Hence the nonzero rational differences are ±4 at q = 2; ±2 and ±4 at the larger powers of 2 (values 2, 0, −2); ±3 at the powers of 3 (values 2, −1); and none at a power of any p ≥ 5. Within a channel 2cos is strictly decreasing on the class range, so δ_j = 0 means equal classes.
The clash. Only the 2-power and the 3-power channels can carry a nonzero δ, and there is at most one of each. A zero sum then needs a difference in {0, ±2, ±4} at the 2-power channel to cancel one in {0, ±3} at the 3-power channel, so both are 0 and every class agrees.
At q = 2 the set is read by hand: the values are 2 and −2, so the differences are ±4. The script checks the middle step's conclusion exactly, in integers, at every prime power 3 ≤ q ≤ 200. For each it builds the minimal polynomial of 2cos(2π/q), certifies it irreducible, and reduces every pair difference modulo it; a pair's difference is rational iff the reduction is constant, so the rational-difference set is read with no float anywhere. The 59 computed sets of rational differences between distinct classes are exactly as the one-channel step says: nonempty at every power of 2 from 4 and of 3, and empty elsewhere, the detector firing at 8 and 9 read first as a positive control (at 3 and 4 the polynomial is linear and every reduction constant). The last step uses that the primes are distinct: the difference sets at 2 and 4 cancel (−4 against 4), and at 3 and 9 (−3 against 3), a clash on Z/2 × Z/4 or Z/3 × Z/9, never in a Z/M. In floats, the class tuples' fingerprints are distinct at ten moduli, the seven primorials Z/2 to Z/510510 and 8·9·5·7·11, 16·27·5·7 and 4·9·25·49, which is the statement there, the class tuples being the sign orbits, and the fibre through every n, the m with Θ_M(m) = Θ_M(n), is its sign orbit at Z/210, Z/2310, Z/360 and Z/900.
The theorem is exact in the reals and costly in digits. Reading every n's sign orbit back off Θ_M needs an error below half the least gap between fingerprints, and that gap falls from 1 at Z/6 to 1.9 × 10⁻⁷ at Z/510510 along the primorials. Neither the class tuples nor the channels, counted, order it: 16·27·5·7, 8·9·5·7·11 and Z/30030, at 1512, 1800 and 2016 class tuples, have the rising gaps 4.3, 6.5 and 6.8 × 10⁻⁶, and 4·9·25·49, four channels and 4875 class tuples, has 3.0 × 10⁻⁷, below Z/30030's at six channels.