The seed-flower
What a rung names: the integer a sub-ring carries, the
congruence deciding which absent primes divide it, where the supply of
new namings comes from, the gate that closes on it, how far the
naming reaches, why some primes are missed, and the map that iterates
the naming.
The tower is the chain of rings Z/6 ⊂ Z/30 ⊂
Z/210 ⊂ ⋯, one rung per prime: rung k is
Z/pk# (the primorial, the product of the first
k primes), the product of the first k prime fields, and the
tower primes at rung k are those first k primes. A
sub-ring is the same product over any m of them
{p1, …, pm}, N =
∏pi, and it carries an integer of its own, its CRT
Euler characteristic (CRT: the Chinese remainder theorem, which is that
product splitting)
χ = N(1 − m + Σ 1/pi). For
m ≥ 2, −χ = N(m−1) − Σ N/pi
is a positive integer whose prime factors routinely include tower primes
the sub-ring does not contain: {3, 5} gives −χ =
(3−1)(5−1) − 1 = 7 — the next prime, never met. One congruence governs
every such naming.
The reciprocal
naming criterion criterion
An absent prime s divides
−χ({p1, …, pm}) iff
the inverses taken mod s (divide −χ by N mod s).
Give each prime the weight w = 1 − p−1 mod s
and the same condition reads: s names the sub-ring iff its weights
sum to 1. The set size has left, the weights add over disjoint
unions, and each one depends on p mod s and on nothing else —
so naming reads the residues of the sub-ring mod s, not its size and
not the tower's structure. Corollaries: a prime ≡ 1 mod s weighs
nothing and can be adjoined free, which at s = 2 makes every odd
prime weightless and so 2 is never named by a sub-ring not
containing it; −χ is coprime to the sub-ring's own primes
(−χ ≡ −N/p mod p) and always odd, so members
never divide; and summing the weights against the characters of
Z/s bounds the naming fraction's distance from 1/s by a factor
decaying like cos(π/s) for each pool prime that is not ≡ 1 mod s. The
one structured excess is the finite-size term: 3 is named by 51% of
3-prime sub-rings at k = 8 against the 33% baseline — the Chebyshev
prime-race bias read through the criterion — fading to 1/3 by
Dirichlet equidistribution.
Scope. Proved, and checked at 960/960
(sub-ring, absent prime) pairs; the weight form at 21,202 pairs over
the first nine primes and every absent prime below 200, with the 1/s
bound measured at five moduli.
verifiers:
explore_tower_naming.py,
explore_naming_complex.py,
explore_chi_primality.py
The factorization
rule rule
Call a pair {pi, pj} of tower
primes a prediction at rung k when its −χ =
(pi−1)(pj−1) − 1 is itself one
of the first k primes — necessarily absent from the pair. New
predictions at rung k come from exactly two sources: the twin term
{2, pk} → pk − 2, firing when
pk − 2 is prime, plus one prediction per
factorization pk + 1 = ab with a + 1 and
b + 1 smaller tower primes. (A new prediction must involve
pk; as a pair element its target
≥ 2pk − 3 escapes the set unless the partner is
2, and as a target it forces the factorization.) A rung admitting
at least one such factorization is rich — typically a highly
composite pk + 1 (pk = 71:
72 = 2³·3², three new predictions) — and richness requires
pk ≡ 3 (mod 4), both factors of
pk + 1 being even. Censused to 5·10⁷: 599,875 of
3,001,134 rungs are rich (20.0%; 40.0% of the 3-mod-4 class), and
rich rungs outnumber twin rungs 2.51× with the ratio growing — the
factorization term dominates the long-run prediction supply. Behind
the supply is a law: a factorization pk + 1 =
ab with q = a + 1 and r = b + 1
prime puts pk = (q − 1)r − q,
a prime pair on a line, so the supply up to x is a
Hardy–Littlewood sum — the twin-prime heuristic's count of
the prime pairs (r, (q − 1)r − q), summed
over primes q ≤ √x — which tracks the census within
0.6% in every decade from 10⁴ and has the shape
2C2A·x lnln x/(ln x)²
with A = ∏ℓ odd(1 + 1/((ℓ − 1)(ℓ − 2))) = 1.743,
so the supply's limiting constant is 2.301 (a heuristic, derived
within the model and not proved), the census's own 2.53–2.58 being
that law's reading at finite x, falling toward the limit.
Scope. The rule is proved and verified
k = 3..24; the census is exhaustive to p ≤ 5·10⁷; the supply law is
the Hardy–Littlewood heuristic, its constant a derivation within it;
sub-rings on three or more primes name primes beyond this count (the
naming criterion above governs them).
verifiers:
explore_seed_flower_k8.py,
explore_rich_rungs.py,
explore_rich_rung_constants.py
The primality
gate rule
A sub-ring names −χ itself, and nothing else, exactly when
−χ is prime — the gate on every naming — and −χ arrives
pre-sieved: odd, and coprime to every member prime (the naming
criterion above). The gate still closes. Over the sub-rings of rung k
on two or more primes, the fraction with −χ prime falls 82%
(k = 4) → 45% (k = 8) → 12.9% (k = 20, all 1,048,555 of them) → 7.3%
(k = 32) → 3.3% (k = 64) → 1.5% (k = 128), with no floor, while the
count of such sub-rings still multiplies about 1.9× per rung (110 at
k = 8, 135,556 at k = 20) and the fraction at k = 20 is nearly flat
across sub-ring sizes 8 to 18 (12–13%) — a larger −χ is
thinner in primes but has fewer small primes left free to divide it.
A Cramér model conditioned on the pre-sieving — divisibility by every
prime ≤ 100 checked exactly per sub-ring, survivors weighted
1/(ln(−χ) ∏(1 − 1/s)) over the primes s ≤ 100
and the members — tracks the fraction at 0.97–1.07 from k = 8 on,
and its mean is a product: every odd prime p ≤
pk contributes 1 + 1/(2(p − 1)), since a
member, at probability ½, never divides and lifts the weight by
(1 − 1/p)−1, while a non-member divides with
probability 1/p — −χ mod p being equidistributed
off members, at k = 20 within 0.2% at every odd p ≤ 71 but
59 — and lifts the survivors by the same factor; 2 contributes
exactly 2. So the fraction ≈ 2∏(1 + 1/(2(p − 1))) ·
E[1/ln(−χ)], and E[1/ln(−χ)] ≈
2/θ(pk) for θ(x) =
Σp ≤ x ln p, Chebyshev's function,
since ln(−χ) is ln N up to lower order and ln N
averages θ(pk)/2 over sub-rings. That form
sits within 10% of the model from k = 10, 3% from k = 20 and 0.1% at
k = 128, above it throughout. By Mertens' theorem the product grows
like √(ln pk), so the fraction goes to zero at rate
C√(ln pk)/θ(pk)
with C = 2K√(2eγ) = 3.904,
K = ∏p odd(1 + 1/(2(p − 1)))√(1 −
1/p) = 1.0342: the measured fraction times
θ(pk)/√(ln pk) sits between
3.7 and 4.2 from k = 8 to 128, and that band is Mertens' finite
product over the first k primes read against √(ln
pk), within 2.7% of C from k = 10 and
descending toward it.
Scope. The pre-sieving is proved; the census
is a rule to k = 18 (a deterministic Miller–Rabin base set) and a
25-base test at k = 19 and 20, a sampled pattern from k = 24 to 128;
the model is a heuristic, and the rate and the constant are
derivations within it, not proofs; the product form is a rule in
range against the model.
verifiers:
explore_chi_primality.py,
explore_chi_decay_constant.py
The gate says how often a sub-ring names; the other question is how
far. The horizon H(k) is the largest prime any sub-ring of
rung k names.
The prediction
horizon rule
The horizon is the primorial up to a small drop. Every proper sub-ring's
−χ is below the full ring's (rung k itself), −χ(rung k) =
pk# · (k − 1 − Σ 1/pi), divided by
the product of the tower primes it drops, so the horizon sits at a
sub-ring dropping little, and H(k) = −χ(rung k)/Dk
defines the drop Dk ≥ 1. Certified to k = 60
by walking the sub-rings in increasing dropped product, stripping the
primes ≤ 105 from each −χ and testing the cofactor,
until the bound falls below the horizon found (a composite cofactor's
largest prime is bounded below the horizon at every rung): the full
ring attains at 8 of the 58 rungs, the last at k = 28; a single
dropped prime at 35; Dk under 76 at every rung but
three and under 209 at all. So the per-rung rate is, exactly,
log2(H/pk)/k =
[θ(pk) + ln(k − 1 − Σ 1/pi)
− ln pk − ln Dk]/(k ln 2), and it
rises like log2 k: 3.24 bits at k = 11, 4.29 at 20, 5.45 at
40, 6.27 at 60. The horizon is
pk#1 + o(1) — super-exponential in k,
exponential in pk — as long as ln Dk
= o(k). The drop is modelled by the first prime −χ over
sub-rings ordered by dropped product d, each prime with chance
(eγ ln pk/ln(−χ)) ·
φ(d′)/d′, d′ the odd part of d
(−χ is always odd and coprime to every member, Mertens' theorem
pricing that certainty), together with the composite route: −χ
= c · prime, c an odd product of the dropped primes,
names −χ/c with the same chance divided by c, at
drop dc. That route attains the horizon at 2 of the 58 rungs
(k = 22 through c = 9, k = 53 through c = 3) against 1.6
modelled, and the mean of ln Dk over k = 13..60 is
2.87 measured against 2.66 modelled, 1.2 standard deviations of the
model's own spread (0.18; the 48 rungs' empirical spread 0.19). The
rate is not monotone — it dips at k = 12, 15, 18, 21, … — and the dips
are the drop's noise, not a change of law.
Scope. The horizons, the drops and the route's
count are a rule to k = 60 by certificate (a deterministic Miller–Rabin
base set below 3.3 · 1024, a 25-base test above it, from
k = 19); the rate identity is a property; the super-exponential limit
is a heuristic law resting on ln Dk = o(k), which the
model predicts and the range shows; the drop model is a heuristic and
its fit a pattern.
verifiers:
explore_horizon_rate.py,
explore_horizon_route.py
A machine that names primes it has never met invites the opposite
question: which ones does it miss, and why those? At rung 7 the first
miss is 41, and the reason it escapes is the reason the whole question
is a counting one.
Why the naming
misses pattern
Read the criterion above as a search. An absent prime s is named
by a sub-ring on m primes exactly when the m inverses
pi−1 mod s sum to m − 1, so naming is a
subset-sum question in Z/s — which subsets of the k
inverse values reach which residues — and a miss is a prime for
which no subset of any size m reaches its own target
m − 1. At rung 7 the seven inverses mod 41 are
{21, 14, 33, 6, 15, 19, 29}; their 127 subset sums cover 37 of the 41
residues, yet no subset of any size m sums to m − 1, so
41 is named by no sub-ring of that rung. The next prime breaks the deadlock at once:
−χ({17, 19}) = 16·18 − 1 = 287 = 7·41.
Misses are accidents of coverage rather than structure. Take the
inverses to be pseudo-random — spread through Z/s as
uniform independent values would be, carrying nothing of the tower's
own arithmetic — and the 2k − 1 non-empty sub-rings
give a
miss probability (1 − 1/s)2k−1, which
the observed rates match within sampling noise at every measured
rung, and to under a point at the two quoted: over the primes from
pk+1 up to 10pk, 22.6%
predicted against 21.9% observed at rung 7, and 9.0% against 8.8% at
rung 8. The shape is the coupon collector's — draw at random
until every residue has been seen — and its threshold is what the
tower pays for full coverage of Z/s: about 1.36 log₂ s primes,
with the coupon-collector form log₂(s·H(s)) — H the
harmonic sum 1 + 1/2 + ⋯ + 1/s — predicting the measured value to
0.8%. Naming is
cheaper than coverage, needing one target hit rather than every
residue reached: 7.2 primes on average against 9.6.
That threshold is where the classical bound parts company with
this object. The Davenport constant D(G) of a finite
abelian group is the least length at which a sequence of its elements
must contain a non-empty zero-sum subsequence — one summing to
the identity — and for a cyclic group it is the group's own order,
D(Z/s) = s. Erdős–Ginzburg–Ziv asks a stricter question, a
zero-sum subsequence of exactly s terms, and answers it at 2s − 1.
Over
26 primes s = 73..199 the tower reaches full coverage with about a
fourteenth of the first and a twenty-eighth of the second, because a
Davenport constant answers for an adversarial sequence and these
values are pseudo-random: the effective constant here is O(log s).
(The same invariant is read of a class group in the Growth section,
where it budgets what element-coprimality
misses; the notion is one and the group is what changes.)
One apparent structure was tested at scale and did not survive.
The primes {41, 83, 167} form a Cunningham chain — each the
double of the one before, plus one — and all three were missed whole
at rung 7, a 0.44% coincidence with the model above applied to each of
them independently, which suggested that chained primes miss
together. Over every prime s ≤ 20,000 the
model instead tracks the rung at which s is first named (residual
mean +0.12, sd 1.74, 2,258 primes), and the 187 Sophie
Germain pairs — s and 2s + 1 both prime, which is the first link
of such a chain — show no residual correlation at all (−0.002,
permutation p = 0.98). Of the 26 chain triples in range,
{41, 83, 167} carries the largest residual sum, and it is the fluke
itself rather than a mechanism.
Nor is naming a sieve question wearing other clothes. When the
named prime is one the tower already holds, the sub-ring's primes do
reduce mod s and which residues turn up as letters is a
primes-in-progression question — but with far more than log₂ s
letters the subset sums cover whatever the residues are, so additive
closure washes that dependence out. Where the letters are sparse
enough to bite, s is far past pk, nothing reduces,
and the letters are exact inverses with no progression content in
them. Naming is a Davenport-constant question at both ends.
Scope. The subset-sum reading is proved — it
is the criterion above restated. The random model and the coverage
threshold are patterns: the model is measured at k = 4..12 and the
threshold over 26 primes s = 73..199 (ratio range [1.25, 1.50]). The
chain refutation is an observation over primes s ≤ 20,000, its pair
tests run on detrended residuals. The rung-7 figures are exhaustive.
The two-regime argument is a framing and not a measurement: it
argues from the regimes already stated and computes nothing new.
verifiers:
explore_missed_primes.py,
explore_davenport_egz.py,
explore_cunningham_bias.py
The naming map iterates. Any squarefree set of primes is a tower ring,
so sending a set to the prime support of its −χ is a self-map on
designed towers, and the orbit lives on the lattice of prime sets rather
than inside any one rung.
The seed-flower
operator observation
Write F(S) for the prime support of
|−χ(S)|. Three structural laws fall out of the naming
criterion above. F is fixed-point-free: no member prime
divides −χ, so F(S) is disjoint from S and
any cycle needs period at least 2. 2 is never named, −χ
being always odd, so after one step every orbit lives on odd primes —
and since |−χ| = 1 only at singletons and at {2, 3}, which is
therefore unreachable, every death except a seed placed at {2, 3}
itself runs through a singleton — the support of the predecessor's
prime-power −χ value. And F shrinks, with the sets it cannot grow
from named exactly: −χ(S) < N(S) exactly
when ∑p∈S 1/p > m − 2, which
holds on every support of size 1 or 2, on {2, 3, 5}, and on nothing
else — at three primes the largest reciprocal sum is 31/30 and the
next is 41/42, at four it is 247/210 against a bar of 2, and each
further prime moves the slack by 1/p − 1 < 0. Since
N(F(S)) is a radical of |−χ|, no set in
that class can grow. The converse does not hold: outside it growth is
permitted, not forced.
Death — reaching the empty set — is then the near-universal fate.
All 127 sub-rings of the k = 7 rung die, median 2 steps and maximum
15, the slowest being {2, 5, 7, 11, 13}, which wanders up to 90143
first; 2044 of the 2047 subsets of the first eleven primes die; and no
cycle of any period occurs anywhere in 12,111 computed steps. The
named flowers wilt fast: {2, 3, 5} → {29} → ∅, and
{2, 3, 5, 13, 17} — whose −χ is 18769 = 137² — → {137} → ∅,
and the full k = 7 ring in five steps. Restricted to the k = 7 primes,
where 14 of the 127 sub-rings have their image, the graph is a forest,
and the longest life staying inside them is four sets:
{2, 3, 13} → {5, 17} → {3, 7} → {11} → ∅.
Scope. The three laws are properties, proved
and checked at every computed step; the skeleton of steps staying
inside the rung's own primes is exhaustive at k = 7; the fates are one sweep at the stated ranges. An orbit is
followed until a value exceeds
1018, past which it is not factored and the support is
unknown: five orbits across the sweeps escape that way, and each is
one that strung together long runs at support 3 or more, the only
supports where a step can grow at all — about 80% of the time at
supports 3 to 5, less above them. Whether any escape grows forever is
aliquot-flavoured, and untestable past the bound.
verifier:
explore_seed_flower_operator.py (13 checks)
The orbit also has a geometric reading. −χ is an invariant of
a complex each rung carries, so the operator maps that shape alone —
the descent to homotopy types, the collision census that makes it
non-vacuous, and why no covering or ring map realizes it are
stated with the
geometry.