The Object

The definition, the deleted place, the first fourteen rungs and what is born along them.

The identity

A channel is a residue window: reduction at one finite place. The rung Z/pk# reads the first k windows simultaneously — every element is a unique k-tuple of residues, arithmetic decomposes window by window, no window sees another's content:

Z/pk#    F2×F3×F5××Fpk\mathbf{Z}/p_k\# \;\cong\; \mathbf{F}_2 \times \mathbf{F}_3 \times \mathbf{F}_5 \times \cdots \times \mathbf{F}_{p_k}

Each rung is nested in the next, Z/6 ⊂ Z/30 ⊂ Z/210 ⊂ ⋯, and each is a finite section of one ambient object: the product of all prime fields.

The CRT encode/decode and per-channel arithmetic the verifier scripts import is one small shared library, crt.py.

The limit object rule

The inverse limit of the tower along its rungs is the full product of the prime fields, one free residue per prime:

limkZ/pk#  =  pFp\varprojlim_k \mathbf{Z}/p_k\# \;=\; \prod_p \mathbf{F}_p

Every exponent stays 1, so no Zp ever forms: the limit is not the profinite completion = ∏p Zp. The two differ by exactly the radical, ∏p Fp = /J(): the tower's limit is the semisimple quotient.

Scope. The transition maps are channel-forgetting projections (checked exhaustively for k ≤ 5, sampled at k = 6, 7); the identification of the limit is algebraic.

verifier: explore_limit_object.py

The deleted place

The construction removes exactly one window: the archimedean place. Size, sign, comparison, carries, overflow — none is a channel quantity, and no reading of a proper subset of windows recovers one: to every strict channel subset, the size of an element is essentially uniform. Measuring this deletion and its echoes — which functions can be read through which windows, and at what price — is its own section (Walls).

The blueprint — the handful of properties the construction fixes, stated in full on the front page — has one entry that quietly re-imports what was deleted: the error-correction guarantee is a height cut on integer points. Redundancy is a property of the integers under a bound, never of the product ring — in the limit there is no archimedean place, no height cut, and no code.

The first fourteen rungs

The table is recomputed from the definitions at every build: N = pk# is the modulus, φ counts the units, and λ is the Carmichael exponent (below). The error-correcting code comes from the tower split — the first k−3 primes carry data, the last 3 parity, an MDS code of distance 4 from k = 4 on (more data than parity from k = 7), so the ECC rate is (k−3)/k. N and φ are shown as magnitudes; the exact values are in explore_lambda_tower.py.

kp_kNphi(N)lambda(N)transp.ECC rate
353084
4721048121/4
5112,310480602/5
61330,0305,76060yes3/6
7175.11e592,1602404/7
8199.70e61.66e67205/8
9232.23e83.65e77,9206/9
10296.47e91.02e955,4407/10
11312.01e113.07e1055,440yes8/11
12377.42e121.10e1255,440yes9/12
13413.04e144.41e1355,440yes10/13
14431.31e161.85e1555,440yes11/14
The sieve identity property

Along the primorial trajectory the tower is the algebraic form of the sieve of Eratosthenes — identity, not analogy: sieving by p is reading the window at p and discarding the zero fiber. The survivors of the k-prime sieve are exactly the units of Z/pk#; each sieve step is the CRT projection onto one channel; the 2k inclusion–exclusion terms are the 2k idempotents; the survivor count is φ(pk#), the inclusion–exclusion formula itself.

Scope. A term-by-term dictionary — units, idempotents, φ, λ, the error-correcting split — with each computable row verified in the script.

verifier: explore_sieve_connection.py

Read the units as the sieve's survivors and one question becomes arithmetic about the channels: step off a non-survivor by ±g for a ring prime g — does the step land on a survivor?

The generator-step escape rule

Let n be a non-unit, S the set of ring primes dividing it — the channels where n reads 0 — and take the coupling class of n to be every element with exactly that null set. For a signed generator step ±g: if gS no member of the class escapes at all, since g divides both the element and the step. If gS, exactly (g−1)·∏(p−2) of the class's ∏(p−1) members land on a unit, both products running over the primes outside S and the first also skipping g — an escape probability

pS,  pgp2p1.\prod_{p \notin S,\; p \neq g} \frac{p-2}{p-1}.

The factor at p = 2 forces a parity dichotomy: an odd non-unit escapes only via ±2, every odd step landing even — the 2-boost — while an even one escapes via any odd gS and never via ±2. Every nonzero class has positive escape probability and the class {0} alone has none. The law is class-level, not per-element — individual stuck non-units exist, 122 of them in Z/2310, among them 119 with both ±2 neighbours non-units.

Run the same product with no channel dead at all — a survivor stepping by 2 rather than a non-survivor escaping — and it is a known density: ∏3≤ppk(p−2)/(p−1) is exactly the conditional twin-survivor density of the k-prime sieve, the chance that n + 2 survives given that n does — 22,275/92,160 = 0.2417 at k = 7 — with Mertens asymptotic 2C2eγ/ln pk for C2 the twin prime constant (ratio 0.9999 by k = 10⁵). The twin-survivor density is a built-in channel statistic.

Scope. Proved for all k within a class — CRT runs the non-null residues over every nonzero tuple exactly once — and verified exhaustively for k ≤ 7.

verifier: explore_unit_escape.py

The genesis ladder

Reading the rungs as a chronology: which capabilities exist at rung k, and for how long. The provenance ladder pins each obstruction down to its minimal carrier; the genesis ladder is its mirror — each capability pinned up to its birth rung.

The genesis ladder rule

Channels only accumulate along the trajectory, so a capability's temporal fate is its quantifier shape over channels. An ∃-shaped capability (some channel carries the defining property) is monotone: born at the rung of the least qualifying prime, immortal. A ∀-shaped one is anti-monotone: dead at the rung of the least failing prime, forever — 2 and 3 are permanent vetoes. A conjunction of the two is born and mortal (the Fano-plane structure, born at rung 5, dead at rung 6, is the chart's one specimen); walls are ∃-shaped over substructure, so walls never heal. The chart saturates: every mortal row is dead by rung 6, and the last qualitative birth — an ECC rate above 1/2 — lands at rung 7. Past it, births are parametric and Linnik-priced: an order-m element exists at rung k iff m | λ(k), so its birthday is set by least primes in arithmetic progressions — order 23 arrives at rung 15 while order 19 waits until rung 43, and m ≤ 200 already needs the prime 3547 (rung 497).

The i specimen: √−1 — the archimedean form of i — dies at rung 2 under 3's veto, while i as rotation (an order-4 element) is born at rung 3, immortal. The tower keeps the turn and discards the square root.

Scope. The fate rule and the birthday formula are proved; accumulation is the only ingredient, so a designed tower chooses its own vetoes (skip 3 and √−1 lives on every rung whose odd primes are ≡ 1 mod 4). The chart is computed per rung with each row's direction verified; the birthday formula is swept exact for m ≤ 200.

verifier: explore_genesis_ladder.py

Lambda and transparency

The universal period of the power maps at rung k is the Carmichael exponent λ(k) = lcm(p1−1, …, pk−1): every unit satisfies xλ = 1. Along the tower it runs 1, 2, 4, 12, 60, 60, 240, 720, 7920, 55440, … — and the repeats are the interesting part.

The transparency criterion property

Adding pk jumps λ iff pk − 1 introduces a prime-power factor not already present in λ. Otherwise pk is lambda-transparent: capacity grows (φ, idempotents) but no new dynamical complexity appears. The criterion: pk is transparent at rung k iff (pk − 1) | λ(k−1).

Scope. All k, by construction. Computed landscape k = 1..50; the first transparent prime is 13 at k = 6, where φ(13) = 12 divides λ(5) = 60.

verifier: explore_lambda_tower.py

The tower thus alternates between two growth modes: complexity rungs, where λ jumps and new orbit periods appear, and capacity rungs, where a transparent prime adds space on the same dynamical skeleton. In the limit the balance tips entirely to capacity — the transparency density approaches 1, a theorem whose proof and rate live in the density theorem.

The primes that appear as factors of λ enter in an order of their own, governed by Linnik's function L(q) = the least prime p ≡ 1 (mod q) — the same function that prices the element birthdays in the genesis ladder above, since an order-q element and the prime q in λ arrive at the very same rung. It inverts the natural order: 11 enters before 7 (L(11) = 23 < L(7) = 29), 23 before 13 (47 < 53), and 17 — a ring prime already at rung 7, where it contributes 2⁴ — becomes a factor of λ in its own right only at rung 27, via p = 103.

The Linnik ordering rule

No rung's pk − 1 ever contributes two never-before-seen prime factors to λ: each rung introduces at most one new prime, so the introductions are injective and the entry order is well defined. Verified exhaustively through k = 3,001,134 — every prime p ≤ 5·10⁷.

The margin is not thin. In every one of the 414,894 introductions the new prime is the largest factor of p − 1, and near misses — a co-factor of p − 1 that entered outside the first 10% of the rungs below k — die out at k = 43, nine events in total, the last at p = 191. A collision needs a prime p ≡ 1 (mod 2q1q2) for two new primes q1, q2 at once, each of them having dodged roughly the other's size over ln(q1q2) earlier chances to enter.

Scope. Exhaustive to p ≤ 5·10⁷; a proof for all k is open, so always injective stays a conjecture. Under a Cramér/Dirichlet model the expected number of collisions beyond the checked horizon is about 10−8031 — a heuristic, not evidence of the kind the rule above rests on. The serial ledger below certifies injectivity itself much further, for every p ≤ 10¹⁶.

verifier: explore_linnik_injectivity.py

The ordering rules out two never-before-seen primes arriving at one rung. The full ledger law is stronger: counting prime powers — so that a rung raising an exponent already present (2² at p = 5, 2⁴ at p = 17, 3² at p = 19) counts as a birth too — every jump of λ still delivers exactly one.

The serial ledger rule

Every jump of λ introduces exactly one new prime power, never two — at k ≤ 2000 the 468 jumps split into 438 that bring a new prime and 30 that only raise the exponent of one already present, none both. What the law is: write L(m) for the least prime ≡ 1 (mod m), Linnik's function above read at prime-power moduli. Adding the prime p raises the exponent of q in λ iff p = L(qj) for some j ≥ 1 — iff p is a record, the first prime a progression 1 mod qj ever sees. The record sets {L(qj) : j ≥ 1} are classical objects — in base 2 the record is 2j + 1 exactly when that number is prime, the Fermat primes — and the law claims nothing about any one of them: it says they are pairwise disjoint across bases. A violation would be a single prime standing as the least in two prime-power progressions with distinct bases; both moduli then divide p − 1, and being coprime so does their product, so the smaller is ≤ √(p − 1): every violating prime up to 10¹⁶ is the record of some modulus below 10⁸. Scanning them all, then testing each record prime against every prime-power divisor of its p − 1 — so the larger witness is caught without being scanned — decides every prime up to 10¹⁶, and finds no violation: 5,762,848 record primes, zero collisions. The closest call anywhere is 7 = L(3) against L(2) = 3, a ratio of 7/3; above p = 600 no ratio is below 34.6.

Scope. The record characterization is proved (a criterion); disjointness — hence the law — is verified for every prime p ≤ 10¹⁶. Beyond that it is a conjecture with a convergent price: a rival modulus m at a record prime p requires every prime below p to have missed a progression of density 1/φ(m) — chance about exp(−π(p)/φ(m)), summable over the records with its mass at the small primes already enumerated. So the law should hold for every p while sitting past the same wall as the ordering above: a proof needs least-prime control at every modulus and scale at once.

verifier: explore_double_birth.py

Designed towers

The primorial path is one trajectory through a lattice: any squarefree set of primes is a tower ring with the full blueprint — fields, total division, idempotents, an MDS code where the split is sized. The sieve identity is primorial-specific; the blueprint is not. The Walls section carries the charted specimens, including the internet-checksum ring Z/(216−1) and its machine-word family.

The seed-flower

A sub-ring on m of the tower primes, N their product, carries the integer −χ = N(m−1) − Σ N/pi, whose prime factors are routinely tower primes the sub-ring does not contain — {3, 5} gives 7 — and one congruence governs every such naming: an absent prime s divides −χ exactly when the members' inverses mod s sum to m − 1, so naming reads residues and nothing else. The long-run supply of new namings is a Hardy–Littlewood sum over the factorizations of pk + 1; the fraction of sub-rings whose −χ is itself prime decays with no floor, at a rate derived within a conditioned model; a missed prime is a subset-sum accident at the rate a random model predicts; and iterated, the naming map is fixed-point-free and drains almost every orbit to the empty set: The seed-flower.