aidoesscience
aidoessciencefindings › Madelung constant
ValidatingOracle-validated

The Madelung constant M = 1.747565 of rock salt (NaCl) recovered NON-CIRCULARLY from the raw ±1/r lattice sum

What single number sets how tightly an ionic crystal like rock salt holds together — the Madelung constant — and can it be recovered by directly summing the Coulomb potential over the lattice WITHOUT writing the constant in, given that the sum is only conditionally convergent and so easy to compute wrong?

Known value
1.7475646

Units: dimensionless (Madelung constant of NaCl / rock salt, nearest-neighbour distance = length unit)

▶ Run this simulationRead how it works

The finding

The Madelung constant M = 1.747565 of rock salt (NaCl) recovered NON-CIRCULARLY from the raw ±1/r lattice sum — no closed form for M ever written in — to rel |Δ| = 2.2×10⁻⁸ at cube half-side n = 32, with the CONDITIONAL convergence of the sum demonstrated as a hazard, not assumed away. An ionic crystal's cohesive energy is U = −M·e²/(4πε₀·r₀); M = −Σ_{j≠0} (±1)/r_j is a pure number fixed by geometry. Because Σ ±1/r is only conditionally convergent (Riemann), the order matters: summed over expanding NEUTRAL CUBES (Evjen 1932 — face ions weighted ½, edge ¼, corner ⅛, so every shell is charge-neutral) the partial sums lock onto 1.747565, and doubling the cube half-side cuts the truncation error by 16× (n: 10→20 and 16→32), proving the residual is truncation and the limit is exactly M. The SAME machinery in reduced dimension returns 1.386294 = 2 ln 2 (1-D alternating chain) and 1.615543 (2-D square lattice) — geometry alone selects the constant. Decisive control: the naive expanding-SPHERE sum (full un-neutralised charges) does NOT converge — its partial sums swing with amplitude 7.4 over R = 16…48 and end 3.6 away from M — the same ±1/r terms in a different order with a different fate; and reordering the 1-D series two-positives-per-negative shifts it from 2 ln 2 to 3 ln 2 (gap = ln 2 = 0.693), the Riemann mechanism laid bare. π-of-crystals: a lattice geometry, counted, yields the number that binds the solid.

Method

An ionic crystal is a lattice of alternating ±1 point charges; the electrostatic energy of one reference ion is U = (e²/4πε₀)·Σ_{j≠0} q_j/r_j = −M·e²/(4πε₀·r₀), defining the Madelung constant M = −Σ_{j≠0} (−1)^{i+j+k}/√(i²+j²+k²) (rock salt, r in nearest-neighbour units), a pure number. The recovery sums ONLY ±1/r with the neutral-cell weights {1, ½, ¼, ⅛}: an ion on the face of the summation cube of half-side n contributes ½ its charge, an edge ion ¼, a corner ⅛, so every cubic shell is charge-neutral (Evjen 1932) and the conditionally-convergent sum converges. M is loaded from the reference ONLY to score. Six derisk gates: (A) canonical — the neutral cube at n = 32 (274,625 sites) recovers M(NaCl); (B) convergence — doubling n cuts the truncation error by ≥ 6× over two (n,2n) pairs; (C) dimensional sweep — the same machinery in 1-D/2-D/3-D returns 2 ln 2 / 1.615543 / 1.747565; (D) sphere rival — the naive fixed-radius (un-neutralised) truncation swings with O(1) amplitude and ends > 0.5 from M; (E) Riemann rival — the 1-D alternating series = 2 ln 2 natural, = 3 ln 2 reordered (gap ≥ 0.5); (F) non-circularity — the generator has no M literal and no ln-2 closed form, and a wrong reference (M×1.02) fails gate A while the recovered value is unchanged.

The law it recovers

M = −Σ_{j≠0} (±1)/r_j summed over expanding neutral (Evjen) cubes; U = −M·e²/(4πε₀·r₀)

Measurements, controls & cross-checks

Recovered M 3d

1.7475646

Recovered M 3d rel error

2.1900e-8

Cube half side

32

Truncation residual

2.7000e-8

Convergence

Pairs
NError ratio
10→2016
16→3216
Note
doubling the cube half-side cuts the truncation error by ~16× (Evjen residual ~1/n⁴ in envelope), so the residual is truncation and the limit is exactly M — not a fit; the '24 seeds' analogue is the SET of truncation sizes, and M is invariant to it once large (a physical constant, not a mesh artifact)

Dimensional sweep

DimensionRecoveredKnownNoteRel error
11.3862941.3862944= 2 ln 2 exactly (alternating harmonic series)9.0000e-8
21.6155431.6155426square lattice3.0000e-8
31.7475651.7475646rock salt (NaCl)2.2000e-8

Sphere rival

Name
naive expanding-sphere sum (full un-neutralised charges)
Swing amplitude R16to48
7.42
Final deviation from M
3.61
Note
the partial sums oscillate (≈ +5, −6, +10, −4, …) and never settle at 1.7476 — conditional convergence: the same ±1/r terms in a different order have no limit at M

Riemann rival

Natural order
1.386294
Reordered 2pos 1neg
2.079442
Gap
0.6931
Note
the 1-D alternating series = 2 ln 2 in natural order but = 3 ln 2 when reordered two-positives-per-negative; the SAME terms, a different sum (Riemann 1854) — the transparent reason the sphere truncation fails

Non circular

true

On screen bias

the live module renders shells up to n = 6 and continues the sum to n = 24; the shown M(24) = 1.7475647155 sits +1.21×10⁻⁷ above the known M and +8.26×10⁻⁸ above the oracle's n = 32 recovery — pure truncation, PRICED by the derived tail ceiling |M(24)−M(48)|·r/(r−1) = 1.36×10⁻⁷ (r = 6, the reference's own convergence-gate ratio; measured ≈ 16 — no free constants), disclosed on screen ('rendered n ≤ 6; sum continues to n = 24'). The shown float ≠ the module's M_NACL comparison literal bit-for-bit, though both render '1.747565' at 6 dp (disclosed coincidence — earned-ness is proven by the 24 distinct bit-matching M(n) waypoints of the growth trajectory, not string difference)

Module certificate

Summary
the derisk EXECUTES the shipped MadelungModule.ts (sha256-pinned, 30 exact strip pairs + 2 bulk prefixes, new Function with recorder Babylon/DOM stubs) and certifies the whole deterministic trajectory: 600 real fixedUpdate/render engine calls at fl(1/120), one neutral shell every 22nd call (n = 1 at call 21 … n = 24 at call 527, then held with the accumulator EXACTLY 0), bit-exact vs a statics replica at EVERY call — shell counter, float accumulator, all four live sums (3-D cube / naive sphere / 1-D chain / 2-D square), the growing trace arrays, and both 16-float-per-ion thin-instance buffers (1099 cations + 1098 anions); 100 %6 HUD writes + 1 init chart write + 34 live %18 chart redraws, every payload bit-equal to the replica templates
Dead chart honesty fix
the cert caught the shipped convergence chart DEAD: its guard read this._frame % 18 === 0 AFTER the HUD guard's post-increment, requiring f ≡ 0 (mod 6) and f+1 ≡ 0 (mod 18) simultaneously — impossible (f would have to be even and odd), so the chart NEVER redrew past its empty init write (0 redraws even over 10⁶ frames) while the doc-comment promised a live Evjen-vs-sphere contrast. One honesty edit ('=== 0' → '=== 1') makes it fire at f = 0, 18, 36, …; browser-verified: both traces now draw all 24 points, the sphere swinging, the cube locking onto the dashed M line
Generators are the oracle
the module's executed static generators reproduce this oracle's gate-A/C/D machinery BIT-FOR-BIT at the oracle's own operating points (cube n=32 === M3, chain 2000, square 140, sphere R=48) — the on-screen sum machinery IS the validated recovery, not a copy of its output
Law fed rulers
the HUD's 'known M' / 'rel error' lines, the 2 ln 2 and 2-D parentheticals, and the chart's dashed M line are CODED comparison rulers, disclosed and priced: |M_NACL literal − reference| = 3.3×10⁻¹¹, |2 ln 2 literal − closed form| = 2.0×10⁻¹¹, |M_2D literal − reference| = 0, all ≤ 1×10⁻⁹
Answer free
the executed generator + fixedUpdate blocks contain no 1.747/1.6155/1.38629/2.0794 literals, no Math.log, no M_NACL/TWO_LN2/M_2D refs (planted-violation self-test proves the scanner live); the render block's rulers are the disclosed exception
Tampers
surgical: known_value → 1.8 flips A, B, J (exit 1, recovered + executed values unchanged, restored by hand); one byte in the module flips only the sha pin G (11/12); a 1-ulp nudge of the replica's M(1) is caught at exactly call 21 in-process

Note

recovered M(NaCl) = 1.747564633 from the raw ±1/r neutral-cube sum; M is loaded from the reference only to score, and a scoring self-test confirms a deliberately-wrong reference (M×1.02) makes the oracle FAIL while the recovered value is unchanged. All 12 derisk gates pass (A–F science + G–L module-honesty certificate); tamper self-tests: known_value → 1.8 ⇒ gates A,B,J FAIL, exit 1, recovered value unchanged, restored by hand; module byte-edit ⇒ only sha gate G fails; replica 1-ulp nudge caught at call 21.

What it reduces to

The Madelung constant of the rock-salt structure (Madelung 1918; Evjen 1932; Kittel, 'Introduction to Solid State Physics'): M = 1.747565, the dimensionless factor in the electrostatic cohesive energy U = −M·e²/(4πε₀·r₀) of an ionic crystal. This world VALIDATES, not derives: it assumes only the lattice geometry and the Coulomb law ±1/r and recovers M as a pure number by summation, arranged to be NON-CIRCULAR — the generator writes only ±1/r and the neutral-cell weights {1,½,¼,⅛}, never M or any closed form for it (the 1-D 2 ln 2 is a scoring target, absent from the generator). The substantive content beyond the number is the CONDITIONAL convergence: Σ ±1/r has no order-independent value (Riemann's rearrangement theorem), so the naive expanding-sphere sum genuinely fails to converge while the neutral-cell (Evjen) ordering — doing real physics by keeping each shell charge-neutral — locks onto M; the 1-D case makes this exact (natural order 2 ln 2, reordered 3 ln 2). It is DISTINCT from ?world=bragg (X-ray diffraction off the same kind of lattice — a reciprocal-space interference condition, not an energy) and ?world=ising / ?world=xy (spin lattices — nearest-neighbour exchange, not long-range Coulomb): madelung is the lab's first CRYSTAL-ELECTROSTATICS world, the long-range lattice sum that sets cohesion. Its conditional-convergence hazard is the same one that governs every long-range lattice sum (dipole arrays, Ewald summation in molecular dynamics). The lab's first ionic-cohesion world; opens a lattice-energetics family (CsCl M = 1.762675, zinc blende 1.638055, dipole sums).

Confidence & reproduction

Confidence
high
Validation
derisk-pass
Re-run the check
npm run derisk -- madelung (scripts/madelung-derisk.mjs)
Oracle
scripts/oracles/madelung.reference.json

Sources

E. Madelung, Physikalische Zeitschrift 19, 524 (1918) — the lattice constant for ionic crystals. H. M. Evjen, Phys. Rev. 39, 675 (1932) — the neutral-cell summation. C. Kittel, 'Introduction to Solid State Physics' — M(NaCl) = 1.747565. D. Borwein, J. M. Borwein & K. F. Taylor, J. Math. Phys. 26, 2999 (1985) — conditional convergence and order-dependence of Madelung sums. B. Riemann (1854) — the rearrangement theorem. Reference values (scoring only): M(NaCl) = 1.7475645946, 1-D = 2 ln 2 = 1.3862943611, 2-D square = 1.6155426267.

One finding from the lab's 104 catalogued results — each an experiment run end to end by an AI: a question, a method, measured data, a control, and a confidence.