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.
- package/LICENSE +21 -0
- package/README.md +377 -0
- package/dist/bridges/equations/be-11-decoherence-master.d.ts +83 -0
- package/dist/bridges/equations/be-11-decoherence-master.d.ts.map +1 -0
- package/dist/bridges/equations/be-11-decoherence-master.js +116 -0
- package/dist/bridges/equations/be-11-decoherence-master.js.map +1 -0
- package/dist/bridges/equations/be-12-coherence-length.d.ts +80 -0
- package/dist/bridges/equations/be-12-coherence-length.d.ts.map +1 -0
- package/dist/bridges/equations/be-12-coherence-length.js +128 -0
- package/dist/bridges/equations/be-12-coherence-length.js.map +1 -0
- package/dist/bridges/equations/be-13-einstein-trace.d.ts +89 -0
- package/dist/bridges/equations/be-13-einstein-trace.d.ts.map +1 -0
- package/dist/bridges/equations/be-13-einstein-trace.js +143 -0
- package/dist/bridges/equations/be-13-einstein-trace.js.map +1 -0
- package/dist/bridges/equations/be-14-ryu-takayanagi.d.ts +67 -0
- package/dist/bridges/equations/be-14-ryu-takayanagi.d.ts.map +1 -0
- package/dist/bridges/equations/be-14-ryu-takayanagi.js +112 -0
- package/dist/bridges/equations/be-14-ryu-takayanagi.js.map +1 -0
- package/dist/bridges/equations/be-15-emergence.d.ts +164 -0
- package/dist/bridges/equations/be-15-emergence.d.ts.map +1 -0
- package/dist/bridges/equations/be-15-emergence.js +204 -0
- package/dist/bridges/equations/be-15-emergence.js.map +1 -0
- package/dist/bridges/equations/be-16-landauer.d.ts +180 -0
- package/dist/bridges/equations/be-16-landauer.d.ts.map +1 -0
- package/dist/bridges/equations/be-16-landauer.js +206 -0
- package/dist/bridges/equations/be-16-landauer.js.map +1 -0
- package/dist/bridges/equations/be-17-einstein-cartan.d.ts +245 -0
- package/dist/bridges/equations/be-17-einstein-cartan.d.ts.map +1 -0
- package/dist/bridges/equations/be-17-einstein-cartan.js +304 -0
- package/dist/bridges/equations/be-17-einstein-cartan.js.map +1 -0
- package/dist/bridges/equations/be-18-higgs-mass.d.ts +65 -0
- package/dist/bridges/equations/be-18-higgs-mass.d.ts.map +1 -0
- package/dist/bridges/equations/be-18-higgs-mass.js +86 -0
- package/dist/bridges/equations/be-18-higgs-mass.js.map +1 -0
- package/dist/bridges/equations/be-19-quantum-bounce.d.ts +72 -0
- package/dist/bridges/equations/be-19-quantum-bounce.d.ts.map +1 -0
- package/dist/bridges/equations/be-19-quantum-bounce.js +151 -0
- package/dist/bridges/equations/be-19-quantum-bounce.js.map +1 -0
- package/dist/bridges/equations/be-20-vacuum-energy.d.ts +72 -0
- package/dist/bridges/equations/be-20-vacuum-energy.d.ts.map +1 -0
- package/dist/bridges/equations/be-20-vacuum-energy.js +115 -0
- package/dist/bridges/equations/be-20-vacuum-energy.js.map +1 -0
- package/dist/bridges/equations/be-21-kss-bound.d.ts +72 -0
- package/dist/bridges/equations/be-21-kss-bound.d.ts.map +1 -0
- package/dist/bridges/equations/be-21-kss-bound.js +103 -0
- package/dist/bridges/equations/be-21-kss-bound.js.map +1 -0
- package/dist/bridges/equations/be-22-topological-entanglement.d.ts +90 -0
- package/dist/bridges/equations/be-22-topological-entanglement.d.ts.map +1 -0
- package/dist/bridges/equations/be-22-topological-entanglement.js +123 -0
- package/dist/bridges/equations/be-22-topological-entanglement.js.map +1 -0
- package/dist/bridges/equations/be-23-syk-planckian.d.ts +89 -0
- package/dist/bridges/equations/be-23-syk-planckian.d.ts.map +1 -0
- package/dist/bridges/equations/be-23-syk-planckian.js +155 -0
- package/dist/bridges/equations/be-23-syk-planckian.js.map +1 -0
- package/dist/bridges/equations/be-24-foerster-fret.d.ts +81 -0
- package/dist/bridges/equations/be-24-foerster-fret.d.ts.map +1 -0
- package/dist/bridges/equations/be-24-foerster-fret.js +121 -0
- package/dist/bridges/equations/be-24-foerster-fret.js.map +1 -0
- package/dist/bridges/equations/be-25-iit-phi.d.ts +220 -0
- package/dist/bridges/equations/be-25-iit-phi.d.ts.map +1 -0
- package/dist/bridges/equations/be-25-iit-phi.js +259 -0
- package/dist/bridges/equations/be-25-iit-phi.js.map +1 -0
- package/dist/bridges/equations/be-25-orch-or.d.ts +78 -0
- package/dist/bridges/equations/be-25-orch-or.d.ts.map +1 -0
- package/dist/bridges/equations/be-25-orch-or.js +121 -0
- package/dist/bridges/equations/be-25-orch-or.js.map +1 -0
- package/dist/bridges/equations/be-26-dna-tunneling.d.ts +75 -0
- package/dist/bridges/equations/be-26-dna-tunneling.d.ts.map +1 -0
- package/dist/bridges/equations/be-26-dna-tunneling.js +138 -0
- package/dist/bridges/equations/be-26-dna-tunneling.js.map +1 -0
- package/dist/bridges/equations/be-27-effective-temperature.d.ts +81 -0
- package/dist/bridges/equations/be-27-effective-temperature.d.ts.map +1 -0
- package/dist/bridges/equations/be-27-effective-temperature.js +120 -0
- package/dist/bridges/equations/be-27-effective-temperature.js.map +1 -0
- package/dist/bridges/equations/be-28-onsager-entropy-production.d.ts +175 -0
- package/dist/bridges/equations/be-28-onsager-entropy-production.d.ts.map +1 -0
- package/dist/bridges/equations/be-28-onsager-entropy-production.js +203 -0
- package/dist/bridges/equations/be-28-onsager-entropy-production.js.map +1 -0
- package/dist/bridges/equations/be-29-jarzynski.d.ts +86 -0
- package/dist/bridges/equations/be-29-jarzynski.d.ts.map +1 -0
- package/dist/bridges/equations/be-29-jarzynski.js +132 -0
- package/dist/bridges/equations/be-29-jarzynski.js.map +1 -0
- package/dist/bridges/equations/be-30-flm-first-law.d.ts +93 -0
- package/dist/bridges/equations/be-30-flm-first-law.d.ts.map +1 -0
- package/dist/bridges/equations/be-30-flm-first-law.js +109 -0
- package/dist/bridges/equations/be-30-flm-first-law.js.map +1 -0
- package/dist/bridges/equations/be-31-causal-set-bd.d.ts +96 -0
- package/dist/bridges/equations/be-31-causal-set-bd.d.ts.map +1 -0
- package/dist/bridges/equations/be-31-causal-set-bd.js +133 -0
- package/dist/bridges/equations/be-31-causal-set-bd.js.map +1 -0
- package/dist/bridges/equations/be-32-quantum-reference-frame.d.ts +113 -0
- package/dist/bridges/equations/be-32-quantum-reference-frame.d.ts.map +1 -0
- package/dist/bridges/equations/be-32-quantum-reference-frame.js +155 -0
- package/dist/bridges/equations/be-32-quantum-reference-frame.js.map +1 -0
- package/dist/bridges/equations/be-33-hertz-millis.d.ts +77 -0
- package/dist/bridges/equations/be-33-hertz-millis.d.ts.map +1 -0
- package/dist/bridges/equations/be-33-hertz-millis.js +113 -0
- package/dist/bridges/equations/be-33-hertz-millis.js.map +1 -0
- package/dist/bridges/equations/be-34-kibble-zurek.d.ts +76 -0
- package/dist/bridges/equations/be-34-kibble-zurek.d.ts.map +1 -0
- package/dist/bridges/equations/be-34-kibble-zurek.js +139 -0
- package/dist/bridges/equations/be-34-kibble-zurek.js.map +1 -0
- package/dist/bridges/equations/be-35-conformal-bootstrap.d.ts +117 -0
- package/dist/bridges/equations/be-35-conformal-bootstrap.d.ts.map +1 -0
- package/dist/bridges/equations/be-35-conformal-bootstrap.js +167 -0
- package/dist/bridges/equations/be-35-conformal-bootstrap.js.map +1 -0
- package/dist/bridges/equations/be-36-gw-speed-bound.d.ts +77 -0
- package/dist/bridges/equations/be-36-gw-speed-bound.d.ts.map +1 -0
- package/dist/bridges/equations/be-36-gw-speed-bound.js +107 -0
- package/dist/bridges/equations/be-36-gw-speed-bound.js.map +1 -0
- package/dist/bridges/equations/be-37-shapiro-delay.d.ts +260 -0
- package/dist/bridges/equations/be-37-shapiro-delay.d.ts.map +1 -0
- package/dist/bridges/equations/be-37-shapiro-delay.js +429 -0
- package/dist/bridges/equations/be-37-shapiro-delay.js.map +1 -0
- package/dist/bridges/equations/be-38-mond.d.ts +86 -0
- package/dist/bridges/equations/be-38-mond.d.ts.map +1 -0
- package/dist/bridges/equations/be-38-mond.js +122 -0
- package/dist/bridges/equations/be-38-mond.js.map +1 -0
- package/dist/bridges/equations/be-39-asymptotic-safety.d.ts +106 -0
- package/dist/bridges/equations/be-39-asymptotic-safety.d.ts.map +1 -0
- package/dist/bridges/equations/be-39-asymptotic-safety.js +155 -0
- package/dist/bridges/equations/be-39-asymptotic-safety.js.map +1 -0
- package/dist/bridges/equations/be-40-composite-higgs.d.ts +81 -0
- package/dist/bridges/equations/be-40-composite-higgs.d.ts.map +1 -0
- package/dist/bridges/equations/be-40-composite-higgs.js +149 -0
- package/dist/bridges/equations/be-40-composite-higgs.js.map +1 -0
- package/dist/bridges/equations/be-41-swampland.d.ts +67 -0
- package/dist/bridges/equations/be-41-swampland.d.ts.map +1 -0
- package/dist/bridges/equations/be-41-swampland.js +109 -0
- package/dist/bridges/equations/be-41-swampland.js.map +1 -0
- package/dist/bridges/equations/be-42-hawking-temperature.d.ts +67 -0
- package/dist/bridges/equations/be-42-hawking-temperature.d.ts.map +1 -0
- package/dist/bridges/equations/be-42-hawking-temperature.js +109 -0
- package/dist/bridges/equations/be-42-hawking-temperature.js.map +1 -0
- package/dist/bridges/equations/be-43-er-epr.d.ts +73 -0
- package/dist/bridges/equations/be-43-er-epr.d.ts.map +1 -0
- package/dist/bridges/equations/be-43-er-epr.js +114 -0
- package/dist/bridges/equations/be-43-er-epr.js.map +1 -0
- package/dist/bridges/equations/be-44-soft-hair.d.ts +151 -0
- package/dist/bridges/equations/be-44-soft-hair.d.ts.map +1 -0
- package/dist/bridges/equations/be-44-soft-hair.js +185 -0
- package/dist/bridges/equations/be-44-soft-hair.js.map +1 -0
- package/dist/bridges/equations/be-45-tcc.d.ts +116 -0
- package/dist/bridges/equations/be-45-tcc.d.ts.map +1 -0
- package/dist/bridges/equations/be-45-tcc.js +157 -0
- package/dist/bridges/equations/be-45-tcc.js.map +1 -0
- package/dist/bridges/equations/be-46-multiverse-measure.d.ts +163 -0
- package/dist/bridges/equations/be-46-multiverse-measure.d.ts.map +1 -0
- package/dist/bridges/equations/be-46-multiverse-measure.js +198 -0
- package/dist/bridges/equations/be-46-multiverse-measure.js.map +1 -0
- package/dist/bridges/equations/be-47-bbn-dark-sector.d.ts +72 -0
- package/dist/bridges/equations/be-47-bbn-dark-sector.d.ts.map +1 -0
- package/dist/bridges/equations/be-47-bbn-dark-sector.js +121 -0
- package/dist/bridges/equations/be-47-bbn-dark-sector.js.map +1 -0
- package/dist/bridges/equations/be-48-grw-localization.d.ts +84 -0
- package/dist/bridges/equations/be-48-grw-localization.d.ts.map +1 -0
- package/dist/bridges/equations/be-48-grw-localization.js +107 -0
- package/dist/bridges/equations/be-48-grw-localization.js.map +1 -0
- package/dist/bridges/equations/be-49-quantum-darwinism.d.ts +97 -0
- package/dist/bridges/equations/be-49-quantum-darwinism.d.ts.map +1 -0
- package/dist/bridges/equations/be-49-quantum-darwinism.js +129 -0
- package/dist/bridges/equations/be-49-quantum-darwinism.js.map +1 -0
- package/dist/bridges/equations/be-50-wheeler-feynman.d.ts +120 -0
- package/dist/bridges/equations/be-50-wheeler-feynman.d.ts.map +1 -0
- package/dist/bridges/equations/be-50-wheeler-feynman.js +151 -0
- package/dist/bridges/equations/be-50-wheeler-feynman.js.map +1 -0
- package/dist/bridges/gravitational-lensing.d.ts +52 -0
- package/dist/bridges/gravitational-lensing.d.ts.map +1 -0
- package/dist/bridges/gravitational-lensing.js +48 -0
- package/dist/bridges/gravitational-lensing.js.map +1 -0
- package/dist/bridges/index.d.ts +104 -0
- package/dist/bridges/index.d.ts.map +1 -0
- package/dist/bridges/index.js +1663 -0
- package/dist/bridges/index.js.map +1 -0
- package/dist/bridges/perihelion-precession.d.ts +62 -0
- package/dist/bridges/perihelion-precession.d.ts.map +1 -0
- package/dist/bridges/perihelion-precession.js +68 -0
- package/dist/bridges/perihelion-precession.js.map +1 -0
- package/dist/core/tensor.d.ts +135 -0
- package/dist/core/tensor.d.ts.map +1 -0
- package/dist/core/tensor.js +376 -0
- package/dist/core/tensor.js.map +1 -0
- package/dist/core/types.d.ts +131 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +25 -0
- package/dist/core/types.js.map +1 -0
- package/dist/dimensional/algebra.d.ts +34 -0
- package/dist/dimensional/algebra.d.ts.map +1 -0
- package/dist/dimensional/algebra.js +90 -0
- package/dist/dimensional/algebra.js.map +1 -0
- package/dist/dimensional/bridge-check.d.ts +48 -0
- package/dist/dimensional/bridge-check.d.ts.map +1 -0
- package/dist/dimensional/bridge-check.js +137 -0
- package/dist/dimensional/bridge-check.js.map +1 -0
- package/dist/dimensional/connection-validators.d.ts +53 -0
- package/dist/dimensional/connection-validators.d.ts.map +1 -0
- package/dist/dimensional/connection-validators.js +84 -0
- package/dist/dimensional/connection-validators.js.map +1 -0
- package/dist/dimensional/connection.d.ts +40 -0
- package/dist/dimensional/connection.d.ts.map +1 -0
- package/dist/dimensional/connection.js +81 -0
- package/dist/dimensional/connection.js.map +1 -0
- package/dist/dimensional/constants.d.ts +30 -0
- package/dist/dimensional/constants.d.ts.map +1 -0
- package/dist/dimensional/constants.js +31 -0
- package/dist/dimensional/constants.js.map +1 -0
- package/dist/dimensional/errors.d.ts +161 -0
- package/dist/dimensional/errors.d.ts.map +1 -0
- package/dist/dimensional/errors.js +254 -0
- package/dist/dimensional/errors.js.map +1 -0
- package/dist/dimensional/fresh-label.d.ts +26 -0
- package/dist/dimensional/fresh-label.d.ts.map +1 -0
- package/dist/dimensional/fresh-label.js +31 -0
- package/dist/dimensional/fresh-label.js.map +1 -0
- package/dist/dimensional/metric-validators.d.ts +124 -0
- package/dist/dimensional/metric-validators.d.ts.map +1 -0
- package/dist/dimensional/metric-validators.js +141 -0
- package/dist/dimensional/metric-validators.js.map +1 -0
- package/dist/dimensional/metric.d.ts +67 -0
- package/dist/dimensional/metric.d.ts.map +1 -0
- package/dist/dimensional/metric.js +177 -0
- package/dist/dimensional/metric.js.map +1 -0
- package/dist/dimensional/tensor.d.ts +153 -0
- package/dist/dimensional/tensor.d.ts.map +1 -0
- package/dist/dimensional/tensor.js +138 -0
- package/dist/dimensional/tensor.js.map +1 -0
- package/dist/dimensional/types.d.ts +50 -0
- package/dist/dimensional/types.d.ts.map +1 -0
- package/dist/dimensional/types.js +66 -0
- package/dist/dimensional/types.js.map +1 -0
- package/dist/dimensional/validator.d.ts +84 -0
- package/dist/dimensional/validator.d.ts.map +1 -0
- package/dist/dimensional/validator.js +505 -0
- package/dist/dimensional/validator.js.map +1 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +37 -0
- package/dist/index.js.map +1 -0
- package/dist/numerical/be37-covariant-eikonal.d.ts +90 -0
- package/dist/numerical/be37-covariant-eikonal.d.ts.map +1 -0
- package/dist/numerical/be37-covariant-eikonal.js +79 -0
- package/dist/numerical/be37-covariant-eikonal.js.map +1 -0
- package/dist/numerical/connection-lowering-helpers.d.ts +107 -0
- package/dist/numerical/connection-lowering-helpers.d.ts.map +1 -0
- package/dist/numerical/connection-lowering-helpers.js +315 -0
- package/dist/numerical/connection-lowering-helpers.js.map +1 -0
- package/dist/numerical/engine-registry.d.ts +50 -0
- package/dist/numerical/engine-registry.d.ts.map +1 -0
- package/dist/numerical/engine-registry.js +82 -0
- package/dist/numerical/engine-registry.js.map +1 -0
- package/dist/numerical/errors.d.ts +28 -0
- package/dist/numerical/errors.d.ts.map +1 -0
- package/dist/numerical/errors.js +39 -0
- package/dist/numerical/errors.js.map +1 -0
- package/dist/numerical/float64-engine.d.ts +53 -0
- package/dist/numerical/float64-engine.d.ts.map +1 -0
- package/dist/numerical/float64-engine.js +638 -0
- package/dist/numerical/float64-engine.js.map +1 -0
- package/dist/numerical/geodesic-integrator.d.ts +62 -0
- package/dist/numerical/geodesic-integrator.d.ts.map +1 -0
- package/dist/numerical/geodesic-integrator.js +103 -0
- package/dist/numerical/geodesic-integrator.js.map +1 -0
- package/dist/numerical/grid-field.d.ts +24 -0
- package/dist/numerical/grid-field.d.ts.map +1 -0
- package/dist/numerical/grid-field.js +2 -0
- package/dist/numerical/grid-field.js.map +1 -0
- package/dist/numerical/index.d.ts +80 -0
- package/dist/numerical/index.d.ts.map +1 -0
- package/dist/numerical/index.js +75 -0
- package/dist/numerical/index.js.map +1 -0
- package/dist/numerical/lowering.d.ts +48 -0
- package/dist/numerical/lowering.d.ts.map +1 -0
- package/dist/numerical/lowering.js +443 -0
- package/dist/numerical/lowering.js.map +1 -0
- package/dist/numerical/mathts-engine.d.ts +55 -0
- package/dist/numerical/mathts-engine.d.ts.map +1 -0
- package/dist/numerical/mathts-engine.js +164 -0
- package/dist/numerical/mathts-engine.js.map +1 -0
- package/dist/numerical/metric-inverse.d.ts +31 -0
- package/dist/numerical/metric-inverse.d.ts.map +1 -0
- package/dist/numerical/metric-inverse.js +68 -0
- package/dist/numerical/metric-inverse.js.map +1 -0
- package/dist/numerical/null-ray-integrator.d.ts +13 -0
- package/dist/numerical/null-ray-integrator.d.ts.map +1 -0
- package/dist/numerical/null-ray-integrator.js +53 -0
- package/dist/numerical/null-ray-integrator.js.map +1 -0
- package/dist/numerical/pderiv.d.ts +43 -0
- package/dist/numerical/pderiv.d.ts.map +1 -0
- package/dist/numerical/pderiv.js +121 -0
- package/dist/numerical/pderiv.js.map +1 -0
- package/dist/numerical/tensor-engine.d.ts +114 -0
- package/dist/numerical/tensor-engine.d.ts.map +1 -0
- package/dist/numerical/tensor-engine.js +64 -0
- package/dist/numerical/tensor-engine.js.map +1 -0
- package/dist/numerical/types.d.ts +37 -0
- package/dist/numerical/types.d.ts.map +1 -0
- package/dist/numerical/types.js +8 -0
- package/dist/numerical/types.js.map +1 -0
- 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":"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"}
|
|
@@ -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"}
|