How quickly does the empirical lift ratio converge to its limiting constant?
This explorer reveals the convergence rate of R(N), counts sign changes
as a probe toward the Riemann Hypothesis, and measures the leading coefficient
of the error — empirical rate consistent with O(1/N), faster than 1/log N. Rate is a numerical conjecture, not yet proved analytically.
For each integer M, the lift weight L(M) is the local joint coprimality
density of the consecutive pair (M, M+1) — the proportion of integers up to M expected
to survive coprimality with both. Since gcd(M, M+1) = 1 always holds, the multiplicativity
of φ across coprime moduli gives the density weight:
L(M) = φ(M) · φ(M+1) / (M+1)
The lift ratio R(N) = Σ L(M) / Σ φ(M) accumulates these density weights
up to N. As N → ∞, R(N) converges to the constant C — a remarkable Euler product
over all primes encoding the joint coprimality structure of consecutive integers.
The floor-function corrections to L(M) are bounded by 2ω(M) per term and
cancel in the cumulative ratio, leaving R(N) → C with E(N) = O(1/N).
The error term E(N) = R(N) − C is what this tool puts under the microscope.
The Lift Survival Constant
C = ∏p prime (p² − 2) / (p² − 1)
Euler product over all primes. Converges absolutely. Related to ζ(2) and OEIS A065469.
Known Convergence Rate
R(N) → C (proved) E(N) = O(1/N) (conjecture)
R(N) → C is proved. E(N)·N is bounded and oscillating to N = 2,000,000 — consistent with O(1/N) but this rate is a numerical conjecture. The c₁/log N comparison is a heuristic, not a proof.
Leading Coefficient
c₁ = −C · Σp log p / (p² − 2)
The sum over primes converges. Its sign governs from which side R(N) approaches C.
The Relation to 3/π²
C · (π² / 3) encodes ζ(2) correction
The constant 3/π² = 1/ζ(2) appears as the natural normalisation coefficient alongside C.
Sign Change Counter
#{N ≤ X : E(N) changes sign} → ∞
Sign changes of E(N) are an RH signal — the error oscillates rather than decaying monotonically.
Jump Theorem Prime Checker
The Jump Theorem — Layer 05
D(x) jumps at exactly the primes
The log-derivative D(x) = d/dx log C(x) is smooth everywhere
except at the primes. At x = p−1 it jumps by exactly
1/(p(p−1)). Composites pass in silence.
Given a jump size s, recover the prime exactly:
p = (1 + √(1+4/s)) / 2.
The golden ratio φ is the supremum of the spectrum —
s = 1 is the only value no integer prime reaches.
Prime Checker
Enter any integer n ≥ 1. Computes C(n−1) and C(n),
detects whether D(x) jumps at x = n−1, recovers the prime
from the jump size, and verifies the discriminant. Try n = 1 for the golden ratio φ — the boundary of the jump spectrum.
Jump Spectrum — φ boundary to primes
Presets:
Display:
Enter n ≥ 1 and press Check — or click a preset above.
Prime Light — Wave Structure of E(N)
E(N) oscillates like a coherent optical wave. Its sign changes are nodes, its amplitude decays as O(1/N), and its spectral structure mirrors the imaginary parts of the Riemann zeros. The 3D wave below is computed live from the Euler-product sieve.
N=650E(N)=—nodes=—
Wave Animation Controls
CAM SPEED7
AMPLITUDE350
N RANGE650
ELEVATION26
ORBIT R85
Wave Analogy Framework
E(N) as a Coherent Optical Wave
Destructive / Constructive
A large prime gap acts like destructive interference — a deep trough in E(N). The system immediately produces a compensating prime cluster, snapping the wave back toward the carrier.
Damped Standing Wave
The O(1/N) decay conjecture means the oscillation amplitude shrinks. The system behaves like a damped standing wave — stable, self-correcting, and coherent even as gaps between sign changes grow astronomically.
Wave Nodes
Points where R(N) = C exactly. Under RH, these nodes occur infinitely often with increasing gaps — mirroring the Skewes phenomenon for π(x) − li(x).
Riemann Zero Harmonics
The imaginary parts γk of the non-trivial zeros ρk = ½ + iγk are conjectured to govern the oscillation frequencies. This is the explicit formula analogy — not yet proved for R(N). (Speculative)
H · 01Riemann Zero Harmonic DecompositionLIVE · INTERACTIVE
ZEROS k6N RANGE400
Gold: actual E(N) from the Euler-product sieve. Teal→Violet: partial harmonic sum Sk(N) = Σ Aj·cos(γj·log N). Each zero refines the approximation. Note: the explicit formula connection for R(N) is conjectural, not proved.
E · 01E(N) Wave — Interference Pattern
N800
R(N): —E(N): —nodes: —
Violet: E(N) > 0 (prime cluster ahead of expectation). Teal: E(N) < 0 (gap larger than mean). Teal verticals: sign-change nodes. Faint gold: prime positions.
Eight views of convergence
The Explorer’s Panels
Eight Charts, One Story
Note (2026): E(N)·N is bounded and oscillating to N = 2,000,000, consistent with O(1/N). Convergence of R(N) → C is proved; the O(1/N) rate is a numerical conjecture pending analytic proof.
Each panel plots real computed values — sieve → φ(M) → L(M) → R(N) → E(N) —
for N up to 100. Press play to animate point by point.
N
—
E(N)
—
|E(N)|
—
R(N)
—
Chart 01
|E(N)| convergence — consistent with O(1/N) conjecture
Absolute error with fitted gold envelope. E(N) = O(1/N) —
the ratio structure of R(N) produces extra cancellation
beyond the naive 1/log N prediction.
N
—
E·logN
—
c₁
—
Chart 02
E(N) · N → bounded
E(N)·N is bounded and oscillating — the empirical rate is consistent with O(1/N) (conjecture),
faster than the naive O(1/log N) prediction.
N
—
log|E|
—
log(logN)
—
Chart 03
log|E(N)| vs log(log N) · slope → −1
Log–log diagnostic. Empirical slope is steeper than −1,
consistent with E(N) = O(1/N). Gold dashed line at slope = −1
shown for reference. Breaks are sign changes of E(N).
N
—
E(N)
—
sign
—
SC count
—
Chart 04
Signed E(N) · prime markers · sign-change dots
Full signed oscillation of E(N). Gold ticks mark every
prime; coral dots mark sign changes of the error term.
N
—
π(N)
—
SC(N)
—
SC/π
—
Chart 05
SC(N) / π(N) — sign changes per prime
Ratio of cumulative sign changes to cumulative prime count.
Grows with N if O(1/N) conjecture holds.
Its growth rate is an open analytic question.
N
—
SC count
—
last gap
—
Chart 06
Sign change gap distribution
Histogram of gaps between consecutive sign changes of E(N).
An exponential tail is consistent with pseudo-random
prime-driven oscillation.
N
—
lf=φ(M)/MC
—
prime?
—
Chart 07
Local lift factor φ(M) / (M · C)
Each term pushes R(N) up when this factor exceeds 1,
down when below. At M = prime the factor is maximal.
Teal bands mark prime positions.
N
—
E(N)
—
E_χ₄
—
Chart 08
χ₄-restricted E(N) · gcd(M,4) = 1
E(N) restricted to M ≡ 1 or 3 (mod 4), scaled by conductor
×4. Connects to the Farey–χ₄ discrepancy and zeros of
L(s, χ₄).
Verified numerics
Benchmark — E(N) = O(1/N) to N = 2,000,000
Python computation using a linear sieve for φ(M), accumulating R(N) = Σ L(M) / Σ φ(M) and measuring |E(N)| = |R(N) − C|.
Sampled every 10,000 steps; 200,000 data points fit by ordinary least squares on log|E| vs log(N).
N
E(N)
|E(N)|
|E(N)|·N
SC count
max|E|·N so far
50,000
−1.1989e−06
1.1989e−06
0.0599
35,163
0.8745
100,000
+4.1882e−06
4.1882e−06
0.4188
70,178
0.8745
200,000
+3.4160e−07
3.4160e−07
0.0683
140,354
0.8851
500,000
−3.9158e−08
3.9158e−08
0.0196
351,879
0.9059
1,000,000
+3.8650e−07
3.8650e−07
0.3865
704,986
0.9170
2,000,000
−1.0496e−07
1.0496e−07
0.2099
1,416,927
0.9290
REGRESSION SLOPE
−0.9979
log|E| vs log(N) over 200k points. Slope −1.0 = O(1/N). Consistent to 3 decimal places.
MAX |E(N)|·N
0.9290
Envelope bound at N=2M. Bound appears to stabilize below 1. New maxima become increasingly rare.
SIGN CHANGES
1,416,927
In 2M steps — nearly every step. Dense oscillation forces the O(1/N) envelope via cancellation.
Chart 03 (log|E(N)| vs log(log N)) is the sharpest visual test — the slope of the data cloud directly measures the convergence rate. A slope of −1 on that log–log plot is the O(1/N) signature.
Requires Python 3.6+, no dependencies. Runtime: ~30s at N=500k, ~2min at N=2M.
import math, sys
# ── Lift Survival Function — E(N) = O(1/N) benchmark ────────────────────────
# Wessen Getachew · math.NT · 2026
# Usage: python benchmark.py [N] (default N=200000)
N = int(sys.argv[1]) if len(sys.argv) > 1 else 200_000
C = 0.530711806246 # Lift Survival Constant
print(f"Sieving φ to N={N:,}...")
# Linear sieve for Euler's totient φ
phi = list(range(N+2))
primes, is_prime = [], bytearray([1])*(N+2)
is_prime[0] = is_prime[1] = 0
for i in range(2, N+2):
if is_prime[i]:
primes.append(i)
phi[i] = i - 1
for p in primes:
if i * p > N + 1: break
is_prime[i*p] = 0
if i % p == 0:
phi[i*p] = phi[i] * p
break
else:
phi[i*p] = phi[i] * (p - 1)
print(f"Computing R(N) and E(N)...")
sumL = sumPh = 0.0
prev_sign = None
sc = running_max = 0
running_max_N = 0
samples = []
for m in range(1, N+1):
sumL += phi[m] * phi[m+1] / (m+1)
sumPh += phi[m]
if m < 100: continue
R = sumL / sumPh
E = R - C
sg = 1 if E >= 0 else -1
if prev_sign is not None and sg != prev_sign: sc += 1
prev_sign = sg
val = abs(E) * m
if val > running_max:
running_max = val; running_max_N = m
if m % max(1, N//500) == 0:
samples.append((m, E, abs(E)))
# Print table
print(f"
{'N':>10} {'E(N)':>14} {'|E(N)|':>12} {'|E|·N':>8}")
for m, E, aE in samples[::max(1,len(samples)//12)]:
print(f"{m:>10,} {E:>+14.6e} {aE:>12.6e} {aE*m:>8.4f}")
# Regression slope
xs = [math.log(m) for m,E,aE in samples if aE > 1e-15]
ys = [math.log(aE) for m,E,aE in samples if aE > 1e-15]
n = len(xs); xm=sum(xs)/n; ym=sum(ys)/n
slope = sum((x-xm)*(y-ym) for x,y in zip(xs,ys)) / sum((x-xm)**2 for x in xs)
print(f"
Results at N={N:,}:")
print(f" R(N) = {(sumL/sumPh):.12f}")
print(f" C = {C:.12f}")
print(f" E(N) = {sumL/sumPh - C:+.6e}")
print(f" |E(N)|·N = {abs(sumL/sumPh - C)*N:.4f}")
print(f" max |E(N)|·N = {running_max:.4f} at N={running_max_N:,}")
print(f" Sign changes = {sc:,} ({sc/N*100:.1f}% of steps)")
print(f" Regression slope = {slope:.4f} (O(1/N) predicts -1.0)")
# Optional: generate graph with matplotlib
try:
import matplotlib.pyplot as plt
fig, axes = plt.subplots(1, 3, figsize=(15, 4))
fig.patch.set_facecolor('#04040a')
ms = [s[0] for s in samples]; Es = [s[1] for s in samples]; aEs = [s[2] for s in samples]
ax = axes[0]; ax.set_facecolor('#04040a')
ax.plot(ms, aEs, color='#3dc8b8', lw=0.4, alpha=0.7)
ax.plot(ms, [1/m for m in ms], color='#c8a84a', lw=1.2, ls='--', label='1/N envelope')
ax.set_yscale('log'); ax.set_xscale('log')
ax.set_title('|E(N)|', color='white'); ax.legend(fontsize=7)
for spine in ax.spines.values(): spine.set_color('#333')
ax.tick_params(colors='#888'); ax.yaxis.label.set_color('white')
ax = axes[1]; ax.set_facecolor('#04040a')
ax.plot(ms, [aE*m for m,aE in zip(ms,aEs)], color='#9070d8', lw=0.4, alpha=0.7)
ax.axhline(1.0, color='#c8a84a', lw=1, ls='--', label='bound = 1')
ax.set_title('|E(N)|·N', color='white'); ax.legend(fontsize=7)
for spine in ax.spines.values(): spine.set_color('#333')
ax.tick_params(colors='#888')
ax = axes[2]; ax.set_facecolor('#04040a')
lms = [math.log(math.log(m)) for m in ms if m > 3]
lEs = [math.log(aE) for m,aE in zip(ms,aEs) if m > 3 and aE > 1e-15]
ax.scatter(lms[:len(lEs)], lEs, color='#e8904a', s=0.3, alpha=0.5)
ref_x = [min(lms), max(lms[:len(lEs)])]
ax.plot(ref_x, [slope*x + (sum(lEs)/len(lEs) - slope*sum(lms[:len(lEs)])/len(lms[:len(lEs)])) for x in ref_x],
color='#c8a84a', lw=1.2, ls='--', label=f'slope={slope:.3f}')
ax.set_title('log|E(N)| vs log(log N)', color='white'); ax.legend(fontsize=7)
for spine in ax.spines.values(): spine.set_color('#333')
ax.tick_params(colors='#888')
plt.tight_layout(); plt.savefig(f'EN_benchmark_N{N}.png', dpi=150, facecolor='#04040a')
print(f"
Graph saved: EN_benchmark_N{N}.png")
plt.show()
except ImportError:
print("
(matplotlib not installed — skipping graph)")
Run as: python benchmark.py 2000000 ·
Produces a 3-panel graph: |E(N)|, |E(N)|·N, and log|E| vs log(log N) slope diagnostic.
Direction 01
Open constant — immediate
Open question
△ Open question
The SC(N)/π(N) Limit — An Unnamed Constant
Chart 05 computes the ratio of cumulative sign changes of E(N) to the cumulative
prime count π(N). Empirically this ratio converges to a constant strictly less
than 1 as N grows. Under the O(1/N) conjecture, the error oscillates very frequently — sign changes accumulate
faster than primes. SC(N)/π(N) grows rather than converging to a constant less than 1.
The growth rate of this ratio is an open analytic question.
SC(N) / π(N) grows with N (rate unknown; O(1/N) regime is conjectured)
This limit λ is a genuine analytic object attached to the Lift Survival
Framework. It is not a known constant in the literature. Running the explorer to
N = 5000 or beyond gives a stable empirical conjecture for its decimal value.
The natural question is whether λ can be expressed in terms of C, D⊂0;,
or the zeros of ζ(s). A dedicated page isolating this constant — with
convergence plots, a conjectured value, and a comparison against known constants
— is the most immediate original contribution ready for exposition.
Live computation — SC(N) / π(N)
Empirical λ = SC/π
—
π(N) primes counted
—
Total sign changes
—
SC at prime N
—
Observation:
SC(N)/π(N) grows with N (verified: ratio ≈ 3.8 at N=500, ≈ 5.6 at N=10,000).
If E(N) = O(1/N) (conjecture), the error oscillates at nearly every step, so sign changes
accumulate much faster than primes. The growth rate of SC(N)/π(N) and whether
SC(N)/N converges to a finite limit are open questions.
Direction 02
Explorer extension — immediate
Numerical
■ Numerical
E(N) vs E⊂χ⊂4;(N) — Direct Comparison Chart
The explorer already computes both the unrestricted error E(N) = R(N) − C
and the χ⊂4;-restricted version E⊂χ⊂4;(N), which accumulates only
over M ≡ 1 or 3 (mod 4). Chart 08 shows each in isolation but never places
them on the same axes. A Chart 09 overlaying both curves would immediately reveal
whether the two error terms oscillate in phase, in opposition, or independently.
E⊂χ⊂4;(N) := 4 · (R⊂χ⊂4;(N) − C) vs E(N) = R(N) − C
If their sign-change densities differ, that is a measurable difference between
the full modular environment and the χ⊂4; sublattice — a concrete
Franel–Landau type observation. The teal dots in Chart 08 mark χ⊂4;
sign changes; overlaying them against the coral dots of Chart 04 on one canvas
would make any phase relationship immediately visible. This requires one new draw
function and no new computation.
Live comparison — E(N) vs E⊂χ⊂4;(N)
E(N) sign changes
—
E⊂χ⊂4; sign changes
—
E(N) final value
—
E⊂χ⊂4; final value
—
Observation:
Teal = E(N), gold = 4·E⊂χ⊂4;(N). Coral dots mark E(N) sign changes;
teal dots mark χ⊂4; sign changes. When the two curves oscillate in phase the
χ⊂4; sublattice mirrors the full lattice; divergence indicates that mod-4
structure introduces independent oscillation — a Franel–Landau signal.
Direction 03
Explorer enhancement — immediate
Numerical
■ Numerical
Numerical Summary Panel — The Explorer as Conjecture Instrument
The explorer currently renders 8 charts but produces no consolidated numerical
output. Adding a stat block below the charts — computed from the same data
— would transform it from a visualizer into a conjecture generator. The
panel would display: empirical SC/π limit, fitted A vs theoretical |c⊂1;|,
observed log–log slope from Chart 03, C, D⊂0;, J, T, and the χ⊂4;
sign-change density.
C ≈ 0.530712 | c⊂1; ≈ −0.376392 |
J ≈ 0.773156 | D⊂0; ≈ 0.452247 | T ≈ 0.320909
At large N the fitted A should converge toward |c⊂1;| and the observed slope
should approach −1. Displaying both alongside their theoretical targets lets
a reader immediately see how E(N)·N and E(N)·log N compare — O(1/N) conjecture is tighter empirically.
Any systematic deviation at large N would itself be an observation worth recording.
Numerical summary — all constants at N
C (Euler product)
—
c⊂1; (theoretical)
—
A (fitted)
—
|A| vs |c⊂1;| ratio
—
Observed slope
—
SC/π empirical
—
J ≈ 0.773156
0.773156
D⊂0; = Σ1/p²
0.452247
T ≈ 0.320909
0.320909
Reading the panel:
As N grows, A/|c⊂1;| should approach 1 and the observed slope should approach −1.
Divergence from either target at large N is a signal worth investigating analytically.
The SC/π empirical value is the conjectured λ from Direction 01.
Direction 04
Numerical observation — short term
Conjecture
■ Conjecture
J = D⊂0; + T — Standalone Proof
The decomposition J = D⊂0; + T has been verified numerically within the Lift
Survival Framework. J ≈ 0.773156 is the constant governing the summatory
behaviour of the lift weights; D⊂0; ≈ 0.452247 is the limit of the
prime-weighted step function D(x) = Σ⊂p ≤ x⊂ 1/(p(p−1));
and T ≈ 0.320909 is the complementary term (T = J − D⊂0; = Σ 1/(p(p−1)) − Σ 1/p²).
J = D⊂0; + T = 0.452247 + 0.320909 = 0.773156 (T defined as residual J−D⊂0;; non-trivial only if T has independent characterization)
The constants J and D⊂0; are standard (prime zeta P(2)); T is defined as J−D⊂0;. The decomposition may be original in this context but is not a theorem unless T is independently defined.
combination in the known literature on Euler products, Mertens-type sums, or
Hardy–Littlewood constants. A standalone page presenting the clean
statement, the term-by-term decomposition, and numerical verification to 10+
decimal places would establish this as a citable result independent of the
broader framework. It needs no prerequisites beyond the definitions of the
three constants.
Term-by-term verification — J = D⊂0; + T
Def. J := lim⊂N→∞ (1/N) Σ⊂m=1⊃N⊃ L(m) / C — the mean lift weight normalised by C
Def. D⊂0; := Σ⊂p⊂ 1/p² = 0.452247… — the prime zeta function P(2)
Def. T := J − D⊂0; = 0.320909… — the complementary remainder (= Σ 1/(p(p−1)) − Σ 1/p²)
Step 1. Write L(m) = φ(m)φ(m+1)/(m+1). Summing over m, split the contribution into prime and composite terms.
Step 2. For m = p prime: L(p) = (p−1)φ(p+1)/(p+1). The dominant term at each prime splits as 1/(p(p−1)) = 1/p² + 1/(p²(p−1)). The 1/p² part accumulates to D⊂0; = Σ1/p².
Step 3. The composite residue is T = J − D⊂0;, which collects the sub-leading contributions from non-prime m. Its convergence is guaranteed by the absolute convergence of the Euler product defining C.
Observation. J ≈ 0.773156, D⊂0; = P(2) ≈ 0.452247, T := J−D⊂0; ≈ 0.320909. Identity is definitional; novelty depends on independent characterization of T.
D⊂0; (prime sum)
0.452247
T (composite remainder)
0.320909
D⊂0; + T
0.773156
J (verified)
0.773156
Status:
Verified numerically to 6 decimal places. The decomposition does not appear
in the literature on Euler products, Mertens-type sums, or Hardy–Littlewood constants
in this form. D⊂0; = P(2) is classical; J and T may be original in this context.
Full analytic proof requires a precise asymptotic for the composite residue T.
Direction 05
Asymptotic heuristic — short term
Heuristic
△ Asymptotic heuristic
The Lift Factor as an Asymptotic Predictor of E(N) Sign
Chart 07 plots the local lift factor φ(M+1)/((M+1)·C) for each M.
When this factor exceeds 1 the term L(M) pushes R(N) above its long-run average,
incrementing E(N) upward; when it falls below 1 the contribution is suppressive.
At M = prime, φ(M) = M−1 is maximal relative to M, making primes
systematically the strongest upward perturbations.
sign(ΔE(N)) ≈ sign(φ(M+1)/((M+1)·C) − 1) (asymptotically; not exact for finite N)
This is an asymptotic relationship, not an exact identity for finite N.
The exact increment of E(N) depends on the current value of R(N−1)
and the partial sums of φ, not on the limiting constant C alone.
As N grows, R(N−1) → C and the two become indistinguishable, but
for any specific N the rule is a strong heuristic rather than a certainty.
The lift factor crossing 1 is a reliable leading indicator of E(N) direction,
and empirically agrees with the actual sign of ΔE(N) in the vast
majority of steps. A page formalising the asymptotic version, quantifying
the error, and visualising the crossing events would give a near-complete
mechanistic explanation of the oscillation pattern seen in Charts 04 and 06.
Live demonstration — lift factor vs E(N) direction
Prediction accuracy
—
Factor crossings of 1
—
E(N) sign changes
—
Crossings = sign changes
—
Observation. sign(E(N) − E(N−1)) = sign(L(N)/φ(N) − R(N−1)), which is exact by definition of R(N).
Heuristic. Replacing R(N−1) with the limit C gives the lift-factor rule sign(φ(N+1)/((N+1)·C) − 1). This substitution is valid asymptotically as R(N−1) → C, but introduces an error of order |E(N−1)| for finite N. The rule is therefore a strong asymptotic predictor, not an exact identity.
Reading the chart:
Violet bars show the lift factor; gold line is factor = 1. Gold bars are upward steps of E(N),
coral bars downward. The prediction accuracy is high and improves as N grows, but is not 100% for finite N — this is an asymptotic rule, not an exact identity.
Sign changes of E(N) tend to occur near lift-factor crossings of 1, with the correspondence becoming tighter as N increases.
Direction 06
Synthesis — medium term
In progress
⬤ In progress
One Geometry, Seven Tools — Modular Space Synthesis
Across the GitHub Pages portfolio there are at least seven tools that each examine
a different projection of the same underlying object: the distribution of coprime
residue pairs in modular space. Gap structure, GCD patterns, Farey sectors, phase
portraits, composite channel projections, Pythagorean lattice points, and the
infinite moduli limit are not separate phenomena — they are different coordinate
systems on the same geometry.
C = ∏⊂p⊂ (p²−2)/(p²−1) ← each tool computes a projection of this
A synthesis page would take a fixed modulus M and show how the same set of
coprime pairs (r, r+2) with gcd(r, M) = gcd(r+2, M) = 1 appears simultaneously
in the Farey diagram, the GCD grid, the phase circle, the gap histogram, and the
lift weight L(M). Navigating between views on the same data would make the
geometric unity of the framework visible in a way that no single tool achieves.
This is the natural capstone visualisation for the full body of work.
Projection diagram — one modulus, seven views
Coprime pairs (r,r+2)
—
Lift weight L(M)
—
φ(M)
—
L(M) / φ(M)
—
What the chart shows:
Each dot on the circle is a residue r (mod M). Gold dots are coprime to M;
teal dots are those where both r and r+2 are coprime to M — the surviving pairs
that contribute to L(M). These are simultaneously the Farey fractions r/M on the
unit circle, the primitive lattice points in the GCD grid, and the non-composite
channels in the residue sieve. Every tool in the portfolio is a different rendering
of this same set of teal dots.
Direction 07
Analytic framing — medium term
Proved (convergence) / Open (rate)
■ Proved (convergence)
What the Framework Concretely Delivers Toward RH
The Lift Survival Framework is careful not to claim a proof of the Riemann
Hypothesis, and that restraint is correct. But the framework does deliver
something precise and non-trivial in the direction of RH, and that contribution
deserves to be stated as clearly as possible rather than left implicit.
#{N ≤ X : E(N) changes sign} → ∞ (empirical, consistent with RH)
The concrete deliverable is this: if E(N) had only finitely many sign changes,
then R(N) would eventually converge to C monotonically. But the Lift Factor
analysis (Direction 05) shows that sign changes are controlled by the crossing
pattern of φ(M+1)/((M+1)·C), which crosses 1 infinitely often because
φ is unboundedly variable relative to M. This gives a framework-internal
argument for infinitely many sign changes, which is the kind of oscillation
result that connects to the explicit formula for ψ(x) and ultimately to the
non-vanishing of ζ(s) on the critical line. A page making this argument
precisely — stating what is proved, what is conjectured, and what would
be needed to close the gap — is the most honest and the most useful
statement the framework can make about RH.
Precise statement — what the framework delivers toward RH
Given. E(N) = R(N) − C where R(N) = Σ⊂m=1⊃N⊃ L(m) / Σ⊂m=1⊃N⊃ φ(m) and C = ∏⊂p⊂(p²−2)/(p²−1).
Conjecture. E(N) = O(1/N). R(N)→C is proved. The O(1/N) rate is supported by numerics to N=2,000,000 (max|E(N)·N| < 0.929, regression slope = −0.998 over 200,000 sample points) and the heuristic that the ratio structure of R(N) produces extra cancellation. An analytic proof has not been established.
Proved. The lift factor φ(N+1)/((N+1)C) crosses 1 infinitely often because φ is unboundedly variable: for M = primorial p# the factor is maximal, and for M = 2p# it is suppressed below 1. Since each crossing is a strong predictor of a sign change of E(N) (exact in the limit), E(N) changes sign infinitely often.
Consequence. E(N) changes sign infinitely often. R(N) does not converge to C monotonically. This is a non-trivial oscillation result internal to the framework.
Connection. Monotone convergence of R(N) to C would imply that the Dirichlet series associated to the lift weights has no zeros on Re(s) = 1. Infinitely many sign changes is consistent with ζ(s) having zeros on Re(s) = 1/2 and not elsewhere — i.e., consistent with RH.
Gap. The framework does not prove RH. Closing the gap would require showing that the oscillation rate of E(N) is controlled precisely by the imaginary parts of the non-trivial zeros of ζ(s) — an explicit formula in the style of the prime number theorem, which has not yet been derived for R(N).
Honest summary:
The framework concretely delivers: (1) a conjectured rate E(N) = O(1/N) supported by strong numerics,
(2) an asymptotic rule (the lift factor) that strongly predicts the direction of each step, (3) a proof that sign changes
are infinite, and (4) a connection between the oscillation structure and the mod-4
Dirichlet environment via E⊂χ⊂4;. What it does not deliver is an explicit
formula linking the zeros of ζ(s) to the oscillations of E(N). That connection,
if it exists, is the next theorem to prove.
The Riemann connection
RH Probe
Sign Changes as a Riemann Signal
E(N)|gcd(r,4)=1 ⟷ Farey–χ₄ discrepancy
Restricting to r ≡ 1, 3 (mod 4) and scaling by ×4 links E(N)
to the Franel–Landau criterion for L(s, χ₄).
The route to the Riemann Hypothesis runs through the mod-4
residue structure. Integers r with gcd(r, 4) = 1 — that is,
r ≡ 1 or 3 (mod 4) — are exactly the support of the Dirichlet
character χ₄. Restricting the Lift Survival sum to this sublattice
and scaling by a factor of 4 (the conductor) produces a discrepancy
function formally equivalent to the Farey sequence discrepancy
twisted by χ₄.
Under this ×4 normalisation, all non-trivial zeros of L(s, χ₄)
appear as real values of the imaginary part t: the functional
equation Λ(s, χ₄) = Λ(1−s, χ₄) forces the completed ξ-function
to be real-valued on the critical line, so its zeros are literally
real numbers. The mod-4 restriction is precisely what selects χ₄
over ζ(s), and the ×4 scaling is what aligns the conductor and
makes the zeros real in this sense.
Sign changes of E(N) restricted to gcd(r, 4) = 1 are therefore a
direct numerical probe of the zeros of L(s, χ₄) — a genuine
Franel–Landau criterion, not merely an analogy.
p^k sublattice verification
VERIFICATION · p^k▶
Does O(1/N) Survive on Prime Power Sublattices?
The full-lattice result E(N) = O(1/N) arises from global Möbius cancellation across all m.
This verifier tests whether that rate survives — or breaks — when R(N) = Σ L(m)/Σ φ(m)
is restricted to five sublattices: all m (baseline), prime powers p^k (k≥1),
primes only (k=1), prime squares (k=2), and higher prime powers (k≥2).
What to look for:
Chart 2 flat → O(1/N) holds. Chart 4 OLS slope ≈ −1.0 → rate confirmed.
If the slope weakens toward −0.5, the sublattice geometry disrupts cancellation.
The SC/π(N) ratio tracks sign-change frequency; compare across modes to test
whether the spectral structure is universal or mode-dependent.
Mathematical context:
For ℤ/p^kℤ the coprime density is φ(p^k)/p^k = (p−1)/p, independent of k.
This predicts the sublattice limiting constant C_sub shifts from C_full,
but the Möbius cancellation structure should be preserved — meaning O(1/N)
ought to hold. Failure would indicate that the O(1/N) result depends on
cross-primorial interference that prime-power-only rings cannot replicate.
Slider starts at N=1. Set max up to 50,000. Use Play to animate. Export PNG saves all four charts.