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,31 @@
1
+ /**
2
+ * SI dimensional signatures of fundamental physical constants.
3
+ *
4
+ * These are *dimensions only* — numerical values for the constants themselves
5
+ * live in `src/core/types.ts` (`PhysicalConstants`). The split is intentional:
6
+ * - `core/types.ts` owns numeric values (CODATA 2018) for runtime computation.
7
+ * - this module owns the SI dimensional signatures for the validator.
8
+ *
9
+ * Sources for the dimensional signatures:
10
+ * - CODATA 2018 / NIST CODATA values: https://physics.nist.gov/cuu/Constants/
11
+ * - BIPM SI Brochure 9th ed. (2019)
12
+ * - Planck-unit derivations: Planck (1899); see Wald, "General Relativity"
13
+ * (1984), §G for the canonical Planck-length / Planck-time relations.
14
+ *
15
+ * @module dimensional/constants
16
+ */
17
+ import { LENGTH, VELOCITY, ACTION, CHARGE, } from './types.js';
18
+ /** Reduced Planck constant ℏ — action [M L^2 T^-1]. */
19
+ export const hbar = ACTION;
20
+ /** Speed of light c — velocity [L T^-1]. */
21
+ export const c = VELOCITY;
22
+ /** Newton's gravitational constant G — [L^3 M^-1 T^-2]. */
23
+ export const G = { L: 3, M: -1, T: -2, I: 0, Theta: 0, N: 0, J: 0 };
24
+ /** Boltzmann constant k_B — energy / temperature [M L^2 T^-2 Θ^-1]. */
25
+ export const k_B = { L: 2, M: 1, T: -2, I: 0, Theta: -1, N: 0, J: 0 };
26
+ /** Elementary charge e — [T I] (coulombs). */
27
+ export const e = CHARGE;
28
+ // --- Planck-unit shorthand (SI dimensions; numerical values not stored here). ---
29
+ /** Planck length ℓ_P — [L]. */
30
+ export const l_P = LENGTH;
31
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/dimensional/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAEL,MAAM,EACN,QAAQ,EACR,MAAM,EACN,MAAM,GACP,MAAM,YAAY,CAAC;AAEpB,uDAAuD;AACvD,MAAM,CAAC,MAAM,IAAI,GAAc,MAAM,CAAC;AAEtC,4CAA4C;AAC5C,MAAM,CAAC,MAAM,CAAC,GAAc,QAAQ,CAAC;AAErC,2DAA2D;AAC3D,MAAM,CAAC,MAAM,CAAC,GAAc,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAE/E,uEAAuE;AACvE,MAAM,CAAC,MAAM,GAAG,GAAc,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAEjF,8CAA8C;AAC9C,MAAM,CAAC,MAAM,CAAC,GAAc,MAAM,CAAC;AAEnC,mFAAmF;AAEnF,+BAA+B;AAC/B,MAAM,CAAC,MAAM,GAAG,GAAc,MAAM,CAAC"}
@@ -0,0 +1,161 @@
1
+ /**
2
+ * UPT error hierarchy. All UPT-source errors subclass UPTError so
3
+ * downstream consumers (mathjs, threejs, TensorJS) can discriminate
4
+ * with `err instanceof UPTError`.
5
+ *
6
+ * @module dimensional/errors
7
+ */
8
+ import { Dimension } from './types.js';
9
+ /** Base class for all UPT-source errors. */
10
+ export declare class UPTError extends Error {
11
+ constructor(message: string);
12
+ }
13
+ /**
14
+ * Thrown by add/sub and equation-level checks when dimensions disagree.
15
+ * (Moved from src/dimensional/algebra.ts as part of the v0.2.0 UPTError
16
+ * refactor. Behavior unchanged.)
17
+ */
18
+ export declare class DimensionMismatchError extends UPTError {
19
+ readonly expected: Dimension;
20
+ readonly actual: Dimension;
21
+ constructor(message: string, expected: Dimension, actual: Dimension);
22
+ }
23
+ /**
24
+ * Thrown when a tensor-symbol's indices list contains the same label
25
+ * more than once (e.g., T^μ_μ_μ). Per Part-VII §VII.4.
26
+ *
27
+ * NOTE: this error fires on DECLARATION-TIME duplicates within a single
28
+ * tensor-symbol's indices list. Those indices are *free*, not "dummy"
29
+ * (a dummy index in tensor calculus is one that is summed over). The
30
+ * earlier name `RepeatedDummyLabelError` was a misnomer; that deprecated
31
+ * alias was removed in v0.4.5.
32
+ */
33
+ export declare class DuplicateIndexLabelError extends UPTError {
34
+ readonly tensorName: string;
35
+ readonly label: string;
36
+ constructor(tensorName: string, label: string);
37
+ }
38
+ /**
39
+ * Thrown when an index label appears more than twice across a
40
+ * tensor-product's operands. Einstein contraction requires exactly two
41
+ * occurrences (one upper + one lower) per dummy label. Per Part-VII §VII.4.
42
+ */
43
+ export declare class IndexLabelCollisionError extends UPTError {
44
+ readonly label: string;
45
+ readonly totalCount: number;
46
+ /**
47
+ * Tensor names that contributed occurrences of the colliding label,
48
+ * if the caller has them available. May be undefined for callers that
49
+ * don't track per-operand provenance.
50
+ */
51
+ readonly sources?: ReadonlyArray<string>;
52
+ constructor(label: string, totalCount: number, sources?: ReadonlyArray<string>);
53
+ }
54
+ /**
55
+ * Thrown when an index label appears twice in a tensor-product but both
56
+ * occurrences share the same variance (both upper or both lower). v0.2.0
57
+ * has no metric tensor available to raise/lower indices, so such a
58
+ * contraction is rejected at validation time. Per Part-VII §VII.4.
59
+ */
60
+ export declare class VarianceMismatchError extends UPTError {
61
+ readonly label: string;
62
+ readonly variance: 'upper' | 'lower';
63
+ constructor(label: string, variance: 'upper' | 'lower');
64
+ }
65
+ /**
66
+ * Thrown by `op '*'` / `'/'` / `'^'` when an operand carries non-empty
67
+ * freeIndices. Scalar operators in v0.2.0 are strict: any tensor-valued
68
+ * operand must instead pass through `tensor-product`. Per Part-VII §VII.5
69
+ * (op-tensor boundary rules).
70
+ */
71
+ export declare class TensorInScalarOpError extends UPTError {
72
+ readonly op: string;
73
+ constructor(op: string);
74
+ }
75
+ /**
76
+ * Thrown by `op '+'` / `'-'` when the operand freeIndices maps differ.
77
+ * Addition / subtraction across tensors requires identical free-index
78
+ * signatures (same labels, same per-label upper/lower counts). Per
79
+ * Part-VII §VII.5.
80
+ */
81
+ export declare class FreeIndexMismatchError extends UPTError {
82
+ constructor(message: string);
83
+ }
84
+ /**
85
+ * Thrown by the validator's tensor-product child resolver when a non-tensor
86
+ * operand to a `tensor-product` fails dimension inference. Subclassing
87
+ * UPTError (rather than throwing a plain `Error`) preserves the §14.7
88
+ * forward-compat invariant that downstream consumers can discriminate
89
+ * UPT-source errors with `err instanceof UPTError`.
90
+ */
91
+ export declare class TensorProductChildInferenceError extends UPTError {
92
+ constructor(message: string);
93
+ }
94
+ /**
95
+ * Thrown when a `metric-tensor` node has rank other than 2. Per
96
+ * Part-VIII §VIII.2 (metric-tensor-rank-2-only TENSOR-RULE). The metric
97
+ * is fundamentally a rank-2 object in v0.3.0; higher-rank generalizations
98
+ * are out of scope.
99
+ */
100
+ export declare class InvalidMetricRankError extends UPTError {
101
+ readonly tensorName: string;
102
+ readonly actualRank: number;
103
+ constructor(tensorName: string, actualRank: number);
104
+ }
105
+ /**
106
+ * Thrown when a `metric-tensor` has mixed-variance indices, an empty
107
+ * signature, an invalid signature string, or other structural problem
108
+ * orthogonal to rank. Per Part-VIII §VIII.2 and §VIII.5 (raise/lower
109
+ * variance requirements).
110
+ */
111
+ export declare class MetricSignatureError extends UPTError {
112
+ readonly tensorName: string;
113
+ readonly reason: string;
114
+ constructor(tensorName: string, reason: string);
115
+ }
116
+ /**
117
+ * Thrown when a `kronecker-delta` node has rank other than 2.
118
+ * Per Part-VIII §VIII.3.
119
+ */
120
+ export declare class InvalidKroneckerRankError extends UPTError {
121
+ readonly actualRank: number;
122
+ constructor(actualRank: number);
123
+ }
124
+ /**
125
+ * Thrown when a `kronecker-delta`'s two indices share the same variance
126
+ * (both upper or both lower). Per Part-VIII §VIII.3, the canonical
127
+ * δ^μ_ν requires mixed variance.
128
+ */
129
+ export declare class KroneckerVarianceError extends UPTError {
130
+ readonly bothVariance: 'upper' | 'lower';
131
+ constructor(bothVariance: 'upper' | 'lower');
132
+ }
133
+ /**
134
+ * Thrown when a `tensor-partial-derivative` node's `wrtIndex.variance`
135
+ * is `'upper'`. The differentiation operator ∂/∂x^μ is fundamentally
136
+ * covariant (lower) regardless of the variance of the coordinate. Per
137
+ * Part-VIII §VIII.4 (pderiv-wrtIndex-always-lower TENSOR-RULE).
138
+ */
139
+ export declare class PartialDerivativeIndexVarianceError extends UPTError {
140
+ readonly label: string;
141
+ constructor(label: string);
142
+ }
143
+ /**
144
+ * Emitted (not thrown) via `process.emitWarning` when a covariant-derivative's
145
+ * `wrt` coordinate label collides with an existing free index of the operand
146
+ * and the env var `UPT_ALLOW_COORD_SHADOW=1` has opted in to downgraded
147
+ * handling. By default the collision throws `MetricSignatureError` (soundness
148
+ * over friendliness — silent wrong results are the worst failure mode).
149
+ *
150
+ * Lives here (dimensional/errors.ts) rather than numerical/index.ts to avoid
151
+ * a dimensional → numerical import cycle; re-exported from numerical/index.ts
152
+ * for the public API surface per v0.4.0-Implementation-Plan Task 13.
153
+ *
154
+ * Uses `Object.setPrototypeOf` for correct `instanceof` after ES5 transpilation.
155
+ *
156
+ * @public
157
+ */
158
+ export declare class DuplicateCoordinateWarning extends Error {
159
+ constructor(coord: string, conflictingIndex: string);
160
+ }
161
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/dimensional/errors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,4CAA4C;AAC5C,qBAAa,QAAS,SAAQ,KAAK;gBACrB,OAAO,EAAE,MAAM;CAM5B;AAED;;;;GAIG;AACH,qBAAa,sBAAuB,SAAQ,QAAQ;IAClD,SAAgB,QAAQ,EAAE,SAAS,CAAC;IACpC,SAAgB,MAAM,EAAE,SAAS,CAAC;gBACtB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS;CAOpE;AAED;;;;;;;;;GASG;AACH,qBAAa,wBAAyB,SAAQ,QAAQ;IACpD,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,KAAK,EAAE,MAAM,CAAC;gBAClB,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;CAW9C;AAED;;;;GAIG;AACH,qBAAa,wBAAyB,SAAQ,QAAQ;IACpD,SAAgB,KAAK,EAAE,MAAM,CAAC;IAC9B,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC;;;;OAIG;IACH,SAAgB,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;gBAE9C,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC;CAiBlC;AAED;;;;;GAKG;AACH,qBAAa,qBAAsB,SAAQ,QAAQ;IACjD,SAAgB,KAAK,EAAE,MAAM,CAAC;IAC9B,SAAgB,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC;gBAChC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO;CAavD;AAED;;;;;GAKG;AACH,qBAAa,qBAAsB,SAAQ,QAAQ;IACjD,SAAgB,EAAE,EAAE,MAAM,CAAC;gBACf,EAAE,EAAE,MAAM;CASvB;AAED;;;;;GAKG;AACH,qBAAa,sBAAuB,SAAQ,QAAQ;gBACtC,OAAO,EAAE,MAAM;CAK5B;AAED;;;;;;GAMG;AACH,qBAAa,gCAAiC,SAAQ,QAAQ;gBAChD,OAAO,EAAE,MAAM;CAK5B;AAED;;;;;GAKG;AACH,qBAAa,sBAAuB,SAAQ,QAAQ;IAClD,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,UAAU,EAAE,MAAM,CAAC;gBACvB,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;CAUnD;AAED;;;;;GAKG;AACH,qBAAa,oBAAqB,SAAQ,QAAQ;IAChD,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,MAAM,EAAE,MAAM,CAAC;gBACnB,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAS/C;AAED;;;GAGG;AACH,qBAAa,yBAA0B,SAAQ,QAAQ;IACrD,SAAgB,UAAU,EAAE,MAAM,CAAC;gBACvB,UAAU,EAAE,MAAM;CAS/B;AAED;;;;GAIG;AACH,qBAAa,sBAAuB,SAAQ,QAAQ;IAClD,SAAgB,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC;gBACpC,YAAY,EAAE,OAAO,GAAG,OAAO;CAU5C;AAED;;;;;GAKG;AACH,qBAAa,mCAAoC,SAAQ,QAAQ;IAC/D,SAAgB,KAAK,EAAE,MAAM,CAAC;gBAClB,KAAK,EAAE,MAAM;CAU1B;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,0BAA2B,SAAQ,KAAK;gBACvC,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM;CASpD"}
@@ -0,0 +1,254 @@
1
+ /**
2
+ * UPT error hierarchy. All UPT-source errors subclass UPTError so
3
+ * downstream consumers (mathjs, threejs, TensorJS) can discriminate
4
+ * with `err instanceof UPTError`.
5
+ *
6
+ * @module dimensional/errors
7
+ */
8
+ /** Base class for all UPT-source errors. */
9
+ export class UPTError extends Error {
10
+ constructor(message) {
11
+ super(message);
12
+ this.name = 'UPTError';
13
+ // Restore prototype chain (needed for instanceof after ES5 transpilation).
14
+ Object.setPrototypeOf(this, UPTError.prototype);
15
+ }
16
+ }
17
+ /**
18
+ * Thrown by add/sub and equation-level checks when dimensions disagree.
19
+ * (Moved from src/dimensional/algebra.ts as part of the v0.2.0 UPTError
20
+ * refactor. Behavior unchanged.)
21
+ */
22
+ export class DimensionMismatchError extends UPTError {
23
+ expected;
24
+ actual;
25
+ constructor(message, expected, actual) {
26
+ super(message);
27
+ this.name = 'DimensionMismatchError';
28
+ this.expected = expected;
29
+ this.actual = actual;
30
+ Object.setPrototypeOf(this, DimensionMismatchError.prototype);
31
+ }
32
+ }
33
+ /**
34
+ * Thrown when a tensor-symbol's indices list contains the same label
35
+ * more than once (e.g., T^μ_μ_μ). Per Part-VII §VII.4.
36
+ *
37
+ * NOTE: this error fires on DECLARATION-TIME duplicates within a single
38
+ * tensor-symbol's indices list. Those indices are *free*, not "dummy"
39
+ * (a dummy index in tensor calculus is one that is summed over). The
40
+ * earlier name `RepeatedDummyLabelError` was a misnomer; that deprecated
41
+ * alias was removed in v0.4.5.
42
+ */
43
+ export class DuplicateIndexLabelError extends UPTError {
44
+ tensorName;
45
+ label;
46
+ constructor(tensorName, label) {
47
+ super(`Tensor '${tensorName}' has repeated index label '${label}'. ` +
48
+ `A label may appear at most twice (once upper, once lower) within ` +
49
+ `a single tensor-symbol's indices list.`);
50
+ this.name = 'DuplicateIndexLabelError';
51
+ this.tensorName = tensorName;
52
+ this.label = label;
53
+ Object.setPrototypeOf(this, DuplicateIndexLabelError.prototype);
54
+ }
55
+ }
56
+ /**
57
+ * Thrown when an index label appears more than twice across a
58
+ * tensor-product's operands. Einstein contraction requires exactly two
59
+ * occurrences (one upper + one lower) per dummy label. Per Part-VII §VII.4.
60
+ */
61
+ export class IndexLabelCollisionError extends UPTError {
62
+ label;
63
+ totalCount;
64
+ /**
65
+ * Tensor names that contributed occurrences of the colliding label,
66
+ * if the caller has them available. May be undefined for callers that
67
+ * don't track per-operand provenance.
68
+ */
69
+ sources;
70
+ constructor(label, totalCount, sources) {
71
+ const sourceClause = sources && sources.length > 0
72
+ ? ` (sources: ${sources.join(', ')})`
73
+ : '';
74
+ super(`Index label '${label}' appears ${totalCount} times across the ` +
75
+ `tensor-product operands${sourceClause} (max allowed: 2 for Einstein ` +
76
+ `contraction). Rename one of the offending indices.`);
77
+ this.name = 'IndexLabelCollisionError';
78
+ this.label = label;
79
+ this.totalCount = totalCount;
80
+ this.sources = sources;
81
+ Object.setPrototypeOf(this, IndexLabelCollisionError.prototype);
82
+ }
83
+ }
84
+ /**
85
+ * Thrown when an index label appears twice in a tensor-product but both
86
+ * occurrences share the same variance (both upper or both lower). v0.2.0
87
+ * has no metric tensor available to raise/lower indices, so such a
88
+ * contraction is rejected at validation time. Per Part-VII §VII.4.
89
+ */
90
+ export class VarianceMismatchError extends UPTError {
91
+ label;
92
+ variance;
93
+ constructor(label, variance) {
94
+ super(`Index label '${label}' appears twice but both with variance '${variance}'. ` +
95
+ `Einstein contraction requires one upper and one lower. ` +
96
+ `If this is intentional, use raise(operand, gInverse, '${label}') or ` +
97
+ `lower(operand, g, '${label}') to traverse variance via the metric ` +
98
+ `before contracting.`);
99
+ this.name = 'VarianceMismatchError';
100
+ this.label = label;
101
+ this.variance = variance;
102
+ Object.setPrototypeOf(this, VarianceMismatchError.prototype);
103
+ }
104
+ }
105
+ /**
106
+ * Thrown by `op '*'` / `'/'` / `'^'` when an operand carries non-empty
107
+ * freeIndices. Scalar operators in v0.2.0 are strict: any tensor-valued
108
+ * operand must instead pass through `tensor-product`. Per Part-VII §VII.5
109
+ * (op-tensor boundary rules).
110
+ */
111
+ export class TensorInScalarOpError extends UPTError {
112
+ op;
113
+ constructor(op) {
114
+ super(`Operator '${op}' is scalar-only; received a tensor argument with ` +
115
+ `non-empty freeIndices. Use 'tensor-product' for tensor multiplication.`);
116
+ this.name = 'TensorInScalarOpError';
117
+ this.op = op;
118
+ Object.setPrototypeOf(this, TensorInScalarOpError.prototype);
119
+ }
120
+ }
121
+ /**
122
+ * Thrown by `op '+'` / `'-'` when the operand freeIndices maps differ.
123
+ * Addition / subtraction across tensors requires identical free-index
124
+ * signatures (same labels, same per-label upper/lower counts). Per
125
+ * Part-VII §VII.5.
126
+ */
127
+ export class FreeIndexMismatchError extends UPTError {
128
+ constructor(message) {
129
+ super(message);
130
+ this.name = 'FreeIndexMismatchError';
131
+ Object.setPrototypeOf(this, FreeIndexMismatchError.prototype);
132
+ }
133
+ }
134
+ /**
135
+ * Thrown by the validator's tensor-product child resolver when a non-tensor
136
+ * operand to a `tensor-product` fails dimension inference. Subclassing
137
+ * UPTError (rather than throwing a plain `Error`) preserves the §14.7
138
+ * forward-compat invariant that downstream consumers can discriminate
139
+ * UPT-source errors with `err instanceof UPTError`.
140
+ */
141
+ export class TensorProductChildInferenceError extends UPTError {
142
+ constructor(message) {
143
+ super(message);
144
+ this.name = 'TensorProductChildInferenceError';
145
+ Object.setPrototypeOf(this, TensorProductChildInferenceError.prototype);
146
+ }
147
+ }
148
+ /**
149
+ * Thrown when a `metric-tensor` node has rank other than 2. Per
150
+ * Part-VIII §VIII.2 (metric-tensor-rank-2-only TENSOR-RULE). The metric
151
+ * is fundamentally a rank-2 object in v0.3.0; higher-rank generalizations
152
+ * are out of scope.
153
+ */
154
+ export class InvalidMetricRankError extends UPTError {
155
+ tensorName;
156
+ actualRank;
157
+ constructor(tensorName, actualRank) {
158
+ super(`Metric tensor '${tensorName}' has rank ${actualRank}, but a ` +
159
+ `metric must be rank-2 (exactly two indices). Per Part-VIII §VIII.2.`);
160
+ this.name = 'InvalidMetricRankError';
161
+ this.tensorName = tensorName;
162
+ this.actualRank = actualRank;
163
+ Object.setPrototypeOf(this, InvalidMetricRankError.prototype);
164
+ }
165
+ }
166
+ /**
167
+ * Thrown when a `metric-tensor` has mixed-variance indices, an empty
168
+ * signature, an invalid signature string, or other structural problem
169
+ * orthogonal to rank. Per Part-VIII §VIII.2 and §VIII.5 (raise/lower
170
+ * variance requirements).
171
+ */
172
+ export class MetricSignatureError extends UPTError {
173
+ tensorName;
174
+ reason;
175
+ constructor(tensorName, reason) {
176
+ super(`Metric tensor '${tensorName}': ${reason}. Per Part-VIII §VIII.2.`);
177
+ this.name = 'MetricSignatureError';
178
+ this.tensorName = tensorName;
179
+ this.reason = reason;
180
+ Object.setPrototypeOf(this, MetricSignatureError.prototype);
181
+ }
182
+ }
183
+ /**
184
+ * Thrown when a `kronecker-delta` node has rank other than 2.
185
+ * Per Part-VIII §VIII.3.
186
+ */
187
+ export class InvalidKroneckerRankError extends UPTError {
188
+ actualRank;
189
+ constructor(actualRank) {
190
+ super(`Kronecker delta has rank ${actualRank}, but must be rank-2 ` +
191
+ `(exactly one upper + one lower index). Per Part-VIII §VIII.3.`);
192
+ this.name = 'InvalidKroneckerRankError';
193
+ this.actualRank = actualRank;
194
+ Object.setPrototypeOf(this, InvalidKroneckerRankError.prototype);
195
+ }
196
+ }
197
+ /**
198
+ * Thrown when a `kronecker-delta`'s two indices share the same variance
199
+ * (both upper or both lower). Per Part-VIII §VIII.3, the canonical
200
+ * δ^μ_ν requires mixed variance.
201
+ */
202
+ export class KroneckerVarianceError extends UPTError {
203
+ bothVariance;
204
+ constructor(bothVariance) {
205
+ super(`Kronecker delta indices both have variance '${bothVariance}'; ` +
206
+ `must be one upper + one lower (canonical δ^μ_ν form). ` +
207
+ `Per Part-VIII §VIII.3.`);
208
+ this.name = 'KroneckerVarianceError';
209
+ this.bothVariance = bothVariance;
210
+ Object.setPrototypeOf(this, KroneckerVarianceError.prototype);
211
+ }
212
+ }
213
+ /**
214
+ * Thrown when a `tensor-partial-derivative` node's `wrtIndex.variance`
215
+ * is `'upper'`. The differentiation operator ∂/∂x^μ is fundamentally
216
+ * covariant (lower) regardless of the variance of the coordinate. Per
217
+ * Part-VIII §VIII.4 (pderiv-wrtIndex-always-lower TENSOR-RULE).
218
+ */
219
+ export class PartialDerivativeIndexVarianceError extends UPTError {
220
+ label;
221
+ constructor(label) {
222
+ super(`Partial-derivative index '${label}' has variance 'upper', but ` +
223
+ `∂_μ is fundamentally covariant — wrtIndex.variance must always ` +
224
+ `be 'lower'. Per Part-VIII §VIII.4.`);
225
+ this.name = 'PartialDerivativeIndexVarianceError';
226
+ this.label = label;
227
+ Object.setPrototypeOf(this, PartialDerivativeIndexVarianceError.prototype);
228
+ }
229
+ }
230
+ /**
231
+ * Emitted (not thrown) via `process.emitWarning` when a covariant-derivative's
232
+ * `wrt` coordinate label collides with an existing free index of the operand
233
+ * and the env var `UPT_ALLOW_COORD_SHADOW=1` has opted in to downgraded
234
+ * handling. By default the collision throws `MetricSignatureError` (soundness
235
+ * over friendliness — silent wrong results are the worst failure mode).
236
+ *
237
+ * Lives here (dimensional/errors.ts) rather than numerical/index.ts to avoid
238
+ * a dimensional → numerical import cycle; re-exported from numerical/index.ts
239
+ * for the public API surface per v0.4.0-Implementation-Plan Task 13.
240
+ *
241
+ * Uses `Object.setPrototypeOf` for correct `instanceof` after ES5 transpilation.
242
+ *
243
+ * @public
244
+ */
245
+ export class DuplicateCoordinateWarning extends Error {
246
+ constructor(coord, conflictingIndex) {
247
+ super(`Covariant-derivative wrt='${coord}' collides with existing free index ` +
248
+ `'${conflictingIndex}' of the operand; result will silently misbehave. ` +
249
+ `Rename the operand's free index or pick a different wrt label.`);
250
+ this.name = 'DuplicateCoordinateWarning';
251
+ Object.setPrototypeOf(this, DuplicateCoordinateWarning.prototype);
252
+ }
253
+ }
254
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/dimensional/errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Shared deterministic fresh-label utility used by both metric.ts (raise/lower)
3
+ * and connection.ts (christoffel). Extracted to eliminate the algorithmic
4
+ * divergence found in the Task 3 code-quality review (Finding #1).
5
+ *
6
+ * Canonical semantics (from metric.ts, the older module with downstream callers):
7
+ * always returns `<base>_<counter>` starting at counter=1, regardless of
8
+ * whether `base` itself is free. This guarantees every returned label is
9
+ * suffixed and avoids subtle round-trip inconsistencies when the same base
10
+ * label appears in multiple call sites.
11
+ *
12
+ * Per Part-VIII §VIII.5 TENSOR-RULE raise-lower-fresh-label-deterministic.
13
+ *
14
+ * @module dimensional/fresh-label
15
+ */
16
+ /**
17
+ * Generate a deterministic fresh label not present in `taken`.
18
+ * Uses the scheme `<base>_<counter>` starting at counter=1; increments until
19
+ * a non-taken label is found. Deterministic across runs.
20
+ *
21
+ * @param base The preferred label stem (e.g. `'ρ'`).
22
+ * @param taken Set of labels already in use.
23
+ * @returns A label of the form `<base>_N` where N ≥ 1.
24
+ */
25
+ export declare function freshLabel(base: string, taken: Set<string>): string;
26
+ //# sourceMappingURL=fresh-label.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fresh-label.d.ts","sourceRoot":"","sources":["../../src/dimensional/fresh-label.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,CAInE"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Shared deterministic fresh-label utility used by both metric.ts (raise/lower)
3
+ * and connection.ts (christoffel). Extracted to eliminate the algorithmic
4
+ * divergence found in the Task 3 code-quality review (Finding #1).
5
+ *
6
+ * Canonical semantics (from metric.ts, the older module with downstream callers):
7
+ * always returns `<base>_<counter>` starting at counter=1, regardless of
8
+ * whether `base` itself is free. This guarantees every returned label is
9
+ * suffixed and avoids subtle round-trip inconsistencies when the same base
10
+ * label appears in multiple call sites.
11
+ *
12
+ * Per Part-VIII §VIII.5 TENSOR-RULE raise-lower-fresh-label-deterministic.
13
+ *
14
+ * @module dimensional/fresh-label
15
+ */
16
+ /**
17
+ * Generate a deterministic fresh label not present in `taken`.
18
+ * Uses the scheme `<base>_<counter>` starting at counter=1; increments until
19
+ * a non-taken label is found. Deterministic across runs.
20
+ *
21
+ * @param base The preferred label stem (e.g. `'ρ'`).
22
+ * @param taken Set of labels already in use.
23
+ * @returns A label of the form `<base>_N` where N ≥ 1.
24
+ */
25
+ export function freshLabel(base, taken) {
26
+ let counter = 1;
27
+ while (taken.has(`${base}_${counter}`))
28
+ counter++;
29
+ return `${base}_${counter}`;
30
+ }
31
+ //# sourceMappingURL=fresh-label.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fresh-label.js","sourceRoot":"","sources":["../../src/dimensional/fresh-label.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH;;;;;;;;GAQG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,KAAkB;IACzD,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,OAAO,EAAE,CAAC;QAAE,OAAO,EAAE,CAAC;IAClD,OAAO,GAAG,IAAI,IAAI,OAAO,EAAE,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,124 @@
1
+ /**
2
+ * Per-kind validation for v0.3.0 metric-layer AST nodes.
3
+ *
4
+ * Mirrors the pattern of `validateTensorSymbol` in tensor.ts: each
5
+ * validator is a pure function returning a local `{dim, freeIndices}`
6
+ * carrier that validator.ts merges into its InferContext accumulator.
7
+ *
8
+ * Per docs/specification/Part-VIII-Metric-Layer.md §VIII.2-§VIII.4.
9
+ *
10
+ * @module dimensional/metric-validators
11
+ */
12
+ import type { Dimension } from './types.js';
13
+ import type { Role, TensorIndex } from './tensor.js';
14
+ export interface MetricTensorNode {
15
+ readonly kind: 'metric-tensor';
16
+ readonly name: string;
17
+ readonly indices: ReadonlyArray<TensorIndex>;
18
+ readonly signature: string;
19
+ readonly dim: Dimension;
20
+ /**
21
+ * v0.4.0 numerical-lowering hint: which strategy the numerical engine uses
22
+ * to compute ∂g for Christoffel / ∇_μ. Defaults to 'computed' (use the
23
+ * engine's AD on the metric function). 'zero' = constant metric (∂g=0,
24
+ * Γ=0, ∇_μ=∂_μ). 'supplied' = user provides ∂g components in
25
+ * inputs.metricDerivatives. See v0.4.0-Design.md §4 and §7.
26
+ */
27
+ readonly derivativeStrategy?: 'computed' | 'zero' | 'supplied';
28
+ }
29
+ export interface MetricTensorValidationResult {
30
+ readonly dim: Dimension;
31
+ readonly freeIndices: Map<string, {
32
+ upper: number;
33
+ lower: number;
34
+ }>;
35
+ }
36
+ /**
37
+ * Symbolic structural check for InverseMetricInconsistencyWarning: a
38
+ * both-lower metric and a both-upper metric should have all-lower and
39
+ * all-upper index variance respectively. Returns a warning note when the
40
+ * structure is wrong, else null. The numerical residual check lives in
41
+ * src/numerical/metric-inverse.ts.
42
+ */
43
+ export declare function checkInverseMetricStructure(gLower: MetricTensorNode, gUpper: MetricTensorNode): string | null;
44
+ /**
45
+ * Validate a metric-tensor node. Rejects:
46
+ * - rank ≠ 2 → InvalidMetricRankError
47
+ * - mixed-variance indices → MetricSignatureError
48
+ * - duplicate index labels (e.g., g_μμ) → MetricSignatureError
49
+ * - malformed/empty signature string → MetricSignatureError
50
+ *
51
+ * Per Part-VIII §VIII.2.
52
+ */
53
+ export declare function validateMetricTensor(node: MetricTensorNode): MetricTensorValidationResult;
54
+ export interface KroneckerDeltaNode {
55
+ readonly kind: 'kronecker-delta';
56
+ readonly indices: ReadonlyArray<TensorIndex>;
57
+ readonly dim: Dimension;
58
+ }
59
+ export interface KroneckerDeltaValidationResult {
60
+ readonly dim: Dimension;
61
+ readonly freeIndices: Map<string, {
62
+ upper: number;
63
+ lower: number;
64
+ }>;
65
+ }
66
+ /**
67
+ * Validate a kronecker-delta node. Rejects:
68
+ * - rank ≠ 2 → InvalidKroneckerRankError
69
+ * - same-variance indices (both upper or both lower) → KroneckerVarianceError
70
+ * - duplicate index labels (e.g., δ^μ_μ, a trace) → IndexLabelCollisionError
71
+ *
72
+ * Per Part-VIII §VIII.3.
73
+ */
74
+ export declare function validateKroneckerDelta(node: KroneckerDeltaNode): KroneckerDeltaValidationResult;
75
+ export interface CovariantIndex {
76
+ readonly label: string;
77
+ readonly variance: 'lower';
78
+ }
79
+ /**
80
+ * ExprNode-like — uses `unknown` for `of`/`wrt` because metric-validators.ts
81
+ * MUST NOT import from validator.ts (would create a module cycle). The
82
+ * validator's case arm threads a callback that knows the real ExprNode type.
83
+ */
84
+ export interface TensorPartialDerivativeNode {
85
+ readonly kind: 'tensor-partial-derivative';
86
+ readonly of: unknown;
87
+ readonly wrt: unknown;
88
+ readonly wrtIndex: CovariantIndex;
89
+ }
90
+ export interface PartialDerivativeValidationResult {
91
+ readonly dim: Dimension;
92
+ readonly freeIndices: Map<string, {
93
+ upper: number;
94
+ lower: number;
95
+ }>;
96
+ readonly role?: Role;
97
+ }
98
+ /**
99
+ * Per-child validation result the caller supplies via the recursion
100
+ * callback. Mirrors `ChildValidationResult` in tensor.ts — same shape,
101
+ * different home so this module stays decoupled from tensor.ts.
102
+ */
103
+ export interface PartialDerivativeChildResult {
104
+ readonly dim: Dimension;
105
+ readonly freeIndices: Map<string, {
106
+ upper: number;
107
+ lower: number;
108
+ }>;
109
+ readonly role?: Role;
110
+ }
111
+ /**
112
+ * Validate a tensor-partial-derivative node.
113
+ *
114
+ * Pure-function module-cycle-free pattern (matches `computeContraction`):
115
+ * recursion is injected via the `validateChild` callback. The caller
116
+ * (validator.ts's `infer()` dispatch) supplies a resolver that returns
117
+ * `{dim, freeIndices, role?}` for each child (the `of` and `wrt` operands).
118
+ *
119
+ * Per Part-VIII §VIII.4. Throws:
120
+ * - PartialDerivativeIndexVarianceError if wrtIndex.variance !== 'lower'
121
+ * - IndexLabelCollisionError if wrtIndex.label collides with `of`'s free indices
122
+ */
123
+ export declare function validatePartialDerivative(node: TensorPartialDerivativeNode, validateChild: (child: unknown) => PartialDerivativeChildResult): PartialDerivativeValidationResult;
124
+ //# sourceMappingURL=metric-validators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metric-validators.d.ts","sourceRoot":"","sources":["../../src/dimensional/metric-validators.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAY,IAAI,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAW/D,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IAC7C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IACxB;;;;;;OAMG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,UAAU,CAAC;CAChE;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrE;AASD;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,gBAAgB,GACvB,MAAM,GAAG,IAAI,CAQf;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,gBAAgB,GACrB,4BAA4B,CAgC9B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IAC7C,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;CACzB;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrE;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,kBAAkB,GACvB,8BAA8B,CAuBhC;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAED;;;;GAIG;AACH,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,IAAI,EAAE,2BAA2B,CAAC;IAC3C,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;CACnC;AAED,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;CACtB;AAED;;;;GAIG;AACH,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;CACtB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,2BAA2B,EACjC,aAAa,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,4BAA4B,GAC9D,iCAAiC,CA+BnC"}