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

p11++pm1    m1(mods),p_1^{-1} + \cdots + p_m^{-1} \;\equiv\; m-1 \pmod{s},

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)rq, 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)rq), 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 ppk 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) = Σpx 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 ∑pS 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.