universal-physics-tensor 0.45.2 → 0.47.0

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 (548) hide show
  1. package/README.md +85 -66
  2. package/bin/upt.mjs +22 -22
  3. package/dist/atlas/applicability.d.ts +108 -0
  4. package/dist/atlas/applicability.d.ts.map +1 -0
  5. package/dist/atlas/applicability.js +301 -0
  6. package/dist/atlas/applicability.js.map +1 -0
  7. package/dist/atlas/association.d.ts +92 -0
  8. package/dist/atlas/association.d.ts.map +1 -0
  9. package/dist/atlas/association.js +112 -0
  10. package/dist/atlas/association.js.map +1 -0
  11. package/dist/atlas/benchmark/backend-shapes.d.ts +47 -0
  12. package/dist/atlas/benchmark/backend-shapes.d.ts.map +1 -0
  13. package/dist/atlas/benchmark/backend-shapes.js +58 -0
  14. package/dist/atlas/benchmark/backend-shapes.js.map +1 -0
  15. package/dist/atlas/benchmark/baselines.d.ts +64 -0
  16. package/dist/atlas/benchmark/baselines.d.ts.map +1 -0
  17. package/dist/atlas/benchmark/baselines.js +112 -0
  18. package/dist/atlas/benchmark/baselines.js.map +1 -0
  19. package/dist/atlas/benchmark/leakage.d.ts +56 -0
  20. package/dist/atlas/benchmark/leakage.d.ts.map +1 -0
  21. package/dist/atlas/benchmark/leakage.js +100 -0
  22. package/dist/atlas/benchmark/leakage.js.map +1 -0
  23. package/dist/atlas/benchmark/loader.d.ts +56 -0
  24. package/dist/atlas/benchmark/loader.d.ts.map +1 -0
  25. package/dist/atlas/benchmark/loader.js +104 -0
  26. package/dist/atlas/benchmark/loader.js.map +1 -0
  27. package/dist/atlas/benchmark/run-atlas.d.ts +72 -0
  28. package/dist/atlas/benchmark/run-atlas.d.ts.map +1 -0
  29. package/dist/atlas/benchmark/run-atlas.js +210 -0
  30. package/dist/atlas/benchmark/run-atlas.js.map +1 -0
  31. package/dist/atlas/benchmark/stats.d.ts +90 -0
  32. package/dist/atlas/benchmark/stats.d.ts.map +1 -0
  33. package/dist/atlas/benchmark/stats.js +159 -0
  34. package/dist/atlas/benchmark/stats.js.map +1 -0
  35. package/dist/atlas/benchmark/study.d.ts +120 -0
  36. package/dist/atlas/benchmark/study.d.ts.map +1 -0
  37. package/dist/atlas/benchmark/study.js +192 -0
  38. package/dist/atlas/benchmark/study.js.map +1 -0
  39. package/dist/atlas/benchmark/types.d.ts +79 -0
  40. package/dist/atlas/benchmark/types.d.ts.map +1 -0
  41. package/dist/atlas/benchmark/types.js +46 -0
  42. package/dist/atlas/benchmark/types.js.map +1 -0
  43. package/dist/atlas/composition-table.d.ts +55 -0
  44. package/dist/atlas/composition-table.d.ts.map +1 -0
  45. package/dist/atlas/composition-table.js +133 -0
  46. package/dist/atlas/composition-table.js.map +1 -0
  47. package/dist/atlas/conventions.d.ts +63 -0
  48. package/dist/atlas/conventions.d.ts.map +1 -0
  49. package/dist/atlas/conventions.js +93 -0
  50. package/dist/atlas/conventions.js.map +1 -0
  51. package/dist/atlas/coverage.d.ts +93 -0
  52. package/dist/atlas/coverage.d.ts.map +1 -0
  53. package/dist/atlas/coverage.js +69 -0
  54. package/dist/atlas/coverage.js.map +1 -0
  55. package/dist/atlas/derivation.d.ts +137 -0
  56. package/dist/atlas/derivation.d.ts.map +1 -0
  57. package/dist/atlas/derivation.js +190 -0
  58. package/dist/atlas/derivation.js.map +1 -0
  59. package/dist/atlas/derive-evidence.d.ts +218 -0
  60. package/dist/atlas/derive-evidence.d.ts.map +1 -0
  61. package/dist/atlas/derive-evidence.js +225 -0
  62. package/dist/atlas/derive-evidence.js.map +1 -0
  63. package/dist/atlas/diffusion/bridges-closure.d.ts +63 -0
  64. package/dist/atlas/diffusion/bridges-closure.d.ts.map +1 -0
  65. package/dist/atlas/diffusion/bridges-closure.js +350 -0
  66. package/dist/atlas/diffusion/bridges-closure.js.map +1 -0
  67. package/dist/atlas/diffusion/bridges.d.ts +36 -0
  68. package/dist/atlas/diffusion/bridges.d.ts.map +1 -0
  69. package/dist/atlas/diffusion/bridges.js +226 -0
  70. package/dist/atlas/diffusion/bridges.js.map +1 -0
  71. package/dist/atlas/diffusion/dimensions.d.ts +21 -0
  72. package/dist/atlas/diffusion/dimensions.d.ts.map +1 -0
  73. package/dist/atlas/diffusion/dimensions.js +21 -0
  74. package/dist/atlas/diffusion/dimensions.js.map +1 -0
  75. package/dist/atlas/diffusion/index.d.ts +16 -0
  76. package/dist/atlas/diffusion/index.d.ts.map +1 -0
  77. package/dist/atlas/diffusion/index.js +23 -0
  78. package/dist/atlas/diffusion/index.js.map +1 -0
  79. package/dist/atlas/diffusion/models.d.ts +24 -0
  80. package/dist/atlas/diffusion/models.d.ts.map +1 -0
  81. package/dist/atlas/diffusion/models.js +139 -0
  82. package/dist/atlas/diffusion/models.js.map +1 -0
  83. package/dist/atlas/diffusion/numerics.d.ts +181 -0
  84. package/dist/atlas/diffusion/numerics.d.ts.map +1 -0
  85. package/dist/atlas/diffusion/numerics.js +251 -0
  86. package/dist/atlas/diffusion/numerics.js.map +1 -0
  87. package/dist/atlas/error-algebra.d.ts +52 -0
  88. package/dist/atlas/error-algebra.d.ts.map +1 -0
  89. package/dist/atlas/error-algebra.js +55 -0
  90. package/dist/atlas/error-algebra.js.map +1 -0
  91. package/dist/atlas/export.d.ts +48 -0
  92. package/dist/atlas/export.d.ts.map +1 -0
  93. package/dist/atlas/export.js +106 -0
  94. package/dist/atlas/export.js.map +1 -0
  95. package/dist/atlas/families.d.ts +14 -0
  96. package/dist/atlas/families.d.ts.map +1 -0
  97. package/dist/atlas/families.js +20 -0
  98. package/dist/atlas/families.js.map +1 -0
  99. package/dist/atlas/index.d.ts +90 -0
  100. package/dist/atlas/index.d.ts.map +1 -0
  101. package/dist/atlas/index.js +69 -0
  102. package/dist/atlas/index.js.map +1 -0
  103. package/dist/atlas/link-prediction.d.ts +71 -0
  104. package/dist/atlas/link-prediction.d.ts.map +1 -0
  105. package/dist/atlas/link-prediction.js +128 -0
  106. package/dist/atlas/link-prediction.js.map +1 -0
  107. package/dist/atlas/model.d.ts +70 -0
  108. package/dist/atlas/model.d.ts.map +1 -0
  109. package/dist/atlas/model.js +26 -0
  110. package/dist/atlas/model.js.map +1 -0
  111. package/dist/atlas/oscillators/bridges-coarse.d.ts +71 -0
  112. package/dist/atlas/oscillators/bridges-coarse.d.ts.map +1 -0
  113. package/dist/atlas/oscillators/bridges-coarse.js +146 -0
  114. package/dist/atlas/oscillators/bridges-coarse.js.map +1 -0
  115. package/dist/atlas/oscillators/bridges-exact.d.ts +70 -0
  116. package/dist/atlas/oscillators/bridges-exact.d.ts.map +1 -0
  117. package/dist/atlas/oscillators/bridges-exact.js +230 -0
  118. package/dist/atlas/oscillators/bridges-exact.js.map +1 -0
  119. package/dist/atlas/oscillators/bridges-limits.d.ts +118 -0
  120. package/dist/atlas/oscillators/bridges-limits.d.ts.map +1 -0
  121. package/dist/atlas/oscillators/bridges-limits.js +345 -0
  122. package/dist/atlas/oscillators/bridges-limits.js.map +1 -0
  123. package/dist/atlas/oscillators/dimensions.d.ts +34 -0
  124. package/dist/atlas/oscillators/dimensions.d.ts.map +1 -0
  125. package/dist/atlas/oscillators/dimensions.js +34 -0
  126. package/dist/atlas/oscillators/dimensions.js.map +1 -0
  127. package/dist/atlas/oscillators/index.d.ts +38 -0
  128. package/dist/atlas/oscillators/index.d.ts.map +1 -0
  129. package/dist/atlas/oscillators/index.js +37 -0
  130. package/dist/atlas/oscillators/index.js.map +1 -0
  131. package/dist/atlas/oscillators/models.d.ts +25 -0
  132. package/dist/atlas/oscillators/models.d.ts.map +1 -0
  133. package/dist/atlas/oscillators/models.js +160 -0
  134. package/dist/atlas/oscillators/models.js.map +1 -0
  135. package/dist/atlas/oscillators/rejections.d.ts +21 -0
  136. package/dist/atlas/oscillators/rejections.d.ts.map +1 -0
  137. package/dist/atlas/oscillators/rejections.js +54 -0
  138. package/dist/atlas/oscillators/rejections.js.map +1 -0
  139. package/dist/atlas/path-bound.d.ts +143 -0
  140. package/dist/atlas/path-bound.d.ts.map +1 -0
  141. package/dist/atlas/path-bound.js +268 -0
  142. package/dist/atlas/path-bound.js.map +1 -0
  143. package/dist/atlas/poster/associations.d.ts +66 -0
  144. package/dist/atlas/poster/associations.d.ts.map +1 -0
  145. package/dist/atlas/poster/associations.js +90 -0
  146. package/dist/atlas/poster/associations.js.map +1 -0
  147. package/dist/atlas/poster/derivations.d.ts +156 -0
  148. package/dist/atlas/poster/derivations.d.ts.map +1 -0
  149. package/dist/atlas/poster/derivations.js +430 -0
  150. package/dist/atlas/poster/derivations.js.map +1 -0
  151. package/dist/atlas/poster/statements.d.ts +198 -0
  152. package/dist/atlas/poster/statements.d.ts.map +1 -0
  153. package/dist/atlas/poster/statements.js +365 -0
  154. package/dist/atlas/poster/statements.js.map +1 -0
  155. package/dist/atlas/public.d.ts +26 -0
  156. package/dist/atlas/public.d.ts.map +1 -0
  157. package/dist/atlas/public.js +21 -0
  158. package/dist/atlas/public.js.map +1 -0
  159. package/dist/atlas/regime.d.ts +171 -0
  160. package/dist/atlas/regime.d.ts.map +1 -0
  161. package/dist/atlas/regime.js +309 -0
  162. package/dist/atlas/regime.js.map +1 -0
  163. package/dist/atlas/serialize.d.ts +50 -0
  164. package/dist/atlas/serialize.d.ts.map +1 -0
  165. package/dist/atlas/serialize.js +180 -0
  166. package/dist/atlas/serialize.js.map +1 -0
  167. package/dist/atlas/statement.d.ts +165 -0
  168. package/dist/atlas/statement.d.ts.map +1 -0
  169. package/dist/atlas/statement.js +176 -0
  170. package/dist/atlas/statement.js.map +1 -0
  171. package/dist/atlas/types.d.ts +325 -0
  172. package/dist/atlas/types.d.ts.map +1 -0
  173. package/dist/atlas/types.js +61 -0
  174. package/dist/atlas/types.js.map +1 -0
  175. package/dist/atlas/waves/bridges-closure.d.ts +39 -0
  176. package/dist/atlas/waves/bridges-closure.d.ts.map +1 -0
  177. package/dist/atlas/waves/bridges-closure.js +226 -0
  178. package/dist/atlas/waves/bridges-closure.js.map +1 -0
  179. package/dist/atlas/waves/bridges.d.ts +49 -0
  180. package/dist/atlas/waves/bridges.d.ts.map +1 -0
  181. package/dist/atlas/waves/bridges.js +266 -0
  182. package/dist/atlas/waves/bridges.js.map +1 -0
  183. package/dist/atlas/waves/index.d.ts +16 -0
  184. package/dist/atlas/waves/index.d.ts.map +1 -0
  185. package/dist/atlas/waves/index.js +23 -0
  186. package/dist/atlas/waves/index.js.map +1 -0
  187. package/dist/atlas/waves/models.d.ts +29 -0
  188. package/dist/atlas/waves/models.d.ts.map +1 -0
  189. package/dist/atlas/waves/models.js +127 -0
  190. package/dist/atlas/waves/models.js.map +1 -0
  191. package/dist/atlas/waves/numerics.d.ts +149 -0
  192. package/dist/atlas/waves/numerics.d.ts.map +1 -0
  193. package/dist/atlas/waves/numerics.js +218 -0
  194. package/dist/atlas/waves/numerics.js.map +1 -0
  195. package/dist/atlas/witness-artifact.d.ts +65 -0
  196. package/dist/atlas/witness-artifact.d.ts.map +1 -0
  197. package/dist/atlas/witness-artifact.js +78 -0
  198. package/dist/atlas/witness-artifact.js.map +1 -0
  199. package/dist/atlas/witness-numeric.d.ts +81 -0
  200. package/dist/atlas/witness-numeric.d.ts.map +1 -0
  201. package/dist/atlas/witness-numeric.js +105 -0
  202. package/dist/atlas/witness-numeric.js.map +1 -0
  203. package/dist/atlas/witness-result.d.ts +77 -0
  204. package/dist/atlas/witness-result.d.ts.map +1 -0
  205. package/dist/atlas/witness-result.js +39 -0
  206. package/dist/atlas/witness-result.js.map +1 -0
  207. package/dist/atlas/witness-specs.d.ts +110 -0
  208. package/dist/atlas/witness-specs.d.ts.map +1 -0
  209. package/dist/atlas/witness-specs.js +372 -0
  210. package/dist/atlas/witness-specs.js.map +1 -0
  211. package/dist/atlas/witness-symbolic.d.ts +79 -0
  212. package/dist/atlas/witness-symbolic.d.ts.map +1 -0
  213. package/dist/atlas/witness-symbolic.js +140 -0
  214. package/dist/atlas/witness-symbolic.js.map +1 -0
  215. package/dist/atlas/witnesses/quantum-support.d.ts +50 -0
  216. package/dist/atlas/witnesses/quantum-support.d.ts.map +1 -0
  217. package/dist/atlas/witnesses/quantum-support.js +48 -0
  218. package/dist/atlas/witnesses/quantum-support.js.map +1 -0
  219. package/dist/bridges/be11-decoherence-confrontation.js.map +1 -1
  220. package/dist/bridges/be21-kss-confrontation.js.map +1 -1
  221. package/dist/bridges/be23-planckian-confrontation.js.map +1 -1
  222. package/dist/bridges/be35-bootstrap-confrontation.js.map +1 -1
  223. package/dist/bridges/be36-gw170817-confrontation.js.map +1 -1
  224. package/dist/bridges/be37-cassini-confrontation.js.map +1 -1
  225. package/dist/bridges/be48-collapse-confrontation.js.map +1 -1
  226. package/dist/bridges/be51-lensing-confrontation.d.ts.map +1 -1
  227. package/dist/bridges/be51-lensing-confrontation.js +5 -3
  228. package/dist/bridges/be51-lensing-confrontation.js.map +1 -1
  229. package/dist/bridges/be52-mercury-confrontation.d.ts.map +1 -1
  230. package/dist/bridges/be52-mercury-confrontation.js +4 -1
  231. package/dist/bridges/be52-mercury-confrontation.js.map +1 -1
  232. package/dist/bridges/be55-quantum-hall-confrontation.js.map +1 -1
  233. package/dist/bridges/be56-casimir-confrontation.js.map +1 -1
  234. package/dist/bridges/be58-johnson-nyquist-confrontation.js.map +1 -1
  235. package/dist/bridges/be59-ac-josephson-confrontation.js.map +1 -1
  236. package/dist/bridges/be60-fractional-qh-confrontation.js.map +1 -1
  237. package/dist/bridges/be61-wiedemann-franz-confrontation.js.map +1 -1
  238. package/dist/bridges/be62-bcs-gap-confrontation.js.map +1 -1
  239. package/dist/bridges/be63-chandrasekhar-mass-confrontation.js.map +1 -1
  240. package/dist/bridges/be64-eddington-luminosity-confrontation.js.map +1 -1
  241. package/dist/bridges/be65-jeans-mass-confrontation.js.map +1 -1
  242. package/dist/bridges/bridge-equations.d.ts +2 -2
  243. package/dist/bridges/bridge-equations.d.ts.map +1 -1
  244. package/dist/bridges/bridge-equations.js +2 -2
  245. package/dist/bridges/bridge-equations.js.map +1 -1
  246. package/dist/bridges/catalog-adapter.d.ts.map +1 -1
  247. package/dist/bridges/catalog-adapter.js.map +1 -1
  248. package/dist/bridges/confrontations.d.ts.map +1 -1
  249. package/dist/bridges/confrontations.js +7 -0
  250. package/dist/bridges/confrontations.js.map +1 -1
  251. package/dist/bridges/equations/_be-helpers.d.ts +2 -2
  252. package/dist/bridges/equations/_be-helpers.js +2 -2
  253. package/dist/bridges/equations/be-20-vacuum-energy.js.map +1 -1
  254. package/dist/bridges/equations/be-35-conformal-bootstrap.d.ts +59 -72
  255. package/dist/bridges/equations/be-35-conformal-bootstrap.d.ts.map +1 -1
  256. package/dist/bridges/equations/be-35-conformal-bootstrap.js +66 -98
  257. package/dist/bridges/equations/be-35-conformal-bootstrap.js.map +1 -1
  258. package/dist/bridges/equations/be-48-grw-localization.d.ts +9 -8
  259. package/dist/bridges/equations/be-48-grw-localization.d.ts.map +1 -1
  260. package/dist/bridges/equations/be-48-grw-localization.js +9 -8
  261. package/dist/bridges/equations/be-48-grw-localization.js.map +1 -1
  262. package/dist/bridges/gravitational-lensing.d.ts +10 -0
  263. package/dist/bridges/gravitational-lensing.d.ts.map +1 -1
  264. package/dist/bridges/gravitational-lensing.js.map +1 -1
  265. package/dist/bridges/index.d.ts +125 -7
  266. package/dist/bridges/index.d.ts.map +1 -1
  267. package/dist/bridges/index.js +483 -20
  268. package/dist/bridges/index.js.map +1 -1
  269. package/dist/bridges/observations/types.d.ts +14 -0
  270. package/dist/bridges/observations/types.d.ts.map +1 -1
  271. package/dist/bridges/observations/types.js.map +1 -1
  272. package/dist/bridges/perihelion-precession.d.ts +10 -0
  273. package/dist/bridges/perihelion-precession.d.ts.map +1 -1
  274. package/dist/bridges/perihelion-precession.js.map +1 -1
  275. package/dist/bridges/rhs-registry.js +2 -2
  276. package/dist/canonical/canonical-equation.d.ts +15 -0
  277. package/dist/canonical/canonical-equation.d.ts.map +1 -1
  278. package/dist/canonical/entries/_l1-build.d.ts +1 -1
  279. package/dist/canonical/entries/_l1-build.d.ts.map +1 -1
  280. package/dist/canonical/entries/atomic.d.ts.map +1 -1
  281. package/dist/canonical/entries/atomic.js +23 -0
  282. package/dist/canonical/entries/atomic.js.map +1 -1
  283. package/dist/canonical/entries/nonmonomial.d.ts.map +1 -1
  284. package/dist/canonical/entries/nonmonomial.js +93 -0
  285. package/dist/canonical/entries/nonmonomial.js.map +1 -1
  286. package/dist/canonical/normal-form.js.map +1 -1
  287. package/dist/canonical/residual.d.ts +28 -0
  288. package/dist/canonical/residual.d.ts.map +1 -0
  289. package/dist/canonical/residual.js +31 -0
  290. package/dist/canonical/residual.js.map +1 -0
  291. package/dist/cli/command.d.ts +8 -0
  292. package/dist/cli/command.d.ts.map +1 -1
  293. package/dist/cli/command.js +10 -0
  294. package/dist/cli/command.js.map +1 -1
  295. package/dist/cli/commands/atlas.d.ts +3 -0
  296. package/dist/cli/commands/atlas.d.ts.map +1 -0
  297. package/dist/cli/commands/atlas.js +158 -0
  298. package/dist/cli/commands/atlas.js.map +1 -0
  299. package/dist/cli/commands/audit.js +3 -3
  300. package/dist/cli/commands/candidates.js +3 -3
  301. package/dist/cli/commands/canonical.js +3 -3
  302. package/dist/cli/commands/confront.d.ts.map +1 -1
  303. package/dist/cli/commands/confront.js +8 -1
  304. package/dist/cli/commands/confront.js.map +1 -1
  305. package/dist/cli/commands/connectors.js +7 -7
  306. package/dist/cli/commands/coverage.js +3 -3
  307. package/dist/cli/commands/derive.d.ts.map +1 -1
  308. package/dist/cli/commands/derive.js +40 -9
  309. package/dist/cli/commands/derive.js.map +1 -1
  310. package/dist/cli/commands/discover.d.ts.map +1 -1
  311. package/dist/cli/commands/discover.js +46 -27
  312. package/dist/cli/commands/discover.js.map +1 -1
  313. package/dist/cli/commands/evaluate.d.ts.map +1 -1
  314. package/dist/cli/commands/evaluate.js +2 -1
  315. package/dist/cli/commands/evaluate.js.map +1 -1
  316. package/dist/cli/commands/explain.d.ts.map +1 -1
  317. package/dist/cli/commands/explain.js +19 -6
  318. package/dist/cli/commands/explain.js.map +1 -1
  319. package/dist/cli/commands/index.d.ts +3 -0
  320. package/dist/cli/commands/index.d.ts.map +1 -1
  321. package/dist/cli/commands/index.js +3 -0
  322. package/dist/cli/commands/index.js.map +1 -1
  323. package/dist/cli/commands/map.d.ts.map +1 -1
  324. package/dist/cli/commands/map.js +187 -36
  325. package/dist/cli/commands/map.js.map +1 -1
  326. package/dist/cli/commands/path.d.ts +3 -0
  327. package/dist/cli/commands/path.d.ts.map +1 -0
  328. package/dist/cli/commands/path.js +228 -0
  329. package/dist/cli/commands/path.js.map +1 -0
  330. package/dist/cli/commands/predict.js +4 -4
  331. package/dist/cli/commands/priority.js +2 -2
  332. package/dist/cli/commands/probe.d.ts.map +1 -1
  333. package/dist/cli/commands/probe.js +59 -2
  334. package/dist/cli/commands/probe.js.map +1 -1
  335. package/dist/cli/commands/recover.d.ts.map +1 -1
  336. package/dist/cli/commands/recover.js +25 -6
  337. package/dist/cli/commands/recover.js.map +1 -1
  338. package/dist/cli/commands/regime.d.ts +41 -0
  339. package/dist/cli/commands/regime.d.ts.map +1 -0
  340. package/dist/cli/commands/regime.js +243 -0
  341. package/dist/cli/commands/regime.js.map +1 -0
  342. package/dist/cli/commands/symbolic.js +5 -5
  343. package/dist/cli/errors.d.ts +13 -1
  344. package/dist/cli/errors.d.ts.map +1 -1
  345. package/dist/cli/errors.js +13 -1
  346. package/dist/cli/errors.js.map +1 -1
  347. package/dist/cli/graphs.d.ts.map +1 -1
  348. package/dist/cli/graphs.js +5 -1
  349. package/dist/cli/graphs.js.map +1 -1
  350. package/dist/cli/main.d.ts.map +1 -1
  351. package/dist/cli/main.js +29 -2
  352. package/dist/cli/main.js.map +1 -1
  353. package/dist/cli/output.d.ts +6 -1
  354. package/dist/cli/output.d.ts.map +1 -1
  355. package/dist/cli/output.js.map +1 -1
  356. package/dist/cli/version.js.map +1 -1
  357. package/dist/cli-api.d.ts +21 -1
  358. package/dist/cli-api.d.ts.map +1 -1
  359. package/dist/cli-api.js +23 -1
  360. package/dist/cli-api.js.map +1 -1
  361. package/dist/composition/axis-audit.js.map +1 -1
  362. package/dist/composition/bridge-prediction.d.ts.map +1 -1
  363. package/dist/composition/bridge-prediction.js +0 -0
  364. package/dist/composition/bridge-prediction.js.map +1 -1
  365. package/dist/composition/canonical-compare.d.ts +65 -0
  366. package/dist/composition/canonical-compare.d.ts.map +1 -0
  367. package/dist/composition/canonical-compare.js +237 -0
  368. package/dist/composition/canonical-compare.js.map +1 -0
  369. package/dist/composition/canonical-graph.d.ts +2 -2
  370. package/dist/composition/canonical-graph.js +2 -2
  371. package/dist/composition/canonical-graph.js.map +1 -1
  372. package/dist/composition/canonical-prefactors.d.ts +32 -0
  373. package/dist/composition/canonical-prefactors.d.ts.map +1 -0
  374. package/dist/composition/canonical-prefactors.js +80 -0
  375. package/dist/composition/canonical-prefactors.js.map +1 -0
  376. package/dist/composition/compose-symbolic.d.ts.map +1 -1
  377. package/dist/composition/compose-symbolic.js.map +1 -1
  378. package/dist/composition/compose.d.ts.map +1 -1
  379. package/dist/composition/compose.js +80 -1
  380. package/dist/composition/compose.js.map +1 -1
  381. package/dist/composition/consequence.js.map +1 -1
  382. package/dist/composition/discovery.d.ts +20 -3
  383. package/dist/composition/discovery.d.ts.map +1 -1
  384. package/dist/composition/discovery.js +30 -4
  385. package/dist/composition/discovery.js.map +1 -1
  386. package/dist/composition/edge.d.ts +64 -0
  387. package/dist/composition/edge.d.ts.map +1 -1
  388. package/dist/composition/edge.js +29 -0
  389. package/dist/composition/edge.js.map +1 -1
  390. package/dist/composition/edges/calibration.d.ts.map +1 -1
  391. package/dist/composition/edges/calibration.js +46 -0
  392. package/dist/composition/edges/calibration.js.map +1 -1
  393. package/dist/composition/edges/catalog-quantum.d.ts.map +1 -1
  394. package/dist/composition/edges/catalog-quantum.js +9 -0
  395. package/dist/composition/edges/catalog-quantum.js.map +1 -1
  396. package/dist/composition/edges/catalog-tranche.d.ts.map +1 -1
  397. package/dist/composition/edges/catalog-tranche.js +18 -0
  398. package/dist/composition/edges/catalog-tranche.js.map +1 -1
  399. package/dist/composition/enumerate.js.map +1 -1
  400. package/dist/composition/explain.d.ts +9 -1
  401. package/dist/composition/explain.d.ts.map +1 -1
  402. package/dist/composition/explain.js +34 -8
  403. package/dist/composition/explain.js.map +1 -1
  404. package/dist/composition/expr-eval.d.ts.map +1 -1
  405. package/dist/composition/expr-eval.js.map +1 -1
  406. package/dist/composition/expr-simplify.d.ts +13 -0
  407. package/dist/composition/expr-simplify.d.ts.map +1 -1
  408. package/dist/composition/expr-simplify.js +25 -0
  409. package/dist/composition/expr-simplify.js.map +1 -1
  410. package/dist/composition/expr-subst.js.map +1 -1
  411. package/dist/composition/graph-viz-svg.d.ts.map +1 -1
  412. package/dist/composition/graph-viz.d.ts +118 -1
  413. package/dist/composition/graph-viz.d.ts.map +1 -1
  414. package/dist/composition/graph-viz.js +189 -6
  415. package/dist/composition/graph-viz.js.map +1 -1
  416. package/dist/composition/grounding.d.ts.map +1 -1
  417. package/dist/composition/grounding.js +6 -1
  418. package/dist/composition/grounding.js.map +1 -1
  419. package/dist/composition/identifiability.js.map +1 -1
  420. package/dist/composition/index.d.ts +4 -2
  421. package/dist/composition/index.d.ts.map +1 -1
  422. package/dist/composition/index.js +2 -1
  423. package/dist/composition/index.js.map +1 -1
  424. package/dist/composition/poster-source.d.ts +153 -0
  425. package/dist/composition/poster-source.d.ts.map +1 -0
  426. package/dist/composition/poster-source.js +183 -0
  427. package/dist/composition/poster-source.js.map +1 -0
  428. package/dist/composition/probe/backend-protocol.d.ts +34 -1
  429. package/dist/composition/probe/backend-protocol.d.ts.map +1 -1
  430. package/dist/composition/probe/backend-protocol.js +9 -2
  431. package/dist/composition/probe/backend-protocol.js.map +1 -1
  432. package/dist/composition/probe/candidate-store.d.ts.map +1 -1
  433. package/dist/composition/probe/corpus.d.ts +12 -0
  434. package/dist/composition/probe/corpus.d.ts.map +1 -1
  435. package/dist/composition/probe/corpus.js +100 -0
  436. package/dist/composition/probe/corpus.js.map +1 -1
  437. package/dist/composition/probe/generator.d.ts +14 -0
  438. package/dist/composition/probe/generator.d.ts.map +1 -1
  439. package/dist/composition/probe/generator.js +24 -2
  440. package/dist/composition/probe/generator.js.map +1 -1
  441. package/dist/composition/probe/limits.js.map +1 -1
  442. package/dist/composition/probe/pipeline.d.ts +5 -0
  443. package/dist/composition/probe/pipeline.d.ts.map +1 -1
  444. package/dist/composition/probe/pipeline.js +20 -3
  445. package/dist/composition/probe/pipeline.js.map +1 -1
  446. package/dist/composition/probe/problem.js.map +1 -1
  447. package/dist/composition/probe/report.d.ts.map +1 -1
  448. package/dist/composition/probe/report.js +2 -0
  449. package/dist/composition/probe/report.js.map +1 -1
  450. package/dist/composition/probe/residual.d.ts.map +1 -1
  451. package/dist/composition/probe/residual.js.map +1 -1
  452. package/dist/composition/probe/search-budget.js.map +1 -1
  453. package/dist/composition/proposed-bridges.d.ts +2 -2
  454. package/dist/composition/proposed-bridges.d.ts.map +1 -1
  455. package/dist/composition/proposed-bridges.js +1 -1
  456. package/dist/composition/proposed-bridges.js.map +1 -1
  457. package/dist/composition/retrodiction.js.map +1 -1
  458. package/dist/composition/uncertainty.d.ts +52 -2
  459. package/dist/composition/uncertainty.d.ts.map +1 -1
  460. package/dist/composition/uncertainty.js +38 -2
  461. package/dist/composition/uncertainty.js.map +1 -1
  462. package/dist/composition/user-equation.d.ts.map +1 -1
  463. package/dist/core/constants.d.ts +13 -0
  464. package/dist/core/constants.d.ts.map +1 -1
  465. package/dist/core/constants.js +13 -0
  466. package/dist/core/constants.js.map +1 -1
  467. package/dist/core/flux-rules.d.ts.map +1 -1
  468. package/dist/core/flux-rules.js.map +1 -1
  469. package/dist/core/labeled-tensor.d.ts.map +1 -1
  470. package/dist/core/regime-registry.d.ts.map +1 -1
  471. package/dist/core/regime-rule-install.js.map +1 -1
  472. package/dist/core/tensor.d.ts.map +1 -1
  473. package/dist/core/tensor.js.map +1 -1
  474. package/dist/core/types.d.ts.map +1 -1
  475. package/dist/diff/bridge-ast-gradient.js.map +1 -1
  476. package/dist/diff/bridge-gradient.d.ts +1 -1
  477. package/dist/diff/bridge-gradient.js +1 -1
  478. package/dist/dimensional/ast-types.d.ts +31 -1
  479. package/dist/dimensional/ast-types.d.ts.map +1 -1
  480. package/dist/dimensional/bridge-check.d.ts +1 -1
  481. package/dist/dimensional/bridge-check.js +1 -1
  482. package/dist/dimensional/buckingham.d.ts.map +1 -1
  483. package/dist/dimensional/connection.d.ts +2 -0
  484. package/dist/dimensional/connection.d.ts.map +1 -1
  485. package/dist/dimensional/connection.js +2 -0
  486. package/dist/dimensional/connection.js.map +1 -1
  487. package/dist/dimensional/curvature-composite.d.ts +5 -3
  488. package/dist/dimensional/curvature-composite.d.ts.map +1 -1
  489. package/dist/dimensional/curvature-composite.js +1 -0
  490. package/dist/dimensional/curvature-composite.js.map +1 -1
  491. package/dist/dimensional/curvature-invariants.d.ts +2 -0
  492. package/dist/dimensional/curvature-invariants.d.ts.map +1 -1
  493. package/dist/dimensional/curvature-invariants.js +2 -0
  494. package/dist/dimensional/curvature-invariants.js.map +1 -1
  495. package/dist/dimensional/dimension-spec.d.ts.map +1 -1
  496. package/dist/dimensional/einstein-equation.d.ts +3 -3
  497. package/dist/dimensional/einstein-equation.js +3 -3
  498. package/dist/dimensional/errors.d.ts.map +1 -1
  499. package/dist/dimensional/metric.d.ts +5 -2
  500. package/dist/dimensional/metric.d.ts.map +1 -1
  501. package/dist/dimensional/metric.js +5 -2
  502. package/dist/dimensional/metric.js.map +1 -1
  503. package/dist/dimensional/tensor-trace.js.map +1 -1
  504. package/dist/dimensional/validator-registry.js.map +1 -1
  505. package/dist/dimensional/validator.d.ts +3 -2
  506. package/dist/dimensional/validator.d.ts.map +1 -1
  507. package/dist/dimensional/validator.js +23 -4
  508. package/dist/dimensional/validator.js.map +1 -1
  509. package/dist/index.d.ts +4 -3
  510. package/dist/index.d.ts.map +1 -1
  511. package/dist/index.js +4 -1
  512. package/dist/index.js.map +1 -1
  513. package/dist/numerical/curvature-lowering-helpers.d.ts.map +1 -1
  514. package/dist/numerical/curvature-lowering-helpers.js +104 -0
  515. package/dist/numerical/curvature-lowering-helpers.js.map +1 -1
  516. package/dist/numerical/errors.d.ts.map +1 -1
  517. package/dist/numerical/errors.js.map +1 -1
  518. package/dist/numerical/float64-engine.d.ts.map +1 -1
  519. package/dist/numerical/float64-engine.js +51 -24
  520. package/dist/numerical/float64-engine.js.map +1 -1
  521. package/dist/numerical/formula-dimension.d.ts.map +1 -1
  522. package/dist/numerical/formula-dimension.js.map +1 -1
  523. package/dist/numerical/formula.d.ts.map +1 -1
  524. package/dist/numerical/formula.js.map +1 -1
  525. package/dist/numerical/geometrized.d.ts.map +1 -1
  526. package/dist/numerical/gl4-integrator.d.ts +3 -3
  527. package/dist/numerical/gl4-integrator.js +3 -3
  528. package/dist/numerical/killing.d.ts +47 -5
  529. package/dist/numerical/killing.d.ts.map +1 -1
  530. package/dist/numerical/killing.js +41 -3
  531. package/dist/numerical/killing.js.map +1 -1
  532. package/dist/numerical/klein-gordon.d.ts +2 -2
  533. package/dist/numerical/klein-gordon.js +2 -2
  534. package/dist/numerical/lowering.d.ts +2 -2
  535. package/dist/numerical/lowering.d.ts.map +1 -1
  536. package/dist/numerical/lowering.js +5 -3
  537. package/dist/numerical/lowering.js.map +1 -1
  538. package/dist/numerical/mathts-engine.d.ts.map +1 -1
  539. package/dist/numerical/mathts-engine.js.map +1 -1
  540. package/dist/numerical/metric-inverse.js.map +1 -1
  541. package/dist/numerical/perihelion-finder.d.ts +15 -13
  542. package/dist/numerical/perihelion-finder.d.ts.map +1 -1
  543. package/dist/numerical/perihelion-finder.js +15 -13
  544. package/dist/numerical/perihelion-finder.js.map +1 -1
  545. package/dist/numerical/weyl-lowering.d.ts.map +1 -1
  546. package/dist/numerical/weyl-lowering.js +90 -40
  547. package/dist/numerical/weyl-lowering.js.map +1 -1
  548. package/package.json +163 -104
@@ -0,0 +1,325 @@
1
+ /**
2
+ * Atlas Phase 0 pilot types (oscillator pilot).
3
+ *
4
+ * Fixed by `docs/planning/Atlas-Phase-0-Design.md` §2 and the implementation
5
+ * plan's §"S0 types" block, implemented here verbatim.
6
+ *
7
+ * **These are throwaway pilot types** (design note §4). If Phase 1's
8
+ * relation-contract work disagrees with any of them, the Phase 0 type is
9
+ * replaced, not adapted: nothing atlas-side is public before Phase 6 and the
10
+ * only consumers are Phase 0's own tests.
11
+ *
12
+ * Name note: the probe's `RelationKind` and `AuditState` are NOT shadowed —
13
+ * this sprint uses `RelationType` and defines no `AuditState`.
14
+ * `src/composition/bridge-prediction.ts` has a module-local, unexported
15
+ * `interface Regime` for tensor-cell placement; different concept, no
16
+ * import collision.
17
+ *
18
+ * @module atlas/types
19
+ */
20
+ import type { PiGroup } from '../dimensional/buckingham.js';
21
+ /** The relation a bridge asserts between its premises and its conclusion. @public */
22
+ export type RelationType = 'derivation' | 'exact-equivalence' | 'restriction' | 'approximation' | 'coarse-graining' | 'analytic-continuation' | 'structural-analogy' | 'deformation-quantization';
23
+ /** What kind of support a record carries. Carried only if its witness passes. @public */
24
+ export type EvidenceTag = 'proposed' | 'reviewed' | 'dimension-checked' | 'convention-checked' | 'symbolically-checked' | 'numerically-supported' | 'formally-proved' | 'empirically-supported' | 'contradicted' | 'unresolved';
25
+ /**
26
+ * Every `EvidenceTag`, in declaration order, so a report can name all of them.
27
+ *
28
+ * Lives HERE, not in `coverage.ts` (which re-exports it), because
29
+ * `tests/atlas/derived-tag-literals.test.ts` allows the literals
30
+ * `'formally-proved'` and `'symbolically-checked'` under `src/atlas/` in
31
+ * exactly two files: this one and `derive-evidence.ts`. A tag that can only be
32
+ * DERIVED must not be spellable anywhere a record could hand-set it.
33
+ *
34
+ * @internal
35
+ */
36
+ export declare const ALL_EVIDENCE_TAGS: readonly ["proposed", "reviewed", "dimension-checked", "convention-checked", "symbolically-checked", "numerically-supported", "formally-proved", "empirically-supported", "contradicted", "unresolved"];
37
+ /**
38
+ * How a formal reference's statement was checked against the physics it claims
39
+ * to state (Phase 4 design note §3).
40
+ *
41
+ * - `'two-formalizers'` — two people formalized it independently and agreed.
42
+ * - `'back-translation'` — a reviewer who had not seen the source translated
43
+ * the formal statement back to prose and it matched.
44
+ * - `'sanity-lemmas'` — the statement was instantiated on known cases in
45
+ * `tests/atlas/formal-sanity.test.ts`.
46
+ * - `'unreviewed'` — recorded, not checked. **Earns no tag, by construction.**
47
+ *
48
+ * @internal
49
+ */
50
+ export type FormalFidelity = 'two-formalizers' | 'back-translation' | 'sanity-lemmas' | 'unreviewed';
51
+ /**
52
+ * A machine-checked counterpart of a record's claim in a proof assistant.
53
+ *
54
+ * A proof of the WRONG statement proves nothing about the physics, so the
55
+ * reference carries its `fidelity` — how anyone knows the formal statement says
56
+ * what the bridge says. `formally-proved` is derived from it and never set.
57
+ *
58
+ * @internal
59
+ */
60
+ export interface FormalRef {
61
+ readonly system: 'lean4-physlib' | 'other';
62
+ /** The formal statement's name or text, as it appears in `system`. */
63
+ readonly statement: string;
64
+ /** The library version or commit the statement was checked against. */
65
+ readonly version: string;
66
+ /** Axioms the proof depends on beyond the system's core. */
67
+ readonly axioms: readonly string[];
68
+ readonly fidelity: FormalFidelity;
69
+ }
70
+ /** Whether the limit a bridge takes is regular or singular. @public */
71
+ export type LimitCharacter = 'regular' | 'singular' | 'unknown';
72
+ /**
73
+ * One inequality on a regime coordinate. The coordinate is either a π-group
74
+ * `buckinghamPi` produced from the family's dimensioned parameters (keyed by
75
+ * `PiGroup.formula`), or a dimensionless INPUT of the model (an initial datum
76
+ * such as θ0, a wavenumber-lattice product qa) declared as a
77
+ * `DimensionalVariable` with the zero dimension, which is its own trivial
78
+ * group. Derived quantities such as ζ = ½ (m k / b²)^(−½) are NOT groups:
79
+ * write the inequality on the group (`m k / b² > 1/4`) and record the display
80
+ * alias in `alias`.
81
+ *
82
+ * @public
83
+ */
84
+ export interface RegimeInequality {
85
+ /** `PiGroup.formula`, or the dimensionless input's name. */
86
+ readonly group: string;
87
+ readonly op: '<' | '<=' | '>' | '>=';
88
+ readonly bound: number;
89
+ /** `'ζ < 1'` — for display only, never evaluated. */
90
+ readonly alias?: string;
91
+ }
92
+ /** Where in parameter space a model or bridge is claimed to apply. @public */
93
+ export interface Regime {
94
+ /** `'oscillators'`. */
95
+ readonly family: string;
96
+ readonly inequalities: readonly RegimeInequality[];
97
+ /** Traceability back to the dimension matrix, keyed by `PiGroup.formula`. */
98
+ readonly groupDefinitions: Readonly<Record<string, PiGroup>>;
99
+ }
100
+ /** A Lipschitz-plus-offset error bound with a mandatory horizon. @public */
101
+ export interface ApproximationBound {
102
+ /** Lipschitz constant of the map, in the stated norm. */
103
+ readonly K: number;
104
+ /**
105
+ * Uniform error, same norm: the SUPREMUM OF THE BOUND OVER THE WHOLE
106
+ * DECLARED DOMAIN (`domain` / `parameterRange`), never a sample of it at
107
+ * one convenient fixture point.
108
+ *
109
+ * A parameter-dependent bound evaluated at a fixture is not a bound on the
110
+ * domain it claims: the record would read as covering every admissible
111
+ * parameter while holding only at the one point it was measured. When the
112
+ * supremum is approached but not attained at an open edge of the domain,
113
+ * `delta` is that supremum, and `deltaAt` is what a caller uses to get the
114
+ * tighter value at its own point.
115
+ */
116
+ readonly delta: number;
117
+ /**
118
+ * `'relative period error, normalized by the value of the reduced model'`,
119
+ * `'sup |x − x_reduced| for t ≥ 5 m/b'`, …
120
+ *
121
+ * A RELATIVE norm divides |exact − reduced| by the REDUCED model's value, and
122
+ * says so in this string. The other reading, by the exact value, gives a
123
+ * different number: at x = ck/ω₀ = 1 the non-relativistic kinetic frequency
124
+ * exceeds the exact Klein–Gordon one by 20.7% of the exact value, and by
125
+ * 17.2% of its own value. `tests/atlas/relative-norm-convention.test.ts` recomputes
126
+ * every relative `delta` from closed-form physics and pins the convention.
127
+ */
128
+ readonly norm: string;
129
+ /** Where the bound holds. */
130
+ readonly domain: string;
131
+ /** MANDATORY prose horizon: `'t ≪ 16 T0/θ0²'`. */
132
+ readonly horizon: string;
133
+ /** MANDATORY machine form of `horizon`: true while the bound is claimed to hold. */
134
+ readonly horizonHolds: (t: number, params: Readonly<Record<string, number>>) => boolean;
135
+ /**
136
+ * MACHINE FORM OF `delta`, mirroring what `horizonHolds` is to `horizon`:
137
+ * the bound AT A POINT of the declared domain, in the same norm.
138
+ *
139
+ * `horizon` had a machine counterpart and `delta` had none, so an
140
+ * implementer holding a correct parameter-dependent bound could only freeze
141
+ * it at a single point and hope the reader noticed. `deltaAt` is where that
142
+ * dependence goes; `delta` stays the supremum over the domain, and
143
+ * `deltaAt(p) <= delta` for every admissible `p`.
144
+ *
145
+ * Optional on the interface so a genuinely constant bound need not restate
146
+ * itself, and so `coarse-graining` bounds are unaffected; MANDATORY for an
147
+ * `approximation`, enforced at admission by `admitApproximation`.
148
+ */
149
+ readonly deltaAt?: (params: Readonly<Record<string, number>>) => number;
150
+ /**
151
+ * What `deltaAt` rests on. `'closed-form'`: it returns the EXACT error in
152
+ * closed form, so it is a proven bound, holding with equality. `'numerically-
153
+ * supported'`: a formula that witnesses support numerically but no proof
154
+ * covers. `upt path` prints a point bound only when every step is closed-form.
155
+ */
156
+ readonly deltaAtBasis?: 'closed-form' | 'numerically-supported';
157
+ /** `'θ0 ≤ 0.5 rad'`. */
158
+ readonly parameterRange?: string;
159
+ readonly limitCharacter: LimitCharacter;
160
+ /**
161
+ * What the error is uniform in.
162
+ *
163
+ * `null` means NOT YET ANALYSED. That is a legitimate recorded state:
164
+ * `makeApproximation` accepts it, and the check lives at use (`boundPath`),
165
+ * not at construction. An empty array means the same thing — a universal
166
+ * over nothing must not count as analysed. A non-empty array names the
167
+ * scopes the error is uniform in. A variable a side condition says the
168
+ * error is NOT uniform in is not listed.
169
+ */
170
+ readonly uniformity: readonly string[] | null;
171
+ }
172
+ /** A named check that supports a record, and the test file that runs it. @public */
173
+ export interface Witness {
174
+ /** `'W7b'`. */
175
+ readonly id: string;
176
+ readonly kind: 'symbolic' | 'numeric' | 'formal';
177
+ /** Test file path. */
178
+ readonly test: string;
179
+ /** As stated in the brief. */
180
+ readonly tolerance?: string;
181
+ }
182
+ /**
183
+ * `AtlasModel` MOVED to `./model.ts` in Phase 3, where it gained
184
+ * `boundaryData?`, `initialData?` and `symmetryGroup?`. It is NOT re-exported
185
+ * from here: `model.ts` imports `Regime` from this module, so a re-export
186
+ * would close a cycle `bun run docs:deps` reports. Import it from
187
+ * `./model.js`.
188
+ */
189
+ /** A case a bridge does NOT cover, and the witness that shows it. @public */
190
+ export interface Counterexample {
191
+ readonly description: string;
192
+ /** `'W2b'`. */
193
+ readonly witness: string;
194
+ }
195
+ /** Field set = Blueprint v2 §3.1 Bridge record + citations. @internal */
196
+ export interface AtlasBridge {
197
+ /** `'ab-spring-lc'`. */
198
+ readonly id: string;
199
+ readonly relation: RelationType;
200
+ /** Model ids (many). */
201
+ readonly premises: readonly string[];
202
+ /** Model id (one). */
203
+ readonly conclusion: string;
204
+ /** `'u = x/x0 (or q/q0), τ = ω0 t'`. */
205
+ readonly transformation: string;
206
+ /** `'x = x0 u, t = τ/ω0'` — required for `exact-equivalence`. */
207
+ readonly inverse?: string;
208
+ readonly preserves: readonly string[];
209
+ readonly doesNotPreserve: readonly string[];
210
+ readonly sideConditions: readonly string[];
211
+ /** Required iff `relation === 'approximation'`. */
212
+ readonly bound?: ApproximationBound;
213
+ readonly regime: Regime;
214
+ readonly counterexamples: readonly Counterexample[];
215
+ readonly evidence: ReadonlySet<EvidenceTag>;
216
+ readonly witnesses: readonly Witness[];
217
+ readonly citations: readonly string[];
218
+ readonly reviewStatus: 'proposed' | 'reviewed';
219
+ /**
220
+ * A machine-checked counterpart, when one genuinely exists (Phase 4, S4.6).
221
+ * Absent is the honest default: a statement with no checked counterpart gets
222
+ * no reference rather than an `'unreviewed'` placeholder.
223
+ */
224
+ readonly formalRef?: FormalRef;
225
+ }
226
+ /** A claimed bridge the atlas records as REJECTED, with the reason. @public */
227
+ export interface AtlasRejection {
228
+ /** `'ax-cubic-spring-lc'`. */
229
+ readonly id: string;
230
+ readonly claimed: RelationType;
231
+ readonly premises: readonly string[];
232
+ readonly conclusion: string;
233
+ readonly reason: string;
234
+ /** `'beta·x0²·k⁻¹'`. */
235
+ readonly survivingGroup: string;
236
+ readonly witnesses: readonly Witness[];
237
+ }
238
+ /**
239
+ * The relation a record asserts, as a DISCRIMINATED UNION over `RelationType`.
240
+ *
241
+ * This is the Phase 1 overlay (design note §1.2, "One overlay, not two"). Its
242
+ * purpose is to move `AtlasBridge`'s two CONDITIONAL requirements — written
243
+ * there only as doc comments — into the type system:
244
+ *
245
+ * - `approximation` REQUIRES `bound`, and `ApproximationBound` itself
246
+ * mandates `horizon` + `horizonHolds`. So an approximation without a
247
+ * machine horizon is a COMPILE error, not a runtime one.
248
+ * - `exact-equivalence` REQUIRES `inverse`.
249
+ *
250
+ * Deliberately conservative elsewhere. The design note §2.2 names the fields
251
+ * the other members WOULD need (an analyticity domain, a checkable
252
+ * `preserves` set, an ħ-order) and records that none of them exists before
253
+ * Phase 2. Inventing them here would encode claims the data cannot support,
254
+ * so every other member carries only `transformation`.
255
+ *
256
+ * @internal
257
+ */
258
+ export type RelationContract = {
259
+ readonly type: 'derivation';
260
+ readonly transformation: string;
261
+ } | {
262
+ readonly type: 'exact-equivalence';
263
+ readonly transformation: string;
264
+ /** REQUIRED: `'x = x0 u, t = τ/ω0'`. An equivalence without an inverse is not one. */
265
+ readonly inverse: string;
266
+ } | {
267
+ readonly type: 'restriction';
268
+ readonly transformation: string;
269
+ } | {
270
+ readonly type: 'approximation';
271
+ readonly transformation: string;
272
+ /** REQUIRED, and mandates its own machine horizon. */
273
+ readonly bound: ApproximationBound;
274
+ } | {
275
+ readonly type: 'coarse-graining';
276
+ readonly transformation: string;
277
+ /** Optional: errors accumulate through `composeBounds` when present. */
278
+ readonly bound?: ApproximationBound;
279
+ } | {
280
+ readonly type: 'analytic-continuation';
281
+ readonly transformation: string;
282
+ } | {
283
+ readonly type: 'structural-analogy';
284
+ readonly transformation: string;
285
+ } | {
286
+ readonly type: 'deformation-quantization';
287
+ readonly transformation: string;
288
+ };
289
+ /**
290
+ * Sign and unit choices a record depends on. Every field is optional, and a
291
+ * field is only meaningful when the record actually depends on that choice.
292
+ *
293
+ * Non-emptiness matters downstream: design note §3 requires `conventions` to
294
+ * declare AT LEAST ONE field before `convention-checked` can be derived,
295
+ * because `[].every(…)` is vacuously true and would hand out a free tag.
296
+ *
297
+ * @internal
298
+ */
299
+ export interface Conventions {
300
+ /** First law as `dU = Q − W` or `dU = Q + W`. */
301
+ readonly heatWorkSign?: 'Q-W' | 'Q+W';
302
+ readonly metricSignature?: '-+++' | '+---';
303
+ readonly fourierNormalization?: 'unitary' | 'physics' | 'none';
304
+ readonly unitSystem?: 'SI' | 'gaussian' | 'natural';
305
+ readonly capacitorChargeSign?: '+' | '-';
306
+ }
307
+ /** Thrown when an `ApproximationBound` is built without its machine horizon. @public */
308
+ export declare class MissingHorizonError extends Error {
309
+ }
310
+ /**
311
+ * Thrown when an `approximation` bound is built without the machine form of
312
+ * its `delta`.
313
+ *
314
+ * A distinct type rather than a reuse of `MissingHorizonError`: the horizon of
315
+ * such a record is present and correct, and reporting a missing horizon for it
316
+ * would send the next reader to the one field that is not the defect.
317
+ *
318
+ * @internal
319
+ */
320
+ export declare class MissingDeltaAtError extends Error {
321
+ }
322
+ /** Thrown when a bound path has no Lipschitz constant anywhere but at its end. @public */
323
+ export declare class MissingLipschitzError extends Error {
324
+ }
325
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/atlas/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Atlas Phase 0 pilot types (oscillator pilot).
3
+ *
4
+ * Fixed by `docs/planning/Atlas-Phase-0-Design.md` §2 and the implementation
5
+ * plan's §"S0 types" block, implemented here verbatim.
6
+ *
7
+ * **These are throwaway pilot types** (design note §4). If Phase 1's
8
+ * relation-contract work disagrees with any of them, the Phase 0 type is
9
+ * replaced, not adapted: nothing atlas-side is public before Phase 6 and the
10
+ * only consumers are Phase 0's own tests.
11
+ *
12
+ * Name note: the probe's `RelationKind` and `AuditState` are NOT shadowed —
13
+ * this sprint uses `RelationType` and defines no `AuditState`.
14
+ * `src/composition/bridge-prediction.ts` has a module-local, unexported
15
+ * `interface Regime` for tensor-cell placement; different concept, no
16
+ * import collision.
17
+ *
18
+ * @module atlas/types
19
+ */
20
+ /**
21
+ * Every `EvidenceTag`, in declaration order, so a report can name all of them.
22
+ *
23
+ * Lives HERE, not in `coverage.ts` (which re-exports it), because
24
+ * `tests/atlas/derived-tag-literals.test.ts` allows the literals
25
+ * `'formally-proved'` and `'symbolically-checked'` under `src/atlas/` in
26
+ * exactly two files: this one and `derive-evidence.ts`. A tag that can only be
27
+ * DERIVED must not be spellable anywhere a record could hand-set it.
28
+ *
29
+ * @internal
30
+ */
31
+ export const ALL_EVIDENCE_TAGS = [
32
+ 'proposed',
33
+ 'reviewed',
34
+ 'dimension-checked',
35
+ 'convention-checked',
36
+ 'symbolically-checked',
37
+ 'numerically-supported',
38
+ 'formally-proved',
39
+ 'empirically-supported',
40
+ 'contradicted',
41
+ 'unresolved',
42
+ ];
43
+ /** Thrown when an `ApproximationBound` is built without its machine horizon. @public */
44
+ export class MissingHorizonError extends Error {
45
+ }
46
+ /**
47
+ * Thrown when an `approximation` bound is built without the machine form of
48
+ * its `delta`.
49
+ *
50
+ * A distinct type rather than a reuse of `MissingHorizonError`: the horizon of
51
+ * such a record is present and correct, and reporting a missing horizon for it
52
+ * would send the next reader to the one field that is not the defect.
53
+ *
54
+ * @internal
55
+ */
56
+ export class MissingDeltaAtError extends Error {
57
+ }
58
+ /** Thrown when a bound path has no Lipschitz constant anywhere but at its end. @public */
59
+ export class MissingLipschitzError extends Error {
60
+ }
61
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/atlas/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AA4BH;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,UAAU;IACV,UAAU;IACV,mBAAmB;IACnB,oBAAoB;IACpB,sBAAsB;IACtB,uBAAuB;IACvB,iBAAiB;IACjB,uBAAuB;IACvB,cAAc;IACd,YAAY;CAC6B,CAAC;AA0R5C,wFAAwF;AACxF,MAAM,OAAO,mBAAoB,SAAQ,KAAK;CAAG;AAEjD;;;;;;;;;GASG;AACH,MAAM,OAAO,mBAAoB,SAAQ,KAAK;CAAG;AAEjD,0FAA0F;AAC1F,MAAM,OAAO,qBAAsB,SAAQ,KAAK;CAAG"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Atlas Phase 4 — the three wave-family bridges added to close Sprint 4's
3
+ * "≥ 20 bridges" exit criterion.
4
+ *
5
+ * Design note: `docs/planning/Atlas-Phase-4-Design.md` §4 (Sprint 4 closure).
6
+ *
7
+ * | Bridge | Relation | Witnesses |
8
+ * |---|---|---|
9
+ * | Klein–Gordon → free Schrödinger | `approximation` (ck/ω₀ → 0) | WS5 (convergence), WS5b |
10
+ * | Klein–Gordon → spring | `restriction` (uniform mode) | WS6 (convergence) |
11
+ * | stiff string → string | `approximation` (EIk²/F → 0) | WS7 (convergence), WS7b |
12
+ *
13
+ * Two of these END in other families (`model-schrodinger-free` in diffusion,
14
+ * `model-spring` in oscillators): the atlas is one graph, and
15
+ * `tests/atlas/families.test.ts` resolves endpoints across all of it.
16
+ *
17
+ * @module atlas/waves/bridges-closure
18
+ */
19
+ import type { AtlasBridge } from '../types.js';
20
+ /** Domain edge of the non-relativistic limit: ck/ω₀ ≤ 0.1. @internal */
21
+ export declare const KG_NR_MAX_X = 0.1;
22
+ /** Domain edge of the flexible-string limit: β = EIk²/F ≤ 0.01. @internal */
23
+ export declare const STIFF_MAX_BETA = 0.01;
24
+ /**
25
+ * Bridge: Klein–Gordon → free Schrödinger, the non-relativistic limit.
26
+ *
27
+ * Factor out the rest-frequency phase e^{−iω₀t}; the remaining envelope obeys
28
+ * the free Schrödinger equation with ħ/m ↦ c²/ω₀ (that is, mc² = ħω₀).
29
+ *
30
+ * @internal
31
+ */
32
+ export declare const BRIDGE_KG_SCHRODINGER: AtlasBridge;
33
+ /** Bridge: Klein–Gordon → spring, restricted to the spatially uniform mode. @internal */
34
+ export declare const BRIDGE_KG_OSCILLATOR: AtlasBridge;
35
+ /** Bridge: stiff string → flexible string, as bending stiffness → 0. @internal */
36
+ export declare const BRIDGE_STIFF_STRING: AtlasBridge;
37
+ /** The wave-family closure bridges. @internal */
38
+ export declare const WAVE_CLOSURE_BRIDGES: readonly AtlasBridge[];
39
+ //# sourceMappingURL=bridges-closure.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridges-closure.d.ts","sourceRoot":"","sources":["../../../src/atlas/waves/bridges-closure.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAOH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAM/C,wEAAwE;AACxE,eAAO,MAAM,WAAW,MAAM,CAAC;AAE/B,6EAA6E;AAC7E,eAAO,MAAM,cAAc,OAAO,CAAC;AAWnC;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,EAAE,WA+EnC,CAAC;AAEF,yFAAyF;AACzF,eAAO,MAAM,oBAAoB,EAAE,WA+BlC,CAAC;AAEF,kFAAkF;AAClF,eAAO,MAAM,mBAAmB,EAAE,WAqEjC,CAAC;AAEF,iDAAiD;AACjD,eAAO,MAAM,oBAAoB,EAAE,SAAS,WAAW,EAItD,CAAC"}
@@ -0,0 +1,226 @@
1
+ /**
2
+ * Atlas Phase 4 — the three wave-family bridges added to close Sprint 4's
3
+ * "≥ 20 bridges" exit criterion.
4
+ *
5
+ * Design note: `docs/planning/Atlas-Phase-4-Design.md` §4 (Sprint 4 closure).
6
+ *
7
+ * | Bridge | Relation | Witnesses |
8
+ * |---|---|---|
9
+ * | Klein–Gordon → free Schrödinger | `approximation` (ck/ω₀ → 0) | WS5 (convergence), WS5b |
10
+ * | Klein–Gordon → spring | `restriction` (uniform mode) | WS6 (convergence) |
11
+ * | stiff string → string | `approximation` (EIk²/F → 0) | WS7 (convergence), WS7b |
12
+ *
13
+ * Two of these END in other families (`model-schrodinger-free` in diffusion,
14
+ * `model-spring` in oscillators): the atlas is one graph, and
15
+ * `tests/atlas/families.test.ts` resolves endpoints across all of it.
16
+ *
17
+ * @module atlas/waves/bridges-closure
18
+ */
19
+ import { ACTION, FORCE, FREQUENCY, MASS, VELOCITY } from '../../dimensional/types.js';
20
+ import { makeApproximation } from '../oscillators/bridges-limits.js';
21
+ import { SPRING_CONSTANT } from '../oscillators/dimensions.js';
22
+ import { deriveRegimeGroups } from '../regime.js';
23
+ import { FLEXURAL_RIGIDITY, LINEAR_DENSITY, WAVENUMBER, WAVES_FAMILY_NAME } from './models.js';
24
+ import { kgNonrelativisticError, stiffStringPhaseError } from './numerics.js';
25
+ const TEST = 'tests/atlas/closure.test.ts';
26
+ /** Domain edge of the non-relativistic limit: ck/ω₀ ≤ 0.1. @internal */
27
+ export const KG_NR_MAX_X = 0.1;
28
+ /** Domain edge of the flexible-string limit: β = EIk²/F ≤ 0.01. @internal */
29
+ export const STIFF_MAX_BETA = 0.01;
30
+ const regime = (parameters, inequalities) => ({
31
+ family: WAVES_FAMILY_NAME,
32
+ inequalities,
33
+ groupDefinitions: deriveRegimeGroups(WAVES_FAMILY_NAME, parameters, []),
34
+ });
35
+ /**
36
+ * Bridge: Klein–Gordon → free Schrödinger, the non-relativistic limit.
37
+ *
38
+ * Factor out the rest-frequency phase e^{−iω₀t}; the remaining envelope obeys
39
+ * the free Schrödinger equation with ħ/m ↦ c²/ω₀ (that is, mc² = ħω₀).
40
+ *
41
+ * @internal
42
+ */
43
+ export const BRIDGE_KG_SCHRODINGER = {
44
+ id: 'ab-kg-schrodinger',
45
+ relation: 'approximation',
46
+ premises: ['model-klein-gordon'],
47
+ conclusion: 'model-schrodinger-free',
48
+ transformation: 'u = Re(ψ e^{−iω₀t}) with ψ slowly varying; ħ/m ↦ c²/ω₀: ω − ω₀ = ω₀(√(1 + x²) − 1) → ω₀x²/2, x = ck/ω₀',
49
+ preserves: ['the kinetic frequency ħk²/(2m) to O(x²)', 'linearity'],
50
+ doesNotPreserve: [
51
+ 'the rest-frequency phase e^{−iω₀t}',
52
+ 'the negative-frequency branch',
53
+ 'relativistic dispersion at x ≳ 1',
54
+ ],
55
+ sideConditions: ['non-relativistic modes: x = ck/ω₀ ≤ 0.1', 'the bound is a FREQUENCY error, not uniform in time'],
56
+ bound: makeApproximation({
57
+ K: 1,
58
+ delta: kgNonrelativisticError(KG_NR_MAX_X),
59
+ deltaAt: (p) => {
60
+ const { c, k, omega0 } = p;
61
+ if (c === undefined || k === undefined || omega0 === undefined)
62
+ return Number.NaN;
63
+ return kgNonrelativisticError((c * k) / omega0);
64
+ },
65
+ deltaAtBasis: 'closed-form',
66
+ norm: 'relative error of the kinetic frequency ω − ω₀, normalized by the value of the reduced model',
67
+ domain: 'x = ck/ω₀ ≤ 0.1',
68
+ horizon: 't ≪ π/(δ ω₀ x²): the kinetic-phase drift reaches π/2; machine form t < π/(δ ω₀ x²)',
69
+ horizonHolds: (t, p) => {
70
+ const { c, k, omega0 } = p;
71
+ if (c === undefined || k === undefined || omega0 === undefined)
72
+ return false;
73
+ const x = (c * k) / omega0;
74
+ const delta = kgNonrelativisticError(x);
75
+ if (!Number.isFinite(delta))
76
+ return false;
77
+ if (delta === 0)
78
+ return true;
79
+ return t < Math.PI / (delta * omega0 * x * x);
80
+ },
81
+ parameterRange: 'x = ck/ω₀ ≤ 0.1',
82
+ limitCharacter: 'regular',
83
+ // A frequency error. The record says it is not uniform in time.
84
+ uniformity: ['kinetic frequency of one mode, for x = ck/ω₀ ≤ 0.1'],
85
+ }),
86
+ regime: regime([
87
+ { name: 'c', dim: VELOCITY },
88
+ { name: 'omega0', dim: FREQUENCY },
89
+ { name: 'k', dim: WAVENUMBER },
90
+ { name: 'hbar', dim: ACTION },
91
+ { name: 'm', dim: MASS },
92
+ ], [{ group: 'c · omega0^-1 · k', op: '<=', bound: KG_NR_MAX_X, alias: 'ck/ω₀ ≤ 0.1' }]),
93
+ counterexamples: [
94
+ {
95
+ description: 'At x = ck/ω₀ = 1 the non-relativistic kinetic frequency ω₀/2 is 20.7% above the exact ' +
96
+ 'ω₀(√2 − 1), which is 17.2% of its own value (the normalization of delta): the limit is a ' +
97
+ 'long-wavelength statement.',
98
+ witness: 'WS5b',
99
+ },
100
+ ],
101
+ evidence: new Set(['proposed', 'numerically-supported']),
102
+ witnesses: [
103
+ {
104
+ id: 'WS5',
105
+ kind: 'numeric',
106
+ test: TEST,
107
+ tolerance: 'kinetic-frequency error below 1e-3 at x = 0.05; falls ≈4× per halving of x',
108
+ },
109
+ {
110
+ id: 'WS5b',
111
+ kind: 'numeric',
112
+ test: TEST,
113
+ tolerance: 'relative error 3 − 2√2 = 0.1716 at x = 1, normalized by the reduced value',
114
+ },
115
+ ],
116
+ citations: [
117
+ 'Greiner, Relativistic Quantum Mechanics: Wave Equations - Ch. 1, the Klein-Gordon equation and its non-relativistic limit',
118
+ ],
119
+ reviewStatus: 'proposed',
120
+ };
121
+ /** Bridge: Klein–Gordon → spring, restricted to the spatially uniform mode. @internal */
122
+ export const BRIDGE_KG_OSCILLATOR = {
123
+ id: 'ab-kg-oscillator',
124
+ relation: 'restriction',
125
+ premises: ['model-klein-gordon'],
126
+ conclusion: 'model-spring',
127
+ transformation: 'u(x, t) = u(t): u_tt = −ω₀² u; u ↦ x, ω₀² ↦ k/m',
128
+ preserves: ['the k = 0 mode exactly', 'the frequency ω₀'],
129
+ doesNotPreserve: ['every mode with k ≠ 0', 'spatial structure'],
130
+ sideConditions: ['spatially uniform initial data', 'periodic or infinite domain (no boundary forcing)'],
131
+ regime: regime([
132
+ { name: 'omega0', dim: FREQUENCY },
133
+ { name: 'm', dim: MASS },
134
+ { name: 'k', dim: SPRING_CONSTANT },
135
+ ], []),
136
+ counterexamples: [],
137
+ evidence: new Set(['proposed', 'numerically-supported']),
138
+ witnesses: [
139
+ {
140
+ id: 'WS6',
141
+ kind: 'numeric',
142
+ test: TEST,
143
+ tolerance: 'uniform leapfrog field within 3e-4 of cos(ω₀t) at 100 steps (ω₀ = 2, t = 3); ≈4× per halving',
144
+ },
145
+ ],
146
+ citations: [
147
+ 'Whitham, Linear and Nonlinear Waves - §11.1, dispersive waves and the Klein-Gordon equation',
148
+ ],
149
+ reviewStatus: 'proposed',
150
+ };
151
+ /** Bridge: stiff string → flexible string, as bending stiffness → 0. @internal */
152
+ export const BRIDGE_STIFF_STRING = {
153
+ id: 'ab-stiff-string',
154
+ relation: 'approximation',
155
+ premises: ['model-stiff-string'],
156
+ conclusion: 'model-string',
157
+ transformation: 'drop EI y_xxxx: ω² = (F/μ)k² + (EI/μ)k⁴ → (F/μ)k²',
158
+ preserves: ['the wave speed √(F/μ) for long wavelengths', 'harmonic partials to O(β)'],
159
+ doesNotPreserve: ['inharmonicity: high partials of a stiff string are sharp', 'the fourth-order boundary conditions'],
160
+ sideConditions: ['β = EIk²/F ≤ 0.01', 'the bound is a PHASE-VELOCITY error, not uniform in time'],
161
+ bound: makeApproximation({
162
+ K: 1,
163
+ delta: stiffStringPhaseError(1, STIFF_MAX_BETA, 1),
164
+ deltaAt: (p) => stiffStringPhaseError(p['F'] ?? Number.NaN, p['EI'] ?? Number.NaN, p['k'] ?? Number.NaN),
165
+ deltaAtBasis: 'closed-form',
166
+ norm: 'relative phase-velocity error of a Fourier mode, normalized by the value of the reduced model',
167
+ domain: 'β = EIk²/F ≤ 0.01',
168
+ horizon: 't ≪ π/(2 c k δ): the phase drift reaches π/2; machine form t < π/(2 √(F/μ) k δ)',
169
+ horizonHolds: (t, p) => {
170
+ const { F, EI, k, mu } = p;
171
+ if (F === undefined || EI === undefined || k === undefined || mu === undefined)
172
+ return false;
173
+ const delta = stiffStringPhaseError(F, EI, k);
174
+ if (!Number.isFinite(delta))
175
+ return false;
176
+ if (delta === 0)
177
+ return true;
178
+ return t < Math.PI / (2 * Math.sqrt(F / mu) * k * delta);
179
+ },
180
+ parameterRange: 'β = EIk²/F ≤ 0.01',
181
+ limitCharacter: 'regular',
182
+ // A phase-velocity error. The record says it is not uniform in time.
183
+ uniformity: ['phase velocity of one Fourier mode, for β = EIk²/F ≤ 0.01'],
184
+ }),
185
+ regime: regime([
186
+ { name: 'F', dim: FORCE },
187
+ { name: 'mu', dim: LINEAR_DENSITY },
188
+ { name: 'EI', dim: FLEXURAL_RIGIDITY },
189
+ { name: 'k', dim: WAVENUMBER },
190
+ ],
191
+ // The derived group is F/(EIk²) = 1/β, so β ≤ 0.01 is F/(EIk²) ≥ 100.
192
+ [{ group: 'F · EI^-1 · k^-2', op: '>=', bound: 1 / STIFF_MAX_BETA, alias: 'β = EIk²/F ≤ 0.01' }]),
193
+ counterexamples: [
194
+ {
195
+ description: 'The partials of a stiff string are sharp: at β = 1 the phase velocity is √2 times the ' +
196
+ 'flexible-string value, the inharmonicity piano tuners stretch octaves to accommodate.',
197
+ witness: 'WS7b',
198
+ },
199
+ ],
200
+ evidence: new Set(['proposed', 'numerically-supported']),
201
+ witnesses: [
202
+ {
203
+ id: 'WS7',
204
+ kind: 'numeric',
205
+ test: TEST,
206
+ tolerance: 'phase velocity within 0.15 of √(F/μ) = 100 at k = 5 (EI/F = 1e-4); ≈4× per halving of k',
207
+ },
208
+ {
209
+ id: 'WS7b',
210
+ kind: 'numeric',
211
+ test: TEST,
212
+ tolerance: 'relative phase error √2 − 1 at β = 1',
213
+ },
214
+ ],
215
+ citations: [
216
+ 'Fletcher, J. Acoust. Soc. Am. 36 (1964) 203 - Normal vibration frequencies of a stiff piano string',
217
+ ],
218
+ reviewStatus: 'proposed',
219
+ };
220
+ /** The wave-family closure bridges. @internal */
221
+ export const WAVE_CLOSURE_BRIDGES = [
222
+ BRIDGE_KG_SCHRODINGER,
223
+ BRIDGE_KG_OSCILLATOR,
224
+ BRIDGE_STIFF_STRING,
225
+ ];
226
+ //# sourceMappingURL=bridges-closure.js.map