universal-physics-tensor 0.4.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (299) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +377 -0
  3. package/dist/bridges/equations/be-11-decoherence-master.d.ts +83 -0
  4. package/dist/bridges/equations/be-11-decoherence-master.d.ts.map +1 -0
  5. package/dist/bridges/equations/be-11-decoherence-master.js +116 -0
  6. package/dist/bridges/equations/be-11-decoherence-master.js.map +1 -0
  7. package/dist/bridges/equations/be-12-coherence-length.d.ts +80 -0
  8. package/dist/bridges/equations/be-12-coherence-length.d.ts.map +1 -0
  9. package/dist/bridges/equations/be-12-coherence-length.js +128 -0
  10. package/dist/bridges/equations/be-12-coherence-length.js.map +1 -0
  11. package/dist/bridges/equations/be-13-einstein-trace.d.ts +89 -0
  12. package/dist/bridges/equations/be-13-einstein-trace.d.ts.map +1 -0
  13. package/dist/bridges/equations/be-13-einstein-trace.js +143 -0
  14. package/dist/bridges/equations/be-13-einstein-trace.js.map +1 -0
  15. package/dist/bridges/equations/be-14-ryu-takayanagi.d.ts +67 -0
  16. package/dist/bridges/equations/be-14-ryu-takayanagi.d.ts.map +1 -0
  17. package/dist/bridges/equations/be-14-ryu-takayanagi.js +112 -0
  18. package/dist/bridges/equations/be-14-ryu-takayanagi.js.map +1 -0
  19. package/dist/bridges/equations/be-15-emergence.d.ts +164 -0
  20. package/dist/bridges/equations/be-15-emergence.d.ts.map +1 -0
  21. package/dist/bridges/equations/be-15-emergence.js +204 -0
  22. package/dist/bridges/equations/be-15-emergence.js.map +1 -0
  23. package/dist/bridges/equations/be-16-landauer.d.ts +180 -0
  24. package/dist/bridges/equations/be-16-landauer.d.ts.map +1 -0
  25. package/dist/bridges/equations/be-16-landauer.js +206 -0
  26. package/dist/bridges/equations/be-16-landauer.js.map +1 -0
  27. package/dist/bridges/equations/be-17-einstein-cartan.d.ts +245 -0
  28. package/dist/bridges/equations/be-17-einstein-cartan.d.ts.map +1 -0
  29. package/dist/bridges/equations/be-17-einstein-cartan.js +304 -0
  30. package/dist/bridges/equations/be-17-einstein-cartan.js.map +1 -0
  31. package/dist/bridges/equations/be-18-higgs-mass.d.ts +65 -0
  32. package/dist/bridges/equations/be-18-higgs-mass.d.ts.map +1 -0
  33. package/dist/bridges/equations/be-18-higgs-mass.js +86 -0
  34. package/dist/bridges/equations/be-18-higgs-mass.js.map +1 -0
  35. package/dist/bridges/equations/be-19-quantum-bounce.d.ts +72 -0
  36. package/dist/bridges/equations/be-19-quantum-bounce.d.ts.map +1 -0
  37. package/dist/bridges/equations/be-19-quantum-bounce.js +151 -0
  38. package/dist/bridges/equations/be-19-quantum-bounce.js.map +1 -0
  39. package/dist/bridges/equations/be-20-vacuum-energy.d.ts +72 -0
  40. package/dist/bridges/equations/be-20-vacuum-energy.d.ts.map +1 -0
  41. package/dist/bridges/equations/be-20-vacuum-energy.js +115 -0
  42. package/dist/bridges/equations/be-20-vacuum-energy.js.map +1 -0
  43. package/dist/bridges/equations/be-21-kss-bound.d.ts +72 -0
  44. package/dist/bridges/equations/be-21-kss-bound.d.ts.map +1 -0
  45. package/dist/bridges/equations/be-21-kss-bound.js +103 -0
  46. package/dist/bridges/equations/be-21-kss-bound.js.map +1 -0
  47. package/dist/bridges/equations/be-22-topological-entanglement.d.ts +90 -0
  48. package/dist/bridges/equations/be-22-topological-entanglement.d.ts.map +1 -0
  49. package/dist/bridges/equations/be-22-topological-entanglement.js +123 -0
  50. package/dist/bridges/equations/be-22-topological-entanglement.js.map +1 -0
  51. package/dist/bridges/equations/be-23-syk-planckian.d.ts +89 -0
  52. package/dist/bridges/equations/be-23-syk-planckian.d.ts.map +1 -0
  53. package/dist/bridges/equations/be-23-syk-planckian.js +155 -0
  54. package/dist/bridges/equations/be-23-syk-planckian.js.map +1 -0
  55. package/dist/bridges/equations/be-24-foerster-fret.d.ts +81 -0
  56. package/dist/bridges/equations/be-24-foerster-fret.d.ts.map +1 -0
  57. package/dist/bridges/equations/be-24-foerster-fret.js +121 -0
  58. package/dist/bridges/equations/be-24-foerster-fret.js.map +1 -0
  59. package/dist/bridges/equations/be-25-iit-phi.d.ts +220 -0
  60. package/dist/bridges/equations/be-25-iit-phi.d.ts.map +1 -0
  61. package/dist/bridges/equations/be-25-iit-phi.js +259 -0
  62. package/dist/bridges/equations/be-25-iit-phi.js.map +1 -0
  63. package/dist/bridges/equations/be-25-orch-or.d.ts +78 -0
  64. package/dist/bridges/equations/be-25-orch-or.d.ts.map +1 -0
  65. package/dist/bridges/equations/be-25-orch-or.js +121 -0
  66. package/dist/bridges/equations/be-25-orch-or.js.map +1 -0
  67. package/dist/bridges/equations/be-26-dna-tunneling.d.ts +75 -0
  68. package/dist/bridges/equations/be-26-dna-tunneling.d.ts.map +1 -0
  69. package/dist/bridges/equations/be-26-dna-tunneling.js +138 -0
  70. package/dist/bridges/equations/be-26-dna-tunneling.js.map +1 -0
  71. package/dist/bridges/equations/be-27-effective-temperature.d.ts +81 -0
  72. package/dist/bridges/equations/be-27-effective-temperature.d.ts.map +1 -0
  73. package/dist/bridges/equations/be-27-effective-temperature.js +120 -0
  74. package/dist/bridges/equations/be-27-effective-temperature.js.map +1 -0
  75. package/dist/bridges/equations/be-28-onsager-entropy-production.d.ts +175 -0
  76. package/dist/bridges/equations/be-28-onsager-entropy-production.d.ts.map +1 -0
  77. package/dist/bridges/equations/be-28-onsager-entropy-production.js +203 -0
  78. package/dist/bridges/equations/be-28-onsager-entropy-production.js.map +1 -0
  79. package/dist/bridges/equations/be-29-jarzynski.d.ts +86 -0
  80. package/dist/bridges/equations/be-29-jarzynski.d.ts.map +1 -0
  81. package/dist/bridges/equations/be-29-jarzynski.js +132 -0
  82. package/dist/bridges/equations/be-29-jarzynski.js.map +1 -0
  83. package/dist/bridges/equations/be-30-flm-first-law.d.ts +93 -0
  84. package/dist/bridges/equations/be-30-flm-first-law.d.ts.map +1 -0
  85. package/dist/bridges/equations/be-30-flm-first-law.js +109 -0
  86. package/dist/bridges/equations/be-30-flm-first-law.js.map +1 -0
  87. package/dist/bridges/equations/be-31-causal-set-bd.d.ts +96 -0
  88. package/dist/bridges/equations/be-31-causal-set-bd.d.ts.map +1 -0
  89. package/dist/bridges/equations/be-31-causal-set-bd.js +133 -0
  90. package/dist/bridges/equations/be-31-causal-set-bd.js.map +1 -0
  91. package/dist/bridges/equations/be-32-quantum-reference-frame.d.ts +113 -0
  92. package/dist/bridges/equations/be-32-quantum-reference-frame.d.ts.map +1 -0
  93. package/dist/bridges/equations/be-32-quantum-reference-frame.js +155 -0
  94. package/dist/bridges/equations/be-32-quantum-reference-frame.js.map +1 -0
  95. package/dist/bridges/equations/be-33-hertz-millis.d.ts +77 -0
  96. package/dist/bridges/equations/be-33-hertz-millis.d.ts.map +1 -0
  97. package/dist/bridges/equations/be-33-hertz-millis.js +113 -0
  98. package/dist/bridges/equations/be-33-hertz-millis.js.map +1 -0
  99. package/dist/bridges/equations/be-34-kibble-zurek.d.ts +76 -0
  100. package/dist/bridges/equations/be-34-kibble-zurek.d.ts.map +1 -0
  101. package/dist/bridges/equations/be-34-kibble-zurek.js +139 -0
  102. package/dist/bridges/equations/be-34-kibble-zurek.js.map +1 -0
  103. package/dist/bridges/equations/be-35-conformal-bootstrap.d.ts +117 -0
  104. package/dist/bridges/equations/be-35-conformal-bootstrap.d.ts.map +1 -0
  105. package/dist/bridges/equations/be-35-conformal-bootstrap.js +167 -0
  106. package/dist/bridges/equations/be-35-conformal-bootstrap.js.map +1 -0
  107. package/dist/bridges/equations/be-36-gw-speed-bound.d.ts +77 -0
  108. package/dist/bridges/equations/be-36-gw-speed-bound.d.ts.map +1 -0
  109. package/dist/bridges/equations/be-36-gw-speed-bound.js +107 -0
  110. package/dist/bridges/equations/be-36-gw-speed-bound.js.map +1 -0
  111. package/dist/bridges/equations/be-37-shapiro-delay.d.ts +260 -0
  112. package/dist/bridges/equations/be-37-shapiro-delay.d.ts.map +1 -0
  113. package/dist/bridges/equations/be-37-shapiro-delay.js +429 -0
  114. package/dist/bridges/equations/be-37-shapiro-delay.js.map +1 -0
  115. package/dist/bridges/equations/be-38-mond.d.ts +86 -0
  116. package/dist/bridges/equations/be-38-mond.d.ts.map +1 -0
  117. package/dist/bridges/equations/be-38-mond.js +122 -0
  118. package/dist/bridges/equations/be-38-mond.js.map +1 -0
  119. package/dist/bridges/equations/be-39-asymptotic-safety.d.ts +106 -0
  120. package/dist/bridges/equations/be-39-asymptotic-safety.d.ts.map +1 -0
  121. package/dist/bridges/equations/be-39-asymptotic-safety.js +155 -0
  122. package/dist/bridges/equations/be-39-asymptotic-safety.js.map +1 -0
  123. package/dist/bridges/equations/be-40-composite-higgs.d.ts +81 -0
  124. package/dist/bridges/equations/be-40-composite-higgs.d.ts.map +1 -0
  125. package/dist/bridges/equations/be-40-composite-higgs.js +149 -0
  126. package/dist/bridges/equations/be-40-composite-higgs.js.map +1 -0
  127. package/dist/bridges/equations/be-41-swampland.d.ts +67 -0
  128. package/dist/bridges/equations/be-41-swampland.d.ts.map +1 -0
  129. package/dist/bridges/equations/be-41-swampland.js +109 -0
  130. package/dist/bridges/equations/be-41-swampland.js.map +1 -0
  131. package/dist/bridges/equations/be-42-hawking-temperature.d.ts +67 -0
  132. package/dist/bridges/equations/be-42-hawking-temperature.d.ts.map +1 -0
  133. package/dist/bridges/equations/be-42-hawking-temperature.js +109 -0
  134. package/dist/bridges/equations/be-42-hawking-temperature.js.map +1 -0
  135. package/dist/bridges/equations/be-43-er-epr.d.ts +73 -0
  136. package/dist/bridges/equations/be-43-er-epr.d.ts.map +1 -0
  137. package/dist/bridges/equations/be-43-er-epr.js +114 -0
  138. package/dist/bridges/equations/be-43-er-epr.js.map +1 -0
  139. package/dist/bridges/equations/be-44-soft-hair.d.ts +151 -0
  140. package/dist/bridges/equations/be-44-soft-hair.d.ts.map +1 -0
  141. package/dist/bridges/equations/be-44-soft-hair.js +185 -0
  142. package/dist/bridges/equations/be-44-soft-hair.js.map +1 -0
  143. package/dist/bridges/equations/be-45-tcc.d.ts +116 -0
  144. package/dist/bridges/equations/be-45-tcc.d.ts.map +1 -0
  145. package/dist/bridges/equations/be-45-tcc.js +157 -0
  146. package/dist/bridges/equations/be-45-tcc.js.map +1 -0
  147. package/dist/bridges/equations/be-46-multiverse-measure.d.ts +163 -0
  148. package/dist/bridges/equations/be-46-multiverse-measure.d.ts.map +1 -0
  149. package/dist/bridges/equations/be-46-multiverse-measure.js +198 -0
  150. package/dist/bridges/equations/be-46-multiverse-measure.js.map +1 -0
  151. package/dist/bridges/equations/be-47-bbn-dark-sector.d.ts +72 -0
  152. package/dist/bridges/equations/be-47-bbn-dark-sector.d.ts.map +1 -0
  153. package/dist/bridges/equations/be-47-bbn-dark-sector.js +121 -0
  154. package/dist/bridges/equations/be-47-bbn-dark-sector.js.map +1 -0
  155. package/dist/bridges/equations/be-48-grw-localization.d.ts +84 -0
  156. package/dist/bridges/equations/be-48-grw-localization.d.ts.map +1 -0
  157. package/dist/bridges/equations/be-48-grw-localization.js +107 -0
  158. package/dist/bridges/equations/be-48-grw-localization.js.map +1 -0
  159. package/dist/bridges/equations/be-49-quantum-darwinism.d.ts +97 -0
  160. package/dist/bridges/equations/be-49-quantum-darwinism.d.ts.map +1 -0
  161. package/dist/bridges/equations/be-49-quantum-darwinism.js +129 -0
  162. package/dist/bridges/equations/be-49-quantum-darwinism.js.map +1 -0
  163. package/dist/bridges/equations/be-50-wheeler-feynman.d.ts +120 -0
  164. package/dist/bridges/equations/be-50-wheeler-feynman.d.ts.map +1 -0
  165. package/dist/bridges/equations/be-50-wheeler-feynman.js +151 -0
  166. package/dist/bridges/equations/be-50-wheeler-feynman.js.map +1 -0
  167. package/dist/bridges/gravitational-lensing.d.ts +52 -0
  168. package/dist/bridges/gravitational-lensing.d.ts.map +1 -0
  169. package/dist/bridges/gravitational-lensing.js +48 -0
  170. package/dist/bridges/gravitational-lensing.js.map +1 -0
  171. package/dist/bridges/index.d.ts +104 -0
  172. package/dist/bridges/index.d.ts.map +1 -0
  173. package/dist/bridges/index.js +1663 -0
  174. package/dist/bridges/index.js.map +1 -0
  175. package/dist/bridges/perihelion-precession.d.ts +62 -0
  176. package/dist/bridges/perihelion-precession.d.ts.map +1 -0
  177. package/dist/bridges/perihelion-precession.js +68 -0
  178. package/dist/bridges/perihelion-precession.js.map +1 -0
  179. package/dist/core/tensor.d.ts +135 -0
  180. package/dist/core/tensor.d.ts.map +1 -0
  181. package/dist/core/tensor.js +376 -0
  182. package/dist/core/tensor.js.map +1 -0
  183. package/dist/core/types.d.ts +131 -0
  184. package/dist/core/types.d.ts.map +1 -0
  185. package/dist/core/types.js +25 -0
  186. package/dist/core/types.js.map +1 -0
  187. package/dist/dimensional/algebra.d.ts +34 -0
  188. package/dist/dimensional/algebra.d.ts.map +1 -0
  189. package/dist/dimensional/algebra.js +90 -0
  190. package/dist/dimensional/algebra.js.map +1 -0
  191. package/dist/dimensional/bridge-check.d.ts +48 -0
  192. package/dist/dimensional/bridge-check.d.ts.map +1 -0
  193. package/dist/dimensional/bridge-check.js +137 -0
  194. package/dist/dimensional/bridge-check.js.map +1 -0
  195. package/dist/dimensional/connection-validators.d.ts +53 -0
  196. package/dist/dimensional/connection-validators.d.ts.map +1 -0
  197. package/dist/dimensional/connection-validators.js +84 -0
  198. package/dist/dimensional/connection-validators.js.map +1 -0
  199. package/dist/dimensional/connection.d.ts +40 -0
  200. package/dist/dimensional/connection.d.ts.map +1 -0
  201. package/dist/dimensional/connection.js +81 -0
  202. package/dist/dimensional/connection.js.map +1 -0
  203. package/dist/dimensional/constants.d.ts +30 -0
  204. package/dist/dimensional/constants.d.ts.map +1 -0
  205. package/dist/dimensional/constants.js +31 -0
  206. package/dist/dimensional/constants.js.map +1 -0
  207. package/dist/dimensional/errors.d.ts +161 -0
  208. package/dist/dimensional/errors.d.ts.map +1 -0
  209. package/dist/dimensional/errors.js +254 -0
  210. package/dist/dimensional/errors.js.map +1 -0
  211. package/dist/dimensional/fresh-label.d.ts +26 -0
  212. package/dist/dimensional/fresh-label.d.ts.map +1 -0
  213. package/dist/dimensional/fresh-label.js +31 -0
  214. package/dist/dimensional/fresh-label.js.map +1 -0
  215. package/dist/dimensional/metric-validators.d.ts +124 -0
  216. package/dist/dimensional/metric-validators.d.ts.map +1 -0
  217. package/dist/dimensional/metric-validators.js +141 -0
  218. package/dist/dimensional/metric-validators.js.map +1 -0
  219. package/dist/dimensional/metric.d.ts +67 -0
  220. package/dist/dimensional/metric.d.ts.map +1 -0
  221. package/dist/dimensional/metric.js +177 -0
  222. package/dist/dimensional/metric.js.map +1 -0
  223. package/dist/dimensional/tensor.d.ts +153 -0
  224. package/dist/dimensional/tensor.d.ts.map +1 -0
  225. package/dist/dimensional/tensor.js +138 -0
  226. package/dist/dimensional/tensor.js.map +1 -0
  227. package/dist/dimensional/types.d.ts +50 -0
  228. package/dist/dimensional/types.d.ts.map +1 -0
  229. package/dist/dimensional/types.js +66 -0
  230. package/dist/dimensional/types.js.map +1 -0
  231. package/dist/dimensional/validator.d.ts +84 -0
  232. package/dist/dimensional/validator.d.ts.map +1 -0
  233. package/dist/dimensional/validator.js +505 -0
  234. package/dist/dimensional/validator.js.map +1 -0
  235. package/dist/index.d.ts +25 -0
  236. package/dist/index.d.ts.map +1 -0
  237. package/dist/index.js +37 -0
  238. package/dist/index.js.map +1 -0
  239. package/dist/numerical/be37-covariant-eikonal.d.ts +90 -0
  240. package/dist/numerical/be37-covariant-eikonal.d.ts.map +1 -0
  241. package/dist/numerical/be37-covariant-eikonal.js +79 -0
  242. package/dist/numerical/be37-covariant-eikonal.js.map +1 -0
  243. package/dist/numerical/connection-lowering-helpers.d.ts +107 -0
  244. package/dist/numerical/connection-lowering-helpers.d.ts.map +1 -0
  245. package/dist/numerical/connection-lowering-helpers.js +315 -0
  246. package/dist/numerical/connection-lowering-helpers.js.map +1 -0
  247. package/dist/numerical/engine-registry.d.ts +50 -0
  248. package/dist/numerical/engine-registry.d.ts.map +1 -0
  249. package/dist/numerical/engine-registry.js +82 -0
  250. package/dist/numerical/engine-registry.js.map +1 -0
  251. package/dist/numerical/errors.d.ts +28 -0
  252. package/dist/numerical/errors.d.ts.map +1 -0
  253. package/dist/numerical/errors.js +39 -0
  254. package/dist/numerical/errors.js.map +1 -0
  255. package/dist/numerical/float64-engine.d.ts +53 -0
  256. package/dist/numerical/float64-engine.d.ts.map +1 -0
  257. package/dist/numerical/float64-engine.js +638 -0
  258. package/dist/numerical/float64-engine.js.map +1 -0
  259. package/dist/numerical/geodesic-integrator.d.ts +62 -0
  260. package/dist/numerical/geodesic-integrator.d.ts.map +1 -0
  261. package/dist/numerical/geodesic-integrator.js +103 -0
  262. package/dist/numerical/geodesic-integrator.js.map +1 -0
  263. package/dist/numerical/grid-field.d.ts +24 -0
  264. package/dist/numerical/grid-field.d.ts.map +1 -0
  265. package/dist/numerical/grid-field.js +2 -0
  266. package/dist/numerical/grid-field.js.map +1 -0
  267. package/dist/numerical/index.d.ts +80 -0
  268. package/dist/numerical/index.d.ts.map +1 -0
  269. package/dist/numerical/index.js +75 -0
  270. package/dist/numerical/index.js.map +1 -0
  271. package/dist/numerical/lowering.d.ts +48 -0
  272. package/dist/numerical/lowering.d.ts.map +1 -0
  273. package/dist/numerical/lowering.js +443 -0
  274. package/dist/numerical/lowering.js.map +1 -0
  275. package/dist/numerical/mathts-engine.d.ts +55 -0
  276. package/dist/numerical/mathts-engine.d.ts.map +1 -0
  277. package/dist/numerical/mathts-engine.js +164 -0
  278. package/dist/numerical/mathts-engine.js.map +1 -0
  279. package/dist/numerical/metric-inverse.d.ts +31 -0
  280. package/dist/numerical/metric-inverse.d.ts.map +1 -0
  281. package/dist/numerical/metric-inverse.js +68 -0
  282. package/dist/numerical/metric-inverse.js.map +1 -0
  283. package/dist/numerical/null-ray-integrator.d.ts +13 -0
  284. package/dist/numerical/null-ray-integrator.d.ts.map +1 -0
  285. package/dist/numerical/null-ray-integrator.js +53 -0
  286. package/dist/numerical/null-ray-integrator.js.map +1 -0
  287. package/dist/numerical/pderiv.d.ts +43 -0
  288. package/dist/numerical/pderiv.d.ts.map +1 -0
  289. package/dist/numerical/pderiv.js +121 -0
  290. package/dist/numerical/pderiv.js.map +1 -0
  291. package/dist/numerical/tensor-engine.d.ts +114 -0
  292. package/dist/numerical/tensor-engine.d.ts.map +1 -0
  293. package/dist/numerical/tensor-engine.js +64 -0
  294. package/dist/numerical/tensor-engine.js.map +1 -0
  295. package/dist/numerical/types.d.ts +37 -0
  296. package/dist/numerical/types.d.ts.map +1 -0
  297. package/dist/numerical/types.js +8 -0
  298. package/dist/numerical/types.js.map +1 -0
  299. package/package.json +72 -0
@@ -0,0 +1,429 @@
1
+ /**
2
+ * Bridge Equation 37 — Variable Speed of Light Cosmology
3
+ * (Shapiro gravitational time-delay reformulation).
4
+ *
5
+ * **Original (operationally-meaningless) form.** Wave R disposition
6
+ * 2026-05-05 marked BE-37 `status='invalid'` because the ansatz
7
+ *
8
+ * c(t,x) ≠ const
9
+ *
10
+ * is operationally meaningless per Ellis-Uzan 2005 (*Am. J. Phys.*
11
+ * 73:240, arXiv:gr-qc/0305099 "c is the speed of light, isn't it?"):
12
+ * the speed of light c is *defined* as a constant in SI units (since
13
+ * the 1983 metre redefinition), so any "varying c" in vacuum is just
14
+ * a rescaling of other constants and cannot have observable
15
+ * consequences independent of those constants. The Albrecht-Magueijo
16
+ * 1999 / Moffat 1993 / Barrow 1999 specific VSL ansätze were
17
+ * non-equivalent and the R2-R3 disposition correctly preserved the
18
+ * gap rather than pick one arbitrarily.
19
+ *
20
+ * **Encoded reformulation (Shapiro gravitational time-delay).** Wave
21
+ * Z-F applies the canonical literature replacement identified by
22
+ * OpenAI o3 in the Wave-Z reopened deferred-bridges consultation
23
+ * (2026-05-11): replace the vacuum-c-variation ansatz with the
24
+ * canonical **Shapiro delay** — the gravitationally-induced coordinate-
25
+ * time delay of light passing near a massive body:
26
+ *
27
+ * **Δt = (2 G M / c³) · ln(R_far / R_near)**
28
+ *
29
+ * This is the operationally-meaningful "effective c-variation"
30
+ * that survives the Ellis-Uzan critique: c is *locally* always c, but
31
+ * the integrated path-time over a gravitational potential well differs
32
+ * from the flat-space value by a measurable amount. Shapiro 1964
33
+ * predicted the effect from general relativity; Cassini 2003 measured
34
+ * it to ~10⁻⁵ precision (Bertotti-Iess-Tortora 2003 *Nature*
35
+ * 425:374), confirming Einstein's general relativity to that level.
36
+ *
37
+ * The bridge label is preserved: "modified gravitational/cosmological
38
+ * effects on light propagation," now grounded in a canonical,
39
+ * experimentally-confirmed relation rather than a non-falsifiable
40
+ * vacuum-c-variation.
41
+ *
42
+ * **Dimensional analysis.**
43
+ * - G has dim `[L³ M⁻¹ T⁻²]`.
44
+ * - M has dim `[M]`.
45
+ * - c has dim `[L T⁻¹]`; c³ has dim `[L³ T⁻³]`.
46
+ * - 2GM/c³ has dim `[L³ M⁻¹ T⁻²] · [M] / [L³ T⁻³] = [T³/T²] = [T]` ✓
47
+ * - R_far/R_near is dimensionless `[1]`.
48
+ * - ln(R_far/R_near) is dimensionless `[1]` (log of dimensionless).
49
+ * - Product Δt: `[T] · [1] = [T]` = `[time]` ✓.
50
+ *
51
+ * **AST encoding pattern (typed integer-2 + log-stub).** The integer
52
+ * factor 2 is a dimensionless constant. The log argument `R_far/R_near`
53
+ * is a dimensionless ratio of two lengths — encoded as a separate
54
+ * lemma exposing the dimensional-consistency of the argument (per
55
+ * the dimensionless-stub convention, same as BE-45 log-ratio idiom).
56
+ * The log itself is replaced by a fresh dimensionless symbol stub
57
+ * `ln_R_ratio`.
58
+ *
59
+ * Bracket-checks (numerical evaluator, one-way form `2GM/c³·ln(R_far/R_near)`):
60
+ * - Sun mass M_sun = 1.989e30 kg, R_far = 1 AU, R_near = R_sun:
61
+ * 2GM_sun/c³ ≈ 9.85 μs (Schwarzschild light-travel-time scale);
62
+ * ln(1.496e11 / 6.957e8) ≈ 5.37 (ratio ≈ 215);
63
+ * Δt_one-way ≈ 9.85 μs · 5.37 ≈ 53 μs.
64
+ * - Historical Shapiro 1964 round-trip radar measurement: the
65
+ * ROUND-TRIP delay uses 4GM/c³ (not 2GM/c³) and the canonical
66
+ * log argument `((r1+r2+R)/(r1+r2-R))` for the radar geometry,
67
+ * giving ~240 μs for Mercury superior-conjunction (Shapiro
68
+ * 1964 PRL 13:789). The encoded ONE-WAY form here is half the
69
+ * round-trip coefficient and uses a simpler log argument
70
+ * suitable for a single-leg light path; the two values are NOT
71
+ * directly comparable.
72
+ * - Cassini 2003 measurement: γ to ~10⁻⁵ precision (Bertotti-
73
+ * Iess-Tortora 2003 *Nature* 425:374); confirms GR-canonical
74
+ * γ = 1 in the encoded coefficient.
75
+ *
76
+ * References:
77
+ * - Shapiro 1964 *Phys. Rev. Lett.* 13:789 (original prediction of
78
+ * gravitational time-delay).
79
+ * - Will 1981/2014 *Theory and Experiment in Gravitational
80
+ * Physics* (canonical textbook on the PPN framework and γ
81
+ * parameter).
82
+ * - Bertotti, Iess & Tortora 2003 *Nature* 425:374 (Cassini
83
+ * solar-conjunction measurement of γ to ~10⁻⁵).
84
+ * - Ellis & Uzan 2005 *Am. J. Phys.* 73:240 (arXiv:gr-qc/0305099,
85
+ * "c is the speed of light, isn't it?" — the critique that
86
+ * motivated reformulation away from vacuum-c-variation).
87
+ * - Albrecht & Magueijo 1999 (arXiv:astro-ph/9811018) — historical:
88
+ * one of the original VSL cosmology proposals; now dropped.
89
+ * - Moffat 1993 (arXiv:gr-qc/9211020); Barrow 1999 (arXiv:astro-ph/9811022);
90
+ * Magueijo 2003 *Rep. Prog. Phys.* 66:2025 — historical VSL
91
+ * literature retained for context.
92
+ *
93
+ * Status: speculative — REFORMULATED from 'invalid'.
94
+ *
95
+ * Honest-claude scope notes:
96
+ * - The reformulation REPLACES the operationally-meaningless
97
+ * `c(t,x) ≠ const` vacuum ansatz with the Shapiro delay, the
98
+ * canonical operationally-meaningful gravitational "effective-c"
99
+ * effect. Same precedent as Wave P-D R-D2 BE-25 (Penrose-Hameroff
100
+ * → IIT) and Wave Z-E BE-16 (Complexity-Entropy → Landauer).
101
+ * - The Shapiro delay is general-relativistic gravitational physics
102
+ * — it is NOT a "varying c" in any fundamental sense. Light always
103
+ * travels at c locally; the delay arises from the integrated path
104
+ * length / coordinate-time effects in curved spacetime.
105
+ * Status `'speculative'` is for the **bridge framing** (treating
106
+ * Shapiro delay as the UPT VSL-cosmology bridge), NOT for the
107
+ * Shapiro delay itself, which is canonical and experimentally
108
+ * confirmed.
109
+ * - The Albrecht-Magueijo / Moffat / Barrow vacuum-c-variation
110
+ * proposals are NOT recovered by this reformulation — they
111
+ * remain non-equivalent, non-falsifiable, and Ellis-Uzan-critique-
112
+ * vulnerable. The reformulation explicitly drops the
113
+ * vacuum-c-variation claim in favor of the operational
114
+ * gravitational-c-effect.
115
+ * - The PPN parameter γ (where γ = 1 in GR; experimental measurement
116
+ * constrains |γ - 1| < 2.3e-5 per Bertotti-Iess-Tortora 2003) is
117
+ * NOT in the encoded scalar — the encoded form is the GR-canonical
118
+ * coefficient `2GM/c³` (i.e., γ = 1). A more general PPN
119
+ * encoding would include `(1+γ) GM/c³` instead.
120
+ * - The full Shapiro-delay formula includes log of a path-dependent
121
+ * ratio (R_far / R_near where R_far, R_near are radial distances
122
+ * from the gravitating mass). The encoded form treats both as
123
+ * dimensionless ratios.
124
+ * - **Gemini Pro cross-validation note (2026-05-11):** the Shapiro
125
+ * delay manifests as an *apparent* coordinate-time slowdown of
126
+ * light as it traverses curved spacetime (a Schwarzschild
127
+ * gravitational well). It does NOT imply a variation in the
128
+ * fundamental constant `c` as measured by any **local inertial
129
+ * observer** — by Einstein's equivalence principle, every local
130
+ * observer measures the speed of light to be exactly `c` in their
131
+ * own inertial frame. The "effective c < c" interpretation is a
132
+ * coordinate-system artifact in the global Schwarzschild frame,
133
+ * not a physical local effect. This distinction is what makes
134
+ * Shapiro delay survive the Ellis-Uzan critique: vacuum
135
+ * c(t,x)-variation is operationally meaningless precisely because
136
+ * it conflates the local-measurement and coordinate-system
137
+ * pictures. Both OpenAI o3 and Gemini Pro verdicted this
138
+ * reformulation STRONGLY-DEFENSIBLE.
139
+ *
140
+ * @see docs/specification/Part-II.md ("Bridge Equation 37")
141
+ * @see src/bridges/index.ts BRIDGE_EQUATIONS.find(e => e.id === 37)
142
+ * @module bridges/equations/be-37-shapiro-delay
143
+ */
144
+ import { validate, validateEquation } from '../../dimensional/validator.js';
145
+ import { DIMENSIONLESS, TIME, MASS, LENGTH, } from '../../dimensional/types.js';
146
+ import { G, c } from '../../dimensional/constants.js';
147
+ import { tsym, contract } from '../../dimensional/tensor.js';
148
+ import { metric, pderiv } from '../../dimensional/metric.js';
149
+ import { evaluateNumerical } from '../../numerical/index.js';
150
+ import { integrateRK4 } from '../../numerical/null-ray-integrator.js';
151
+ const sym = (name, dim) => ({ kind: 'symbol', name, dim });
152
+ // --- Symbolic AST ---
153
+ /** Symbol: Newton's gravitational constant G. Dim `[L³ M⁻¹ T⁻²]`. */
154
+ export const BE37_G = sym('G', G);
155
+ /** Symbol: gravitating-body mass M. Dim `[mass]`. */
156
+ export const BE37_M = sym('M', MASS);
157
+ /** Symbol: speed of light c. Dim `[velocity]` = `[L T⁻¹]`. */
158
+ export const BE37_C = sym('c', c);
159
+ /** Symbol: dimensionless integer factor 2. */
160
+ export const BE37_TWO = sym('2', DIMENSIONLESS);
161
+ /** Symbol: dimensionless integer-3 exponent for c³. */
162
+ const THREE_EXP = sym('3', DIMENSIONLESS);
163
+ /**
164
+ * Lemma AST: `c³` (dim `[L³ T⁻³]`).
165
+ *
166
+ * Exposed as a separate node for clarity in the prefactor expression.
167
+ */
168
+ export const BE37_C_CUBED = {
169
+ kind: 'op', op: '^',
170
+ args: [BE37_C, THREE_EXP],
171
+ };
172
+ /**
173
+ * Lemma AST: the prefactor `2GM/c³` (dim `[T]`).
174
+ *
175
+ * This is the "time-scale" associated with the Schwarzschild radius
176
+ * of the gravitating mass: 2GM/c² is the Schwarzschild diameter (a
177
+ * length), and dividing by c gives the corresponding light-travel
178
+ * time-scale. For the Sun: 2 G M_sun / c³ ≈ 9.85 μs.
179
+ */
180
+ export const BE37_PREFACTOR = {
181
+ kind: 'op', op: '/',
182
+ args: [
183
+ {
184
+ kind: 'op', op: '*',
185
+ args: [BE37_TWO, {
186
+ kind: 'op', op: '*',
187
+ args: [BE37_G, BE37_M],
188
+ }],
189
+ },
190
+ BE37_C_CUBED,
191
+ ],
192
+ };
193
+ /** Symbol: outer radial distance R_far. Dim `[length]`. */
194
+ export const BE37_R_FAR = sym('R_far', LENGTH);
195
+ /** Symbol: inner radial distance R_near. Dim `[length]`. */
196
+ export const BE37_R_NEAR = sym('R_near', LENGTH);
197
+ /**
198
+ * Lemma AST: the log argument `R_far / R_near` (DIMENSIONLESS — ratio
199
+ * of two lengths).
200
+ *
201
+ * Exposed for the lemma test that verifies the argument is
202
+ * dimensionless (per the dimensionless-stub convention; same idiom as
203
+ * BE-45 `BE45_LOG_RATIO_ARG_MP_HINF`).
204
+ */
205
+ export const BE37_LOG_RATIO_ARG = {
206
+ kind: 'op', op: '/',
207
+ args: [BE37_R_FAR, BE37_R_NEAR],
208
+ };
209
+ /**
210
+ * Lemma AST: the `ln(R_far/R_near)` factor, encoded as a fresh
211
+ * DIMENSIONLESS symbol stub (the AST has no `log` primitive; same
212
+ * idiom as BE-45 / BE-25 log-stubs for dimensionful-ratio arguments).
213
+ * The argument is exposed via `BE37_LOG_RATIO_ARG` for the lemma test.
214
+ */
215
+ export const BE37_LOG_FACTOR = sym('ln_R_ratio', DIMENSIONLESS);
216
+ /**
217
+ * RHS of `Δt = (2GM/c³) · ln(R_far/R_near)` as a typed ExprNode tree:
218
+ *
219
+ * (2GM/c³) · ln_R_ratio
220
+ *
221
+ * Dim: `[T] · [1] = [T]`.
222
+ */
223
+ export const BE37_SHAPIRO_DELAY_RHS = {
224
+ kind: 'op', op: '*',
225
+ args: [BE37_PREFACTOR, BE37_LOG_FACTOR],
226
+ };
227
+ /** LHS: Δt is a time delay. Dim `[time]`. */
228
+ export const BE37_SHAPIRO_DELAY_LHS = sym('Delta_t', TIME);
229
+ /**
230
+ * Evaluate the Shapiro gravitational time-delay:
231
+ *
232
+ * Δt = (2 G M / c³) · ln(R_far / R_near)
233
+ *
234
+ * @returns Time delay in seconds (one-way, GR-canonical γ=1 form).
235
+ * For the Sun (M_sun = 1.989e30 kg) with light passing from 1 AU
236
+ * to grazing R_sun, Δt_one-way ≈ 53 μs. The historical Shapiro
237
+ * 1964 round-trip experiment gives ~240 μs for similar geometry
238
+ * (uses 4GM/c³ + radar-bounce log argument), not directly
239
+ * comparable to this one-way encoding.
240
+ */
241
+ export function evaluateShapiroDelay(input) {
242
+ const { M_kg, R_far_m, R_near_m } = input;
243
+ if (!Number.isFinite(M_kg) || M_kg <= 0) {
244
+ throw new RangeError(`evaluateShapiroDelay: M_kg must be a finite positive number, got ${M_kg}`);
245
+ }
246
+ if (!Number.isFinite(R_far_m) || R_far_m <= 0) {
247
+ throw new RangeError(`evaluateShapiroDelay: R_far_m must be a finite positive number, got ${R_far_m}`);
248
+ }
249
+ if (!Number.isFinite(R_near_m) || R_near_m <= 0) {
250
+ throw new RangeError(`evaluateShapiroDelay: R_near_m must be a finite positive number, got ${R_near_m}`);
251
+ }
252
+ if (R_near_m > R_far_m) {
253
+ throw new RangeError(`evaluateShapiroDelay: R_near_m (${R_near_m}) must be ≤ R_far_m (${R_far_m}); ratio inside ln must be ≥ 1`);
254
+ }
255
+ const G_SI = 6.67430e-11; // m³/(kg·s²) (CODATA 2018)
256
+ const c_SI = 299792458; // m/s (exact SI definition since 1983)
257
+ return ((2 * G_SI * M_kg) / Math.pow(c_SI, 3)) * Math.log(R_far_m / R_near_m);
258
+ }
259
+ // --- Self-validation ---
260
+ /**
261
+ * Run the AST through the dimensional analyzer; LHS and RHS should
262
+ * both be `[time]` = `[T]`.
263
+ */
264
+ export function validateBE37Dimensions() {
265
+ const eq = validateEquation(BE37_SHAPIRO_DELAY_LHS, BE37_SHAPIRO_DELAY_RHS);
266
+ const lhs = validate(BE37_SHAPIRO_DELAY_LHS);
267
+ const rhs = validate(BE37_SHAPIRO_DELAY_RHS);
268
+ return {
269
+ ok: eq.ok,
270
+ lhsDim: lhs.inferredDimension,
271
+ rhsDim: rhs.inferredDimension,
272
+ };
273
+ }
274
+ // ---------------------------------------------------------------------------
275
+ // v0.3.0 structural form (eikonal null-geodesic): g^μν (∂_μ S)(∂_ν S) = 0
276
+ // ---------------------------------------------------------------------------
277
+ //
278
+ // The Shapiro delay scalar above is the integrated first-order solution of
279
+ // this equation in the weak-field Schwarzschild metric. The structural form
280
+ // exposes the tensor-structural ORIGIN of that scalar; the original scalar
281
+ // exports (BE37_SHAPIRO_DELAY_LHS / _RHS / validateBE37Dimensions) are
282
+ // retained for numerical-evaluator continuity. Per Part-VIII §VIII.8 and
283
+ // docs/planning/v0.3.0-Bridge-Selection.md.
284
+ //
285
+ // Encoding-choice trade-off: the decision record's sketch raised one
286
+ // gradient via `raise(dmu_S, g_inverse, 'μ')` and then contracted with
287
+ // `dnu_S`. That path is correct in spirit but trips on raise()'s internal
288
+ // alpha-conversion: the inverse metric's surviving label is renamed to a
289
+ // FRESH non-colliding label (e.g., `ν_1`), so the subsequent contract()
290
+ // with `dnu_S`'s `ν` does NOT pair up — the result has two free indices,
291
+ // not a scalar. The mathematically natural form is the DIRECT contraction
292
+ // `contract(g_inverse, dmu_S, dnu_S)`: g^μν's two upper indices pair
293
+ // directly with the two gradients' lower indices in one tensor-product,
294
+ // producing a scalar. The `raise()` primitive is exercised independently
295
+ // in tests/dimensional/raise-lower.test.ts; this bridge demonstrates
296
+ // metric + pderiv + contraction in the cleanest possible form.
297
+ //
298
+ // Forward-compat anchor: v0.4.0 will swap `pderiv` for the covariant
299
+ // derivative `∇_μ`; the outer encoding structure here is preserved.
300
+ /** Eikonal phase S has dim [length] in geometrized units (∂_μ S = k_μ,
301
+ * the wave-4-covector). */
302
+ const EIKONAL_PHASE_DIM = LENGTH;
303
+ /** Schwarzschild metric components are dimensionless in the (−,+,+,+)
304
+ * signature with coordinates carrying [length]. */
305
+ const METRIC_COMPONENT_DIM = DIMENSIONLESS;
306
+ /** Coordinate basis used as `wrt` for pderiv; carries dim [length]. */
307
+ const x_coord = tsym('x', [{ label: 'α', variance: 'upper' }], LENGTH, 'coordinate');
308
+ /** Inverse metric g^μν (rank-2, both upper). */
309
+ const g_inverse_eikonal = metric('g_inverse', [
310
+ { label: 'μ', variance: 'upper' },
311
+ { label: 'ν', variance: 'upper' },
312
+ ], METRIC_COMPONENT_DIM, '-,+,+,+');
313
+ /** Eikonal phase scalar field S(x), rank-0, dim [length]. */
314
+ const S_eikonal = tsym('S', [], EIKONAL_PHASE_DIM);
315
+ /** ∂_μ S — rank-1 covariant gradient; dim = LENGTH/LENGTH = DIMENSIONLESS. */
316
+ const dmu_S = pderiv(S_eikonal, x_coord, { label: 'μ', variance: 'lower' });
317
+ /** ∂_ν S — rank-1 covariant gradient; dim DIMENSIONLESS. */
318
+ const dnu_S = pderiv(S_eikonal, x_coord, { label: 'ν', variance: 'lower' });
319
+ /**
320
+ * Eikonal LHS: g^μν (∂_μ S)(∂_ν S).
321
+ *
322
+ * Direct contraction — μ pairs (upper from g_inverse, lower from dmu_S),
323
+ * ν pairs (upper from g_inverse, lower from dnu_S). Result is a scalar
324
+ * with dim DIMENSIONLESS · DIMENSIONLESS · DIMENSIONLESS = DIMENSIONLESS.
325
+ */
326
+ export const BE37_EIKONAL_LHS = contract(g_inverse_eikonal, dmu_S, dnu_S);
327
+ /**
328
+ * Eikonal RHS: the literal dimensionless 'zero' symbol (null-geodesic
329
+ * condition). Same idiom as other zero-RHS bridges (e.g., BE-36).
330
+ */
331
+ export const BE37_EIKONAL_RHS_ZERO = {
332
+ kind: 'symbol',
333
+ name: 'zero',
334
+ dim: DIMENSIONLESS,
335
+ };
336
+ /**
337
+ * Per-bridge dimensional self-check for the v0.3.0 eikonal structural
338
+ * form. Both sides should be DIMENSIONLESS.
339
+ */
340
+ export function validateBE37EikonalDimensions() {
341
+ const lhs = validate(BE37_EIKONAL_LHS);
342
+ const rhs = validate(BE37_EIKONAL_RHS_ZERO);
343
+ const eq = validateEquation(BE37_EIKONAL_LHS, BE37_EIKONAL_RHS_ZERO);
344
+ return {
345
+ ok: eq.ok,
346
+ lhsDim: lhs.inferredDimension,
347
+ rhsDim: rhs.inferredDimension,
348
+ };
349
+ }
350
+ /**
351
+ * Build NumericalInputs for lowering BE37_EIKONAL_LHS = contract(g_inverse,
352
+ * ∂_μ S, ∂_ν S) at a representative radius `r`.
353
+ *
354
+ * - g_inverse: weak-field Schwarzschild inverse metric, diagonal, signature
355
+ * (−,+,+,+). Φ = G M / (c² r) is the dimensionless potential:
356
+ * g^tt = −1/(1+2Φ), g^rr = 1+2Φ (weak-field, first order),
357
+ * g^θθ = g^φφ = 1 (angular parts irrelevant for a radial ray).
358
+ * - ∂_μ S = ∂_ν S = k_μ, the null wave-covector for a RADIAL ray:
359
+ * k_μ = (k_t, k_r, 0, 0) chosen so g^tt k_t² + g^rr k_r² = 0, i.e.
360
+ * k_t = 1, k_r = sqrt(−g^tt / g^rr). By construction g^μν k_μ k_ν = 0 —
361
+ * which is exactly the point: the lowered eikonal residual being 0 to
362
+ * machine precision PROVES the metric + pderiv + contraction AST lowers
363
+ * and einsum-contracts correctly.
364
+ *
365
+ * S has numericalForm 'symbolic' (default — S_eikonal carries no
366
+ * numericalForm field), so ∂_μ S / ∂_ν S are supplied explicitly via
367
+ * inputs.derivatives, keyed `${ofName}/${wrtLabel}` ⇒ 'S/μ' and 'S/ν'
368
+ * (S is rank-0, so each is a length-4 vector — shape [...ofShape=[], N=4]).
369
+ */
370
+ function buildSchwarzschildEikonalInputs(r, G_SI, c_SI, M_kg) {
371
+ const Phi = (G_SI * M_kg) / (c_SI * c_SI * r); // dimensionless potential
372
+ const gtt = -1 / (1 + 2 * Phi);
373
+ const grr = 1 + 2 * Phi;
374
+ const gInverse = [
375
+ [gtt, 0, 0, 0],
376
+ [0, grr, 0, 0],
377
+ [0, 0, 1, 0],
378
+ [0, 0, 0, 1],
379
+ ];
380
+ // Null radial wave-covector: g^tt k_t² + g^rr k_r² = 0.
381
+ const kMu = [1, Math.sqrt(-gtt / grr), 0, 0];
382
+ return {
383
+ tensors: new Map([['g_inverse', gInverse]]),
384
+ derivatives: new Map([['S/μ', kMu], ['S/ν', kMu]]),
385
+ dimension: 4,
386
+ };
387
+ }
388
+ /**
389
+ * BE-37 end-to-end numerical evaluator (v0.3.5-Design.md §8).
390
+ *
391
+ * Part (a): lower BE37_EIKONAL_LHS with concrete weak-field Schwarzschild
392
+ * g^μν components + a null wave-covector and confirm the eikonal residual
393
+ * g^μν ∂_μS ∂_νS ≈ 0 — proves the v0.3.0 metric + pderiv + contraction
394
+ * ASTs lower and contract numerically.
395
+ *
396
+ * Part (b): RK4-integrate the Shapiro coordinate-time delay along the
397
+ * radial null ray and cross-check against the closed-form
398
+ * evaluateShapiroDelay().
399
+ */
400
+ export async function evaluateBE37EikonalNumerical() {
401
+ // Numeric constants — MUST match evaluateShapiroDelay's module-local
402
+ // G_SI / c_SI exactly so the closed-form cross-check is apples-to-apples.
403
+ const G_SI = 6.67430e-11; // m³/(kg·s²) — CODATA 2018
404
+ const c_SI = 299792458; // m/s — exact SI definition
405
+ const scenario = {
406
+ M_kg: 1.989e30, // solar mass
407
+ R_far_m: 1.5e11, // ~1 AU
408
+ R_near_m: 1.0e9, // inner radius (R_near_m ≤ R_far_m, required)
409
+ };
410
+ const { M_kg, R_far_m, R_near_m } = scenario;
411
+ const k = (2 * G_SI * M_kg) / (c_SI * c_SI * c_SI); // 2GM/c³ [seconds]
412
+ // --- Part (a): lower BE37_EIKONAL_LHS with concrete Schwarzschild g^μν ---
413
+ const rMid = 0.5 * (R_near_m + R_far_m);
414
+ const inputs = buildSchwarzschildEikonalInputs(rMid, G_SI, c_SI, M_kg);
415
+ const eikonal = await evaluateNumerical(BE37_EIKONAL_LHS, inputs);
416
+ const eikonalResidual = eikonal.value;
417
+ // --- Part (b): RK4-integrate the Shapiro delay along the radial null ray.
418
+ // r(λ) = R_near + λ·(R_far − R_near), λ ∈ [0,1].
419
+ // d(Δt)/dλ = (2GM/c³)·(R_far − R_near)/r(λ) ⇒ Δt = (2GM/c³)·ln(R_far/R_near).
420
+ const dr = R_far_m - R_near_m;
421
+ const integrated = integrateRK4((lambda) => {
422
+ const r = R_near_m + lambda * dr;
423
+ return [(k * dr) / r];
424
+ }, [0], 0, 1, 4096);
425
+ const integratedDelay = integrated[0];
426
+ const closedFormDelay = evaluateShapiroDelay(scenario);
427
+ return { eikonalResidual, integratedDelay, closedFormDelay, scenario };
428
+ }
429
+ //# sourceMappingURL=be-37-shapiro-delay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"be-37-shapiro-delay.js","sourceRoot":"","sources":["../../../src/bridges/equations/be-37-shapiro-delay.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8IG;AAQH,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAEL,aAAa,EACb,IAAI,EACJ,IAAI,EACJ,MAAM,GACP,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,gCAAgC,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AAEtE,MAAM,GAAG,GAAG,CAAC,IAAY,EAAE,GAAc,EAAY,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;AAExF,uBAAuB;AAEvB,qEAAqE;AACrE,MAAM,CAAC,MAAM,MAAM,GAAa,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAE5C,qDAAqD;AACrD,MAAM,CAAC,MAAM,MAAM,GAAa,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAE/C,8DAA8D;AAC9D,MAAM,CAAC,MAAM,MAAM,GAAa,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAE5C,8CAA8C;AAC9C,MAAM,CAAC,MAAM,QAAQ,GAAa,GAAG,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;AAE1D,uDAAuD;AACvD,MAAM,SAAS,GAAa,GAAG,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;AAEpD;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAa;IACpC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG;IACnB,IAAI,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;CAC1B,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,cAAc,GAAa;IACtC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG;IACnB,IAAI,EAAE;QACJ;YACE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG;YACnB,IAAI,EAAE,CAAC,QAAQ,EAAE;oBACf,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG;oBACnB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;iBACvB,CAAC;SACH;QACD,YAAY;KACb;CACF,CAAC;AAEF,2DAA2D;AAC3D,MAAM,CAAC,MAAM,UAAU,GAAa,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAEzD,4DAA4D;AAC5D,MAAM,CAAC,MAAM,WAAW,GAAa,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAE3D;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAa;IAC1C,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG;IACnB,IAAI,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC;CAChC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAa,GAAG,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;AAE1E;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAa;IAC9C,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG;IACnB,IAAI,EAAE,CAAC,cAAc,EAAE,eAAe,CAAC;CACxC,CAAC;AAEF,6CAA6C;AAC7C,MAAM,CAAC,MAAM,sBAAsB,GAAa,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAarE;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAoB;IACvD,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAC1C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,UAAU,CAClB,oEAAoE,IAAI,EAAE,CAC3E,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,UAAU,CAClB,uEAAuE,OAAO,EAAE,CACjF,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,UAAU,CAClB,wEAAwE,QAAQ,EAAE,CACnF,CAAC;IACJ,CAAC;IACD,IAAI,QAAQ,GAAG,OAAO,EAAE,CAAC;QACvB,MAAM,IAAI,UAAU,CAClB,mCAAmC,QAAQ,wBAAwB,OAAO,gCAAgC,CAC3G,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,2BAA2B;IACrD,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,uCAAuC;IAC/D,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC;AAChF,CAAC;AAED,0BAA0B;AAE1B;;;GAGG;AACH,MAAM,UAAU,sBAAsB;IACpC,MAAM,EAAE,GAAG,gBAAgB,CAAC,sBAAsB,EAAE,sBAAsB,CAAC,CAAC;IAC5E,MAAM,GAAG,GAAG,QAAQ,CAAC,sBAAsB,CAAC,CAAC;IAC7C,MAAM,GAAG,GAAG,QAAQ,CAAC,sBAAsB,CAAC,CAAC;IAC7C,OAAO;QACL,EAAE,EAAE,EAAE,CAAC,EAAE;QACT,MAAM,EAAE,GAAG,CAAC,iBAAiB;QAC7B,MAAM,EAAE,GAAG,CAAC,iBAAiB;KAC9B,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,2EAA2E;AAC3E,8EAA8E;AAC9E,EAAE;AACF,2EAA2E;AAC3E,4EAA4E;AAC5E,2EAA2E;AAC3E,uEAAuE;AACvE,yEAAyE;AACzE,4CAA4C;AAC5C,EAAE;AACF,qEAAqE;AACrE,uEAAuE;AACvE,0EAA0E;AAC1E,yEAAyE;AACzE,wEAAwE;AACxE,yEAAyE;AACzE,0EAA0E;AAC1E,qEAAqE;AACrE,wEAAwE;AACxE,yEAAyE;AACzE,qEAAqE;AACrE,+DAA+D;AAC/D,EAAE;AACF,qEAAqE;AACrE,oEAAoE;AAEpE;4BAC4B;AAC5B,MAAM,iBAAiB,GAAc,MAAM,CAAC;AAE5C;oDACoD;AACpD,MAAM,oBAAoB,GAAc,aAAa,CAAC;AAEtD,uEAAuE;AACvE,MAAM,OAAO,GAAqB,IAAI,CACpC,GAAG,EACH,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EACnC,MAAM,EACN,YAAY,CACb,CAAC;AAEF,gDAAgD;AAChD,MAAM,iBAAiB,GAAqB,MAAM,CAChD,WAAW,EACX;IACE,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE;IACjC,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE;CAClC,EACD,oBAAoB,EACpB,SAAS,CACV,CAAC;AAEF,6DAA6D;AAC7D,MAAM,SAAS,GAAqB,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,iBAAiB,CAAC,CAAC;AAErE,8EAA8E;AAC9E,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;AAE5E,4DAA4D;AAC5D,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;AAE5E;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAa,QAAQ,CAAC,iBAAiB,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAEpF;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAa;IAC7C,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,aAAa;CACnB,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,6BAA6B;IAC3C,MAAM,GAAG,GAAG,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IACvC,MAAM,GAAG,GAAG,QAAQ,CAAC,qBAAqB,CAAC,CAAC;IAC5C,MAAM,EAAE,GAAG,gBAAgB,CAAC,gBAAgB,EAAE,qBAAqB,CAAC,CAAC;IACrE,OAAO;QACL,EAAE,EAAE,EAAE,CAAC,EAAE;QACT,MAAM,EAAE,GAAG,CAAC,iBAAiB;QAC7B,MAAM,EAAE,GAAG,CAAC,iBAAiB;KAC9B,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAS,+BAA+B,CACtC,CAAS,EAAE,IAAY,EAAE,IAAY,EAAE,IAAY;IAEnD,MAAM,GAAG,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,0BAA0B;IACzE,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;IAC/B,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IACxB,MAAM,QAAQ,GAAG;QACf,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACd,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QACd,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACZ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;KACb,CAAC;IACF,wDAAwD;IACxD,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7C,OAAO;QACL,OAAO,EAAE,IAAI,GAAG,CAAqB,CAAC,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC/D,WAAW,EAAE,IAAI,GAAG,CAAmB,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;QACpE,SAAS,EAAE,CAAC;KACb,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,4BAA4B;IAMhD,qEAAqE;IACrE,0EAA0E;IAC1E,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,2BAA2B;IACrD,MAAM,IAAI,GAAG,SAAS,CAAC,CAAG,4BAA4B;IAEtD,MAAM,QAAQ,GAAkB;QAC9B,IAAI,EAAE,QAAQ,EAAK,aAAa;QAChC,OAAO,EAAE,MAAM,EAAI,QAAQ;QAC3B,QAAQ,EAAE,KAAK,EAAI,8CAA8C;KAClE,CAAC;IACF,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC;IAC7C,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,oBAAoB;IAExE,4EAA4E;IAC5E,MAAM,IAAI,GAAG,GAAG,GAAG,CAAC,QAAQ,GAAG,OAAO,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,+BAA+B,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IAClE,MAAM,eAAe,GAAG,OAAO,CAAC,KAAe,CAAC;IAEhD,2EAA2E;IAC3E,iDAAiD;IACjD,gFAAgF;IAChF,MAAM,EAAE,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC9B,MAAM,UAAU,GAAG,YAAY,CAC7B,CAAC,MAAM,EAAE,EAAE;QACT,MAAM,CAAC,GAAG,QAAQ,GAAG,MAAM,GAAG,EAAE,CAAC;QACjC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,CAAC,EACD,CAAC,CAAC,CAAC,EACH,CAAC,EAAE,CAAC,EACJ,IAAI,CACL,CAAC;IACF,MAAM,eAAe,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IACtC,MAAM,eAAe,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAEvD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC;AACzE,CAAC"}
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Bridge Equation 38 — Modified Newtonian Dynamics (MOND), canonical
3
+ * Milgrom (1983) interpolation form.
4
+ *
5
+ * F = F_N · ν(z) where z = F_N / (m · a_0)
6
+ * ν(z) = √[(1 + √(1 + 4/z²)) / 2]
7
+ *
8
+ * Equivalent to the implicit Milgrom relation:
9
+ * μ(a/a_0) · a = a_N where μ(x) = x / √(1 + x²)
10
+ *
11
+ * Limits:
12
+ * - Newtonian (F_N >> m·a_0, z → ∞): F → F_N
13
+ * - Deep-MOND (F_N << m·a_0, z → 0): F → √(m · F_N · a_0)
14
+ *
15
+ * Status: speculative.
16
+ *
17
+ * Honest-claude scope notes:
18
+ * - The interpolation function `μ(x) = x/√(1+x²)` and the explicit
19
+ * ν-form for F/F_N are canonical Milgrom 1983 / Famaey-McGaugh 2012
20
+ * content; the *bridge framing* (using MOND as a UPT
21
+ * dark-sector/baryonic-gravity bridge) is the speculative element.
22
+ * - The AST has no inverse-function primitive for μ⁻¹, so we encode
23
+ * the explicit force form `F = F_N · ν(z)` with `ν(z)` as an
24
+ * opaque dimensionless symbol stub. The argument
25
+ * `z = F_N/(m·a_0)` is exposed as a separate ExprNode
26
+ * `BE38_MOND_NU_ARG` so its dimensionlessness can be verified
27
+ * directly (same dimensionless-stub pattern as BE-26 / BE-41).
28
+ * - The numerical evaluator computes ν(z) explicitly using the
29
+ * closed form `ν(z) = √[(1+√(1+4/z²))/2]`, so the bracket-checks
30
+ * are exact (within machine precision).
31
+ * - GW170817 strongly constrains generic relativistic-MOND completions
32
+ * (TeVeS gravitational-wave speed deviates from c); see BE-36 for
33
+ * the relativistic completion bridge and its known issue.
34
+ *
35
+ * @see docs/specification/Part-II.md ("Bridge Equation 38: Entropic Gravity Correction Term")
36
+ * @see src/bridges/index.ts BRIDGE_EQUATIONS.find(e => e.id === 38)
37
+ * @module bridges/equations/be-38-mond
38
+ */
39
+ import type { ExprNode, DimensionValidationReport } from '../../dimensional/validator.js';
40
+ /**
41
+ * Lemma AST: the dimensionless ν-argument
42
+ * z = F_N / (m · a_0)
43
+ *
44
+ * Exposed for the lemma test that verifies the argument is
45
+ * dimensionless (per the dimensionless-stub convention; see
46
+ * `src/dimensional/README.md` "Encoding transcendental functions").
47
+ */
48
+ export declare const BE38_MOND_NU_ARG: ExprNode;
49
+ /**
50
+ * RHS of the Milgrom MOND force law:
51
+ * F = F_N · ν(z)
52
+ *
53
+ * Encoded as `F_N · ν_stub` where ν_stub is a dimensionless symbol;
54
+ * the argument z is exposed separately as `BE38_MOND_NU_ARG`.
55
+ */
56
+ export declare const BE38_MOND_FORCE_RHS: ExprNode;
57
+ /** LHS: F has dimension [force]. */
58
+ export declare const BE38_MOND_FORCE_LHS: ExprNode;
59
+ export interface MONDForceInputs {
60
+ /** Newtonian force F_N (N). Must be > 0 and finite. */
61
+ F_N_newton: number;
62
+ /** Test-particle mass m (kg). Must be > 0 and finite. */
63
+ m_kg: number;
64
+ /** MOND scale a_0 (m/s²). Canonical value ≈ 1.2e-10. Must be > 0 and finite. */
65
+ a_0_m_per_s2: number;
66
+ }
67
+ /**
68
+ * Compute the MOND-modified force using the canonical Milgrom (1983)
69
+ * interpolation `μ(x) = x/√(1+x²)`:
70
+ *
71
+ * F = F_N · ν(z), z = F_N / (m · a_0)
72
+ * ν(z) = √[(1 + √(1 + 4/z²)) / 2]
73
+ *
74
+ * Limits (verifiable by inspection):
75
+ * - z → ∞: ν → 1, so F → F_N (Newtonian)
76
+ * - z → 0: ν → √(2/z) → ∞, but F = F_N·ν → √(F_N · m · a_0) (deep-MOND)
77
+ *
78
+ * @returns Force in newtons.
79
+ */
80
+ export declare function evaluateMONDForce(input: MONDForceInputs): number;
81
+ /**
82
+ * Run the AST through the dimensional analyzer; both sides should be
83
+ * [force].
84
+ */
85
+ export declare function validateBE38Dimensions(): DimensionValidationReport;
86
+ //# sourceMappingURL=be-38-mond.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"be-38-mond.d.ts","sourceRoot":"","sources":["../../../src/bridges/equations/be-38-mond.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAY1F;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,EAAE,QAY9B,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,EAAE,QAMjC,CAAC;AAEF,oCAAoC;AACpC,eAAO,MAAM,mBAAmB,EAAE,QAA0B,CAAC;AAI7D,MAAM,WAAW,eAAe;IAC9B,uDAAuD;IACvD,UAAU,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,gFAAgF;IAChF,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAoBhE;AAID;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,yBAAyB,CASlE"}
@@ -0,0 +1,122 @@
1
+ /**
2
+ * Bridge Equation 38 — Modified Newtonian Dynamics (MOND), canonical
3
+ * Milgrom (1983) interpolation form.
4
+ *
5
+ * F = F_N · ν(z) where z = F_N / (m · a_0)
6
+ * ν(z) = √[(1 + √(1 + 4/z²)) / 2]
7
+ *
8
+ * Equivalent to the implicit Milgrom relation:
9
+ * μ(a/a_0) · a = a_N where μ(x) = x / √(1 + x²)
10
+ *
11
+ * Limits:
12
+ * - Newtonian (F_N >> m·a_0, z → ∞): F → F_N
13
+ * - Deep-MOND (F_N << m·a_0, z → 0): F → √(m · F_N · a_0)
14
+ *
15
+ * Status: speculative.
16
+ *
17
+ * Honest-claude scope notes:
18
+ * - The interpolation function `μ(x) = x/√(1+x²)` and the explicit
19
+ * ν-form for F/F_N are canonical Milgrom 1983 / Famaey-McGaugh 2012
20
+ * content; the *bridge framing* (using MOND as a UPT
21
+ * dark-sector/baryonic-gravity bridge) is the speculative element.
22
+ * - The AST has no inverse-function primitive for μ⁻¹, so we encode
23
+ * the explicit force form `F = F_N · ν(z)` with `ν(z)` as an
24
+ * opaque dimensionless symbol stub. The argument
25
+ * `z = F_N/(m·a_0)` is exposed as a separate ExprNode
26
+ * `BE38_MOND_NU_ARG` so its dimensionlessness can be verified
27
+ * directly (same dimensionless-stub pattern as BE-26 / BE-41).
28
+ * - The numerical evaluator computes ν(z) explicitly using the
29
+ * closed form `ν(z) = √[(1+√(1+4/z²))/2]`, so the bracket-checks
30
+ * are exact (within machine precision).
31
+ * - GW170817 strongly constrains generic relativistic-MOND completions
32
+ * (TeVeS gravitational-wave speed deviates from c); see BE-36 for
33
+ * the relativistic completion bridge and its known issue.
34
+ *
35
+ * @see docs/specification/Part-II.md ("Bridge Equation 38: Entropic Gravity Correction Term")
36
+ * @see src/bridges/index.ts BRIDGE_EQUATIONS.find(e => e.id === 38)
37
+ * @module bridges/equations/be-38-mond
38
+ */
39
+ import { validate, validateEquation } from '../../dimensional/validator.js';
40
+ import { DIMENSIONLESS, ACCELERATION, FORCE, MASS, } from '../../dimensional/types.js';
41
+ const sym = (name, dim) => ({ kind: 'symbol', name, dim });
42
+ /**
43
+ * Lemma AST: the dimensionless ν-argument
44
+ * z = F_N / (m · a_0)
45
+ *
46
+ * Exposed for the lemma test that verifies the argument is
47
+ * dimensionless (per the dimensionless-stub convention; see
48
+ * `src/dimensional/README.md` "Encoding transcendental functions").
49
+ */
50
+ export const BE38_MOND_NU_ARG = {
51
+ kind: 'op', op: '/',
52
+ args: [
53
+ sym('F_N', FORCE),
54
+ {
55
+ kind: 'op', op: '*',
56
+ args: [
57
+ sym('m', MASS),
58
+ sym('a_0', ACCELERATION),
59
+ ],
60
+ },
61
+ ],
62
+ };
63
+ /**
64
+ * RHS of the Milgrom MOND force law:
65
+ * F = F_N · ν(z)
66
+ *
67
+ * Encoded as `F_N · ν_stub` where ν_stub is a dimensionless symbol;
68
+ * the argument z is exposed separately as `BE38_MOND_NU_ARG`.
69
+ */
70
+ export const BE38_MOND_FORCE_RHS = {
71
+ kind: 'op', op: '*',
72
+ args: [
73
+ sym('F_N', FORCE),
74
+ sym('nu(z)', DIMENSIONLESS),
75
+ ],
76
+ };
77
+ /** LHS: F has dimension [force]. */
78
+ export const BE38_MOND_FORCE_LHS = sym('F', FORCE);
79
+ /**
80
+ * Compute the MOND-modified force using the canonical Milgrom (1983)
81
+ * interpolation `μ(x) = x/√(1+x²)`:
82
+ *
83
+ * F = F_N · ν(z), z = F_N / (m · a_0)
84
+ * ν(z) = √[(1 + √(1 + 4/z²)) / 2]
85
+ *
86
+ * Limits (verifiable by inspection):
87
+ * - z → ∞: ν → 1, so F → F_N (Newtonian)
88
+ * - z → 0: ν → √(2/z) → ∞, but F = F_N·ν → √(F_N · m · a_0) (deep-MOND)
89
+ *
90
+ * @returns Force in newtons.
91
+ */
92
+ export function evaluateMONDForce(input) {
93
+ const { F_N_newton, m_kg, a_0_m_per_s2 } = input;
94
+ if (!Number.isFinite(F_N_newton) || F_N_newton <= 0) {
95
+ throw new RangeError(`evaluateMONDForce: F_N_newton must be a finite positive number, got ${F_N_newton}`);
96
+ }
97
+ if (!Number.isFinite(m_kg) || m_kg <= 0) {
98
+ throw new RangeError(`evaluateMONDForce: m_kg must be a finite positive number, got ${m_kg}`);
99
+ }
100
+ if (!Number.isFinite(a_0_m_per_s2) || a_0_m_per_s2 <= 0) {
101
+ throw new RangeError(`evaluateMONDForce: a_0_m_per_s2 must be a finite positive number, got ${a_0_m_per_s2}`);
102
+ }
103
+ const z = F_N_newton / (m_kg * a_0_m_per_s2);
104
+ const nu = Math.sqrt((1 + Math.sqrt(1 + 4 / (z * z))) / 2);
105
+ return F_N_newton * nu;
106
+ }
107
+ // --- Self-validation ---
108
+ /**
109
+ * Run the AST through the dimensional analyzer; both sides should be
110
+ * [force].
111
+ */
112
+ export function validateBE38Dimensions() {
113
+ const eq = validateEquation(BE38_MOND_FORCE_LHS, BE38_MOND_FORCE_RHS);
114
+ const lhs = validate(BE38_MOND_FORCE_LHS);
115
+ const rhs = validate(BE38_MOND_FORCE_RHS);
116
+ return {
117
+ ok: eq.ok,
118
+ lhsDim: lhs.inferredDimension,
119
+ rhsDim: rhs.inferredDimension,
120
+ };
121
+ }
122
+ //# sourceMappingURL=be-38-mond.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"be-38-mond.js","sourceRoot":"","sources":["../../../src/bridges/equations/be-38-mond.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAGH,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAEL,aAAa,EACb,YAAY,EACZ,KAAK,EACL,IAAI,GACL,MAAM,4BAA4B,CAAC;AAEpC,MAAM,GAAG,GAAG,CAAC,IAAY,EAAE,GAAc,EAAY,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;AAExF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAa;IACxC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG;IACnB,IAAI,EAAE;QACJ,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC;QACjB;YACE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG;YACnB,IAAI,EAAE;gBACJ,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC;gBACd,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC;aACzB;SACF;KACF;CACF,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAa;IAC3C,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG;IACnB,IAAI,EAAE;QACJ,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC;QACjB,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC;KAC5B;CACF,CAAC;AAEF,oCAAoC;AACpC,MAAM,CAAC,MAAM,mBAAmB,GAAa,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAa7D;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAsB;IACtD,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC;IACjD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,UAAU,CAClB,uEAAuE,UAAU,EAAE,CACpF,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,UAAU,CAClB,iEAAiE,IAAI,EAAE,CACxE,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,YAAY,IAAI,CAAC,EAAE,CAAC;QACxD,MAAM,IAAI,UAAU,CAClB,yEAAyE,YAAY,EAAE,CACxF,CAAC;IACJ,CAAC;IACD,MAAM,CAAC,GAAG,UAAU,GAAG,CAAC,IAAI,GAAG,YAAY,CAAC,CAAC;IAC7C,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3D,OAAO,UAAU,GAAG,EAAE,CAAC;AACzB,CAAC;AAED,0BAA0B;AAE1B;;;GAGG;AACH,MAAM,UAAU,sBAAsB;IACpC,MAAM,EAAE,GAAG,gBAAgB,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAAC;IACtE,MAAM,GAAG,GAAG,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IAC1C,MAAM,GAAG,GAAG,QAAQ,CAAC,mBAAmB,CAAC,CAAC;IAC1C,OAAO;QACL,EAAE,EAAE,EAAE,CAAC,EAAE;QACT,MAAM,EAAE,GAAG,CAAC,iBAAiB;QAC7B,MAAM,EAAE,GAAG,CAAC,iBAAiB;KAC9B,CAAC;AACJ,CAAC"}