Geodesic Monism and its hydrogen solution
In the "Superconductors' puzzle pieces"1 post I claimed that the extra dimensions are all around us, but they are not dimensions that a particle could walk a long distance on them. In the Bubble section of that post I wrote down what it means to remove a dimension, \( n \), from a patch of a manimuchfold: no geodesic tries to move on that direction,
\[ {d^2 x^n \over ds^2} \rightarrow 0 \]
and I showed this condition pushes us to \( g^{nm} \rightarrow 0 \), where our ordinary mathematical tools break down. I promised to come back to it, and here we go! This time we didn't stay in the imagination. We wrote down a theory, found its exact solutions, and proved theorems about how geodesics forget the extra dimensions. I have to mention this is happening right after the advent of Fable, thanks to Claude, Anthropic's AI2 for this great tool. I obviously came up with the principles, and provisioned my intuition that how it should work. Claude gave the name of the theory, obviously! We worked in a long back and forth, where Claude derived the equations and wrote the SageMath3 scripts, I ran them on my machine and pasted the logs back, then together we decoded the outputs and decided the next hunt. It's a new way of doing physics, and honestly it's a lot of fun.
Two principles
Let's build the theory on two principles, so everyone knows what game we are playing.
Principle 1: Everything moves on geodesics. There is no matter, there is only spacetime. This is the mindset shift from the previous post1 taken to its logical end. We explained surface tension, refraction, and diffraction there by curvature and geodesics instead of forces. Now we go all the way: what we call matter is a pattern in the metric field, and what we call dynamics is geodesic motion in that pattern. One substance, one law of motion. This is why I'm calling the theory Geodesic Monism, monism because philosophers use that word when reality is made of a single substance, and for us that substance is spacetime.
You may probably need to make yourself familiar with the idea of replacing forces with geodesics. Usually when we put my hand against a wall we don't think of the molecules of our hand have a free fall, but this is exactly the claim here. No force is needed to explain everything around us. They are all in the state of free fall along their geodesics.
Principle 2: The action is the square of the Ricci curvature,
\[ S = \int R_{ab}R^{ab} \sqrt{-g} \mathrm{d}^n x \]
Why this action and not the Einstein–Hilbert action4 we optimized in the previous post? Two reasons. First, every term of the equations of motion of this action contains at least one Ricci tensor5, so every vacuum solution of Einstein's General Relativity is automatically a solution of our theory. We don't lose the tested physics of GR's empty space, we inherit all of it for free. Second, and this is the beautiful part, the solutions that are not Ricci-flat are the new physics. For those, we can take the equations of motion, keep the Einstein tensor pieces on the left, and move everything else to the right hand side,
\[ G_{ab} = T^{\mathrm{eff}}_{ab} \]
where \( T^{\mathrm{eff}}_{ab} \) is built purely from curvature. An observer who thinks with Einstein's equations will look at our solutions and say "there is matter here!", but there is no matter, only spacetime curved in a way that plays the role of matter. Principle 2 closes into principle 1 like a circle. Notice this is a choice of bookkeeping, not a derivation: we postulate it, then we go hunt for consequences and compare with data, which is how any theory should earn its bread.
Demanding \( \delta S = 0 \) gives the equations of motion
\[ E_{ab} = \Box R_{ab} + \tfrac{1}{2} g_{ab} \Box R - \nabla_a \nabla_b R + 2 R_{acbd} R^{cd} - \tfrac{1}{2} g_{ab} R_{cd}R^{cd} = 0 \]
Where do these five terms come from? Let's walk the variation, so the post is self-contained. Vary the inverse metric \( g^{\mu\nu} \); three pieces of the action respond. First the volume element, \( \delta\sqrt{-g} = -\tfrac12 \sqrt{-g}\ g_{\mu\nu}\ \delta g^{\mu\nu} \), which donates the last term, \( -\tfrac12 g_{ab} R_{cd}R^{cd} \). Second, the two explicit inverse metrics hiding in \( R_{cd}R^{cd} = g^{ce} g^{df} R_{cd} R_{ef} \), which donate \( +2 R_{\mu c} R_{\nu}^{c} \), a term you will not find in the final answer, and that disappearance is the fun part. Third, the variation of the Ricci tensor itself through the Palatini identity, \( \delta R_{cd} = \nabla_e \delta\Gamma^e_{cd} - \nabla_d \delta\Gamma^e_{ce} \); integrate it by parts twice under the integral and you get a master formula, valid for any symmetric tensor \( A^{cd} \):
\[ \int \sqrt{-g}\ A^{cd}\ \delta R_{cd} = \int \sqrt{-g} \left[ \tfrac12 \Box A_{\mu\nu} + \tfrac12 g_{\mu\nu} \nabla_c \nabla_d A^{cd} - \nabla_c \nabla_{(\mu} A^{c}{}_{\nu)} \right] \delta g^{\mu\nu} \]
Apply it with \( A^{cd} = 2R^{cd} \). The middle piece gets tamed by the contracted Bianchi identity, \( \nabla_c R^{cd} = \tfrac12 \nabla^d R \), which turns it into the \( \Box R \) and \( \nabla_a \nabla_b R \) terms; and in the last piece you must commute two covariant derivatives, which is exactly where the Riemann tensor enters and the \( 2R_{acbd}R^{cd} \) term is born, together with a \( -2R_{\mu c}R_{\nu}^{c} \) that eats the one from the second step without a trace. What survives is precisely the five terms of \( E_{ab} \) above. A good exercise for a long evening, and the machine of Appendix A double-checks the outcome in its own independent way, since every solution of this post satisfies those five terms as one exact identity.
These are fourth order equations, so they are scary, and this is where the collaboration with the computer became essential.
Current and charge as geometry
Principle 2 turned matter into curvature bookkeeping. Before meeting the solutions, let's push the same move one step further, because the very same trick that creates matter creates the electric current, and this will pay off big in the dark energy section. The solutions below have two special symmetry directions, a null time \( t \) and an extra dimension coordinate \( u \), paired by the metric as \( g_{tu} = 1 \). The Kaluza–Klein8 dictionary says: read the metric row along the extra dimension as a vector potential,
\[ A_\mu = g_{u\mu} \]
Why is this an electromagnetic potential and not just a random row of a matrix? Because of the following little gem.
Proposition 2 (gauge invariance is coordinate freedom). Under the coordinate change \( t \rightarrow t + \lambda \), where \( \lambda \) is any function of the coordinates other than \( t \) and \( u \), the metric changes by exactly
\[ A_\mu \rightarrow A_\mu + \partial_\mu \lambda \]
and nothing else. Therefore the field equations, which cannot care about coordinate choices, can constrain \( A_\mu \) only through the field strength \( F_{\mu\nu} = \partial_\mu A_\nu - \partial_\nu A_\mu \).
Proof. The change of the metric under the infinitesimal shift along \( \xi = \lambda \partial_t \) is the Lie derivative, \( \delta g_{ab} = \nabla_a \xi_b + \nabla_b \xi_a \), with \( \xi_a = g_{at} \). In our chart \( g_{at} \) has a single nonzero component, \( g_{ut} = 1 \), so \( \xi_a \) is the constant covector pointing along \( u \), and \( \delta g_{ab} = \delta_a^{u} \partial_b \lambda + \delta_b^{u} \partial_a \lambda \), which is precisely \( \delta A_\mu = \partial_\mu \lambda \) and nothing else. \( \blacksquare \)
Sit with this for a second. The gauge invariance of electromagnetism, the crown axiom of every field theory course, is here a theorem: it is the statement that shifting the null clock costs nothing. And now principle 2, electromagnetic edition. The field equations for \( A_\mu \) are fourth order and live on a curved background, so they are not bare Maxwell; but by the proposition they involve \( A \) only through \( F \), so they can always be arranged as
\[ \nabla_\nu F^{\nu\mu} = J^\mu_{\mathrm{eff}} \]
with everything beyond Maxwell moved to the right hand side, and every term of \( J^\mu_{\mathrm{eff}} \) built from curvature and its derivatives. An observer with Maxwell's equations in their head looks at such a solution and announces "there is charge and current here!". There is no charge. There is geometry with a twist in it, literally, as we'll see when the spin of our solution turns out to be a magnetic dipole. The machine verification of this whole picture comes in the dark energy section.
The hydrogen solution
Every theory needs its hydrogen atom: the simplest exact solution that is rich enough to calculate observables and compare with the data. Quantum mechanics earned its trust on the hydrogen spectrum. Here is the hydrogen solution of Geodesic Monism, an eight dimensional spacetime with coordinates \( (t, r, \theta, \phi, y_1, y_2, y_3, u) \), where \( u = w - t \) with \( w \) the fourth spatial dimension, and \( y_1, y_2, y_3 \) three more:
\[ ds^2 = 2\mathrm{d}t\mathrm{d}u + (1+2H)\mathrm{d}u^2 + \frac{2J\sin^2\theta}{r}\mathrm{d}\phi\mathrm{d}u + \mathrm{d}r^2 + r^2 \mathrm{d}\Omega_2^2 + \mathrm{d}\vec y^{2} \]
\[ H = \frac{c_0}{r} + c_1 + c_2 r + c_3 r^2 - \left(\gamma_0 + \frac{\gamma_1}{r}\right)|\vec y|^2 - \gamma_2 \left( r|\vec y|^2 - r^3 \right) + \frac{J^2}{12 r^4} + \frac{J^2}{6}\frac{P_2(\cos\theta)}{r^4} \]
Let me state it the way the math books do, because from here on we should be as rigorous as we can afford.
Theorem 2 (the hydrogen solution). For every value of the parameters \( (c_0, c_1, c_2, c_3, \gamma_0, \gamma_1, \gamma_2, J) \), the metric above satisfies \( E_{ab} = 0 \) identically.
Proof. By computer, exactly, over the rational numbers, with all eight parameters symbolic at once: Appendix A. \( \blacksquare \)
And here is the engine behind it, the reason a fourth order theory can carry such a rich exact solution at all.
Theorem 1 (pp-wave reduction). Let \( k = \mathrm{d}u \) and \( g = \eta + 2H k \otimes k \), with \( H \) a function of the transverse coordinates \( (\vec r, \vec y) \) only. Then every polynomial curvature invariant vanishes, the Ricci tensor is proportional to \( (\Delta H) k_a k_b \) with \( \Delta \) the flat transverse Laplacian, and
\[ E_{ab} \propto \big( \Delta^2 H \big) k_a k_b \]
so the full nonlinear fourth order equations collapse to the linear biharmonic equation \( \Delta^2 H = 0 \).
Proof sketch. The covector \( k \) is null and covariantly constant, and the entire Riemann tensor is built from \( k \) and second transverse derivatives of \( H \), with the crucial property \( R_{abcd}k^d = 0 \). Any product of two curvatures must contract an index through \( k \), and \( k \) is null and orthogonal to everything in sight, so \( R = 0 \), \( R_{cd}R^{cd} = 0 \), \( R_{acbd}R^{cd} = 0 \). Of the five terms of \( E_{ab} \), only \( \Box R_{ab} \) survives, and on functions of the transverse coordinates \( \Box \) acts as \( \Delta \). \( \blacksquare \)
Now solve \( \Delta^2 H = 0 \) and watch the hydrogen assemble itself. The purely radial part in the three dimensional \( \vec r \) space gives the biharmonic family \( c_0/r + c_1 + c_2 r + c_3 r^2 \). For the trap, a small computation with \( \Delta = \Delta_{\vec r} + \Delta_{\vec y} \) gives
\[ \Delta^2 \big( g(r) |\vec y|^2 \big) = |\vec y|^2 \Delta^2 g + 12 \Delta g \]
so the trap coefficient must be harmonic, \( g = \gamma_0 + \gamma_1/r \), and there is one more coupled biharmonic mode, \( \gamma_2 (r|\vec y|^2 - r^3) \), that the same identity allows. The spin sector is beyond this theorem, because the cross term \( g_{u\phi} \) leaves the pure Kerr–Schild form, and that is exactly where the machine earned its keep, discovering the \( J^2 \) back-reaction with the coefficients \( 1/12 \) and \( 1/6 \). And hold onto the most important word in Theorem 1: linear. Solutions superpose. A universe of many hydrogens is still an exact solution, and we will lean on that twice below.
Let's read the parts of this hydrogen, because each one earned its place through a separate hunt:
- The \( c_0/r \) mode is the Newtonian-like piece, and the \( c_2 r \) and \( c_3 r^2 \) modes make \( g_{ww} = 1 + 2H \rightarrow \infty \) far away. The metric of the extra dimension blows up at infinity, the smooth cousin of the degenerate limit from the Bubble section.
- \( J \) is a genuine angular momentum, living in the cross term \( g_{u\phi} \), which drags even zero-angular-momentum particles into rotation, like the Lense–Thirring effect6. The two \( J^2/r^4 \) terms are the back-reaction of the spin on the geometry, a monopole and a quadrupole piece, like the self-energy of a magnetic dipole. The computer found the coefficients \( 1/12 \) and \( 1/6 \) by itself, over two independent finite fields, before we confirmed them exactly.
- The trap \( \gamma(r)|\vec y|^2 \) couples the three last dimensions together: one common trap for all three is the spherical symmetry among them, and it forces them to scale together.
And now the promise of the Bubble section, kept as an identity. Calculate the Christoffel symbols of this metric with upper index \( u \):
Proposition 3 (the removed direction). For the hydrogen metric, with any profiles \( H \) and \( A \) independent of \( t \) and \( u \),
\[ {\Gamma^u}_{ab} = 0 \]
identically, for all indices \( a, b \), at every point of the spacetime. Consequently every geodesic obeys \( \ddot u = 0 \) exactly, and \( \dot u \) is a constant of motion.
Proof. The Christoffel symbols are \( {\Gamma^u}_{ab} = \tfrac12 g^{u\sigma} \left( \partial_a g_{\sigma b} + \partial_b g_{\sigma a} - \partial_\sigma g_{ab} \right) \), so the first question is: what is the \( u \) row of the inverse metric? Check the candidate \( g^{u\sigma} = \delta_{t}^{\sigma} \), a single \( 1 \) in the \( t \) slot. It qualifies if and only if \( g^{u\sigma} g_{\sigma b} = g_{tb} \) equals \( \delta_{b}^{u} \); and look at the hydrogen metric: its entire \( t \) row is \( g_{tb} = \delta^{u}_{b} \), a single constant \( 1 \) in the \( u \) slot and zeros everywhere else, no matter what the growth, the trap, and the spin are doing, because \( t \) touches the metric only through the null pairing \( 2 \mathrm{d}t \mathrm{d}u \). So \( g^{ut} = 1 \) is the only nonzero entry of that row, and in particular \( g^{uu} = 0 \) exactly. Then
\[ {\Gamma^u}_{ab} = \tfrac12 \left( \partial_a g_{tb} + \partial_b g_{ta} - \partial_t g_{ab} \right) = \tfrac12 \left( \partial_a \delta_{b}^{u} + \partial_b \delta_{a}^{u} - 0 \right) = 0 \]
because the \( g_{tb} \) are constants, and \( \partial_t \) kills everything since nothing in the metric depends on \( t \). \( \blacksquare \)
Read the proof again and notice what it did not use: no limit, no large \( r \), no expansion in small anything. That is the difference between \( {\Gamma^u}_{ab} \rightarrow 0 \), which is what I dared to hope for in the Bubble section, and \( {\Gamma^u}_{ab} = 0 \), which is what the theory delivered. Not approximately, not asymptotically. Identically zero, everywhere! The condition \( d^2x^n/ds^2 \rightarrow 0 \) for removing a dimension is satisfied exactly, and no metric degenerates anywhere, because the trick is \( g^{uu} = 0 \) exactly while the determinant stays healthy. But let's be honest about what geodesics do, because we fooled ourselves once and the equations corrected us. First the clocks, so the notation cannot fool anybody: the overdot means the derivative with respect to the proper time \( \tau \), the time measured by the clock that the particle itself carries along its geodesic, so \( \dot u = \mathrm{d}u/\mathrm{d}\tau \), which is a different animal from \( \mathrm{d}u/\mathrm{d}t \). Now, \( \dot u \) is a constant of motion, and it cannot be zero for a massive particle: if \( \dot u = 0 \), the whole \( (t,u) \) block of the norm, \( 2\dot t \dot u + (1+2H)\dot u^2 \), drops out, and what remains, \( \dot r^2 + \cdots \), is never negative, so the velocity cannot be timelike. Particles always drift in \( w \) by their own clock. What dies is the rate per unit of the coordinate time \( t \),
\[ \frac{du}{dt} \sim \frac{1}{H(r)} \rightarrow 0 \]
and the growing \( H \) pushes every particle outward, \( \ddot r = H'(r)\dot u^2 \), a built-in runaway. For the three \( y \) dimensions the story is even better, and it deserves a proper statement.
Proposition 1 (the forgetting rates). In the regime with only the \( c_2 r \) growth and the \( \gamma_1/r \) trap, with \( \gamma_1 > c_2/16 \), the runaway turns the \( y \) equations into exactly the Euler equation7, whose solution is
\[ y \sim \tau^{1/2} \cos(\mu \ln \tau), \qquad \mu = \sqrt{\frac{4\gamma_1}{c_2} - \frac{1}{4}} \]
so all three velocities \( \dot y \sim \tau^{-1/2} \rightarrow 0 \) together, while \( \dot u \) stays constant forever. In coordinate rates, \( du/dt \sim r^{-1} \) but \( dy/dt \sim r^{-5/4} \), therefore
\[ \frac{dy/dt}{du/dt} \sim r^{-1/4} \rightarrow 0 \]
The three extra dimensions are forgotten faster than the fourth one! The manimuchfold patches got their hierarchy: each extra dimension dies with its own exponent, and the exponents come out of the equations, not out of assumptions. No compactness anywhere, which was always my complaint about the Kaluza–Klein theory8. Our numerical runs confirmed the envelope law over three decades of proper time, the ratio of the rates fell by two orders of magnitude while the radius grew by five, and the zeros of \( y \) spaced themselves geometrically with the predicted universal ratio \( e^{\pi/\mu} \); the code and its logs are in Appendix B.
The \( S^3 \) of spin, and \( SU(2)\times U(1) \). There is a symmetry story hiding in the \( y \) sector, and it took me a while to place the spheres correctly, so let's do it carefully. We built in the rotational symmetry among the three \( y \) dimensions when we demanded one common trap, so the hydrogen carries an exact \( SO(3) \) isometry acting on \( (y_1, y_2, y_3) \). Now the spheres. The direction of a perturbation kick is a unit vector in three dimensions, so it lives on the two-sphere \( S^2 \). The full state of the oscillation, three complex amplitudes sharing the universal log-frequency \( \mu \), lives on the five-sphere \( S^5 \), the unit sphere of \( \mathbb{C}^3 \). And the symmetry group itself, or rather its double cover \( SU(2) \), the group that half-integer spins actually represent, is as a manifold exactly the three-sphere, \( SU(2) \cong S^3 \)17. So the \( S^3 \) is not the shape of the oscillation, it is the shape of the symmetry of the oscillation. Add the \( U(1) \) of the \( u \) direction, which we already met as the gauge circle of electromagnetism in Proposition 2, and the symmetry skeleton of the extra-dimensional sector reads
\[ SU(2) \times U(1) \]
the electroweak group of the standard model, arriving the old Kaluza–Klein way: gauge groups are the symmetries of the hidden dimensions. Full honesty, as always: matching the group is not deriving the physics, there are no chiral fermions and no weak dynamics here, only the correct symmetry skeleton. And the strong force? \( SU(3) \) does not come for free by adding more flat trapped dimensions, call them \( z \)'s: Theorem 1 forces every trap coefficient to be harmonic, \( \delta_0 + \delta_1/r \), and every \( \delta_1/r \) trap riding the same runaway produces the same \( \tau^{-1/2} \) forgetting exponent, only a different log-frequency \( \mu_z \). So flat \( z \)'s would fade at the same rate as the \( y \)'s, a hierarchy of frequencies but not of exponents, and a faster-fading, more center-focused sector, which is how we picture the strong force, needs curved internal geometry, beyond the linear paradise of Theorem 1. That is a real future hunt, flagged instead of faked.
Two more fruits of the hunts deserve a mention. First, we tried to put the rotation into the twist of the null rays, the original Kerr way, and the computer came back with a proof that it cannot work:
Theorem 3 (rotation no-go). Within the whole tilted twisting Kerr–Schild family, the only solution of \( E_{ab} = 0 \) is the boosted Kerr black string. Every growing mode vanishes.
Proof. By computer: extract the complete coefficient ideal of \( E_{ab} \) over the polynomial ring of the ansatz parameters, take its primary decomposition with Gröbner bases12, repeat over two independent finite fields, reconstruct the rationals and verify exactly. The single surviving branch is the Kerr string ideal. \( \blacksquare \)
The assassin behind this theorem is the expansion of the rays, and geometry says twist cannot live without expansion (the Kundt9 dichotomy), so rotation must live in the \( g_{u\phi} \) cross term, the gyraton10 way, which is where our \( J \) sits. The theory itself told us where to put the spin! Second, a geometric resonance: flipping some signs in \( H \) makes a valley where particles get trapped on a ring at radius \( r_1 \), and a small ripple of the metric along the extra dimension, \( \delta H \propto \cos(k u) \), resonates with the trapped particles exactly at \( k = \sqrt{|H''(r_1)|} \), independent of the particle's speed. We measured it numerically: frequencies match the prediction to four digits, and at resonance the response is fifteen times the off-resonance one. A resonance frequency built into pure geometry, which makes me smile when I remember I defined structures by their resonance frequencies in the Reproducibility11 post.
The verifier lives in the appendix
The equations of this post are checked by machine, exactly, and to keep the story flowing here, the whole machinery, the honest confession about why it is so shockingly fast, and the three independent cross-validations we subjected it to all live in Appendix A. If you are the type who wants the proof before the physics, jump there now: it proves Theorem 2, all eight parameters symbolic at once, in about a second on a laptop.
Dark matter
Now the theory faces the data for the first time. Assume the hydrogen solution is the space-time of a rotating galaxy. In Geodesic Monism there are no stars pulling each other, there are only geodesics of the galaxy's metric, so the rotational speed of the stars comes straight from \( H(r) \). For circular orbits in the equatorial plane the radial geodesic equation gives
\[ v^2(r) = - r H'(r) \dot u^2 = \dot u^2 \left( \frac{c_0}{r} - c_2 r - 2 c_3 r^2 \right) \]
where \( \dot u \) is the particle's constant drift in the extra dimension. The spin \( J \) adds a prograde versus retrograde asymmetry, the frame dragging, which our orbit integrator confirmed while keeping the orbits circular to the \( 10^{-11} \) level. Orbits need attraction, so in the galactic band \( c_2 < 0 \), and writing \( \alpha = c_0\dot u^2 \) and \( \beta = -c_2 \dot u^2 > 0 \), the prediction of the hydrogen solution is
\[ v^2 = \frac{\alpha}{r} + \beta r \]
The first term is the Kepler-like piece. The second term is pure Geodesic Monism, the linear mode of the biharmonic family, and look what it does: the curve \( \alpha/r + \beta r \) is symmetric under \( r \rightarrow r^2_1/r \) around its minimum at \( r_1 = \sqrt{\alpha/\beta} \), so it is automatically near-flat, within about seven percents, over a full decade of radius around \( r_1 \). The famous flatness of the galactic rotation curves is not tuned here, it's geometry! And the dark matter mystery dissolves by principle 2 read backwards: an observer who thinks with Einstein's equations looks at our metric, computes \( T^{\mathrm{eff}}_{ab} \), and announces "there is invisible matter in this galaxy!". There is no matter. There is a mode of the metric.
Talking is cheap, so we downloaded the real data: the SPARC database14 of Lelli, McGaugh and Schombert15, 175 disk galaxies with high quality rotation curves, the standard dataset of this field. For every galaxy with at least 8 measured points we fitted the outer region, radii beyond 40% of the last measured point, where the dark matter mystery lives, with our \( v^2 = \alpha/r + \beta r \) against the Kepler-only model \( v^2 = \alpha/r \), using the published error bars. The logs:
galaxies analyzed (>=8 pts): 143
median chi2/dof ours vs Kepler: 0.70 vs 23.85
ours beats Kepler in: 143 / 143 galaxies (100%)
ours with chi2/dof < 2: 107 (75%) Kepler: 1 (1%)
ours with chi2/dof < 1: 83 (58%) Kepler: 0 (0%)
galaxies needing beta > 0: 143 (100%)
beta percentiles [(km/s)^2/kpc]: 10%:357 25%:491 50%:697 75%:993 90%:1562
beta scatter (dex, 10-90%): 0.64
Read it slowly, because I had to! The two-parameter hydrogen curve beats the Kepler-only curve in every single one of the 143 galaxies, with a median \( \chi^2 \) per degree of freedom of 0.70, which means it fits inside the observational error bars, while Kepler-only fails catastrophically at 23.85. Every galaxy demands \( \beta > 0 \), the mode that makes \( g_{ww} \) diverge. And the deepest line is the scatter: across a zoo of galaxies spanning five orders of magnitude in luminosity, \( \beta \) varies by only 0.64 dex between the 10th and the 90th percentile, a factor of four. It behaves almost like a universal constant of the theory, echoing the famous regularity of the radial acceleration relation. For the classic dark matter galaxy NGC 3198 our fit gives \( \chi^2/\mathrm{dof} = 0.59 \) against Kepler's 84.78.
Honesty section! The worst fits are dwarf irregulars and the inner regions in general: the full curves of galaxies like IC 2574 are not described by a single hydrogen. But this is exactly the hydrogen story of quantum mechanics, because hydrogen doesn't describe molecules either. Our equation \( \Delta^2 H = 0 \) is linear, so a real extended galaxy is a superposition of hydrogen sources, and the single-source fit is only the far field. That superposition fit is future work, and we say it openly. Also a falsifiable prediction to put on the table: beyond the last measured point our curve keeps rising as \( \sqrt{\beta r} \), while dark matter halo models bend down toward Kepler far outside the halo. Deeper radio observations of the outermost hydrogen gas can kill or crown this theory. That's how it should be!
Keep one number in your pocket for the next section, the median galactic coupling:
\[ |c_2 \dot u^2| = \frac{\beta_{\mathrm{median}}}{c^2} = 7.8 \times 10^{-9} \ \mathrm{kpc}^{-1} \]
The verifier, which runs on the SPARC table (mirrored, if the original server refuses you, at the sparc-rotation-curves repository):
import numpy as np
FN = "MassModels_Lelli2016c.mrt"
gal = {}
for line in open(FN, errors='ignore'):
p = line.split()
if len(p) < 8: continue
try:
vals = [float(x) for x in p[1:8]]
except ValueError:
continue
gal.setdefault(p[0], []).append(vals)
def wlin_fit(X, y, w):
A = X * w[:,None]; b = y * w
c, *_ = np.linalg.lstsq(A, b, rcond=None)
return np.clip(c, 0, None)
res = []
for name, rows in gal.items():
a = np.array(rows)
r, v, ev = a[:,1], a[:,2], a[:,3]
ok = (r > 0) & (v > 0) & (ev > 0)
r, v, ev = r[ok], v[ok], ev[ok]
if len(r) < 8: continue
m = r >= 0.4*r.max()
if m.sum() < 5:
m = np.argsort(np.argsort(r)) >= len(r)-5
ro, vo, eo = r[m], v[m], ev[m]
w = 1.0/(2*vo*eo)
cM = wlin_fit(np.column_stack([1/ro, ro]), vo**2, w) # ours
cK = wlin_fit(np.column_stack([1/ro]), vo**2, w) # Kepler
vM = np.sqrt(np.clip(cM[0]/ro + cM[1]*ro, 0, None))
vK = np.sqrt(np.clip(cK[0]/ro, 0, None))
n = int(m.sum())
res.append((name, cM[1],
np.sum(((vM-vo)/eo)**2)/max(n-2,1),
np.sum(((vK-vo)/eo)**2)/max(n-1,1)))
chiM = np.array([t[2] for t in res]); chiK = np.array([t[3] for t in res])
beta = np.array([t[1] for t in res]); win = chiM < chiK
print("galaxies:", len(res))
print("median chi2/dof ours vs Kepler: %.2f vs %.2f" % (np.median(chiM), np.median(chiK)))
print("ours beats Kepler in %d/%d (%.0f%%)" % (win.sum(), len(res), 100*win.mean()))
q = np.percentile(beta[beta > 1e-6], [10,50,90])
print("beta 10/50/90%%: %.0f / %.0f / %.0f (scatter %.2f dex)"
% (q[0], q[1], q[2], np.log10(q[2]/q[0])))
print("|c2 udot^2| median: %.2e /kpc" % (q[1]/2.998e5**2))
Dark energy
Now the second face-off with the data, and this one has a plot twist that we didn't see coming. Take the comoving observers of the hydrogen solution: at rest in space, drifting in the extra dimension, \( U = \dot t \partial_t - \sigma \partial_u \) with the same drift \( \sigma \) everywhere, where the normalization fixes \( \dot t(r) \) in terms of \( H(r) \). A photon carries two conserved charges from the two Killing vectors, so the redshift between a source at \( r_s \) and an observer at \( r_o \) comes out exactly, endpoint-only, no approximation:
\[ 1+z = \frac{1 + \big(1+2H(r_s)\big)\sigma^2}{1 + \big(1+2H(r_o)\big)\sigma^2} \]
Where \( g_{ww} \) is larger, the comoving clocks tick differently, and the oscillation frequency of any wave drops on arrival: a redshift that accumulates with distance, with zero expansion of space. And I mean literally zero, because the spatial sections of the hydrogen are exactly Euclidean, \( g_{rr} = 1 \), so the proper distance is just \( d = r_s - r_o \). Expanding \( H = c_2 r + c_3 r^2 \) gives a Hubble law, slope set by \( c_2 \) and curvature by \( c_3 \).
Here is the twist. The supernova people don't measure proper distance, they measure luminosity distance, and in a static space \( d_L = d(1+z) \), flux diluted by the Euclidean area times the photon energy loss and arrival delay. Match to the standard expansion \( d_L = \frac{c}{H_0}\big[z + \frac{1-q_0}{2}z^2\big] \), where \( q_0 \) is the deceleration parameter16, and set \( c_3 = 0 \), only the flat-rotation-curve mode on. The machine says:
q0_eff(c3=0) = -1.000 (static linear growth mimics de Sitter q0=-1)
Let me say it loud. The pure linear growth mode, the same \( \beta \) mode that just fitted every galaxy, mimics an accelerating de Sitter universe with \( q_0 = -1 \), exactly, for free. No cosmological constant, no expansion, no dark energy substance. The observed universe has \( q_0 \approx -0.55 \), and reaching it needs \( c_3 > 0 \) with \( c_3/c_2^2 \approx 0.2 \): positive, the growing mode. The dial that hides the fifth dimension is the dial of cosmic acceleration. This is the sentence I will be thinking about for a long time.
And the number in your pocket. Matching the Hubble slope to \( H_0 = 70\ \mathrm{km/s/Mpc} \) with \( \sigma = 1 \) gives the cosmological coupling \( c_2^{\mathrm{cosmo}} = 3.5\times 10^{-7}\ \mathrm{kpc}^{-1} \), while 143 galaxies gave the median \( |c_2\dot u^2| = 7.8\times 10^{-9}\ \mathrm{kpc}^{-1} \). Two completely independent datasets, rotation curves and the Hubble diagram, one theory, and the couplings land within a factor of 45 of each other, bridged only by the unmeasured drifts \( \sigma \) and \( \dot u \). If that ratio came out a millionfold the unification story was dead on arrival. A factor of 45 is a coincidence worth this whole post.
Honesty section, again, with two wounds we don't hide. First, the galaxies wanted \( c_2 < 0 \) locally, attraction, while the cosmological redshift wants growth globally; the linearity of \( \Delta^2 H = 0 \) allows both to live as superposed sources on one background, but a consistent global map is future work. Second, the hydrogen has a center, so at first sight this cosmology is anisotropic, while the observed Hubble flow is very isotropic. Here is the resolution I like: every photon that reaches us was emitted by some source, and by superposition (Theorem 1 again!) the \( H \) field between that source and us carries the growing modes of all the matter around, so if the distribution of the sources is isotropic, an observer receives these redshifts from all directions alike. But rigor demands the subtlety be put on the table too: in the exact endpoint formula, the source's own hydrogen evaluated at the source and the observer's own hydrogen evaluated at the observer enter the difference with opposite signs and cancel in pairs, so a perfectly uniform, statistically symmetric universe would produce no mean redshift from the naive sum. The systematic Hubble law must come from the largest-scale part of \( H \), the biggest hydrogen we live inside. And that turns the wound into a falsifiable prediction: if the center of that structure is not sitting exactly on us, the Hubble flow must carry a dipole on top of the isotropic part, and dipole anomalies in the cosmological data are a hotly debated topic right now on their own. Both wounds stay on the table, but now with experiments attached to them.
Now the Maxwell piece of the plan. In our coordinates the Kaluza–Klein8 vector potential is literally a row of the metric, \( A_\mu = g_{u\mu} \), so notice the hydrogen's spin term already is a magnetic dipole potential! We linearized the field equations around the four-parameter hydrogen background with static perturbations \( a_t(r) \), \( a_r(r) \), \( a_\phi(r,\theta) \), eleven modes in total. But before asking the machine, let's ask Maxwell what he would predict, so the numerics has something to be graded against. Our magnetic ansatz is the covariant \( a_\phi = \sin^2\theta \ P(r) \), which is the physical component \( \hat A_\phi = \sin\theta \ P(r)/r \). Vacuum magnetostatics in this axial sector allows exactly two radial profiles and nothing else: the uniform field, \( P \propto r^2 \), and the dipole, \( P \propto 1/r \); every other power of \( r \) fails the Maxwell equations. So if the magnetic Maxwell equations live inside our linearized theory, the machine must free \( b_0 \) and \( b_3 \), must kill \( b_1 \) and \( b_4 \), and by Proposition 2 must free every \( a_r \) mode as pure gauge. One caveat we grant in advance: our equations are fourth order, roughly a wave operator acting on the Maxwell operator, and a fourth order kernel can be larger than Maxwell's, so extra partner modes are allowed to appear. Predictions on the table. Now the machine, with the exact kernel of the linearized operator. The logs:
KK perturbation, 5D: 116 equations, 1s
linear rows: 12 nonlinear terms ignored: 1613
kernel dimension: 7
free directions: f0 | g0 | g1 | g2 | b0 | b2 | b3
Decoding, mode by mode. The three \( g \) modes say any radial potential \( a_r(r) \) is unconstrained, and indeed \( a_r = \partial_r\lambda \) is exactly a gauge transformation, exactly as Proposition 2 demanded: the machine rediscovered on its own that the equations see only the field strength \( F = \mathrm{d}A \), gauge invariance as a theorem of geometry. Then \( b_0 \), the covariant \( \sin^2\theta/r \), is the predicted magnetic dipole, and it's the linearization of the exact spin \( J \). And \( b_3 \), the covariant \( \sin^2\theta r^2 \), is the predicted uniform magnetic field. The killed \( b_1, b_4 \) are exactly the two modes Maxwell forbade above. A perfect scorecard: the magnetic half of the Maxwell equations sits inside the linearized theory, predicted first, machine-checked second. The mode \( b_2 \) is a fourth-order partner which the linear equations allow but which our exact nonlinear hunts had killed, a nice window into the difference between linear and nonlinear physics. The honest surprise is the electric side: the static modes \( f_1, f_2 \) of \( a_t \) are killed, so static electric fields do not deform this background the naive way. In hindsight it makes sense, because \( a_t \) deforms the null pairing \( \mathrm{d}t\mathrm{d}u \) rather than an ordinary electrostatic potential, but it means the electric and propagating sectors, the ones that carry the redshifted waves and the bridge to my five dimensional electromagnetism paper13, need a dynamical analysis with \( u \)-dependent perturbations. That's the announced sequel of this post.
The verifiers. The redshift and \( q_0 \):
import numpy as np
sig = 1.0; H0 = 70.0; c = 2.998e5
def zshift(d, c2, c3):
Hs = c2*d + c3*d**2
return (1 + (1+2*Hs)*sig**2)/(1 + sig**2) - 1
pref = 2*sig**2/(1+sig**2)
c2c = (H0/c)/pref
def q0_eff(c3rat):
dd = np.linspace(1e-4, 0.3/(H0/c), 400)
zz = zshift(dd, c2c, c3rat*c2c**2)
dL = dd*(1+zz) # luminosity distance in static space
p = np.polyfit(zz, dL, 2)
return 1 - 2*p[0]/p[1]
print("q0_eff(c3=0) = %+.3f" % q0_eff(0.0)) # -1.000
for x in [0.1, 0.2, 0.225]:
print("c3/c2^2 = %.3f -> q0_eff = %+.3f (analytic %+.3f)"
% (x, q0_eff(x), 2*x/pref - 1))
And the Maxwell kernel, using the same E_engine from Appendix A:
NB = 4
pert_names = ['f0','f1','f2', 'g0','g1','g2', 'b0','b1','b2','b3','b4']
NP = len(pert_names)
def kk_pert(V, cs, F):
r, x = V[1], V[2]
c0,c1,c2,c3 = cs[0:NB]
f0,f1,f2,g0,g1,g2,b0,b1,b2,b3,b4 = cs[NB:NB+NP]
H = c0/r + c1 + c2*r + c3*r^2
at = f0 + f1/r + f2*r
ar = g0 + g1*r + g2*r^2
ap = (1-x^2)*(b0/r + b1 + b2*r + b3*r^2 + b4*r^3)
one=F(1); zero=F(0)
g=[[zero]*5 for _ in range(5)]
g[0][4]=one+at; g[4][0]=one+at
g[1][1]=one; g[1][4]=ar; g[4][1]=ar
g[2][2]=r^2/(1-x^2); g[3][3]=r^2*(1-x^2)
g[3][4]=ap; g[4][3]=ap
g[4][4]=one+2*H
return g
eqs = E_engine(QQ, NB+NP, 5, [1,2], kk_pert, "KK perturbation, 5D")
FC = PolynomialRing(QQ, ['c%d'%i for i in range(NB)]).fraction_field()
cback = FC.gens()
rows = []
for P in eqs:
lin = [FC(0)]*NP
for expv, coef in P.dict().items():
pdeg = sum(expv[NB:])
if pdeg == 1:
k = [i for i in range(NP) if expv[NB+i] > 0][0]
lin[k] += coef*prod(cback[i]^expv[i] for i in range(NB))
if any(l != 0 for l in lin):
rows.append(lin)
K = matrix(FC, rows).right_kernel()
print("kernel dimension:", K.dimension())
for v in K.basis():
print("free:", dict((pert_names[i], v[i]) for i in range(NP) if v[i] != 0))
Conclusion
Let's count what happened in this post. We started from two principles, everything is geodesics and the action is the square of the Ricci curvature, and we found the hydrogen solution of the theory, exact and machine-verified for all its parameters at once. The condition from the Bubble section for removing a dimension holds in it as an identity, \( {\Gamma^u}_{ab} = 0 \), and the extra dimensions are forgotten with a hierarchy of rates, three of them faster than the fourth. Then the theory faced the data twice. Its rotation curve beat the Kepler curve in 143 out of 143 real galaxies with the flatness coming from geometry instead of invisible matter, with a coupling that is nearly universal across the whole zoo. Its redshift mimics an accelerating universe with \( q_0 = -1 \) for free, in a static space with zero expansion, and the growing mode that hides the fifth dimension is the dial that tunes it to the measured value. The couplings extracted from the two datasets landed within a factor of 45 of each other, bridged by drifts we haven't measured yet. And the linearized theory handed us the gauge invariance and the magnetic half of the Maxwell equations, with the spin of the hydrogen being literally a magnetic dipole, and the symmetry skeleton of the extra dimensions lined up as \( SU(2)\times U(1) \), the electroweak group.
Open wounds, so nobody accuses us of hiding them: the inner galaxies need superposition of hydrogens, the sign of \( c_2 \) flips between the local and the global story, the cosmology has a center whose observational signature should be a dipole in the Hubble flow, the electric sector is not naive, and the drifts \( \sigma, \dot u \) are free parameters until someone finds a way to measure them. Each wound is a future hunt, and each hunt now has a machine that can run it in seconds. The bubble picture from three years ago is becoming equations, and this week the equations touched the sky. Hope this post released some dopamin for you too!
Appendix A: the verifier and its cross-validations
I don't want you to trust us, I want you to run this. The fourth order equations are hopeless by hand, and even SageMath's symbolic manifolds engine choked, one run took four hours. The breakthrough was to abandon the symbolic ring: since everything in our chart is a rational function, the whole tensor calculus is done over exact fraction fields of polynomial rings, where every operation is automatically canonical, so there is no "simplify" step at all. The script below builds \( E_{ab} \) for the hydrogen metric with all parameters symbolic and shows that every component vanishes identically over the rational numbers. It runs in about a second.
import time
def E_engine(base, nv, dim, pcoords, gmaker, tag):
t0 = time.time()
C = PolynomialRing(base, ['c%d'%i for i in range(nv)]) if nv else base
PR = PolynomialRing(C, ['q%d'%k for k in range(len(pcoords))])
F = PR.fraction_field()
V = {ci: F(PR.gen(k)) for k, ci in enumerate(pcoords)}
cs = [F(C.gen(i)) for i in range(nv)] if nv else []
zero = F(0); D = range(dim)
def d(f, i):
return f.derivative(PR.gen(pcoords.index(i))) if i in V else zero
g = gmaker(V, cs, F)
gm = matrix(F, dim, dim, g).inverse()
gi = [[gm[i,j] for j in D] for i in D]
Gam = [[[zero]*dim for _ in D] for _ in D]
for b in D:
for c in range(b, dim):
col = [d(g[e][c],b)+d(g[e][b],c)-d(g[b][c],e) for e in D]
for a in D:
v = sum(gi[a][e]*col[e] for e in D)/2
Gam[a][b][c]=v; Gam[a][c][b]=v
Riem = [[[[zero]*dim for _ in D] for _ in D] for _ in D]
for a in D:
for b in D:
for c in D:
for e in range(c+1, dim):
v = d(Gam[a][e][b],c)-d(Gam[a][c][b],e)+sum(
Gam[a][c][f]*Gam[f][e][b]-Gam[a][e][f]*Gam[f][c][b]
for f in D)
Riem[a][b][c][e]=v; Riem[a][b][e][c]=-v
Ric = [[sum(Riem[a][b][a][e] for a in D) for e in D] for b in D]
Rs = sum(gi[b][e]*Ric[b][e] for b in D for e in D)
Cd = [[[ d(Ric[a][b],c)-sum(Gam[f][c][a]*Ric[f][b]+Gam[f][c][b]*Ric[a][f]
for f in D) for b in D] for a in D] for c in D]
BoxRic = [[zero]*dim for _ in D]
for a in D:
for b in range(a, dim):
v = zero
for c in D:
for e in D:
if gi[c][e]==zero: continue
Dt = d(Cd[c][a][b],e)-sum(Gam[f][e][c]*Cd[f][a][b]
+Gam[f][e][a]*Cd[c][f][b]+Gam[f][e][b]*Cd[c][a][f]
for f in D)
v += gi[c][e]*Dt
BoxRic[a][b]=v; BoxRic[b][a]=v
dRs = [d(Rs,a) for a in D]
Hess = [[d(dRs[b],a)-sum(Gam[f][a][b]*dRs[f] for f in D) for b in D] for a in D]
BoxRs= sum(gi[a][b]*Hess[a][b] for a in D for b in D)
RicU = [[sum(gi[c][e]*gi[dd][f]*Ric[e][f] for e in D for f in D)
for dd in D] for c in D]
Rl = [[[[sum(g[a][f]*Riem[f][b][c][e] for f in D) for e in D] for c in D]
for b in D] for a in D]
RR = [[sum(Rl[a][c][b][e]*RicU[c][e] for c in D for e in D) for b in D]
for a in D]
RicSq = sum(Ric[a][b]*RicU[a][b] for a in D for b in D)
eqs = set()
for i in D:
for j in range(i, dim):
Eij = (BoxRic[i][j]+(BoxRs/2)*g[i][j]-Hess[i][j]
+2*RR[i][j]-(RicSq/2)*g[i][j])
if Eij != 0:
for cf in Eij.numerator().coefficients():
if cf != 0: eqs.add(cf)
print("%s: %d equations, %.0fs" % (tag, len(eqs), time.time()-t0))
if not eqs:
print(" E_ab == 0 identically for all parameter values")
return eqs
# The hydrogen solution of Geodesic Monism.
# Coordinates (t, r, x=cos(theta), phi, y1, y2, y3, u); polynomial vars r,x,y1,y2,y3
def hydrogen(V, cs, F):
r,x,y1,y2,y3 = V[1],V[2],V[4],V[5],V[6]
P2 = (3*x^2-1)/2
c0,c1,c2,c3,g0,g1,g2,J = cs
yy = y1^2+y2^2+y3^2
H = ( c0/r + c1 + c2*r + c3*r^2
- (g0 + g1/r)*yy - g2*(r*yy - r^3)
+ J^2/(12*r^4) + J^2*P2/(6*r^4) )
A = (1-x^2)*J/r
one=F(1); zero=F(0)
g=[[zero]*8 for _ in range(8)]
g[0][7]=one; g[7][0]=one; g[1][1]=one
g[2][2]=r^2/(1-x^2); g[3][3]=r^2*(1-x^2)
g[4][4]=one; g[5][5]=one; g[6][6]=one
g[3][7]=A; g[7][3]=A; g[7][7]=one+2*H
return g
E_engine(QQ, 8, 8, [1,2,4,5,6], hydrogen, "hydrogen solution (exact QQ)")
The output on my machine:
hydrogen solution (exact QQ): 0 equations, 1s
E_ab == 0 identically for all parameter values
Zero equations means there was nothing left to satisfy: the field equations vanish as an identity of rational functions, for all eight parameters at once. This is a computer proof in the honest sense, no numerics involved. The hunts that discovered the solution also used Gröbner basis12 primary decompositions over finite fields to find all solution branches of each ansatz at once, then rational reconstruction from two independent primes, then one exact verification like the one above. Four hours became seconds.
A confession before you trust that speed: when the verification of an eight parameter exact solution of fourth order equations returns in one second, the right reaction is suspicion, and we had it too. Here is why it is fast, and how we tortured it. It is fast because there is no simplification step anywhere: over a fraction field of a polynomial ring, every arithmetic operation lands in canonical form automatically, executed by decades-old compiled computer algebra kernels, and our metrics are sparse with low degree entries, so the whole computation is genuinely small. General-purpose symbolic engines are slow on the same input because they search for simplifications; we removed the search, not the rigor. And the torture, four independent ways: first, the slow general-purpose SageManifolds engine, four hours per run, agrees with this engine on the boosted Kerr string anchor of Theorem 3; second, every hunt was repeated over two independent finite fields and the solution branches agreed; third, we reimplemented the entire pipeline in SymPy, an unrelated computer algebra system with a different codebase and a different simplification strategy, and it confirms the hydrogen exactly, including a negative control: poison the back-reaction coefficient from \( 1/12 \) to \( 1/10 \) and the equations correctly refuse to vanish, so the zeros are earned, not vacuous; fourth, the physics grades itself, because the gauge modes of Proposition 2 appear in the machine kernels exactly where diffeomorphism invariance demands them. The SymPy cross-check:
import sympy as sp
def iszero(e):
"""Deterministic zero test for rational functions: no simplify heuristics."""
n, _ = sp.fraction(sp.cancel(sp.expand(e)))
return sp.expand(n) == 0
def curv(coords, g):
n = len(coords)
gm = sp.Matrix(g); gi = gm.inv()
d = lambda f,i: sp.diff(f, coords[i])
Gam = [[[sp.cancel(sum(gi[a,e]*(d(gm[e,c],b)+d(gm[e,b],c)-d(gm[b,c],e))
for e in range(n))/2) for c in range(n)] for b in range(n)] for a in range(n)]
Riem = [[[[sp.cancel(d(Gam[a][dd][b],c)-d(Gam[a][c][b],dd)
+ sum(Gam[a][c][e]*Gam[e][dd][b]-Gam[a][dd][e]*Gam[e][c][b] for e in range(n)))
for dd in range(n)] for c in range(n)] for b in range(n)] for a in range(n)]
Ric = [[sp.cancel(sum(Riem[a][b][a][dd] for a in range(n))) for dd in range(n)] for b in range(n)]
Rs = sp.cancel(sum(gi[b,dd]*Ric[b][dd] for b in range(n) for dd in range(n)))
return gm, gi, Gam, Riem, Ric, Rs
def E_tensor(coords, g):
n = len(coords)
gm, gi, Gam, Riem, Ric, Rs = curv(coords, g)
d = lambda f,i: sp.diff(f, coords[i])
C = [[[sp.cancel(d(Ric[a][b],c) - sum(Gam[e][c][a]*Ric[e][b]+Gam[e][c][b]*Ric[a][e]
for e in range(n))) for b in range(n)] for a in range(n)] for c in range(n)]
BoxRic = [[sp.cancel(sum(gi[c,dd]*(d(C[c][a][b],dd)
- sum(Gam[e][dd][c]*C[e][a][b]+Gam[e][dd][a]*C[c][e][b]+Gam[e][dd][b]*C[c][a][e]
for e in range(n)))
for c in range(n) for dd in range(n))) for b in range(n)] for a in range(n)]
dRs = [d(Rs,a) for a in range(n)]
Hess = [[sp.cancel(d(dRs[b],a)-sum(Gam[e][a][b]*dRs[e] for e in range(n)))
for b in range(n)] for a in range(n)]
BoxRs = sp.cancel(sum(gi[a,b]*Hess[a][b] for a in range(n) for b in range(n)))
RicU = [[sp.cancel(sum(gi[c,e]*gi[dd,f]*Ric[e][f] for e in range(n) for f in range(n)))
for dd in range(n)] for c in range(n)]
Rlow = [[[[sp.cancel(sum(gm[a,f]*Riem[f][b][c][e] for f in range(n)))
for e in range(n)] for c in range(n)] for b in range(n)] for a in range(n)]
RR = [[sp.cancel(sum(Rlow[a][c][b][e]*RicU[c][e] for c in range(n) for e in range(n)))
for b in range(n)] for a in range(n)]
RicSq = sp.cancel(sum(Ric[a][b]*RicU[a][b] for a in range(n) for b in range(n)))
return [[sp.cancel(BoxRic[a][b] + BoxRs/2*gm[a,b] - Hess[a][b]
+ 2*RR[a][b] - RicSq/2*gm[a,b]) for b in range(n)] for a in range(n)]
t,r,ph,u,x,M = sp.symbols('t r phi u x M')
c0,c1,c2,c3,J = sp.symbols('c0 c1 c2 c3 J')
# Test 1: Schwarzschild must be Ricci-flat (x = cos(theta) chart: all rational)
g1 = sp.zeros(4,4); f = 1 - 2*M/r
g1[0,0] = -f; g1[1,1] = 1/f
g1[2,2] = r**2/(1-x**2); g1[3,3] = r**2*(1-x**2)
_,_,_,_,Ric1,_ = curv([t,r,x,ph], g1)
print("Schwarzschild Ricci = 0:",
all(iszero(Ric1[i][j]) for i in range(4) for j in range(4)))
# Test 2: 5D spinning hydrogen with J^2 back-reaction, fully symbolic
P2 = (3*x**2 - 1)/2
H = c0/r + c1 + c2*r + c3*r**2 + J**2/(12*r**4) + J**2*P2/(6*r**4)
A = (1-x**2)*J/r
g3 = sp.zeros(5,5)
g3[0,4] = 1; g3[4,0] = 1; g3[1,1] = 1
g3[2,2] = r**2/(1-x**2); g3[3,3] = r**2*(1-x**2)
g3[3,4] = A; g3[4,3] = A; g3[4,4] = 1 + 2*H
E3 = E_tensor([t,r,x,ph,u], g3)
print("5D spinning hydrogen E_ab = 0:",
all(iszero(E3[i][j]) for i in range(5) for j in range(5)))
# Test 3: negative control -- wrong coefficient must FAIL
H4 = c0/r + J**2/(10*r**4) + J**2*P2/(6*r**4) # 1/10 instead of 1/12
g4 = g3.copy(); g4[4,4] = 1 + 2*H4
E4 = E_tensor([t,r,x,ph,u], g4)
print("wrong 1/10 gives nonzero components:",
sum(1 for i in range(5) for j in range(5) if not iszero(E4[i][j])))
Its output on our machine:
Schwarzschild Ricci = 0: True
5D spinning hydrogen E_ab = 0: True
wrong 1/10 gives nonzero components: 1
Appendix B: the geodesic numerics
The claims of Proposition 1, the \( \tau^{-1/2} \) envelope over three decades of proper time and the log-periodic zeros, come from this integration of the exact geodesic equations in the escape regime:
import numpy as np
from scipy.integrate import solve_ivp
ud = 1.0
def make_rhs(c2, c3, g1):
def rhs(tau, s):
R, Rd = s[0], s[1]; y = s[2:5]; yd = s[5:8]
yy = np.dot(y, y)
dHdR = c2 + 2*c3*R + g1*yy/R**2
return [Rd, dHdR*ud**2, *yd, *(-2*(g1/R)*ud**2*y)]
return rhs
c2, g1 = 0.2, 0.4 # gamma1/c2 = 2 > 1/16, mu = sqrt(7.75)
mu = np.sqrt(4*g1/c2 - 0.25)
s0 = [5.0, 0.1, 0.3, 0.2, -0.25, 0.0, 0.0, 0.0]
sol = solve_ivp(make_rhs(c2, 0.0, g1), [1.0, 4000.0], s0,
rtol=1e-11, atol=1e-13, dense_output=True)
print(" tau R |yd| tau^0.5*|yd| |yd|/ud")
for tau in np.geomspace(3, 4000, 10):
st = sol.sol(tau); nyd = np.linalg.norm(st[5:8])
print(f"{tau:8.1f} {st[0]:11.3e} {nyd:10.3e} {np.sqrt(tau)*nyd:11.4f} {nyd/ud:10.3e}")
tt = np.linspace(3, 4000, 400000); y1 = sol.sol(tt)[2]
z = np.where(np.diff(np.sign(y1)) != 0)[0]; tz = tt[z]
print("zero-crossing ratios of y1 (predict e^{pi/mu} = %.4f):" % np.exp(np.pi/mu))
print(" ", np.round(tz[1:]/tz[:-1], 4))
The logs: the envelope column \( \tau^{1/2}|\dot y| \) stays bounded, oscillating between 0.04 and 0.47 with no trend while \( r \) grows from \( 5.6 \) to \( 1.6 \times 10^6 \), the ratio \( |\dot y|/\dot u \) falls from \( 1.2 \times 10^{-1} \) to \( 3.5 \times 10^{-3} \), and the zero crossings come out at
ratios (predict e^{pi/mu} = 3.0910):
[3.872 3.124 3.084 3.0869 3.0895]
converging onto the predicted universal ratio, with the first pair still inside the transient before the Euler regime settles. Discrete scale invariance, measured.
References
3. SageMath
10. Gyratons: gravitational field of spinning light beams, Frolov and Fursaev
11. Reproducibility
12. Gröbner basis
13. Conservation of Optical Chirality in Superconductors as a measure of 5 dimensional Elecromagnetism, by Lashkari Ghouchani, Hadi
14. SPARC database: Spitzer Photometry and Accurate Rotation Curves
15. SPARC: Mass Models for 175 Disk Galaxies with Spitzer Photometry and Accurate Rotation Curves, Lelli, McGaugh, and Schombert, 2016
17. The 3-sphere as the group manifold of SU(2)
Cite
If you found this work useful, please consider citing:
@misc{hadilq2026Monism,
author = {{Hadi Lashkari Ghouchani and Claude (Anthropic)}},
note = {Published electronically at \url{https://hadilq.com/posts/geodesic-monism-hydrogen-solution/}},
gitlab = {Gitlab source at \href{https://gitlab.com/hadilq/hadilq.gitlab.io/-/tree/main/content/posts/2026-07-24-geodesic-monism-hydrogen-solution}},
title = {Geodesic Monism and its hydrogen solution},
year={2026},
}