universal-physics-tensor 9.0.0 → 11.0.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 (1109) hide show
  1. package/README.md +21 -17
  2. package/bin/upt.mjs +13 -1
  3. package/data/atlas/atlas.json +79 -68
  4. package/data/atlas/atlas.jsonld +1 -1
  5. package/data/atlas/diffusion.json +24 -23
  6. package/data/atlas/oscillators.json +21 -16
  7. package/data/atlas/waves.json +36 -31
  8. package/data/atlas/witness-results.json +11 -11
  9. package/data/bridge-catalog.json +1192 -1636
  10. package/data/bridge-catalog.schema.json +390 -135
  11. package/data/quantities.json +53 -19
  12. package/data/schemas/atlas-record.v0.json +184 -46
  13. package/data/units.json +33 -4
  14. package/dist/atlas/applicability.d.ts.map +1 -1
  15. package/dist/atlas/applicability.js +35 -18
  16. package/dist/atlas/applicability.js.map +1 -1
  17. package/dist/atlas/association.js.map +1 -1
  18. package/dist/atlas/benchmark/backend-shapes.d.ts.map +1 -1
  19. package/dist/atlas/benchmark/backend-shapes.js +5 -1
  20. package/dist/atlas/benchmark/backend-shapes.js.map +1 -1
  21. package/dist/atlas/benchmark/baselines.d.ts.map +1 -1
  22. package/dist/atlas/benchmark/baselines.js +8 -0
  23. package/dist/atlas/benchmark/baselines.js.map +1 -1
  24. package/dist/atlas/benchmark/hybrid-retrieval.d.ts +12 -3
  25. package/dist/atlas/benchmark/hybrid-retrieval.d.ts.map +1 -1
  26. package/dist/atlas/benchmark/hybrid-retrieval.js +30 -21
  27. package/dist/atlas/benchmark/hybrid-retrieval.js.map +1 -1
  28. package/dist/atlas/benchmark/leakage.js.map +1 -1
  29. package/dist/atlas/benchmark/loader.js +2 -2
  30. package/dist/atlas/benchmark/loader.js.map +1 -1
  31. package/dist/atlas/benchmark/run-atlas.d.ts.map +1 -1
  32. package/dist/atlas/benchmark/run-atlas.js +14 -2
  33. package/dist/atlas/benchmark/run-atlas.js.map +1 -1
  34. package/dist/atlas/benchmark/stats.d.ts +3 -3
  35. package/dist/atlas/benchmark/stats.d.ts.map +1 -1
  36. package/dist/atlas/benchmark/stats.js +16 -8
  37. package/dist/atlas/benchmark/stats.js.map +1 -1
  38. package/dist/atlas/benchmark/study.js.map +1 -1
  39. package/dist/atlas/benchmark/types.js.map +1 -1
  40. package/dist/atlas/bridge-record.d.ts +4 -4
  41. package/dist/atlas/bridge-record.d.ts.map +1 -1
  42. package/dist/atlas/bridge-record.js +6 -6
  43. package/dist/atlas/bridge-record.js.map +1 -1
  44. package/dist/atlas/catalog-formal-ref.d.ts +26 -3
  45. package/dist/atlas/catalog-formal-ref.d.ts.map +1 -1
  46. package/dist/atlas/catalog-formal-ref.js +52 -5
  47. package/dist/atlas/catalog-formal-ref.js.map +1 -1
  48. package/dist/atlas/chain-pipeline.d.ts +0 -11
  49. package/dist/atlas/chain-pipeline.d.ts.map +1 -1
  50. package/dist/atlas/chain-pipeline.js +12 -24
  51. package/dist/atlas/chain-pipeline.js.map +1 -1
  52. package/dist/atlas/composition-table.js.map +1 -1
  53. package/dist/atlas/conventions.js.map +1 -1
  54. package/dist/atlas/coverage.d.ts +2 -2
  55. package/dist/atlas/coverage.js.map +1 -1
  56. package/dist/atlas/derivation.js.map +1 -1
  57. package/dist/atlas/derive-evidence.d.ts +6 -4
  58. package/dist/atlas/derive-evidence.d.ts.map +1 -1
  59. package/dist/atlas/derive-evidence.js +7 -2
  60. package/dist/atlas/derive-evidence.js.map +1 -1
  61. package/dist/atlas/diffusion/bridges-closure.d.ts +0 -4
  62. package/dist/atlas/diffusion/bridges-closure.d.ts.map +1 -1
  63. package/dist/atlas/diffusion/bridges-closure.js +8 -17
  64. package/dist/atlas/diffusion/bridges-closure.js.map +1 -1
  65. package/dist/atlas/diffusion/bridges.d.ts.map +1 -1
  66. package/dist/atlas/diffusion/bridges.js +27 -42
  67. package/dist/atlas/diffusion/bridges.js.map +1 -1
  68. package/dist/atlas/diffusion/dimensions.d.ts +6 -14
  69. package/dist/atlas/diffusion/dimensions.d.ts.map +1 -1
  70. package/dist/atlas/diffusion/dimensions.js +8 -16
  71. package/dist/atlas/diffusion/dimensions.js.map +1 -1
  72. package/dist/atlas/diffusion/index.d.ts +1 -1
  73. package/dist/atlas/diffusion/index.d.ts.map +1 -1
  74. package/dist/atlas/diffusion/index.js.map +1 -1
  75. package/dist/atlas/diffusion/models.d.ts +3 -3
  76. package/dist/atlas/diffusion/models.d.ts.map +1 -1
  77. package/dist/atlas/diffusion/models.js +5 -10
  78. package/dist/atlas/diffusion/models.js.map +1 -1
  79. package/dist/atlas/diffusion/numerics.d.ts +16 -4
  80. package/dist/atlas/diffusion/numerics.d.ts.map +1 -1
  81. package/dist/atlas/diffusion/numerics.js +38 -24
  82. package/dist/atlas/diffusion/numerics.js.map +1 -1
  83. package/dist/atlas/error-algebra.d.ts +6 -0
  84. package/dist/atlas/error-algebra.d.ts.map +1 -1
  85. package/dist/atlas/error-algebra.js +26 -0
  86. package/dist/atlas/error-algebra.js.map +1 -1
  87. package/dist/atlas/export.d.ts +18 -2
  88. package/dist/atlas/export.d.ts.map +1 -1
  89. package/dist/atlas/export.js +9 -3
  90. package/dist/atlas/export.js.map +1 -1
  91. package/dist/atlas/families.d.ts +19 -2
  92. package/dist/atlas/families.d.ts.map +1 -1
  93. package/dist/atlas/families.js +26 -3
  94. package/dist/atlas/families.js.map +1 -1
  95. package/dist/atlas/family.d.ts +27 -0
  96. package/dist/atlas/family.d.ts.map +1 -0
  97. package/dist/atlas/family.js +12 -0
  98. package/dist/atlas/family.js.map +1 -0
  99. package/dist/atlas/index.d.ts +3 -2
  100. package/dist/atlas/index.d.ts.map +1 -1
  101. package/dist/atlas/index.js +2 -1
  102. package/dist/atlas/index.js.map +1 -1
  103. package/dist/atlas/link-prediction.d.ts +107 -4
  104. package/dist/atlas/link-prediction.d.ts.map +1 -1
  105. package/dist/atlas/link-prediction.js +212 -66
  106. package/dist/atlas/link-prediction.js.map +1 -1
  107. package/dist/atlas/model.js.map +1 -1
  108. package/dist/atlas/oscillators/bridges-coarse.d.ts.map +1 -1
  109. package/dist/atlas/oscillators/bridges-coarse.js +7 -12
  110. package/dist/atlas/oscillators/bridges-coarse.js.map +1 -1
  111. package/dist/atlas/oscillators/bridges-exact.d.ts.map +1 -1
  112. package/dist/atlas/oscillators/bridges-exact.js +6 -10
  113. package/dist/atlas/oscillators/bridges-exact.js.map +1 -1
  114. package/dist/atlas/oscillators/bridges-limits.d.ts +3 -16
  115. package/dist/atlas/oscillators/bridges-limits.d.ts.map +1 -1
  116. package/dist/atlas/oscillators/bridges-limits.js +23 -36
  117. package/dist/atlas/oscillators/bridges-limits.js.map +1 -1
  118. package/dist/atlas/oscillators/dimensions.d.ts +9 -21
  119. package/dist/atlas/oscillators/dimensions.d.ts.map +1 -1
  120. package/dist/atlas/oscillators/dimensions.js +9 -21
  121. package/dist/atlas/oscillators/dimensions.js.map +1 -1
  122. package/dist/atlas/oscillators/index.d.ts +1 -16
  123. package/dist/atlas/oscillators/index.d.ts.map +1 -1
  124. package/dist/atlas/oscillators/index.js.map +1 -1
  125. package/dist/atlas/oscillators/limit-witnesses.d.ts +2 -2
  126. package/dist/atlas/oscillators/limit-witnesses.d.ts.map +1 -1
  127. package/dist/atlas/oscillators/limit-witnesses.js +17 -15
  128. package/dist/atlas/oscillators/limit-witnesses.js.map +1 -1
  129. package/dist/atlas/oscillators/models.d.ts.map +1 -1
  130. package/dist/atlas/oscillators/models.js +2 -6
  131. package/dist/atlas/oscillators/models.js.map +1 -1
  132. package/dist/atlas/oscillators/norm-transport-witness.js.map +1 -1
  133. package/dist/atlas/oscillators/norm-transport.js.map +1 -1
  134. package/dist/atlas/oscillators/norms.js.map +1 -1
  135. package/dist/atlas/oscillators/pendulum-motion.d.ts +29 -6
  136. package/dist/atlas/oscillators/pendulum-motion.d.ts.map +1 -1
  137. package/dist/atlas/oscillators/pendulum-motion.js +60 -40
  138. package/dist/atlas/oscillators/pendulum-motion.js.map +1 -1
  139. package/dist/atlas/oscillators/phase-carriage.js.map +1 -1
  140. package/dist/atlas/oscillators/phase-translation.d.ts +0 -11
  141. package/dist/atlas/oscillators/phase-translation.d.ts.map +1 -1
  142. package/dist/atlas/oscillators/phase-translation.js +3 -4
  143. package/dist/atlas/oscillators/phase-translation.js.map +1 -1
  144. package/dist/atlas/oscillators/position-translation.d.ts +68 -7
  145. package/dist/atlas/oscillators/position-translation.d.ts.map +1 -1
  146. package/dist/atlas/oscillators/position-translation.js +123 -12
  147. package/dist/atlas/oscillators/position-translation.js.map +1 -1
  148. package/dist/atlas/oscillators/rejections.d.ts +0 -2
  149. package/dist/atlas/oscillators/rejections.d.ts.map +1 -1
  150. package/dist/atlas/oscillators/rejections.js +0 -7
  151. package/dist/atlas/oscillators/rejections.js.map +1 -1
  152. package/dist/atlas/path-bound.js.map +1 -1
  153. package/dist/atlas/physjs-entries.generated.d.ts +25 -24
  154. package/dist/atlas/physjs-entries.generated.d.ts.map +1 -1
  155. package/dist/atlas/physjs-entries.generated.js +25 -24
  156. package/dist/atlas/physjs-entries.generated.js.map +1 -1
  157. package/dist/atlas/physjs-ref.d.ts +107 -70
  158. package/dist/atlas/physjs-ref.d.ts.map +1 -1
  159. package/dist/atlas/physjs-ref.js +184 -101
  160. package/dist/atlas/physjs-ref.js.map +1 -1
  161. package/dist/atlas/physjs-reviewed.d.ts +31 -0
  162. package/dist/atlas/physjs-reviewed.d.ts.map +1 -0
  163. package/dist/atlas/physjs-reviewed.js +194 -0
  164. package/dist/atlas/physjs-reviewed.js.map +1 -0
  165. package/dist/atlas/poster/associations.js.map +1 -1
  166. package/dist/atlas/poster/derivations.js.map +1 -1
  167. package/dist/atlas/poster/statements.d.ts +0 -19
  168. package/dist/atlas/poster/statements.d.ts.map +1 -1
  169. package/dist/atlas/poster/statements.js +1 -1
  170. package/dist/atlas/poster/statements.js.map +1 -1
  171. package/dist/atlas/proof-target.d.ts +1 -1
  172. package/dist/atlas/proof-target.js +1 -1
  173. package/dist/atlas/proof-target.js.map +1 -1
  174. package/dist/atlas/public.d.ts +2 -1
  175. package/dist/atlas/public.d.ts.map +1 -1
  176. package/dist/atlas/public.js +2 -1
  177. package/dist/atlas/public.js.map +1 -1
  178. package/dist/atlas/regime.d.ts +1 -1
  179. package/dist/atlas/regime.d.ts.map +1 -1
  180. package/dist/atlas/regime.js +1 -1
  181. package/dist/atlas/regime.js.map +1 -1
  182. package/dist/atlas/serialize.d.ts +18 -12
  183. package/dist/atlas/serialize.d.ts.map +1 -1
  184. package/dist/atlas/serialize.js +28 -18
  185. package/dist/atlas/serialize.js.map +1 -1
  186. package/dist/atlas/statement.js.map +1 -1
  187. package/dist/atlas/text-overlap.d.ts +23 -0
  188. package/dist/atlas/text-overlap.d.ts.map +1 -0
  189. package/dist/atlas/text-overlap.js +41 -0
  190. package/dist/atlas/text-overlap.js.map +1 -0
  191. package/dist/atlas/translation-registry.js.map +1 -1
  192. package/dist/atlas/translation.js.map +1 -1
  193. package/dist/atlas/types.d.ts +9 -2
  194. package/dist/atlas/types.d.ts.map +1 -1
  195. package/dist/atlas/types.js +1 -1
  196. package/dist/atlas/types.js.map +1 -1
  197. package/dist/atlas/waves/bridges-closure.d.ts.map +1 -1
  198. package/dist/atlas/waves/bridges-closure.js +2 -9
  199. package/dist/atlas/waves/bridges-closure.js.map +1 -1
  200. package/dist/atlas/waves/bridges.d.ts.map +1 -1
  201. package/dist/atlas/waves/bridges.js +32 -52
  202. package/dist/atlas/waves/bridges.js.map +1 -1
  203. package/dist/atlas/waves/index.d.ts +1 -1
  204. package/dist/atlas/waves/index.d.ts.map +1 -1
  205. package/dist/atlas/waves/index.js.map +1 -1
  206. package/dist/atlas/waves/models.d.ts +5 -6
  207. package/dist/atlas/waves/models.d.ts.map +1 -1
  208. package/dist/atlas/waves/models.js +7 -13
  209. package/dist/atlas/waves/models.js.map +1 -1
  210. package/dist/atlas/waves/numerics.d.ts.map +1 -1
  211. package/dist/atlas/waves/numerics.js +10 -3
  212. package/dist/atlas/waves/numerics.js.map +1 -1
  213. package/dist/atlas/witness-artifact.js.map +1 -1
  214. package/dist/atlas/witness-dominance.d.ts +4 -3
  215. package/dist/atlas/witness-dominance.d.ts.map +1 -1
  216. package/dist/atlas/witness-dominance.js +15 -5
  217. package/dist/atlas/witness-dominance.js.map +1 -1
  218. package/dist/atlas/witness-numeric.d.ts +38 -4
  219. package/dist/atlas/witness-numeric.d.ts.map +1 -1
  220. package/dist/atlas/witness-numeric.js +80 -2
  221. package/dist/atlas/witness-numeric.js.map +1 -1
  222. package/dist/atlas/witness-result.d.ts +7 -1
  223. package/dist/atlas/witness-result.d.ts.map +1 -1
  224. package/dist/atlas/witness-result.js.map +1 -1
  225. package/dist/atlas/witness-specs.d.ts.map +1 -1
  226. package/dist/atlas/witness-specs.js +19 -0
  227. package/dist/atlas/witness-specs.js.map +1 -1
  228. package/dist/atlas/witness-symbolic.d.ts +75 -3
  229. package/dist/atlas/witness-symbolic.d.ts.map +1 -1
  230. package/dist/atlas/witness-symbolic.js +116 -10
  231. package/dist/atlas/witness-symbolic.js.map +1 -1
  232. package/dist/atlas/witnesses/quantum-support.js.map +1 -1
  233. package/dist/bridges/caller-table.d.ts +1 -1
  234. package/dist/bridges/caller-table.d.ts.map +1 -1
  235. package/dist/bridges/caller-table.js.map +1 -1
  236. package/dist/bridges/carrier-sign.d.ts.map +1 -1
  237. package/dist/bridges/carrier-sign.js +8 -3
  238. package/dist/bridges/carrier-sign.js.map +1 -1
  239. package/dist/bridges/catalog-adapter.d.ts +12 -3
  240. package/dist/bridges/catalog-adapter.d.ts.map +1 -1
  241. package/dist/bridges/catalog-adapter.js +17 -9
  242. package/dist/bridges/catalog-adapter.js.map +1 -1
  243. package/dist/bridges/catalog-load.d.ts +12 -2
  244. package/dist/bridges/catalog-load.d.ts.map +1 -1
  245. package/dist/bridges/catalog-load.js +181 -13
  246. package/dist/bridges/catalog-load.js.map +1 -1
  247. package/dist/bridges/catalog-types.d.ts +74 -26
  248. package/dist/bridges/catalog-types.d.ts.map +1 -1
  249. package/dist/bridges/catalog-types.js +11 -1
  250. package/dist/bridges/catalog-types.js.map +1 -1
  251. package/dist/bridges/coefficient-statement.js +1 -5
  252. package/dist/bridges/coefficient-statement.js.map +1 -1
  253. package/dist/bridges/confrontation-coverage.js.map +1 -1
  254. package/dist/bridges/confrontations.d.ts +1 -1
  255. package/dist/bridges/confrontations.d.ts.map +1 -1
  256. package/dist/bridges/confrontations.js +1 -1
  257. package/dist/bridges/confrontations.js.map +1 -1
  258. package/dist/bridges/evaluation-errors.d.ts +46 -3
  259. package/dist/bridges/evaluation-errors.d.ts.map +1 -1
  260. package/dist/bridges/evaluation-errors.js +40 -4
  261. package/dist/bridges/evaluation-errors.js.map +1 -1
  262. package/dist/bridges/evaluator-inputs.d.ts.map +1 -1
  263. package/dist/bridges/evaluator-inputs.js +7 -5
  264. package/dist/bridges/evaluator-inputs.js.map +1 -1
  265. package/dist/bridges/evaluators.d.ts +17 -2
  266. package/dist/bridges/evaluators.d.ts.map +1 -1
  267. package/dist/bridges/evaluators.js +76 -28
  268. package/dist/bridges/evaluators.js.map +1 -1
  269. package/dist/bridges/expr-parse.d.ts +38 -4
  270. package/dist/bridges/expr-parse.d.ts.map +1 -1
  271. package/dist/bridges/expr-parse.js +101 -12
  272. package/dist/bridges/expr-parse.js.map +1 -1
  273. package/dist/bridges/holds.d.ts +40 -4
  274. package/dist/bridges/holds.d.ts.map +1 -1
  275. package/dist/bridges/holds.js +128 -19
  276. package/dist/bridges/holds.js.map +1 -1
  277. package/dist/bridges/index.d.ts +15 -14
  278. package/dist/bridges/index.d.ts.map +1 -1
  279. package/dist/bridges/index.js +14 -15
  280. package/dist/bridges/index.js.map +1 -1
  281. package/dist/bridges/input-contract.js.map +1 -1
  282. package/dist/bridges/membership.d.ts +5 -3
  283. package/dist/bridges/membership.d.ts.map +1 -1
  284. package/dist/bridges/membership.js +5 -6
  285. package/dist/bridges/membership.js.map +1 -1
  286. package/dist/bridges/notices.d.ts.map +1 -1
  287. package/dist/bridges/notices.js +5 -5
  288. package/dist/bridges/notices.js.map +1 -1
  289. package/dist/bridges/observations/types.js.map +1 -1
  290. package/dist/bridges/rejected.d.ts +11 -17
  291. package/dist/bridges/rejected.d.ts.map +1 -1
  292. package/dist/bridges/rejected.js +13 -68
  293. package/dist/bridges/rejected.js.map +1 -1
  294. package/dist/bridges/relation-eval.d.ts +6 -7
  295. package/dist/bridges/relation-eval.d.ts.map +1 -1
  296. package/dist/bridges/relation-eval.js +20 -50
  297. package/dist/bridges/relation-eval.js.map +1 -1
  298. package/dist/bridges/rhs-registry.js.map +1 -1
  299. package/dist/bridges/sensitivity.d.ts +11 -3
  300. package/dist/bridges/sensitivity.d.ts.map +1 -1
  301. package/dist/bridges/sensitivity.js +27 -13
  302. package/dist/bridges/sensitivity.js.map +1 -1
  303. package/dist/bridges/tensor-index.js.map +1 -1
  304. package/dist/bridges/types.d.ts +1 -7
  305. package/dist/bridges/types.d.ts.map +1 -1
  306. package/dist/bridges/types.js +1 -4
  307. package/dist/bridges/types.js.map +1 -1
  308. package/dist/bridges/validity.d.ts +33 -0
  309. package/dist/bridges/validity.d.ts.map +1 -0
  310. package/dist/bridges/validity.js +67 -0
  311. package/dist/bridges/validity.js.map +1 -0
  312. package/dist/canonical/canonical-equation.js.map +1 -1
  313. package/dist/canonical/dimensional-fields.js.map +1 -1
  314. package/dist/canonical/entries/_l1-build.js.map +1 -1
  315. package/dist/canonical/entries/atomic.js +1 -3
  316. package/dist/canonical/entries/atomic.js.map +1 -1
  317. package/dist/canonical/entries/condensed-matter.d.ts.map +1 -1
  318. package/dist/canonical/entries/condensed-matter.js +8 -9
  319. package/dist/canonical/entries/condensed-matter.js.map +1 -1
  320. package/dist/canonical/entries/dimensional-classics.d.ts.map +1 -1
  321. package/dist/canonical/entries/dimensional-classics.js +5 -6
  322. package/dist/canonical/entries/dimensional-classics.js.map +1 -1
  323. package/dist/canonical/entries/electromagnetism.d.ts.map +1 -1
  324. package/dist/canonical/entries/electromagnetism.js +6 -12
  325. package/dist/canonical/entries/electromagnetism.js.map +1 -1
  326. package/dist/canonical/entries/fluids-waves.d.ts.map +1 -1
  327. package/dist/canonical/entries/fluids-waves.js +3 -7
  328. package/dist/canonical/entries/fluids-waves.js.map +1 -1
  329. package/dist/canonical/entries/mechanics.d.ts.map +1 -1
  330. package/dist/canonical/entries/mechanics.js +4 -6
  331. package/dist/canonical/entries/mechanics.js.map +1 -1
  332. package/dist/canonical/entries/nonmonomial.d.ts.map +1 -1
  333. package/dist/canonical/entries/nonmonomial.js +38 -39
  334. package/dist/canonical/entries/nonmonomial.js.map +1 -1
  335. package/dist/canonical/entries/relativity.d.ts.map +1 -1
  336. package/dist/canonical/entries/relativity.js +6 -6
  337. package/dist/canonical/entries/relativity.js.map +1 -1
  338. package/dist/canonical/entries/statistical-mechanics.js +5 -5
  339. package/dist/canonical/entries/statistical-mechanics.js.map +1 -1
  340. package/dist/canonical/entries/thermo-nuclear-cosmo.d.ts.map +1 -1
  341. package/dist/canonical/entries/thermo-nuclear-cosmo.js +6 -10
  342. package/dist/canonical/entries/thermo-nuclear-cosmo.js.map +1 -1
  343. package/dist/canonical/fixed-points.d.ts +94 -0
  344. package/dist/canonical/fixed-points.d.ts.map +1 -0
  345. package/dist/canonical/fixed-points.js +81 -0
  346. package/dist/canonical/fixed-points.js.map +1 -0
  347. package/dist/canonical/linkage.d.ts +29 -4
  348. package/dist/canonical/linkage.d.ts.map +1 -1
  349. package/dist/canonical/linkage.js +47 -64
  350. package/dist/canonical/linkage.js.map +1 -1
  351. package/dist/canonical/normal-form.d.ts +0 -8
  352. package/dist/canonical/normal-form.d.ts.map +1 -1
  353. package/dist/canonical/normal-form.js +22 -23
  354. package/dist/canonical/normal-form.js.map +1 -1
  355. package/dist/canonical/registry.js.map +1 -1
  356. package/dist/canonical/residual.js.map +1 -1
  357. package/dist/canonical/seed-l-layer.d.ts +7 -1
  358. package/dist/canonical/seed-l-layer.d.ts.map +1 -1
  359. package/dist/canonical/seed-l-layer.js +7 -1
  360. package/dist/canonical/seed-l-layer.js.map +1 -1
  361. package/dist/canonical/structural.d.ts +42 -21
  362. package/dist/canonical/structural.d.ts.map +1 -1
  363. package/dist/canonical/structural.js +64 -23
  364. package/dist/canonical/structural.js.map +1 -1
  365. package/dist/cases/brownian-sphere.d.ts +3 -3
  366. package/dist/cases/brownian-sphere.d.ts.map +1 -1
  367. package/dist/cases/brownian-sphere.js +10 -9
  368. package/dist/cases/brownian-sphere.js.map +1 -1
  369. package/dist/cases/damped-resonator.d.ts.map +1 -1
  370. package/dist/cases/damped-resonator.js +8 -11
  371. package/dist/cases/damped-resonator.js.map +1 -1
  372. package/dist/cases/index.js.map +1 -1
  373. package/dist/cases/kepler-rv.d.ts +1 -1
  374. package/dist/cases/kepler-rv.d.ts.map +1 -1
  375. package/dist/cases/kepler-rv.js +3 -2
  376. package/dist/cases/kepler-rv.js.map +1 -1
  377. package/dist/cases/lumped-cooling.d.ts +8 -3
  378. package/dist/cases/lumped-cooling.d.ts.map +1 -1
  379. package/dist/cases/lumped-cooling.js +22 -24
  380. package/dist/cases/lumped-cooling.js.map +1 -1
  381. package/dist/cases/quadrature.d.ts +7 -9
  382. package/dist/cases/quadrature.d.ts.map +1 -1
  383. package/dist/cases/quadrature.js +28 -32
  384. package/dist/cases/quadrature.js.map +1 -1
  385. package/dist/cases/resistor-noise.js +7 -7
  386. package/dist/cases/resistor-noise.js.map +1 -1
  387. package/dist/cases/skin-depth.d.ts +0 -4
  388. package/dist/cases/skin-depth.d.ts.map +1 -1
  389. package/dist/cases/skin-depth.js +3 -7
  390. package/dist/cases/skin-depth.js.map +1 -1
  391. package/dist/cases/types.js.map +1 -1
  392. package/dist/cli/args.d.ts +30 -3
  393. package/dist/cli/args.d.ts.map +1 -1
  394. package/dist/cli/args.js +47 -9
  395. package/dist/cli/args.js.map +1 -1
  396. package/dist/cli/bindings.d.ts +13 -0
  397. package/dist/cli/bindings.d.ts.map +1 -0
  398. package/dist/cli/bindings.js +33 -0
  399. package/dist/cli/bindings.js.map +1 -0
  400. package/dist/cli/closed-form-range.js.map +1 -1
  401. package/dist/cli/command.d.ts +8 -1
  402. package/dist/cli/command.d.ts.map +1 -1
  403. package/dist/cli/command.js.map +1 -1
  404. package/dist/cli/commands/_atlas-map.d.ts +2 -11
  405. package/dist/cli/commands/_atlas-map.d.ts.map +1 -1
  406. package/dist/cli/commands/_atlas-map.js +50 -35
  407. package/dist/cli/commands/_atlas-map.js.map +1 -1
  408. package/dist/cli/commands/_atlas-route.d.ts.map +1 -1
  409. package/dist/cli/commands/_atlas-route.js +6 -2
  410. package/dist/cli/commands/_atlas-route.js.map +1 -1
  411. package/dist/cli/commands/_discovery-opts.d.ts.map +1 -1
  412. package/dist/cli/commands/_discovery-opts.js +48 -14
  413. package/dist/cli/commands/_discovery-opts.js.map +1 -1
  414. package/dist/cli/commands/atlas.d.ts.map +1 -1
  415. package/dist/cli/commands/atlas.js +9 -8
  416. package/dist/cli/commands/atlas.js.map +1 -1
  417. package/dist/cli/commands/audit.d.ts.map +1 -1
  418. package/dist/cli/commands/audit.js +20 -20
  419. package/dist/cli/commands/audit.js.map +1 -1
  420. package/dist/cli/commands/axes.d.ts.map +1 -1
  421. package/dist/cli/commands/axes.js +20 -1
  422. package/dist/cli/commands/axes.js.map +1 -1
  423. package/dist/cli/commands/candidates.d.ts.map +1 -1
  424. package/dist/cli/commands/candidates.js +16 -8
  425. package/dist/cli/commands/candidates.js.map +1 -1
  426. package/dist/cli/commands/canonical.js.map +1 -1
  427. package/dist/cli/commands/chain.js +1 -1
  428. package/dist/cli/commands/chain.js.map +1 -1
  429. package/dist/cli/commands/confront.d.ts.map +1 -1
  430. package/dist/cli/commands/confront.js +22 -20
  431. package/dist/cli/commands/confront.js.map +1 -1
  432. package/dist/cli/commands/connectors.js.map +1 -1
  433. package/dist/cli/commands/coverage.js.map +1 -1
  434. package/dist/cli/commands/derive.d.ts.map +1 -1
  435. package/dist/cli/commands/derive.js +60 -35
  436. package/dist/cli/commands/derive.js.map +1 -1
  437. package/dist/cli/commands/discover.d.ts.map +1 -1
  438. package/dist/cli/commands/discover.js +20 -10
  439. package/dist/cli/commands/discover.js.map +1 -1
  440. package/dist/cli/commands/eval.d.ts.map +1 -1
  441. package/dist/cli/commands/eval.js +14 -10
  442. package/dist/cli/commands/eval.js.map +1 -1
  443. package/dist/cli/commands/evaluate.d.ts.map +1 -1
  444. package/dist/cli/commands/evaluate.js +108 -58
  445. package/dist/cli/commands/evaluate.js.map +1 -1
  446. package/dist/cli/commands/explain.d.ts.map +1 -1
  447. package/dist/cli/commands/explain.js +16 -8
  448. package/dist/cli/commands/explain.js.map +1 -1
  449. package/dist/cli/commands/frontier.js.map +1 -1
  450. package/dist/cli/commands/ground.d.ts.map +1 -1
  451. package/dist/cli/commands/ground.js +41 -10
  452. package/dist/cli/commands/ground.js.map +1 -1
  453. package/dist/cli/commands/index.js.map +1 -1
  454. package/dist/cli/commands/map.d.ts.map +1 -1
  455. package/dist/cli/commands/map.js +155 -92
  456. package/dist/cli/commands/map.js.map +1 -1
  457. package/dist/cli/commands/metric.d.ts.map +1 -1
  458. package/dist/cli/commands/metric.js +58 -20
  459. package/dist/cli/commands/metric.js.map +1 -1
  460. package/dist/cli/commands/path.d.ts +10 -0
  461. package/dist/cli/commands/path.d.ts.map +1 -1
  462. package/dist/cli/commands/path.js +29 -7
  463. package/dist/cli/commands/path.js.map +1 -1
  464. package/dist/cli/commands/predict.js.map +1 -1
  465. package/dist/cli/commands/priority.js.map +1 -1
  466. package/dist/cli/commands/probe.d.ts.map +1 -1
  467. package/dist/cli/commands/probe.js +105 -38
  468. package/dist/cli/commands/probe.js.map +1 -1
  469. package/dist/cli/commands/recover.js +1 -1
  470. package/dist/cli/commands/recover.js.map +1 -1
  471. package/dist/cli/commands/regime.d.ts +5 -4
  472. package/dist/cli/commands/regime.d.ts.map +1 -1
  473. package/dist/cli/commands/regime.js +25 -26
  474. package/dist/cli/commands/regime.js.map +1 -1
  475. package/dist/cli/commands/retrieve.d.ts.map +1 -1
  476. package/dist/cli/commands/retrieve.js +23 -14
  477. package/dist/cli/commands/retrieve.js.map +1 -1
  478. package/dist/cli/commands/search.d.ts.map +1 -1
  479. package/dist/cli/commands/search.js +9 -4
  480. package/dist/cli/commands/search.js.map +1 -1
  481. package/dist/cli/commands/symbolic.js +31 -36
  482. package/dist/cli/commands/symbolic.js.map +1 -1
  483. package/dist/cli/commands/testplan.d.ts.map +1 -1
  484. package/dist/cli/commands/testplan.js +5 -3
  485. package/dist/cli/commands/testplan.js.map +1 -1
  486. package/dist/cli/conventions.js.map +1 -1
  487. package/dist/cli/determination.js.map +1 -1
  488. package/dist/cli/errors.js.map +1 -1
  489. package/dist/cli/euler-guard.js.map +1 -1
  490. package/dist/cli/eval-numbers.js.map +1 -1
  491. package/dist/cli/expr-print.d.ts +28 -3
  492. package/dist/cli/expr-print.d.ts.map +1 -1
  493. package/dist/cli/expr-print.js +42 -22
  494. package/dist/cli/expr-print.js.map +1 -1
  495. package/dist/cli/flag-help.js.map +1 -1
  496. package/dist/cli/graphs.js.map +1 -1
  497. package/dist/cli/library-defaults.d.ts +19 -0
  498. package/dist/cli/library-defaults.d.ts.map +1 -0
  499. package/dist/cli/library-defaults.js +22 -0
  500. package/dist/cli/library-defaults.js.map +1 -0
  501. package/dist/cli/main.d.ts +7 -0
  502. package/dist/cli/main.d.ts.map +1 -1
  503. package/dist/cli/main.js +25 -6
  504. package/dist/cli/main.js.map +1 -1
  505. package/dist/cli/map-evidence.js.map +1 -1
  506. package/dist/cli/numeric-flag.d.ts +12 -0
  507. package/dist/cli/numeric-flag.d.ts.map +1 -0
  508. package/dist/cli/numeric-flag.js +44 -0
  509. package/dist/cli/numeric-flag.js.map +1 -0
  510. package/dist/cli/output.d.ts +23 -6
  511. package/dist/cli/output.d.ts.map +1 -1
  512. package/dist/cli/output.js +15 -0
  513. package/dist/cli/output.js.map +1 -1
  514. package/dist/cli/published-url.js.map +1 -1
  515. package/dist/cli/record-reach.d.ts +6 -0
  516. package/dist/cli/record-reach.d.ts.map +1 -1
  517. package/dist/cli/record-reach.js +17 -11
  518. package/dist/cli/record-reach.js.map +1 -1
  519. package/dist/cli/record-tables.d.ts.map +1 -1
  520. package/dist/cli/record-tables.js +7 -6
  521. package/dist/cli/record-tables.js.map +1 -1
  522. package/dist/cli/record.d.ts +1 -5
  523. package/dist/cli/record.d.ts.map +1 -1
  524. package/dist/cli/record.js +40 -20
  525. package/dist/cli/record.js.map +1 -1
  526. package/dist/cli/search-index.d.ts +5 -0
  527. package/dist/cli/search-index.d.ts.map +1 -1
  528. package/dist/cli/search-index.js +19 -7
  529. package/dist/cli/search-index.js.map +1 -1
  530. package/dist/cli/statuses.d.ts +0 -2
  531. package/dist/cli/statuses.d.ts.map +1 -1
  532. package/dist/cli/statuses.js +0 -7
  533. package/dist/cli/statuses.js.map +1 -1
  534. package/dist/cli/stored-results.d.ts +7 -0
  535. package/dist/cli/stored-results.d.ts.map +1 -0
  536. package/dist/cli/stored-results.js +23 -0
  537. package/dist/cli/stored-results.js.map +1 -0
  538. package/dist/cli/top-level-help.js.map +1 -1
  539. package/dist/cli/version.d.ts.map +1 -1
  540. package/dist/cli/version.js +7 -5
  541. package/dist/cli/version.js.map +1 -1
  542. package/dist/cli-api.d.ts +49 -14
  543. package/dist/cli-api.d.ts.map +1 -1
  544. package/dist/cli-api.js +42 -17
  545. package/dist/cli-api.js.map +1 -1
  546. package/dist/composition/adjudication.js.map +1 -1
  547. package/dist/composition/algebraic-equivalence.d.ts +43 -0
  548. package/dist/composition/algebraic-equivalence.d.ts.map +1 -0
  549. package/dist/composition/algebraic-equivalence.js +115 -0
  550. package/dist/composition/algebraic-equivalence.js.map +1 -0
  551. package/dist/composition/aliases.js.map +1 -1
  552. package/dist/composition/audit-coverage.d.ts +2 -0
  553. package/dist/composition/audit-coverage.d.ts.map +1 -1
  554. package/dist/composition/audit-coverage.js.map +1 -1
  555. package/dist/composition/axes.d.ts +6 -0
  556. package/dist/composition/axes.d.ts.map +1 -1
  557. package/dist/composition/axes.js +18 -6
  558. package/dist/composition/axes.js.map +1 -1
  559. package/dist/composition/axis-audit.d.ts +47 -20
  560. package/dist/composition/axis-audit.d.ts.map +1 -1
  561. package/dist/composition/axis-audit.js +82 -9
  562. package/dist/composition/axis-audit.js.map +1 -1
  563. package/dist/composition/bridge-analysis.d.ts +14 -15
  564. package/dist/composition/bridge-analysis.d.ts.map +1 -1
  565. package/dist/composition/bridge-analysis.js +148 -91
  566. package/dist/composition/bridge-analysis.js.map +1 -1
  567. package/dist/composition/bridge-prediction.d.ts +5 -1
  568. package/dist/composition/bridge-prediction.d.ts.map +1 -1
  569. package/dist/composition/bridge-prediction.js +12 -16
  570. package/dist/composition/bridge-prediction.js.map +1 -1
  571. package/dist/composition/buckingham-filter.js.map +1 -1
  572. package/dist/composition/canonical-compare.d.ts +40 -0
  573. package/dist/composition/canonical-compare.d.ts.map +1 -1
  574. package/dist/composition/canonical-compare.js +134 -26
  575. package/dist/composition/canonical-compare.js.map +1 -1
  576. package/dist/composition/canonical-graph.d.ts +9 -10
  577. package/dist/composition/canonical-graph.d.ts.map +1 -1
  578. package/dist/composition/canonical-graph.js +33 -102
  579. package/dist/composition/canonical-graph.js.map +1 -1
  580. package/dist/composition/canonical-json.js +2 -2
  581. package/dist/composition/canonical-json.js.map +1 -1
  582. package/dist/composition/canonical-prefactors.js.map +1 -1
  583. package/dist/composition/catalog-graph.d.ts.map +1 -1
  584. package/dist/composition/catalog-graph.js +8 -25
  585. package/dist/composition/catalog-graph.js.map +1 -1
  586. package/dist/composition/chain-candidate.d.ts +10 -0
  587. package/dist/composition/chain-candidate.d.ts.map +1 -1
  588. package/dist/composition/chain-candidate.js +11 -2
  589. package/dist/composition/chain-candidate.js.map +1 -1
  590. package/dist/composition/chain-match.d.ts +6 -3
  591. package/dist/composition/chain-match.d.ts.map +1 -1
  592. package/dist/composition/chain-match.js +4 -1
  593. package/dist/composition/chain-match.js.map +1 -1
  594. package/dist/composition/chain-regime.js.map +1 -1
  595. package/dist/composition/chain-result.d.ts.map +1 -1
  596. package/dist/composition/chain-result.js +2 -14
  597. package/dist/composition/chain-result.js.map +1 -1
  598. package/dist/composition/compose-surface.js.map +1 -1
  599. package/dist/composition/compose-symbolic.d.ts.map +1 -1
  600. package/dist/composition/compose-symbolic.js +3 -2
  601. package/dist/composition/compose-symbolic.js.map +1 -1
  602. package/dist/composition/compose.d.ts.map +1 -1
  603. package/dist/composition/compose.js +166 -41
  604. package/dist/composition/compose.js.map +1 -1
  605. package/dist/composition/composition-recovery.d.ts.map +1 -1
  606. package/dist/composition/composition-recovery.js +4 -7
  607. package/dist/composition/composition-recovery.js.map +1 -1
  608. package/dist/composition/consequence.d.ts.map +1 -1
  609. package/dist/composition/consequence.js +15 -6
  610. package/dist/composition/consequence.js.map +1 -1
  611. package/dist/composition/consistency.js.map +1 -1
  612. package/dist/composition/descriptor.d.ts +1 -1
  613. package/dist/composition/descriptor.d.ts.map +1 -1
  614. package/dist/composition/descriptor.js.map +1 -1
  615. package/dist/composition/dimension-adjacency.js.map +1 -1
  616. package/dist/composition/discovery.d.ts +77 -11
  617. package/dist/composition/discovery.d.ts.map +1 -1
  618. package/dist/composition/discovery.js +194 -80
  619. package/dist/composition/discovery.js.map +1 -1
  620. package/dist/composition/edge.d.ts +40 -10
  621. package/dist/composition/edge.d.ts.map +1 -1
  622. package/dist/composition/edge.js +47 -12
  623. package/dist/composition/edge.js.map +1 -1
  624. package/dist/composition/enumerate.d.ts +2 -2
  625. package/dist/composition/enumerate.d.ts.map +1 -1
  626. package/dist/composition/enumerate.js +18 -3
  627. package/dist/composition/enumerate.js.map +1 -1
  628. package/dist/composition/evaluate-relation.d.ts +35 -11
  629. package/dist/composition/evaluate-relation.d.ts.map +1 -1
  630. package/dist/composition/evaluate-relation.js +60 -39
  631. package/dist/composition/evaluate-relation.js.map +1 -1
  632. package/dist/composition/explain.d.ts +5 -9
  633. package/dist/composition/explain.d.ts.map +1 -1
  634. package/dist/composition/explain.js +38 -18
  635. package/dist/composition/explain.js.map +1 -1
  636. package/dist/composition/expr-eval.d.ts.map +1 -1
  637. package/dist/composition/expr-eval.js +2 -11
  638. package/dist/composition/expr-eval.js.map +1 -1
  639. package/dist/composition/expr-simplify.d.ts +16 -0
  640. package/dist/composition/expr-simplify.d.ts.map +1 -1
  641. package/dist/composition/expr-simplify.js +24 -59
  642. package/dist/composition/expr-simplify.js.map +1 -1
  643. package/dist/composition/expr-subst.js.map +1 -1
  644. package/dist/composition/formula-shape.d.ts +28 -0
  645. package/dist/composition/formula-shape.d.ts.map +1 -1
  646. package/dist/composition/formula-shape.js +96 -2
  647. package/dist/composition/formula-shape.js.map +1 -1
  648. package/dist/composition/frontier-account.d.ts +3 -2
  649. package/dist/composition/frontier-account.d.ts.map +1 -1
  650. package/dist/composition/frontier-account.js +7 -3
  651. package/dist/composition/frontier-account.js.map +1 -1
  652. package/dist/composition/graph-structure.d.ts +98 -0
  653. package/dist/composition/graph-structure.d.ts.map +1 -0
  654. package/dist/composition/graph-structure.js +167 -0
  655. package/dist/composition/graph-structure.js.map +1 -0
  656. package/dist/composition/graph-viz-svg.d.ts.map +1 -1
  657. package/dist/composition/graph-viz-svg.js +1 -1
  658. package/dist/composition/graph-viz-svg.js.map +1 -1
  659. package/dist/composition/graph-viz.d.ts.map +1 -1
  660. package/dist/composition/graph-viz.js +8 -37
  661. package/dist/composition/graph-viz.js.map +1 -1
  662. package/dist/composition/grounding.js.map +1 -1
  663. package/dist/composition/identifiability.d.ts +91 -4
  664. package/dist/composition/identifiability.d.ts.map +1 -1
  665. package/dist/composition/identifiability.js +363 -6
  666. package/dist/composition/identifiability.js.map +1 -1
  667. package/dist/composition/index.d.ts +14 -8
  668. package/dist/composition/index.d.ts.map +1 -1
  669. package/dist/composition/index.js +7 -5
  670. package/dist/composition/index.js.map +1 -1
  671. package/dist/composition/mathts-quiet.d.ts +29 -0
  672. package/dist/composition/mathts-quiet.d.ts.map +1 -0
  673. package/dist/composition/mathts-quiet.js +57 -0
  674. package/dist/composition/mathts-quiet.js.map +1 -0
  675. package/dist/composition/mathts-scalar-symbols.d.ts.map +1 -1
  676. package/dist/composition/mathts-scalar-symbols.js +20 -35
  677. package/dist/composition/mathts-scalar-symbols.js.map +1 -1
  678. package/dist/composition/not-composable-seeds.d.ts +3 -1
  679. package/dist/composition/not-composable-seeds.d.ts.map +1 -1
  680. package/dist/composition/not-composable-seeds.js +2 -0
  681. package/dist/composition/not-composable-seeds.js.map +1 -1
  682. package/dist/composition/probe/backend-protocol.js.map +1 -1
  683. package/dist/composition/probe/candidate-store.js.map +1 -1
  684. package/dist/composition/probe/corpus.d.ts +4 -2
  685. package/dist/composition/probe/corpus.d.ts.map +1 -1
  686. package/dist/composition/probe/corpus.js +20 -9
  687. package/dist/composition/probe/corpus.js.map +1 -1
  688. package/dist/composition/probe/dataset.d.ts +17 -0
  689. package/dist/composition/probe/dataset.d.ts.map +1 -1
  690. package/dist/composition/probe/dataset.js +95 -50
  691. package/dist/composition/probe/dataset.js.map +1 -1
  692. package/dist/composition/probe/experiment-design.d.ts +5 -1
  693. package/dist/composition/probe/experiment-design.d.ts.map +1 -1
  694. package/dist/composition/probe/experiment-design.js +44 -24
  695. package/dist/composition/probe/experiment-design.js.map +1 -1
  696. package/dist/composition/probe/expression-gaps.js.map +1 -1
  697. package/dist/composition/probe/falsify.d.ts +14 -3
  698. package/dist/composition/probe/falsify.d.ts.map +1 -1
  699. package/dist/composition/probe/falsify.js +16 -27
  700. package/dist/composition/probe/falsify.js.map +1 -1
  701. package/dist/composition/probe/fingerprint.js.map +1 -1
  702. package/dist/composition/probe/fit.d.ts +7 -1
  703. package/dist/composition/probe/fit.d.ts.map +1 -1
  704. package/dist/composition/probe/fit.js +48 -23
  705. package/dist/composition/probe/fit.js.map +1 -1
  706. package/dist/composition/probe/frontier.d.ts.map +1 -1
  707. package/dist/composition/probe/frontier.js +33 -15
  708. package/dist/composition/probe/frontier.js.map +1 -1
  709. package/dist/composition/probe/generator.d.ts +27 -1
  710. package/dist/composition/probe/generator.d.ts.map +1 -1
  711. package/dist/composition/probe/generator.js +53 -30
  712. package/dist/composition/probe/generator.js.map +1 -1
  713. package/dist/composition/probe/index.d.ts +18 -2
  714. package/dist/composition/probe/index.d.ts.map +1 -1
  715. package/dist/composition/probe/index.js +10 -2
  716. package/dist/composition/probe/index.js.map +1 -1
  717. package/dist/composition/probe/limits.d.ts +24 -1
  718. package/dist/composition/probe/limits.d.ts.map +1 -1
  719. package/dist/composition/probe/limits.js +53 -11
  720. package/dist/composition/probe/limits.js.map +1 -1
  721. package/dist/composition/probe/metadata.js.map +1 -1
  722. package/dist/composition/probe/pipeline.d.ts +5 -0
  723. package/dist/composition/probe/pipeline.d.ts.map +1 -1
  724. package/dist/composition/probe/pipeline.js +22 -9
  725. package/dist/composition/probe/pipeline.js.map +1 -1
  726. package/dist/composition/probe/power-law.d.ts +121 -0
  727. package/dist/composition/probe/power-law.d.ts.map +1 -0
  728. package/dist/composition/probe/power-law.js +255 -0
  729. package/dist/composition/probe/power-law.js.map +1 -0
  730. package/dist/composition/probe/problem.d.ts +12 -1
  731. package/dist/composition/probe/problem.d.ts.map +1 -1
  732. package/dist/composition/probe/problem.js +242 -48
  733. package/dist/composition/probe/problem.js.map +1 -1
  734. package/dist/composition/probe/report.js +1 -1
  735. package/dist/composition/probe/report.js.map +1 -1
  736. package/dist/composition/probe/residual.d.ts +6 -1
  737. package/dist/composition/probe/residual.d.ts.map +1 -1
  738. package/dist/composition/probe/residual.js +9 -7
  739. package/dist/composition/probe/residual.js.map +1 -1
  740. package/dist/composition/probe/run-manifest.js +2 -2
  741. package/dist/composition/probe/run-manifest.js.map +1 -1
  742. package/dist/composition/probe/scoring.d.ts +2 -1
  743. package/dist/composition/probe/scoring.d.ts.map +1 -1
  744. package/dist/composition/probe/scoring.js +21 -7
  745. package/dist/composition/probe/scoring.js.map +1 -1
  746. package/dist/composition/probe/search-budget.js.map +1 -1
  747. package/dist/composition/probe/serialize.js.map +1 -1
  748. package/dist/composition/probe/structure.d.ts +82 -17
  749. package/dist/composition/probe/structure.d.ts.map +1 -1
  750. package/dist/composition/probe/structure.js +129 -55
  751. package/dist/composition/probe/structure.js.map +1 -1
  752. package/dist/composition/probe/study.d.ts +35 -12
  753. package/dist/composition/probe/study.d.ts.map +1 -1
  754. package/dist/composition/probe/study.js +241 -184
  755. package/dist/composition/probe/study.js.map +1 -1
  756. package/dist/composition/probe/t-tail.d.ts +17 -0
  757. package/dist/composition/probe/t-tail.d.ts.map +1 -0
  758. package/dist/composition/probe/t-tail.js +32 -0
  759. package/dist/composition/probe/t-tail.js.map +1 -0
  760. package/dist/composition/probe/types.d.ts +6 -1
  761. package/dist/composition/probe/types.d.ts.map +1 -1
  762. package/dist/composition/probe/types.js +2 -0
  763. package/dist/composition/probe/types.js.map +1 -1
  764. package/dist/composition/proposed-bridges.d.ts +51 -13
  765. package/dist/composition/proposed-bridges.d.ts.map +1 -1
  766. package/dist/composition/proposed-bridges.js +110 -58
  767. package/dist/composition/proposed-bridges.js.map +1 -1
  768. package/dist/composition/quantities.d.ts +0 -4
  769. package/dist/composition/quantities.d.ts.map +1 -1
  770. package/dist/composition/quantities.js +5 -5
  771. package/dist/composition/quantities.js.map +1 -1
  772. package/dist/composition/quantity-clusters.d.ts +48 -0
  773. package/dist/composition/quantity-clusters.d.ts.map +1 -0
  774. package/dist/composition/quantity-clusters.js +98 -0
  775. package/dist/composition/quantity-clusters.js.map +1 -0
  776. package/dist/composition/quantity.d.ts +18 -2
  777. package/dist/composition/quantity.d.ts.map +1 -1
  778. package/dist/composition/quantity.js +35 -6
  779. package/dist/composition/quantity.js.map +1 -1
  780. package/dist/composition/rational-exponent.d.ts +40 -0
  781. package/dist/composition/rational-exponent.d.ts.map +1 -0
  782. package/dist/composition/rational-exponent.js +65 -0
  783. package/dist/composition/rational-exponent.js.map +1 -0
  784. package/dist/composition/representative-values.d.ts +22 -0
  785. package/dist/composition/representative-values.d.ts.map +1 -1
  786. package/dist/composition/representative-values.js +23 -0
  787. package/dist/composition/representative-values.js.map +1 -1
  788. package/dist/composition/retrodiction.d.ts +16 -6
  789. package/dist/composition/retrodiction.d.ts.map +1 -1
  790. package/dist/composition/retrodiction.js +36 -10
  791. package/dist/composition/retrodiction.js.map +1 -1
  792. package/dist/composition/uncertainty.js.map +1 -1
  793. package/dist/composition/user-equation.d.ts.map +1 -1
  794. package/dist/composition/user-equation.js +2 -2
  795. package/dist/composition/user-equation.js.map +1 -1
  796. package/dist/core/assignment.d.ts +19 -0
  797. package/dist/core/assignment.d.ts.map +1 -0
  798. package/dist/core/assignment.js +19 -0
  799. package/dist/core/assignment.js.map +1 -0
  800. package/dist/core/axes-registry.d.ts +8 -5
  801. package/dist/core/axes-registry.d.ts.map +1 -1
  802. package/dist/core/axes-registry.js.map +1 -1
  803. package/dist/core/cell.js.map +1 -1
  804. package/dist/core/compare.d.ts +32 -0
  805. package/dist/core/compare.d.ts.map +1 -0
  806. package/dist/core/compare.js +46 -0
  807. package/dist/core/compare.js.map +1 -0
  808. package/dist/core/constants.d.ts +35 -35
  809. package/dist/core/constants.d.ts.map +1 -1
  810. package/dist/core/constants.js +52 -37
  811. package/dist/core/constants.js.map +1 -1
  812. package/dist/core/data-file.d.ts +7 -0
  813. package/dist/core/data-file.d.ts.map +1 -1
  814. package/dist/core/data-file.js +17 -0
  815. package/dist/core/data-file.js.map +1 -1
  816. package/dist/core/flux-rules.js +1 -1
  817. package/dist/core/flux-rules.js.map +1 -1
  818. package/dist/core/format.d.ts +36 -0
  819. package/dist/core/format.d.ts.map +1 -0
  820. package/dist/core/format.js +39 -0
  821. package/dist/core/format.js.map +1 -0
  822. package/dist/core/hash.d.ts +14 -0
  823. package/dist/core/hash.d.ts.map +1 -0
  824. package/dist/core/hash.js +17 -0
  825. package/dist/core/hash.js.map +1 -0
  826. package/dist/core/json-schema.d.ts +3 -1
  827. package/dist/core/json-schema.d.ts.map +1 -1
  828. package/dist/core/json-schema.js +41 -16
  829. package/dist/core/json-schema.js.map +1 -1
  830. package/dist/core/labeled-tensor.d.ts +6 -1
  831. package/dist/core/labeled-tensor.d.ts.map +1 -1
  832. package/dist/core/labeled-tensor.js +18 -16
  833. package/dist/core/labeled-tensor.js.map +1 -1
  834. package/dist/core/mathts-read.d.ts +25 -0
  835. package/dist/core/mathts-read.d.ts.map +1 -0
  836. package/dist/core/mathts-read.js +51 -0
  837. package/dist/core/mathts-read.js.map +1 -0
  838. package/dist/core/regime-registry.d.ts +6 -2
  839. package/dist/core/regime-registry.d.ts.map +1 -1
  840. package/dist/core/regime-registry.js.map +1 -1
  841. package/dist/core/regime-rule-install.js.map +1 -1
  842. package/dist/core/regimes-builtins.js.map +1 -1
  843. package/dist/core/tensor.d.ts +7 -4
  844. package/dist/core/tensor.d.ts.map +1 -1
  845. package/dist/core/tensor.js +64 -8
  846. package/dist/core/tensor.js.map +1 -1
  847. package/dist/core/types.d.ts +5 -5
  848. package/dist/core/types.js.map +1 -1
  849. package/dist/core/universal-index.js.map +1 -1
  850. package/dist/diff/bridge-ast-gradient.d.ts +4 -5
  851. package/dist/diff/bridge-ast-gradient.d.ts.map +1 -1
  852. package/dist/diff/bridge-ast-gradient.js +10 -6
  853. package/dist/diff/bridge-ast-gradient.js.map +1 -1
  854. package/dist/diff/bridge-gradient.d.ts +43 -86
  855. package/dist/diff/bridge-gradient.d.ts.map +1 -1
  856. package/dist/diff/bridge-gradient.js +40 -109
  857. package/dist/diff/bridge-gradient.js.map +1 -1
  858. package/dist/diff/bridge-specs.d.ts +16 -5
  859. package/dist/diff/bridge-specs.d.ts.map +1 -1
  860. package/dist/diff/bridge-specs.js +19 -4
  861. package/dist/diff/bridge-specs.js.map +1 -1
  862. package/dist/dimensional/algebra.d.ts +18 -0
  863. package/dist/dimensional/algebra.d.ts.map +1 -1
  864. package/dist/dimensional/algebra.js +41 -1
  865. package/dist/dimensional/algebra.js.map +1 -1
  866. package/dist/dimensional/ast-builders.d.ts +12 -4
  867. package/dist/dimensional/ast-builders.d.ts.map +1 -1
  868. package/dist/dimensional/ast-builders.js +17 -5
  869. package/dist/dimensional/ast-builders.js.map +1 -1
  870. package/dist/dimensional/ast-leaves.d.ts +81 -0
  871. package/dist/dimensional/ast-leaves.d.ts.map +1 -0
  872. package/dist/dimensional/ast-leaves.js +146 -0
  873. package/dist/dimensional/ast-leaves.js.map +1 -0
  874. package/dist/dimensional/ast-types.js.map +1 -1
  875. package/dist/dimensional/bridge-check.js.map +1 -1
  876. package/dist/dimensional/buckingham.d.ts.map +1 -1
  877. package/dist/dimensional/buckingham.js +15 -27
  878. package/dist/dimensional/buckingham.js.map +1 -1
  879. package/dist/dimensional/connection-validators.d.ts +2 -1
  880. package/dist/dimensional/connection-validators.d.ts.map +1 -1
  881. package/dist/dimensional/connection-validators.js.map +1 -1
  882. package/dist/dimensional/connection.js.map +1 -1
  883. package/dist/dimensional/constant-rows.d.ts.map +1 -1
  884. package/dist/dimensional/constant-rows.js +17 -13
  885. package/dist/dimensional/constant-rows.js.map +1 -1
  886. package/dist/dimensional/constants.d.ts +5 -6
  887. package/dist/dimensional/constants.d.ts.map +1 -1
  888. package/dist/dimensional/constants.js +5 -6
  889. package/dist/dimensional/constants.js.map +1 -1
  890. package/dist/dimensional/curvature-composite.js.map +1 -1
  891. package/dist/dimensional/curvature-invariants.js.map +1 -1
  892. package/dist/dimensional/curvature.js.map +1 -1
  893. package/dist/dimensional/dimension-inference.d.ts.map +1 -1
  894. package/dist/dimensional/dimension-inference.js +1 -2
  895. package/dist/dimensional/dimension-inference.js.map +1 -1
  896. package/dist/dimensional/dimension-spec.d.ts +13 -7
  897. package/dist/dimensional/dimension-spec.d.ts.map +1 -1
  898. package/dist/dimensional/dimension-spec.js +49 -23
  899. package/dist/dimensional/dimension-spec.js.map +1 -1
  900. package/dist/dimensional/einstein-equation.js.map +1 -1
  901. package/dist/dimensional/errors.d.ts +4 -2
  902. package/dist/dimensional/errors.d.ts.map +1 -1
  903. package/dist/dimensional/errors.js +3 -17
  904. package/dist/dimensional/errors.js.map +1 -1
  905. package/dist/dimensional/exact-scale.d.ts +0 -17
  906. package/dist/dimensional/exact-scale.d.ts.map +1 -1
  907. package/dist/dimensional/exact-scale.js +8 -8
  908. package/dist/dimensional/exact-scale.js.map +1 -1
  909. package/dist/dimensional/field-equation-helpers.js.map +1 -1
  910. package/dist/dimensional/formula-names.js.map +1 -1
  911. package/dist/dimensional/fresh-label.js.map +1 -1
  912. package/dist/dimensional/friedmann-equation.d.ts +3 -3
  913. package/dist/dimensional/friedmann-equation.js +3 -3
  914. package/dist/dimensional/friedmann-equation.js.map +1 -1
  915. package/dist/dimensional/gauge-field.d.ts +2 -3
  916. package/dist/dimensional/gauge-field.d.ts.map +1 -1
  917. package/dist/dimensional/gauge-field.js +2 -3
  918. package/dist/dimensional/gauge-field.js.map +1 -1
  919. package/dist/dimensional/hyphen-names.d.ts +12 -2
  920. package/dist/dimensional/hyphen-names.d.ts.map +1 -1
  921. package/dist/dimensional/hyphen-names.js +45 -12
  922. package/dist/dimensional/hyphen-names.js.map +1 -1
  923. package/dist/dimensional/killing-validators.js.map +1 -1
  924. package/dist/dimensional/klein-gordon-equation.js.map +1 -1
  925. package/dist/dimensional/metric-validators.d.ts +2 -1
  926. package/dist/dimensional/metric-validators.d.ts.map +1 -1
  927. package/dist/dimensional/metric-validators.js.map +1 -1
  928. package/dist/dimensional/metric.d.ts.map +1 -1
  929. package/dist/dimensional/metric.js +0 -1
  930. package/dist/dimensional/metric.js.map +1 -1
  931. package/dist/dimensional/natural-units.js.map +1 -1
  932. package/dist/dimensional/quantity-registry.d.ts +13 -0
  933. package/dist/dimensional/quantity-registry.d.ts.map +1 -1
  934. package/dist/dimensional/quantity-registry.js +14 -6
  935. package/dist/dimensional/quantity-registry.js.map +1 -1
  936. package/dist/dimensional/rg-flow.js.map +1 -1
  937. package/dist/dimensional/stress-energy-validators.js.map +1 -1
  938. package/dist/dimensional/symbolic-constants.d.ts +9 -0
  939. package/dist/dimensional/symbolic-constants.d.ts.map +1 -1
  940. package/dist/dimensional/symbolic-constants.js +20 -3
  941. package/dist/dimensional/symbolic-constants.js.map +1 -1
  942. package/dist/dimensional/tensor-trace.js.map +1 -1
  943. package/dist/dimensional/tensor.js.map +1 -1
  944. package/dist/dimensional/types.d.ts +36 -0
  945. package/dist/dimensional/types.d.ts.map +1 -1
  946. package/dist/dimensional/types.js +45 -7
  947. package/dist/dimensional/types.js.map +1 -1
  948. package/dist/dimensional/unit-convention.d.ts +0 -2
  949. package/dist/dimensional/unit-convention.d.ts.map +1 -1
  950. package/dist/dimensional/unit-convention.js +2 -2
  951. package/dist/dimensional/unit-convention.js.map +1 -1
  952. package/dist/dimensional/unit-data.d.ts.map +1 -1
  953. package/dist/dimensional/unit-data.js +11 -7
  954. package/dist/dimensional/unit-data.js.map +1 -1
  955. package/dist/dimensional/units.d.ts.map +1 -1
  956. package/dist/dimensional/units.js +38 -20
  957. package/dist/dimensional/units.js.map +1 -1
  958. package/dist/dimensional/validator-registry.js.map +1 -1
  959. package/dist/dimensional/validator.d.ts +0 -16
  960. package/dist/dimensional/validator.d.ts.map +1 -1
  961. package/dist/dimensional/validator.js +65 -29
  962. package/dist/dimensional/validator.js.map +1 -1
  963. package/dist/dimensional/weyl-validators.js.map +1 -1
  964. package/dist/index.d.ts +59 -8
  965. package/dist/index.d.ts.map +1 -1
  966. package/dist/index.js +22 -24
  967. package/dist/index.js.map +1 -1
  968. package/dist/numerical/bianchi-residual.js.map +1 -1
  969. package/dist/numerical/binding-value.d.ts +11 -6
  970. package/dist/numerical/binding-value.d.ts.map +1 -1
  971. package/dist/numerical/binding-value.js +126 -122
  972. package/dist/numerical/binding-value.js.map +1 -1
  973. package/dist/numerical/christoffel-flat.d.ts.map +1 -1
  974. package/dist/numerical/christoffel-flat.js +3 -2
  975. package/dist/numerical/christoffel-flat.js.map +1 -1
  976. package/dist/numerical/connection-lowering-helpers.js.map +1 -1
  977. package/dist/numerical/covariant-eikonal.d.ts.map +1 -1
  978. package/dist/numerical/covariant-eikonal.js +36 -13
  979. package/dist/numerical/covariant-eikonal.js.map +1 -1
  980. package/dist/numerical/curvature-lowering-helpers.d.ts +20 -0
  981. package/dist/numerical/curvature-lowering-helpers.d.ts.map +1 -1
  982. package/dist/numerical/curvature-lowering-helpers.js +9 -5
  983. package/dist/numerical/curvature-lowering-helpers.js.map +1 -1
  984. package/dist/numerical/derivative-lowering.js.map +1 -1
  985. package/dist/numerical/einstein-equation.js.map +1 -1
  986. package/dist/numerical/engine-registry.js.map +1 -1
  987. package/dist/numerical/errors.d.ts +7 -3
  988. package/dist/numerical/errors.d.ts.map +1 -1
  989. package/dist/numerical/errors.js +5 -8
  990. package/dist/numerical/errors.js.map +1 -1
  991. package/dist/numerical/evaluator-uncertainty.d.ts.map +1 -1
  992. package/dist/numerical/evaluator-uncertainty.js +19 -2
  993. package/dist/numerical/evaluator-uncertainty.js.map +1 -1
  994. package/dist/numerical/finite-difference.d.ts +22 -0
  995. package/dist/numerical/finite-difference.d.ts.map +1 -0
  996. package/dist/numerical/finite-difference.js +27 -0
  997. package/dist/numerical/finite-difference.js.map +1 -0
  998. package/dist/numerical/formula-contract.d.ts +63 -7
  999. package/dist/numerical/formula-contract.d.ts.map +1 -1
  1000. package/dist/numerical/formula-contract.js +61 -42
  1001. package/dist/numerical/formula-contract.js.map +1 -1
  1002. package/dist/numerical/formula-dimension.d.ts +8 -7
  1003. package/dist/numerical/formula-dimension.d.ts.map +1 -1
  1004. package/dist/numerical/formula-dimension.js +58 -36
  1005. package/dist/numerical/formula-dimension.js.map +1 -1
  1006. package/dist/numerical/formula-mathts.d.ts.map +1 -1
  1007. package/dist/numerical/formula-mathts.js +5 -2
  1008. package/dist/numerical/formula-mathts.js.map +1 -1
  1009. package/dist/numerical/formula-registry.d.ts +13 -3
  1010. package/dist/numerical/formula-registry.d.ts.map +1 -1
  1011. package/dist/numerical/formula-registry.js +7 -2
  1012. package/dist/numerical/formula-registry.js.map +1 -1
  1013. package/dist/numerical/geodesic-integrator.d.ts.map +1 -1
  1014. package/dist/numerical/geodesic-integrator.js +22 -14
  1015. package/dist/numerical/geodesic-integrator.js.map +1 -1
  1016. package/dist/numerical/geometrized.d.ts.map +1 -1
  1017. package/dist/numerical/geometrized.js +0 -1
  1018. package/dist/numerical/geometrized.js.map +1 -1
  1019. package/dist/numerical/gl4-integrator.d.ts +28 -27
  1020. package/dist/numerical/gl4-integrator.d.ts.map +1 -1
  1021. package/dist/numerical/gl4-integrator.js +41 -42
  1022. package/dist/numerical/gl4-integrator.js.map +1 -1
  1023. package/dist/numerical/grid-field.js.map +1 -1
  1024. package/dist/numerical/index.js.map +1 -1
  1025. package/dist/numerical/input-validation.d.ts +3 -6
  1026. package/dist/numerical/input-validation.d.ts.map +1 -1
  1027. package/dist/numerical/input-validation.js +4 -8
  1028. package/dist/numerical/input-validation.js.map +1 -1
  1029. package/dist/numerical/killing.d.ts +8 -5
  1030. package/dist/numerical/killing.d.ts.map +1 -1
  1031. package/dist/numerical/killing.js.map +1 -1
  1032. package/dist/numerical/klein-gordon.js.map +1 -1
  1033. package/dist/numerical/kretschmann.js.map +1 -1
  1034. package/dist/numerical/lowering-utils.js.map +1 -1
  1035. package/dist/numerical/lowering.d.ts.map +1 -1
  1036. package/dist/numerical/lowering.js +7 -17
  1037. package/dist/numerical/lowering.js.map +1 -1
  1038. package/dist/numerical/mathts-engine.d.ts.map +1 -1
  1039. package/dist/numerical/mathts-engine.js +16 -25
  1040. package/dist/numerical/mathts-engine.js.map +1 -1
  1041. package/dist/numerical/metric-inverse.d.ts.map +1 -1
  1042. package/dist/numerical/metric-inverse.js +83 -46
  1043. package/dist/numerical/metric-inverse.js.map +1 -1
  1044. package/dist/numerical/null-ic.js.map +1 -1
  1045. package/dist/numerical/null-ray-integrator.d.ts +2 -1
  1046. package/dist/numerical/null-ray-integrator.d.ts.map +1 -1
  1047. package/dist/numerical/null-ray-integrator.js +12 -12
  1048. package/dist/numerical/null-ray-integrator.js.map +1 -1
  1049. package/dist/numerical/painleve-gullstrand-metric.js +2 -2
  1050. package/dist/numerical/painleve-gullstrand-metric.js.map +1 -1
  1051. package/dist/numerical/pderiv.d.ts.map +1 -1
  1052. package/dist/numerical/pderiv.js +9 -2
  1053. package/dist/numerical/pderiv.js.map +1 -1
  1054. package/dist/numerical/perihelion-finder.d.ts +0 -36
  1055. package/dist/numerical/perihelion-finder.d.ts.map +1 -1
  1056. package/dist/numerical/perihelion-finder.js +41 -87
  1057. package/dist/numerical/perihelion-finder.js.map +1 -1
  1058. package/dist/numerical/quadrature.d.ts +5 -2
  1059. package/dist/numerical/quadrature.d.ts.map +1 -1
  1060. package/dist/numerical/quadrature.js +19 -4
  1061. package/dist/numerical/quadrature.js.map +1 -1
  1062. package/dist/numerical/rk4-trajectory.d.ts +10 -0
  1063. package/dist/numerical/rk4-trajectory.d.ts.map +1 -0
  1064. package/dist/numerical/rk4-trajectory.js +37 -0
  1065. package/dist/numerical/rk4-trajectory.js.map +1 -0
  1066. package/dist/numerical/schwarzschild.d.ts +14 -0
  1067. package/dist/numerical/schwarzschild.d.ts.map +1 -0
  1068. package/dist/numerical/schwarzschild.js +17 -0
  1069. package/dist/numerical/schwarzschild.js.map +1 -0
  1070. package/dist/numerical/spacetime-metrics.d.ts +25 -19
  1071. package/dist/numerical/spacetime-metrics.d.ts.map +1 -1
  1072. package/dist/numerical/spacetime-metrics.js +180 -286
  1073. package/dist/numerical/spacetime-metrics.js.map +1 -1
  1074. package/dist/numerical/statistics.d.ts +24 -0
  1075. package/dist/numerical/statistics.d.ts.map +1 -0
  1076. package/dist/numerical/statistics.js +52 -0
  1077. package/dist/numerical/statistics.js.map +1 -0
  1078. package/dist/numerical/strides.js.map +1 -1
  1079. package/dist/numerical/tensor-engine.d.ts +30 -5
  1080. package/dist/numerical/tensor-engine.d.ts.map +1 -1
  1081. package/dist/numerical/tensor-engine.js +12 -0
  1082. package/dist/numerical/tensor-engine.js.map +1 -1
  1083. package/dist/numerical/types.js.map +1 -1
  1084. package/dist/numerical/weyl-lowering.js.map +1 -1
  1085. package/dist/relations/category.js.map +1 -1
  1086. package/dist/relations/composition-table.d.ts +4 -4
  1087. package/dist/relations/composition-table.js +4 -4
  1088. package/dist/relations/composition-table.js.map +1 -1
  1089. package/dist/relations/conventions.js.map +1 -1
  1090. package/dist/relations/domain-regimes.js.map +1 -1
  1091. package/dist/relations/regime-registration.js.map +1 -1
  1092. package/dist/relations/regime-vocabularies.js.map +1 -1
  1093. package/dist/relations/regime.d.ts +28 -8
  1094. package/dist/relations/regime.d.ts.map +1 -1
  1095. package/dist/relations/regime.js +44 -15
  1096. package/dist/relations/regime.js.map +1 -1
  1097. package/dist/relations/types.d.ts +18 -5
  1098. package/dist/relations/types.d.ts.map +1 -1
  1099. package/dist/relations/types.js +5 -3
  1100. package/dist/relations/types.js.map +1 -1
  1101. package/package.json +16 -20
  1102. package/dist/bridges/registry.d.ts +0 -60
  1103. package/dist/bridges/registry.d.ts.map +0 -1
  1104. package/dist/bridges/registry.js +0 -87
  1105. package/dist/bridges/registry.js.map +0 -1
  1106. package/dist/cli/poster-source.d.ts +0 -154
  1107. package/dist/cli/poster-source.d.ts.map +0 -1
  1108. package/dist/cli/poster-source.js +0 -184
  1109. package/dist/cli/poster-source.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"bridges-closure.js","sourceRoot":"","sources":["../../../src/atlas/waves/bridges-closure.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bridges-closure.js","sourceRoot":"","sources":["../../../src/atlas/waves/bridges-closure.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Atlas Phase 4 — the three wave-family bridges added to close Sprint 4's\n * \"≥ 20 bridges\" exit criterion.\n *\n * Design note: `docs/planning/Atlas-Phase-4-Design.md` §4 (Sprint 4 closure).\n *\n * | Bridge | Relation | Witnesses |\n * |---|---|---|\n * | Klein–Gordon → free Schrödinger | `approximation` (ck/ω₀ → 0) | WS5 (convergence), WS5b |\n * | Klein–Gordon → spring | `restriction` (uniform mode) | WS6 (convergence) |\n * | stiff string → string | `approximation` (EIk²/F → 0) | WS7 (convergence), WS7b |\n *\n * Two of these END in other families (`model-schrodinger-free` in diffusion,\n * `model-spring` in oscillators): the atlas is one graph, and\n * `tests/atlas/families.test.ts` resolves endpoints across all of it.\n *\n * @module atlas/waves/bridges-closure\n */\n\nimport type { Dimension } from '../../dimensional/types.js';\nimport { ACTION, FORCE, FREQUENCY, MASS, VELOCITY } from '../../dimensional/types.js';\nimport { makeApproximation } from '../oscillators/bridges-limits.js';\nimport { SPRING_CONSTANT } from '../oscillators/dimensions.js';\nimport { makeRegime } from '../regime.js';\nimport { physjsFormalRef } from '../physjs-ref.js';\nimport type { AtlasBridge } from '../types.js';\nimport { FLEXURAL_RIGIDITY, LINEAR_DENSITY, WAVENUMBER, WAVES_FAMILY_NAME } from './models.js';\nimport { kgNonrelativisticError, stiffStringPhaseError } from './numerics.js';\n\nconst TEST = 'tests/atlas/closure.test.ts';\n\n/** Domain edge of the non-relativistic limit: ck/ω₀ ≤ 0.1. @internal */\nexport const KG_NR_MAX_X = 0.1;\n\n/** Domain edge of the flexible-string limit: β = EIk²/F ≤ 0.01. @internal */\nexport const STIFF_MAX_BETA = 0.01;\n\nconst regime = (\n parameters: readonly { name: string; dim: Dimension }[],\n inequalities: AtlasBridge['regime']['inequalities'],\n): AtlasBridge['regime'] => makeRegime(WAVES_FAMILY_NAME, parameters, [], inequalities);\n\n/**\n * Bridge: Klein–Gordon → free Schrödinger, the non-relativistic limit.\n *\n * Factor out the rest-frequency phase e^{−iω₀t}; the remaining envelope obeys\n * the free Schrödinger equation with ħ/m ↦ c²/ω₀ (that is, mc² = ħω₀).\n *\n * @internal\n */\nexport const BRIDGE_KG_SCHRODINGER: AtlasBridge = {\n id: 'ab-kg-schrodinger',\n relation: 'approximation',\n premises: ['model-klein-gordon'],\n conclusion: 'model-schrodinger-free',\n transformation:\n 'u = Re(ψ e^{−iω₀t}) with ψ slowly varying; ħ/m ↦ c²/ω₀: ω − ω₀ = ω₀(√(1 + x²) − 1) → ω₀x²/2, x = ck/ω₀',\n preserves: ['the kinetic frequency ħk²/(2m) to O(x²)', 'linearity'],\n doesNotPreserve: [\n 'the rest-frequency phase e^{−iω₀t}',\n 'the negative-frequency branch',\n 'relativistic dispersion at x ≳ 1',\n ],\n sideConditions: ['non-relativistic modes: x = ck/ω₀ ≤ 0.1', 'the bound is a FREQUENCY error, not uniform in time'],\n bound: makeApproximation({\n K: 1,\n delta: kgNonrelativisticError(KG_NR_MAX_X),\n deltaAt: (p) => {\n const { c, k, omega0 } = p;\n if (c === undefined || k === undefined || omega0 === undefined) return Number.NaN;\n return kgNonrelativisticError((c * k) / omega0);\n },\n deltaAtBasis: 'closed-form',\n norm: 'relative error of the kinetic frequency ω − ω₀, normalized by the value of the reduced model',\n domain: 'x = ck/ω₀ ≤ 0.1',\n horizon:\n 't ≪ π/(δ ω₀ x²): the kinetic-phase drift reaches π/2; machine form t < π/(δ ω₀ x²)',\n horizonHolds: (t, p) => {\n const { c, k, omega0 } = p;\n if (c === undefined || k === undefined || omega0 === undefined) return false;\n const x = (c * k) / omega0;\n const delta = kgNonrelativisticError(x);\n if (!Number.isFinite(delta)) return false;\n if (delta === 0) return true;\n return t < Math.PI / (delta * omega0 * x * x);\n },\n parameterRange: 'x = ck/ω₀ ≤ 0.1',\n limitCharacter: 'regular',\n // A frequency error. The record says it is not uniform in time.\n uniformity: ['kinetic frequency of one mode, for x = ck/ω₀ ≤ 0.1'],\n }),\n regime: regime(\n [\n { name: 'c', dim: VELOCITY },\n { name: 'omega0', dim: FREQUENCY },\n { name: 'k', dim: WAVENUMBER },\n { name: 'hbar', dim: ACTION },\n { name: 'm', dim: MASS },\n ],\n [{ group: 'c · omega0^-1 · k', op: '<=', bound: KG_NR_MAX_X, alias: 'ck/ω₀ ≤ 0.1' }],\n ),\n counterexamples: [\n {\n description:\n 'At x = ck/ω₀ = 1 the non-relativistic kinetic frequency ω₀/2 is 20.7% above the exact ' +\n 'ω₀(√2 − 1), which is 17.2% of its own value (the normalization of delta): the limit is a ' +\n 'long-wavelength statement.',\n witness: 'WS5b',\n },\n ],\n witnesses: [\n {\n id: 'WS5',\n kind: 'numeric',\n test: TEST,\n tolerance: 'kinetic-frequency error below 1e-3 at x = 0.05; falls ≈4× per halving of x',\n },\n {\n id: 'WS5b',\n kind: 'numeric',\n test: TEST,\n tolerance: 'relative error 3 − 2√2 = 0.1716 at x = 1, normalized by the reduced value',\n },\n ],\n citations: [\n 'Greiner, Relativistic Quantum Mechanics: Wave Equations - Ch. 1, the Klein-Gordon equation and its non-relativistic limit',\n ],\n reviewStatus: 'proposed',\n formalRef: physjsFormalRef('ab-kg-schrodinger'),\n};\n\n/** Bridge: Klein–Gordon → spring, restricted to the spatially uniform mode. @internal */\nexport const BRIDGE_KG_OSCILLATOR: AtlasBridge = {\n id: 'ab-kg-oscillator',\n relation: 'restriction',\n premises: ['model-klein-gordon'],\n conclusion: 'model-spring',\n transformation: 'u(x, t) = u(t): u_tt = −ω₀² u; u ↦ x, ω₀² ↦ k/m',\n preserves: ['the k = 0 mode exactly', 'the frequency ω₀'],\n doesNotPreserve: ['every mode with k ≠ 0', 'spatial structure'],\n sideConditions: ['spatially uniform initial data', 'periodic or infinite domain (no boundary forcing)'],\n regime: regime(\n [\n { name: 'omega0', dim: FREQUENCY },\n { name: 'm', dim: MASS },\n { name: 'k', dim: SPRING_CONSTANT },\n ],\n [],\n ),\n counterexamples: [],\n witnesses: [\n {\n id: 'WS6',\n kind: 'numeric',\n test: TEST,\n tolerance: 'uniform leapfrog field within 3e-4 of cos(ω₀t) at 100 steps (ω₀ = 2, t = 3); ≈4× per halving',\n },\n ],\n citations: [\n 'Whitham, Linear and Nonlinear Waves - §11.1, dispersive waves and the Klein-Gordon equation',\n ],\n reviewStatus: 'proposed',\n formalRef: physjsFormalRef('ab-kg-oscillator'),\n};\n\n/** Bridge: stiff string → flexible string, as bending stiffness → 0. @internal */\nexport const BRIDGE_STIFF_STRING: AtlasBridge = {\n id: 'ab-stiff-string',\n relation: 'approximation',\n premises: ['model-stiff-string'],\n conclusion: 'model-string',\n transformation: 'drop EI y_xxxx: ω² = (F/μ)k² + (EI/μ)k⁴ → (F/μ)k²',\n preserves: ['the wave speed √(F/μ) for long wavelengths', 'harmonic partials to O(β)'],\n doesNotPreserve: ['inharmonicity: high partials of a stiff string are sharp', 'the fourth-order boundary conditions'],\n sideConditions: ['β = EIk²/F ≤ 0.01', 'the bound is a PHASE-VELOCITY error, not uniform in time'],\n bound: makeApproximation({\n K: 1,\n delta: stiffStringPhaseError(1, STIFF_MAX_BETA, 1),\n deltaAt: (p) =>\n stiffStringPhaseError(p['F'] ?? Number.NaN, p['EI'] ?? Number.NaN, p['k'] ?? Number.NaN),\n deltaAtBasis: 'closed-form',\n norm: 'relative phase-velocity error of a Fourier mode, normalized by the value of the reduced model',\n domain: 'β = EIk²/F ≤ 0.01',\n horizon:\n 't ≪ π/(2 c k δ): the phase drift reaches π/2; machine form t < π/(2 √(F/μ) k δ)',\n horizonHolds: (t, p) => {\n const { F, EI, k, mu } = p;\n if (F === undefined || EI === undefined || k === undefined || mu === undefined) return false;\n const delta = stiffStringPhaseError(F, EI, k);\n if (!Number.isFinite(delta)) return false;\n if (delta === 0) return true;\n return t < Math.PI / (2 * Math.sqrt(F / mu) * k * delta);\n },\n parameterRange: 'β = EIk²/F ≤ 0.01',\n limitCharacter: 'regular',\n // A phase-velocity error. The record says it is not uniform in time.\n uniformity: ['phase velocity of one Fourier mode, for β = EIk²/F ≤ 0.01'],\n }),\n regime: regime(\n [\n { name: 'F', dim: FORCE },\n { name: 'mu', dim: LINEAR_DENSITY },\n { name: 'EI', dim: FLEXURAL_RIGIDITY },\n { name: 'k', dim: WAVENUMBER },\n ],\n // The derived group is F/(EIk²) = 1/β, so β ≤ 0.01 is F/(EIk²) ≥ 100.\n [{ group: 'F · EI^-1 · k^-2', op: '>=', bound: 1 / STIFF_MAX_BETA, alias: 'β = EIk²/F ≤ 0.01' }],\n ),\n counterexamples: [\n {\n description:\n 'The partials of a stiff string are sharp: at β = 1 the phase velocity is √2 times the ' +\n 'flexible-string value, the inharmonicity piano tuners stretch octaves to accommodate.',\n witness: 'WS7b',\n },\n ],\n witnesses: [\n {\n id: 'WS7',\n kind: 'numeric',\n test: TEST,\n tolerance: 'phase velocity within 0.15 of √(F/μ) = 100 at k = 5 (EI/F = 1e-4); ≈4× per halving of k',\n },\n {\n id: 'WS7b',\n kind: 'numeric',\n test: TEST,\n tolerance: 'relative phase error √2 − 1 at β = 1',\n },\n ],\n citations: [\n 'Fletcher, J. Acoust. Soc. Am. 36 (1964) 203 - Normal vibration frequencies of a stiff piano string',\n ],\n reviewStatus: 'proposed',\n formalRef: physjsFormalRef('ab-stiff-string'),\n};\n\n/** The wave-family closure bridges. @internal */\nexport const WAVE_CLOSURE_BRIDGES: readonly AtlasBridge[] = [\n BRIDGE_KG_SCHRODINGER,\n BRIDGE_KG_OSCILLATOR,\n BRIDGE_STIFF_STRING,\n];\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"bridges.d.ts","sourceRoot":"","sources":["../../../src/atlas/waves/bridges.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAOH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAM/C,mFAAmF;AACnF,eAAO,MAAM,sBAAsB,OAAO,CAAC;AAE3C,mEAAmE;AACnE,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAE3C,iFAAiF;AACjF,eAAO,MAAM,kBAAkB,EAAE,WAwChC,CAAC;AAEF,2EAA2E;AAC3E,eAAO,MAAM,qBAAqB,EAAE,WAgCnC,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,EAAE,WAoEhC,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,wBAAwB,EAAE,WAoFtC,CAAC;AAEF,iEAAiE;AACjE,eAAO,MAAM,YAAY,EAAE,SAAS,WAAW,EAK9C,CAAC"}
1
+ {"version":3,"file":"bridges.d.ts","sourceRoot":"","sources":["../../../src/atlas/waves/bridges.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAOH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAM/C,mFAAmF;AACnF,eAAO,MAAM,sBAAsB,OAAO,CAAC;AAE3C,mEAAmE;AACnE,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAE3C,iFAAiF;AACjF,eAAO,MAAM,kBAAkB,EAAE,WAoChC,CAAC;AAEF,2EAA2E;AAC3E,eAAO,MAAM,qBAAqB,EAAE,WA2BnC,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,EAAE,WAgEhC,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,wBAAwB,EAAE,WAgFtC,CAAC;AAEF,iEAAiE;AACjE,eAAO,MAAM,YAAY,EAAE,SAAS,WAAW,EAK9C,CAAC"}
@@ -18,7 +18,7 @@
18
18
  import { FORCE, FREQUENCY, VELOCITY } from '../../dimensional/types.js';
19
19
  import { DENSITY } from '../diffusion/dimensions.js';
20
20
  import { makeApproximation } from '../oscillators/bridges-limits.js';
21
- import { deriveRegimeGroups } from '../regime.js';
21
+ import { makeRegime } from '../regime.js';
22
22
  import { physjsFormalRef } from '../physjs-ref.js';
23
23
  import { LINEAR_DENSITY, PRESSURE, WAVENUMBER, WAVES_FAMILY_NAME } from './models.js';
24
24
  import { kleinGordonPhaseError } from './numerics.js';
@@ -40,17 +40,12 @@ export const BRIDGE_STRING_WAVE = {
40
40
  'the transverse geometry: the wave equation does not know u is a displacement',
41
41
  ],
42
42
  sideConditions: ['small slopes |y_x| ≪ 1', 'uniform tension and density', 'perfectly flexible'],
43
- regime: {
44
- family: WAVES_FAMILY_NAME,
45
- inequalities: [],
46
- groupDefinitions: deriveRegimeGroups(WAVES_FAMILY_NAME, [
47
- { name: 'F', dim: FORCE },
48
- { name: 'mu', dim: LINEAR_DENSITY },
49
- { name: 'c', dim: VELOCITY },
50
- ], []),
51
- },
43
+ regime: makeRegime(WAVES_FAMILY_NAME, [
44
+ { name: 'F', dim: FORCE },
45
+ { name: 'mu', dim: LINEAR_DENSITY },
46
+ { name: 'c', dim: VELOCITY },
47
+ ], [], []),
52
48
  counterexamples: [],
53
- evidence: new Set(['proposed', 'numerically-supported']),
54
49
  witnesses: [
55
50
  {
56
51
  id: 'WS1',
@@ -76,13 +71,8 @@ export const BRIDGE_WAVE_DALEMBERT = {
76
71
  'boundary conditions: on a bounded domain f and g are fixed only up to reflections',
77
72
  ],
78
73
  sideConditions: ['infinite line, or boundaries handled by the method of images', 'u ∈ C²'],
79
- regime: {
80
- family: WAVES_FAMILY_NAME,
81
- inequalities: [],
82
- groupDefinitions: deriveRegimeGroups(WAVES_FAMILY_NAME, [{ name: 'c', dim: VELOCITY }], []),
83
- },
74
+ regime: makeRegime(WAVES_FAMILY_NAME, [{ name: 'c', dim: VELOCITY }], [], []),
84
75
  counterexamples: [],
85
- evidence: new Set(['proposed', 'numerically-supported']),
86
76
  witnesses: [
87
77
  {
88
78
  id: 'WS2',
@@ -122,23 +112,19 @@ export const BRIDGE_SOUND_SPEED = {
122
112
  'adiabatic compression (no heat exchange within a wavelength)',
123
113
  'fluid at rest, no ambient flow',
124
114
  ],
125
- regime: {
126
- family: WAVES_FAMILY_NAME,
127
- inequalities: [
128
- {
129
- group: 'p0 · p1^-1',
130
- op: '>=',
131
- bound: 1 / SOUND_MAX_PERTURBATION,
132
- alias: '|p′| ≪ p₀ (machine form p₀/p₁ ≥ 100)',
133
- },
134
- ],
135
- groupDefinitions: deriveRegimeGroups(WAVES_FAMILY_NAME, [
136
- { name: 'rho0', dim: DENSITY },
137
- { name: 'p0', dim: PRESSURE },
138
- { name: 'p1', dim: PRESSURE },
139
- { name: 'c', dim: VELOCITY },
140
- ], ['gamma']),
141
- },
115
+ regime: makeRegime(WAVES_FAMILY_NAME, [
116
+ { name: 'rho0', dim: DENSITY },
117
+ { name: 'p0', dim: PRESSURE },
118
+ { name: 'p1', dim: PRESSURE },
119
+ { name: 'c', dim: VELOCITY },
120
+ ], ['gamma'], [
121
+ {
122
+ group: 'p0 · p1^-1',
123
+ op: '>=',
124
+ bound: 1 / SOUND_MAX_PERTURBATION,
125
+ alias: '|p′| ≪ p₀ (machine form p₀/p₁ ≥ 100)',
126
+ },
127
+ ]),
142
128
  counterexamples: [
143
129
  {
144
130
  description: 'The adiabatic premise is necessary. Closing the same Euler pair ISOTHERMALLY (Newton) ' +
@@ -147,7 +133,6 @@ export const BRIDGE_SOUND_SPEED = {
147
133
  witness: 'WS3b',
148
134
  },
149
135
  ],
150
- evidence: new Set(['proposed', 'numerically-supported']),
151
136
  witnesses: [
152
137
  {
153
138
  id: 'WS3',
@@ -215,22 +200,18 @@ export const BRIDGE_KLEIN_GORDON_WAVE = {
215
200
  // A phase-velocity error. The record says it is not uniform in time.
216
201
  uniformity: ['phase velocity of one Fourier mode, for ω₀/(ck) ≤ 0.1'],
217
202
  }),
218
- regime: {
219
- family: WAVES_FAMILY_NAME,
220
- inequalities: [
221
- {
222
- group: 'c · omega0^-1 · k',
223
- op: '>=',
224
- bound: 1 / KG_MAX_DISPERSION_RATIO,
225
- alias: 'ω₀/(c k) ≤ 0.1',
226
- },
227
- ],
228
- groupDefinitions: deriveRegimeGroups(WAVES_FAMILY_NAME, [
229
- { name: 'c', dim: VELOCITY },
230
- { name: 'omega0', dim: FREQUENCY },
231
- { name: 'k', dim: WAVENUMBER },
232
- ], []),
233
- },
203
+ regime: makeRegime(WAVES_FAMILY_NAME, [
204
+ { name: 'c', dim: VELOCITY },
205
+ { name: 'omega0', dim: FREQUENCY },
206
+ { name: 'k', dim: WAVENUMBER },
207
+ ], [], [
208
+ {
209
+ group: 'c · omega0^-1 · k',
210
+ op: '>=',
211
+ bound: 1 / KG_MAX_DISPERSION_RATIO,
212
+ alias: 'ω₀/(c k) ≤ 0.1',
213
+ },
214
+ ]),
234
215
  counterexamples: [
235
216
  {
236
217
  description: 'At ω₀/(c k) = 1 the phase velocity is √2 c: a 41% error. The dispersion-free limit is a ' +
@@ -238,7 +219,6 @@ export const BRIDGE_KLEIN_GORDON_WAVE = {
238
219
  witness: 'WS4b',
239
220
  },
240
221
  ],
241
- evidence: new Set(['proposed', 'numerically-supported']),
242
222
  witnesses: [
243
223
  {
244
224
  id: 'WS4',
@@ -1 +1 @@
1
- {"version":3,"file":"bridges.js","sourceRoot":"","sources":["../../../src/atlas/waves/bridges.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bridges.js","sourceRoot":"","sources":["../../../src/atlas/waves/bridges.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Atlas Phase 4, S4.5 — the four bridges of the wave family.\n *\n * Design note: `docs/planning/Atlas-Phase-4-Design.md` §4.\n *\n * | Bridge | Relation | Premises | Witnesses |\n * |---|---|---|---|\n * | string → 1-D wave | `restriction` | 1 | WS1 (convergence) |\n * | 1-D wave → d'Alembert | `derivation` | 1 | WS2 (convergence) |\n * | Euler + adiabatic EOS → sound | `derivation` | **2 (hyperedge)** | WS3 (convergence), WS3b (Newton) |\n * | Klein–Gordon → 1-D wave | `approximation` | 1 | WS4 (convergence), WS4b (long waves) |\n *\n * The chain → wave coarse-graining the plan also lists already exists in the\n * oscillator family (`ab-chain-wave`) and is not duplicated.\n *\n * @module atlas/waves/bridges\n */\n\nimport { FORCE, FREQUENCY, VELOCITY } from '../../dimensional/types.js';\nimport { DENSITY } from '../diffusion/dimensions.js';\nimport { makeApproximation } from '../oscillators/bridges-limits.js';\nimport { makeRegime } from '../regime.js';\nimport { physjsFormalRef } from '../physjs-ref.js';\nimport type { AtlasBridge } from '../types.js';\nimport { LINEAR_DENSITY, PRESSURE, WAVENUMBER, WAVES_FAMILY_NAME } from './models.js';\nimport { kleinGordonPhaseError } from './numerics.js';\n\nconst TEST = 'tests/atlas/waves.test.ts';\n\n/** The perturbation ceiling of the sound derivation: `p₁/p₀ ≤ 1/100`. @internal */\nexport const SOUND_MAX_PERTURBATION = 0.01;\n\n/** The dispersion-free domain edge: `ω₀/(c k) ≤ 0.1`. @internal */\nexport const KG_MAX_DISPERSION_RATIO = 0.1;\n\n/** Bridge: string → 1-D wave equation, a restriction with c² = F/μ. @internal */\nexport const BRIDGE_STRING_WAVE: AtlasBridge = {\n id: 'ab-string-wave',\n relation: 'restriction',\n premises: ['model-string'],\n conclusion: 'model-wave-1d',\n transformation: 'y ↦ u, with c² = F/μ',\n preserves: ['the solution operator for small slopes', 'normal-mode frequencies nπc/ℓ'],\n doesNotPreserve: [\n 'the separate values of F and μ — only F/μ survives',\n 'the transverse geometry: the wave equation does not know u is a displacement',\n ],\n sideConditions: ['small slopes |y_x| ≪ 1', 'uniform tension and density', 'perfectly flexible'],\n regime: makeRegime(\n WAVES_FAMILY_NAME,\n [\n { name: 'F', dim: FORCE },\n { name: 'mu', dim: LINEAR_DENSITY },\n { name: 'c', dim: VELOCITY },\n ],\n [],\n [],\n ),\n counterexamples: [],\n witnesses: [\n {\n id: 'WS1',\n kind: 'numeric',\n test: TEST,\n tolerance:\n 'leapfrog string solution at the midpoint within 2e-4 of sin(πx)cos(πct), c = √(F/μ), at 80 cells',\n },\n ],\n citations: [\n 'Morse & Ingard, Theoretical Acoustics - the flexible string and its wave equation with c² = T/ρ',\n ],\n reviewStatus: 'proposed',\n};\n\n/** Bridge: 1-D wave equation → d'Alembert's general solution. @internal */\nexport const BRIDGE_WAVE_DALEMBERT: AtlasBridge = {\n id: 'ab-wave-dalembert',\n relation: 'derivation',\n premises: ['model-wave-1d'],\n conclusion: 'model-dalembert',\n transformation: 'characteristics ξ = x − ct, η = x + ct turn u_tt = c²u_xx into u_ξη = 0',\n preserves: ['every C² solution on the whole line', 'the speed c'],\n doesNotPreserve: [\n 'boundary conditions: on a bounded domain f and g are fixed only up to reflections',\n ],\n sideConditions: ['infinite line, or boundaries handled by the method of images', 'u ∈ C²'],\n regime: makeRegime(WAVES_FAMILY_NAME, [{ name: 'c', dim: VELOCITY }], [], []),\n counterexamples: [],\n witnesses: [\n {\n id: 'WS2',\n kind: 'numeric',\n test: TEST,\n tolerance: 'finite-difference residual |u_tt − c²u_xx| below 2e-3 at h = 0.0125',\n },\n ],\n citations: [\n \"d'Alembert, Recherches sur la courbe que forme une corde tendue mise en vibration (1747)\",\n 'Strauss, Partial Differential Equations: An Introduction - §2.1, the wave equation on the line',\n ],\n reviewStatus: 'proposed',\n formalRef: physjsFormalRef('ab-wave-dalembert'),\n};\n\n/**\n * Bridge: linearized Euler + adiabatic EOS → the acoustic wave equation.\n *\n * A HYPEREDGE: neither premise alone yields sound. The Euler pair has no\n * closure from ρ′ to p′, and the equation of state has no dynamics.\n *\n * @internal\n */\nexport const BRIDGE_SOUND_SPEED: AtlasBridge = {\n id: 'ab-sound-speed',\n relation: 'derivation',\n premises: ['model-euler-linear', 'model-adiabatic-eos'],\n conclusion: 'model-sound',\n transformation:\n 'close the Euler pair with p′ = (dp/dρ)|ρ₀ ρ′ = (γp₀/ρ₀) ρ′, then eliminate v: p′_tt = (γp₀/ρ₀) p′_xx',\n preserves: ['linearity', 'the sound speed c_s² = γp₀/ρ₀'],\n doesNotPreserve: [\n 'nonlinear steepening and shocks at finite amplitude',\n 'viscous and thermal attenuation',\n ],\n sideConditions: [\n 'small perturbations: |p′| ≪ p₀',\n 'adiabatic compression (no heat exchange within a wavelength)',\n 'fluid at rest, no ambient flow',\n ],\n regime: makeRegime(\n WAVES_FAMILY_NAME,\n [\n { name: 'rho0', dim: DENSITY },\n { name: 'p0', dim: PRESSURE },\n { name: 'p1', dim: PRESSURE },\n { name: 'c', dim: VELOCITY },\n ],\n ['gamma'],\n [\n {\n group: 'p0 · p1^-1',\n op: '>=',\n bound: 1 / SOUND_MAX_PERTURBATION,\n alias: '|p′| ≪ p₀ (machine form p₀/p₁ ≥ 100)',\n },\n ],\n ),\n counterexamples: [\n {\n description:\n 'The adiabatic premise is necessary. Closing the same Euler pair ISOTHERMALLY (Newton) ' +\n 'gives √(p₀/ρ₀) = 290.1 m/s for air at 20 °C, 15% below the measured ≈343 m/s; the ' +\n 'adiabatic closure gives 343.2 m/s.',\n witness: 'WS3b',\n },\n ],\n witnesses: [\n {\n id: 'WS3',\n kind: 'numeric',\n test: TEST,\n tolerance:\n 'staggered Euler + adiabatic-closure solution within 2e-4 of the sound model’s sin(2πx)cos(2πc_s t) at 128 cells',\n },\n {\n id: 'WS3b',\n kind: 'numeric',\n test: TEST,\n tolerance: 'air, 101325 Pa, 1.204 kg/m³, γ = 1.4: adiabatic 343.25 m/s, isothermal 290.10 m/s',\n },\n ],\n citations: [\n 'Laplace, Ann. Chim. Phys. 3 (1816) 238 - the adiabatic correction to Newton’s speed of sound',\n 'Landau & Lifshitz, Fluid Mechanics §64 - sound waves from the linearized equations of motion',\n ],\n reviewStatus: 'proposed',\n};\n\n/**\n * Bridge: Klein–Gordon → 1-D wave, the dispersion-free limit ω₀/(ck) → 0.\n *\n * `delta` is the EXACT relative phase-velocity error at the domain edge, not a\n * series term: {@link kleinGordonPhaseError} is increasing in ω₀/(ck), so its\n * edge value is the supremum. The pendulum record learned the hard way that a\n * truncated series can sit BELOW the error it claims to bound.\n *\n * @internal\n */\nexport const BRIDGE_KLEIN_GORDON_WAVE: AtlasBridge = {\n id: 'ab-klein-gordon-wave',\n relation: 'approximation',\n premises: ['model-klein-gordon'],\n conclusion: 'model-wave-1d',\n transformation: 'drop the mass term ω₀²u; ω(k) = √(c²k² + ω₀²) → ck',\n preserves: ['the wave speed c for short wavelengths', 'linearity'],\n doesNotPreserve: [\n 'dispersion: wave packets spread under Klein–Gordon and not under the wave equation',\n 'the gap: Klein–Gordon has no mode below ω₀',\n ],\n sideConditions: ['short wavelengths: ω₀/(ck) ≤ 0.1', 'the bound is a PHASE-VELOCITY error, not uniform in time'],\n bound: makeApproximation({\n K: 1,\n delta: kleinGordonPhaseError(KG_MAX_DISPERSION_RATIO, 1, 1),\n deltaAt: (params) => {\n const { omega0, c, k } = params;\n return kleinGordonPhaseError(omega0 ?? Number.NaN, c ?? Number.NaN, k ?? Number.NaN);\n },\n deltaAtBasis: 'closed-form',\n norm: 'relative phase-velocity error of a Fourier mode, normalized by the value of the reduced model',\n domain: 'ω₀/(c k) ≤ 0.1',\n horizon:\n 't ≪ π/(2 c k δ): the phase drift reaches π/2; machine form t < π/(2 c k δ(ω₀, c, k))',\n horizonHolds: (t, params) => {\n const { omega0, c, k } = params;\n if (omega0 === undefined || c === undefined || k === undefined) return false;\n const delta = kleinGordonPhaseError(omega0, c, k);\n if (!Number.isFinite(delta) || delta <= 0) return delta === 0;\n return t < Math.PI / (2 * c * k * delta);\n },\n parameterRange: 'ω₀/(c k) ≤ 0.1',\n limitCharacter: 'regular',\n // A phase-velocity error. The record says it is not uniform in time.\n uniformity: ['phase velocity of one Fourier mode, for ω₀/(ck) ≤ 0.1'],\n }),\n regime: makeRegime(\n WAVES_FAMILY_NAME,\n [\n { name: 'c', dim: VELOCITY },\n { name: 'omega0', dim: FREQUENCY },\n { name: 'k', dim: WAVENUMBER },\n ],\n [],\n [\n {\n group: 'c · omega0^-1 · k',\n op: '>=',\n bound: 1 / KG_MAX_DISPERSION_RATIO,\n alias: 'ω₀/(c k) ≤ 0.1',\n },\n ],\n ),\n counterexamples: [\n {\n description:\n 'At ω₀/(c k) = 1 the phase velocity is √2 c: a 41% error. The dispersion-free limit is a ' +\n 'short-wavelength statement and fails for the long waves the domain excludes.',\n witness: 'WS4b',\n },\n ],\n witnesses: [\n {\n id: 'WS4',\n kind: 'numeric',\n test: TEST,\n tolerance: 'phase velocity within 2e-3 of c at k = 20 (ω₀ = c = 1); error falls ≈4× per doubling of k',\n },\n {\n id: 'WS4b',\n kind: 'numeric',\n test: TEST,\n tolerance: 'relative phase error √2 − 1 at ω₀/(ck) = 1',\n },\n ],\n citations: [\n 'Whitham, Linear and Nonlinear Waves - §11.1, dispersive waves and the Klein-Gordon equation',\n ],\n reviewStatus: 'proposed',\n formalRef: physjsFormalRef('ab-klein-gordon-wave'),\n};\n\n/** The wave family's bridges, in design-note order. @internal */\nexport const WAVE_BRIDGES: readonly AtlasBridge[] = [\n BRIDGE_STRING_WAVE,\n BRIDGE_WAVE_DALEMBERT,\n BRIDGE_SOUND_SPEED,\n BRIDGE_KLEIN_GORDON_WAVE,\n];\n"]}
@@ -5,7 +5,7 @@
5
5
  *
6
6
  * @module atlas/waves
7
7
  */
8
- import type { AtlasFamily } from '../oscillators/index.js';
8
+ import type { AtlasFamily } from '../family.js';
9
9
  /**
10
10
  * The wave family: seven models and seven bridges (four from S4.5, three from
11
11
  * the Sprint 4 closure), no rejections. Several bridges end in other families.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atlas/waves/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAK3D;;;;;GAKG;AACH,eAAO,MAAM,YAAY,EAAE,WAK1B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atlas/waves/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAKhD;;;;;GAKG;AACH,eAAO,MAAM,YAAY,EAAE,WAK1B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/atlas/waves/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAE7D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAgB;IACvC,MAAM,EAAE,iBAAiB;IACzB,MAAM,EAAE,WAAW;IACnB,OAAO,EAAE,CAAC,GAAG,YAAY,EAAE,GAAG,oBAAoB,CAAC;IACnD,UAAU,EAAE,EAAE;CACf,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/atlas/waves/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAE7D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAgB;IACvC,MAAM,EAAE,iBAAiB;IACzB,MAAM,EAAE,WAAW;IACnB,OAAO,EAAE,CAAC,GAAG,YAAY,EAAE,GAAG,oBAAoB,CAAC;IACnD,UAAU,EAAE,EAAE;CACf,CAAC","sourcesContent":["/**\n * Wave-family assembly (Atlas Phase 4, S4.5).\n *\n * Assembly only: this module defines no physics and no numbers of its own.\n *\n * @module atlas/waves\n */\n\nimport type { AtlasFamily } from '../family.js';\nimport { WAVE_BRIDGES } from './bridges.js';\nimport { WAVE_CLOSURE_BRIDGES } from './bridges-closure.js';\nimport { WAVE_MODELS, WAVES_FAMILY_NAME } from './models.js';\n\n/**\n * The wave family: seven models and seven bridges (four from S4.5, three from\n * the Sprint 4 closure), no rejections. Several bridges end in other families.\n *\n * @internal\n */\nexport const WAVES_FAMILY: AtlasFamily = {\n family: WAVES_FAMILY_NAME,\n models: WAVE_MODELS,\n bridges: [...WAVE_BRIDGES, ...WAVE_CLOSURE_BRIDGES],\n rejections: [],\n};\n"]}
@@ -13,17 +13,16 @@
13
13
  * @module atlas/waves/models
14
14
  */
15
15
  import type { Dimension } from '../../dimensional/types.js';
16
+ import { LINEAR_DENSITY, PRESSURE } from '../../dimensional/types.js';
16
17
  import type { AtlasModel } from '../model.js';
17
18
  /** The family name every wave record carries. @internal */
18
19
  export declare const WAVES_FAMILY_NAME = "waves";
19
- /** kg/m, `L^-1 M` — `src/canonical/entries/dimensional-classics.ts` (`LIN_DENSITY`). @internal */
20
- export declare const LINEAR_DENSITY: Dimension;
21
- /** Pa, `L^-1 M T^-2` — `src/canonical/entries/fluids-waves.ts` (`PRESSURE`). @internal */
22
- export declare const PRESSURE: Dimension;
20
+ /** kg/m (`L^-1 M`) and Pa (`L^-1 M T^-2`): the named shapes of `dimensional/types.ts`. @internal */
21
+ export { LINEAR_DENSITY, PRESSURE };
22
+ /** rad/m, `L^-1`: the named shape of `dimensional/types.ts`. @internal */
23
+ export { WAVENUMBER } from '../../dimensional/types.js';
23
24
  /** Flexural rigidity E·I, N·m², `L^3 M T^-2`. @internal */
24
25
  export declare const FLEXURAL_RIGIDITY: Dimension;
25
- /** rad/m, `L^-1`. @internal */
26
- export declare const WAVENUMBER: Dimension;
27
26
  /** The wave-family models, in design-note order. @internal */
28
27
  export declare const WAVE_MODELS: readonly AtlasModel[];
29
28
  //# sourceMappingURL=models.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../src/atlas/waves/models.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAG5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG9C,2DAA2D;AAC3D,eAAO,MAAM,iBAAiB,UAAU,CAAC;AAEzC,kGAAkG;AAClG,eAAO,MAAM,cAAc,EAAE,SAAsB,CAAC;AAEpD,0FAA0F;AAC1F,eAAO,MAAM,QAAQ,EAAE,SAA0B,CAAC;AAElD,2DAA2D;AAC3D,eAAO,MAAM,iBAAiB,EAAE,SAAyB,CAAC;AAE1D,+BAA+B;AAC/B,eAAO,MAAM,UAAU,EAAE,SAAmB,CAAC;AA+B7C,8DAA8D;AAC9D,eAAO,MAAM,WAAW,EAAE,SAAS,UAAU,EA8E5C,CAAC"}
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../src/atlas/waves/models.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAoB,cAAc,EAAE,QAAQ,EAAY,MAAM,4BAA4B,CAAC;AAElG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG9C,2DAA2D;AAC3D,eAAO,MAAM,iBAAiB,UAAU,CAAC;AAEzC,oGAAoG;AACpG,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC;AAEpC,0EAA0E;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAExD,2DAA2D;AAC3D,eAAO,MAAM,iBAAiB,EAAE,SAAyB,CAAC;AA2B1D,8DAA8D;AAC9D,eAAO,MAAM,WAAW,EAAE,SAAS,UAAU,EA8E5C,CAAC"}
@@ -13,19 +13,17 @@
13
13
  * @module atlas/waves/models
14
14
  */
15
15
  import { dim } from '../../dimensional/ast-builders.js';
16
- import { FORCE, FREQUENCY, VELOCITY } from '../../dimensional/types.js';
16
+ import { FORCE, FREQUENCY, LINEAR_DENSITY, PRESSURE, VELOCITY } from '../../dimensional/types.js';
17
17
  import { DENSITY } from '../diffusion/dimensions.js';
18
- import { deriveRegimeGroups } from '../regime.js';
18
+ import { makeRegime } from '../regime.js';
19
19
  /** The family name every wave record carries. @internal */
20
20
  export const WAVES_FAMILY_NAME = 'waves';
21
- /** kg/m, `L^-1 M` — `src/canonical/entries/dimensional-classics.ts` (`LIN_DENSITY`). @internal */
22
- export const LINEAR_DENSITY = dim(-1, 1);
23
- /** Pa, `L^-1 M T^-2` — `src/canonical/entries/fluids-waves.ts` (`PRESSURE`). @internal */
24
- export const PRESSURE = dim(-1, 1, -2);
21
+ /** kg/m (`L^-1 M`) and Pa (`L^-1 M T^-2`): the named shapes of `dimensional/types.ts`. @internal */
22
+ export { LINEAR_DENSITY, PRESSURE };
23
+ /** rad/m, `L^-1`: the named shape of `dimensional/types.ts`. @internal */
24
+ export { WAVENUMBER } from '../../dimensional/types.js';
25
25
  /** Flexural rigidity E·I, N·m², `L^3 M T^-2`. @internal */
26
26
  export const FLEXURAL_RIGIDITY = dim(3, 1, -2);
27
- /** rad/m, `L^-1`. @internal */
28
- export const WAVENUMBER = dim(-1);
29
27
  function model(spec) {
30
28
  const dimensionless = spec.dimensionlessInputs ?? [];
31
29
  return {
@@ -37,11 +35,7 @@ function model(spec) {
37
35
  parameters: spec.parameters,
38
36
  dimensionlessInputs: dimensionless,
39
37
  canonicalRefs: spec.canonicalRefs,
40
- regime: {
41
- family: WAVES_FAMILY_NAME,
42
- inequalities: [],
43
- groupDefinitions: deriveRegimeGroups(WAVES_FAMILY_NAME, spec.parameters, dimensionless),
44
- },
38
+ regime: makeRegime(WAVES_FAMILY_NAME, spec.parameters, dimensionless, []),
45
39
  };
46
40
  }
47
41
  /** The wave-family models, in design-note order. @internal */
@@ -1 +1 @@
1
- {"version":3,"file":"models.js","sourceRoot":"","sources":["../../../src/atlas/waves/models.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../../../src/atlas/waves/models.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Atlas Phase 4, S4.5 — the models of the wave family.\n *\n * Design note: `docs/planning/Atlas-Phase-4-Design.md` §4.\n *\n * The 1-D wave equation itself is NOT redefined here. It is `model-wave-1d` in\n * the oscillator family, where Phase 0 put it as the conclusion of the chain →\n * wave coarse-graining. The wave family's bridges point at that same record,\n * because a second definition of one model would be a second source of truth.\n * `tests/atlas/families.test.ts` pins that model ids are unique across the\n * whole atlas and that every bridge endpoint resolves in SOME registered family.\n *\n * @module atlas/waves/models\n */\n\nimport { dim } from '../../dimensional/ast-builders.js';\nimport type { DimensionalVariable } from '../../dimensional/buckingham.js';\nimport type { Dimension } from '../../dimensional/types.js';\nimport { FORCE, FREQUENCY, LINEAR_DENSITY, PRESSURE, VELOCITY } from '../../dimensional/types.js';\nimport { DENSITY } from '../diffusion/dimensions.js';\nimport type { AtlasModel } from '../model.js';\nimport { makeRegime } from '../regime.js';\n\n/** The family name every wave record carries. @internal */\nexport const WAVES_FAMILY_NAME = 'waves';\n\n/** kg/m (`L^-1 M`) and Pa (`L^-1 M T^-2`): the named shapes of `dimensional/types.ts`. @internal */\nexport { LINEAR_DENSITY, PRESSURE };\n\n/** rad/m, `L^-1`: the named shape of `dimensional/types.ts`. @internal */\nexport { WAVENUMBER } from '../../dimensional/types.js';\n\n/** Flexural rigidity E·I, N·m², `L^3 M T^-2`. @internal */\nexport const FLEXURAL_RIGIDITY: Dimension = dim(3, 1, -2);\n\ninterface ModelSpec {\n readonly id: string;\n readonly stateSpace: string;\n readonly dynamics: string;\n readonly observables: readonly string[];\n readonly parameters: readonly DimensionalVariable[];\n readonly dimensionlessInputs?: readonly string[];\n readonly canonicalRefs: readonly string[];\n}\n\nfunction model(spec: ModelSpec): AtlasModel {\n const dimensionless = spec.dimensionlessInputs ?? [];\n return {\n id: spec.id,\n family: WAVES_FAMILY_NAME,\n stateSpace: spec.stateSpace,\n dynamics: spec.dynamics,\n observables: spec.observables,\n parameters: spec.parameters,\n dimensionlessInputs: dimensionless,\n canonicalRefs: spec.canonicalRefs,\n regime: makeRegime(WAVES_FAMILY_NAME, spec.parameters, dimensionless, []),\n };\n}\n\n/** The wave-family models, in design-note order. @internal */\nexport const WAVE_MODELS: readonly AtlasModel[] = [\n model({\n id: 'model-string',\n stateSpace: 'y(x, t), transverse displacement of a string on [0, ℓ]',\n dynamics: 'μ y_tt = F y_xx (small slopes, |y_x| ≪ 1)',\n observables: ['y', 'y_t', 'normal-mode frequencies'],\n parameters: [\n { name: 'F', dim: FORCE },\n { name: 'mu', dim: LINEAR_DENSITY },\n ],\n canonicalRefs: ['CE-string-wave-speed'],\n }),\n model({\n id: 'model-dalembert',\n stateSpace: 'u(x, t) = f(x − ct) + g(x + ct), f and g twice differentiable',\n dynamics: 'two profiles translating rigidly at ±c',\n observables: ['u', 'the two travelling profiles'],\n parameters: [{ name: 'c', dim: VELOCITY }],\n canonicalRefs: ['CE-wave-speed'],\n }),\n model({\n id: 'model-euler-linear',\n stateSpace: '(ρ′, v)(x, t), small perturbations of a fluid at rest',\n dynamics: '∂ρ′/∂t = −ρ₀ ∂v/∂x, ρ₀ ∂v/∂t = −∂p′/∂x',\n observables: ['ρ′', 'v', 'p′'],\n parameters: [\n { name: 'rho0', dim: DENSITY },\n { name: 'p0', dim: PRESSURE },\n ],\n canonicalRefs: [],\n }),\n model({\n id: 'model-adiabatic-eos',\n stateSpace: 'p(ρ), a barotropic closure',\n dynamics: 'p = p₀ (ρ/ρ₀)^γ',\n observables: ['p', 'dp/dρ'],\n parameters: [\n { name: 'rho0', dim: DENSITY },\n { name: 'p0', dim: PRESSURE },\n ],\n dimensionlessInputs: ['gamma'],\n canonicalRefs: [],\n }),\n model({\n id: 'model-sound',\n stateSpace: 'p′(x, t), the acoustic pressure',\n dynamics: 'p′_tt = c_s² p′_xx with c_s² = γ p₀/ρ₀',\n observables: ['p′', 'sound speed c_s'],\n parameters: [\n { name: 'rho0', dim: DENSITY },\n { name: 'p0', dim: PRESSURE },\n ],\n dimensionlessInputs: ['gamma'],\n canonicalRefs: ['CE-sound-speed'],\n }),\n model({\n id: 'model-klein-gordon',\n stateSpace: 'u(x, t), a field on ℝ × ℝ',\n dynamics: 'u_tt = c² u_xx − ω₀² u (dispersive: ω² = c²k² + ω₀²)',\n observables: ['u', 'dispersion ω(k)', 'phase velocity'],\n parameters: [\n { name: 'c', dim: VELOCITY },\n { name: 'omega0', dim: FREQUENCY },\n ],\n canonicalRefs: [],\n }),\n model({\n id: 'model-stiff-string',\n stateSpace: 'y(x, t), transverse displacement of a string with bending stiffness',\n dynamics: 'μ y_tt = F y_xx − EI y_xxxx (dispersive: ω² = (F/μ)k² + (EI/μ)k⁴)',\n observables: ['y', 'partial frequencies (inharmonicity)'],\n parameters: [\n { name: 'F', dim: FORCE },\n { name: 'mu', dim: LINEAR_DENSITY },\n { name: 'EI', dim: FLEXURAL_RIGIDITY },\n ],\n canonicalRefs: [],\n }),\n];\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"numerics.d.ts","sourceRoot":"","sources":["../../../src/atlas/waves/numerics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"numerics.d.ts","sourceRoot":"","sources":["../../../src/atlas/waves/numerics.ts"],"names":[],"mappings":"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"}
@@ -141,7 +141,9 @@ export function soundSpeeds(p0, rho0, gamma) {
141
141
  */
142
142
  export function kleinGordonPhaseError(omega0, c, k) {
143
143
  const ratio = omega0 / (c * k);
144
- return Math.sqrt(1 + ratio * ratio) - 1;
144
+ // `√(1 + r²) − 1` as `expm1(½ log1p(r²))`: the naive difference cancels to 0 below
145
+ // r ≈ 1e-8 and falls below the true error (not a bound) around r ≈ 1e-7.
146
+ return Math.expm1(0.5 * Math.log1p(ratio * ratio));
145
147
  }
146
148
  /**
147
149
  * WS4 — the Klein–Gordon phase velocity `√(c² + ω₀²/k²)` at wavenumber
@@ -166,7 +168,11 @@ export function kleinGordonPhaseVelocity(resolution, omega0, c, k0) {
166
168
  export function kgNonrelativisticError(x) {
167
169
  if (x === 0)
168
170
  return 0;
169
- return Math.abs((Math.sqrt(1 + x * x) - 1) / ((x * x) / 2) - 1);
171
+ // Algebraically `x² / (1 + √(1 + x²))²`: with `s = 1 + √(1 + x²)`, `√(1 + x²) − 1 = x²/s`,
172
+ // so the quantity is `|(2/s) − 1| = (s − 2)/s = x²/s²`. The naive difference of the two
173
+ // ratios returned 8.9e-5 at x = 1e-6, where the error is 2.5e-13.
174
+ const s = 1 + Math.sqrt(1 + x * x);
175
+ return (x * x) / (s * s);
170
176
  }
171
177
  /**
172
178
  * WS6 — `u(tEnd)` of the SPATIALLY UNIFORM Klein–Gordon field on a periodic
@@ -202,7 +208,8 @@ export function kgUniformModeValue(steps, c, omega0, tEnd, cells = 16) {
202
208
  * @internal
203
209
  */
204
210
  export function stiffStringPhaseError(F, EI, k) {
205
- return Math.sqrt(1 + (EI * k * k) / F) - 1;
211
+ // `√(1 + β) − 1` as `expm1(½ log1p(β))`, which keeps its precision as β → 0.
212
+ return Math.expm1(0.5 * Math.log1p((EI * k * k) / F));
206
213
  }
207
214
  /**
208
215
  * WS7 — the stiff string's phase velocity `√(F/μ + (EI/μ)k²)` at wavenumber
@@ -1 +1 @@
1
- {"version":3,"file":"numerics.js","sourceRoot":"","sources":["../../../src/atlas/waves/numerics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"numerics.js","sourceRoot":"","sources":["../../../src/atlas/waves/numerics.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAYH;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAa,EAAE,CAAgB;IACpE,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IACpC,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;IAClB,oEAAoE;IACpE,MAAM,KAAK,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;IACxC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC;IAC1B,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IAEpD,IAAI,IAAI,GAAG,IAAI,YAAY,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IACpC,IAAI,GAAG,GAAG,IAAI,YAAY,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IACnC,IAAI,IAAI,GAAG,IAAI,YAAY,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE;QAAE,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;IACnE,kEAAkE;IAClE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAE,GAAG,GAAG,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAE,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC;IAC9E,CAAC;IACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC,CAAC,CAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAE,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAE,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,CAAC;QACpF,CAAC;QACD,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,GAAG,CAAC,EAAE,GAAG,CAAC,CAAE,CAAC;AACtB,CAAC;AAYD,wFAAwF;AACxF,MAAM,YAAY,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7D,MAAM,WAAW,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;AAEtF;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;IACvD,OAAO,YAAY,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,UAAkB,EAAE,CAAmB;IACvE,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,UAAU,CAAC;IAC5B,MAAM,CAAC,GAAG,CAAC,CAAS,EAAE,CAAS,EAAU,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACjE,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5E,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5E,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;AACzC,CAAC;AAaD;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,GAAW,EAAE,CAAkB;IAC5D,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;AACzE,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAAa,EAAE,CAAkB;IACvE,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IACpC,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;IAClB,MAAM,KAAK,GAAG,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACxC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9B,MAAM,KAAK,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC;IAChC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;IACxC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC;IAE1B,yDAAyD;IACzD,MAAM,GAAG,GAAG,IAAI,YAAY,CAAC,EAAE,CAAC,CAAC;IACjC,MAAM,CAAC,GAAG,IAAI,YAAY,CAAC,EAAE,CAAC,CAAC;IAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;QAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC;IAC7E,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAE,CAAC;IACpE,mDAAmD;IACnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;QAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IACpG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAE,CAAC,GAAG,EAAE,CAAC;YAChD,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAE,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC;QACtC,CAAC;QACD,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC;YAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;gBAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QACrG,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AAC1B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,EAAU,EAAE,IAAY,EAAE,KAAa;IAIjE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;AACzF,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAc,EAAE,CAAS,EAAE,CAAS;IACxE,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/B,mFAAmF;IACnF,yEAAyE;IACzE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC;AACrD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CACtC,UAAkB,EAClB,MAAc,EACd,CAAS,EACT,EAAU;IAEV,MAAM,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC;IAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,8EAA8E;AAE9E;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB,CAAC,CAAS;IAC9C,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IACtB,2FAA2F;IAC3F,wFAAwF;IACxF,kEAAkE;IAClE,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACnC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAChC,KAAa,EACb,CAAS,EACT,MAAc,EACd,IAAY,EACZ,KAAK,GAAG,EAAE;IAEV,MAAM,EAAE,GAAG,IAAI,GAAG,KAAK,CAAC;IACxB,MAAM,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;IACrB,IAAI,IAAI,GAAG,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3C,IAAI,GAAG,GAAG,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,IAAI,GAAG,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;IACnC,MAAM,GAAG,GAAG,CAAC,CAAe,EAAE,CAAS,EAAU,EAAE,CACjD,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAC9E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC,CAAC;IAC1F,CAAC;IACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/B,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC,CAAC,CAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC,CAAC,CAAE,CAAC,CAAC;QACjG,CAAC;QACD,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,GAAG,CAAC,CAAC,CAAE,CAAC;AACjB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,CAAS,EAAE,EAAU,EAAE,CAAS;IACpE,6EAA6E;IAC7E,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACxD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CACtC,UAAkB,EAClB,CAAS,EACT,EAAU,EACV,EAAU,EACV,EAAU;IAEV,MAAM,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC;IAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/C,CAAC","sourcesContent":["/**\n * Atlas Phase 4, S4.5 — the numerics behind the wave family's witnesses.\n *\n * Each function evaluates one claim at a RESOLUTION, so the numeric witness\n * runner can record how the error shrinks under refinement. No function\n * asserts an order; the runner reports the ratio (Phase 4 design note §2.3).\n *\n * @module atlas/waves/numerics\n */\n\n/** Parameters of the WS1 string fixture. @internal */\nexport interface StringFixture {\n /** Tension F. */\n readonly tension: number;\n /** Linear mass density μ. */\n readonly mu: number;\n /** Final time. */\n readonly tEnd: number;\n}\n\n/**\n * WS1 — the displacement at the midpoint `x = ½, t = tEnd` of a string of unit\n * length with fixed ends, from a leapfrog solution of `μ y_tt = F y_xx` written\n * in the string's OWN variables, starting from `y = sin(πx)` at rest.\n *\n * The comparison target, `sin(πx) cos(π c t)` with `c = √(F/μ)`, is the 1-D\n * wave equation's solution, so the pair tests the restriction's dictionary.\n * The Courant number `cΔt/Δx` is held at 1/2.\n *\n * @param cells - spatial intervals (made even so the midpoint is a node).\n * @internal\n */\nexport function stringLeapfrogMidpoint(cells: number, f: StringFixture): number {\n const nx = 2 * Math.ceil(cells / 2);\n const dx = 1 / nx;\n // Courant 1/2 from the string's own coefficients: Δt = ½ Δx √(μ/F).\n const dtMax = 0.5 * dx * Math.sqrt(f.mu / f.tension);\n const steps = Math.ceil(f.tEnd / dtMax);\n const dt = f.tEnd / steps;\n const r2 = (f.tension * dt * dt) / (f.mu * dx * dx);\n\n let prev = new Float64Array(nx + 1);\n let cur = new Float64Array(nx + 1);\n let next = new Float64Array(nx + 1);\n for (let i = 0; i <= nx; i++) prev[i] = Math.sin(Math.PI * i * dx);\n // First step from rest: y¹ = y⁰ + ½ r² δ²y⁰ (second-order start).\n for (let i = 1; i < nx; i++) {\n cur[i] = prev[i]! + 0.5 * r2 * (prev[i + 1]! - 2 * prev[i]! + prev[i - 1]!);\n }\n for (let n = 1; n < steps; n++) {\n for (let i = 1; i < nx; i++) {\n next[i] = 2 * cur[i]! - prev[i]! + r2 * (cur[i + 1]! - 2 * cur[i]! + cur[i - 1]!);\n }\n [prev, cur, next] = [cur, next, prev];\n }\n return cur[nx / 2]!;\n}\n\n/** Parameters of the WS2 d'Alembert fixture. @internal */\nexport interface DalembertFixture {\n readonly c: number;\n /** The point `(x, t)` the residual is evaluated at. */\n readonly x: number;\n readonly t: number;\n /** Base finite-difference step; the resolution divides it. */\n readonly h0: number;\n}\n\n/** The two profiles of WS2: deliberately different, so neither direction is trivial. */\nconst profileRight = (s: number): number => Math.exp(-s * s);\nconst profileLeft = (s: number): number => 0.5 * Math.exp(-((s - 1) * (s - 1)) / 0.5);\n\n/**\n * The d'Alembert form `u = f(x − ct) + g(x + ct)` with the WS2 profiles.\n *\n * @internal\n */\nexport function dalembert(x: number, t: number, c: number): number {\n return profileRight(x - c * t) + profileLeft(x + c * t);\n}\n\n/**\n * WS2 — the finite-difference residual `|u_tt − c² u_xx|` of the d'Alembert\n * form at one point, step `h = h0/resolution` in both variables. Exactly zero\n * in the limit; the runner records how fast the estimate gets there.\n *\n * @internal\n */\nexport function dalembertResidual(resolution: number, f: DalembertFixture): number {\n const h = f.h0 / resolution;\n const u = (x: number, t: number): number => dalembert(x, t, f.c);\n const utt = (u(f.x, f.t + h) - 2 * u(f.x, f.t) + u(f.x, f.t - h)) / (h * h);\n const uxx = (u(f.x + h, f.t) - 2 * u(f.x, f.t) + u(f.x - h, f.t)) / (h * h);\n return Math.abs(utt - f.c * f.c * uxx);\n}\n\n/** Parameters of the WS3 acoustic fixture. @internal */\nexport interface AcousticFixture {\n /** Ambient pressure p₀. */\n readonly p0: number;\n /** Ambient density ρ₀. */\n readonly rho0: number;\n /** Adiabatic index γ. */\n readonly gamma: number;\n readonly tEnd: number;\n}\n\n/**\n * The adiabatic equation of state `p(ρ) = p₀ (ρ/ρ₀)^γ` — the SECOND premise of\n * the sound-speed hyperedge — and its derivative at `ρ`.\n *\n * @internal\n */\nexport function adiabaticSlope(rho: number, f: AcousticFixture): number {\n return (f.gamma * f.p0 * Math.pow(rho / f.rho0, f.gamma - 1)) / f.rho0;\n}\n\n/**\n * WS3 — the pressure perturbation at `x = ¼, t = tEnd` from a staggered\n * leapfrog solution of the LINEARIZED EULER equations\n * `∂ρ′/∂t = −ρ₀ ∂v/∂x`, `ρ₀ ∂v/∂t = −∂p′/∂x`, closed by the ADIABATIC EOS\n * `p′ = (dp/dρ)|ρ₀ ρ′`, on a periodic unit domain from `p′ = sin 2πx` at rest.\n *\n * Both premises enter in their own form: the Euler pair steps `ρ′` and `v`,\n * and the only link from `ρ′` to `p′` is {@link adiabaticSlope}. The\n * comparison target `sin(2πx) cos(2π c t)` with `c² = γ p₀/ρ₀` is the SOUND\n * model's solution, so the pair tests the hyperedge's derivation.\n *\n * @param cells - grid intervals (made a multiple of 4 so `x = ¼` is a node).\n * @internal\n */\nexport function acousticLeapfrogQuarter(cells: number, f: AcousticFixture): number {\n const nx = 4 * Math.ceil(cells / 4);\n const dx = 1 / nx;\n const slope = adiabaticSlope(f.rho0, f);\n const cMax = Math.sqrt(slope);\n const dtMax = (0.5 * dx) / cMax;\n const steps = Math.ceil(f.tEnd / dtMax);\n const dt = f.tEnd / steps;\n\n // ρ′ at nodes i·Δx; v at half-nodes (i + ½)Δx, periodic.\n const rho = new Float64Array(nx);\n const v = new Float64Array(nx);\n for (let i = 0; i < nx; i++) rho[i] = Math.sin(2 * Math.PI * i * dx) / slope;\n const pressure = (i: number): number => slope * rho[(i + nx) % nx]!;\n // Half step from rest: v^{1/2} = −(Δt/2ρ₀) ∂p′/∂x.\n for (let i = 0; i < nx; i++) v[i] = (-(0.5 * dt) / f.rho0) * ((pressure(i + 1) - pressure(i)) / dx);\n for (let n = 0; n < steps; n++) {\n for (let i = 0; i < nx; i++) {\n const dv = (v[i]! - v[(i - 1 + nx) % nx]!) / dx;\n rho[i] = rho[i]! - dt * f.rho0 * dv;\n }\n if (n < steps - 1) {\n for (let i = 0; i < nx; i++) v[i] = v[i]! - (dt / f.rho0) * ((pressure(i + 1) - pressure(i)) / dx);\n }\n }\n return pressure(nx / 4);\n}\n\n/**\n * Speed of sound from the adiabatic (Laplace) and isothermal (Newton) closures.\n *\n * @internal\n */\nexport function soundSpeeds(p0: number, rho0: number, gamma: number): {\n readonly adiabatic: number;\n readonly isothermal: number;\n} {\n return { adiabatic: Math.sqrt((gamma * p0) / rho0), isothermal: Math.sqrt(p0 / rho0) };\n}\n\n/**\n * Relative phase-velocity error of the Klein–Gordon mode against the\n * dispersion-free wave: `√(1 + (ω₀/(c k))²) − 1`.\n *\n * This is the exact quantity the approximation bound of `ab-klein-gordon-wave`\n * is stated in; it is increasing in `ω₀/(c k)`, so its value at the edge of the\n * declared range is the supremum over the range.\n *\n * @internal\n */\nexport function kleinGordonPhaseError(omega0: number, c: number, k: number): number {\n const ratio = omega0 / (c * k);\n // `√(1 + r²) − 1` as `expm1(½ log1p(r²))`: the naive difference cancels to 0 below\n // r ≈ 1e-8 and falls below the true error (not a bound) around r ≈ 1e-7.\n return Math.expm1(0.5 * Math.log1p(ratio * ratio));\n}\n\n/**\n * WS4 — the Klein–Gordon phase velocity `√(c² + ω₀²/k²)` at wavenumber\n * `k = k₀ · resolution`. It tends to the wave speed `c` as `k` grows: the\n * dispersion-free limit, approached from above.\n *\n * @internal\n */\nexport function kleinGordonPhaseVelocity(\n resolution: number,\n omega0: number,\n c: number,\n k0: number,\n): number {\n const k = k0 * resolution;\n return Math.sqrt(c * c + (omega0 * omega0) / (k * k));\n}\n\n// ── Sprint 4 closure: Klein–Gordon limits, weak damping ────────────────────\n\n/**\n * The relative error of the non-relativistic kinetic frequency: the\n * Klein–Gordon mode's `ω − ω₀ = ω₀(√(1 + x²) − 1)` against the free\n * Schrödinger particle's `ω₀ x²/2` under `ħ/m ↦ c²/ω₀`, with `x = c k/ω₀`.\n * Equals `|(√(1 + x²) − 1)/(x²/2) − 1|`, increasing in x.\n *\n * @internal\n */\nexport function kgNonrelativisticError(x: number): number {\n if (x === 0) return 0;\n // Algebraically `x² / (1 + √(1 + x²))²`: with `s = 1 + √(1 + x²)`, `√(1 + x²) − 1 = x²/s`,\n // so the quantity is `|(2/s) − 1| = (s − 2)/s = x²/s²`. The naive difference of the two\n // ratios returned 8.9e-5 at x = 1e-6, where the error is 2.5e-13.\n const s = 1 + Math.sqrt(1 + x * x);\n return (x * x) / (s * s);\n}\n\n/**\n * WS6 — `u(tEnd)` of the SPATIALLY UNIFORM Klein–Gordon field on a periodic\n * grid, stepped by leapfrog in the full PDE `u_tt = c² u_xx − ω₀² u` from\n * `u = 1` at rest, with `steps` time steps. The uniform mode's Laplacian\n * vanishes, so the field should follow the oscillator solution `cos(ω₀ t)`.\n *\n * @internal\n */\nexport function kgUniformModeValue(\n steps: number,\n c: number,\n omega0: number,\n tEnd: number,\n cells = 16,\n): number {\n const dt = tEnd / steps;\n const dx = 1 / cells;\n let prev = new Float64Array(cells).fill(1);\n let cur = new Float64Array(cells);\n let next = new Float64Array(cells);\n const lap = (a: Float64Array, i: number): number =>\n (a[(i + 1) % cells]! - 2 * a[i]! + a[(i - 1 + cells) % cells]!) / (dx * dx);\n for (let i = 0; i < cells; i++) {\n cur[i] = prev[i]! + 0.5 * dt * dt * (c * c * lap(prev, i) - omega0 * omega0 * prev[i]!);\n }\n for (let n = 1; n < steps; n++) {\n for (let i = 0; i < cells; i++) {\n next[i] = 2 * cur[i]! - prev[i]! + dt * dt * (c * c * lap(cur, i) - omega0 * omega0 * cur[i]!);\n }\n [prev, cur, next] = [cur, next, prev];\n }\n return cur[0]!;\n}\n\n/**\n * Relative phase-velocity error of a stiff string against the flexible string:\n * `√(1 + β) − 1` with `β = EI k²/F`. Increasing in β, so its value at the\n * domain edge is the supremum over the domain.\n *\n * @internal\n */\nexport function stiffStringPhaseError(F: number, EI: number, k: number): number {\n // `√(1 + β) − 1` as `expm1(½ log1p(β))`, which keeps its precision as β → 0.\n return Math.expm1(0.5 * Math.log1p((EI * k * k) / F));\n}\n\n/**\n * WS7 — the stiff string's phase velocity `√(F/μ + (EI/μ)k²)` at wavenumber\n * `k = k₀/resolution`: it tends to the flexible-string speed `√(F/μ)` as the\n * wavelength grows.\n *\n * @internal\n */\nexport function stiffStringPhaseVelocity(\n resolution: number,\n F: number,\n mu: number,\n EI: number,\n k0: number,\n): number {\n const k = k0 / resolution;\n return Math.sqrt(F / mu + (EI / mu) * k * k);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"witness-artifact.js","sourceRoot":"","sources":["../../src/atlas/witness-artifact.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAqBtD;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,QAAQ,GAAiC,gBAAgB,EACzD,UAAsC;IAEtC,MAAM,OAAO,GAA0B,EAAE,CAAC;IAC1C,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,uEAAuE;QACvE,wEAAwE;QACxE,qCAAqC;QACrC,IAAI,GAAqB,CAAC;QAC1B,IAAI,WAAoC,CAAC;QACzC,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC9B,GAAG,GAAG,MAAM,kBAAkB,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACzD,CAAC;aAAM,CAAC;YACN,MAAM,OAAO,GAAG,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC9C,GAAG,GAAG,OAAO,CAAC;YACd,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACpC,CAAC;QACD,OAAO,CAAC,IAAI,CAAC;YACX,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,GAAG,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;YAC3D,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;SACtD,CAAC,CAAC;IACL,CAAC;IACD,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;AACzC,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,yBAAyB,CACvC,QAAgC,EAChC,QAAgB;IAEhB,OAAO,IAAI,GAAG,CACZ,QAAQ,CAAC,OAAO;SACb,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC;SAChE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAC3B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"witness-artifact.js","sourceRoot":"","sources":["../../src/atlas/witness-artifact.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAqBtD;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,QAAQ,GAAiC,gBAAgB,EACzD,UAAsC;IAEtC,MAAM,OAAO,GAA0B,EAAE,CAAC;IAC1C,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,uEAAuE;QACvE,wEAAwE;QACxE,qCAAqC;QACrC,IAAI,GAAqB,CAAC;QAC1B,IAAI,WAAoC,CAAC;QACzC,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC9B,GAAG,GAAG,MAAM,kBAAkB,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACzD,CAAC;aAAM,CAAC;YACN,MAAM,OAAO,GAAG,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC9C,GAAG,GAAG,OAAO,CAAC;YACd,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACpC,CAAC;QACD,OAAO,CAAC,IAAI,CAAC;YACX,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,GAAG,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;YAC3D,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;SACtD,CAAC,CAAC;IACL,CAAC;IACD,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;AACzC,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,yBAAyB,CACvC,QAAgC,EAChC,QAAgB;IAEhB,OAAO,IAAI,GAAG,CACZ,QAAQ,CAAC,OAAO;SACb,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC;SAChE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAC3B,CAAC;AACJ,CAAC","sourcesContent":["/**\n * Atlas Phase 4, S4.3 — the witness-results ARTIFACT: its shape, the run that\n * produces it, and the one reader that turns it into passing witness ids.\n *\n * Design note: `docs/planning/Atlas-Phase-4-Design.md` §3.\n *\n * **The load-bearing invariant: no test writes the artifact.** The Lead runs\n * `scripts/emit-witness-results.mjs`, which calls {@link runWitnessRegistry}\n * and writes `data/atlas/witness-results.json`. `tests/atlas/witness-results.test.ts`\n * deep-equals the committed file against a fresh in-process run — the\n * `atlas-json` pattern. A test that wrote the artifact would certify whatever\n * the last run happened to produce, which is the opposite of a check.\n *\n * **The artifact is deterministic by construction.** `elapsedMs` is dropped:\n * wall-clock time differs on every run, and a pin that deep-equals it could\n * never pass twice. Everything kept is a function of the specs and the peer.\n *\n * @module atlas/witness-artifact\n * @internal\n */\n\nimport type { Convergence } from './witness-numeric.js';\nimport { runNumericWitness } from './witness-numeric.js';\nimport type { UnresolvedReason, WitnessRunResult, WitnessStatus } from './witness-result.js';\nimport type { SymbolicSimplifier } from './witness-symbolic.js';\nimport { runSymbolicWitness } from './witness-symbolic.js';\nimport type { RegisteredWitness } from './witness-specs.js';\nimport { WITNESS_REGISTRY } from './witness-specs.js';\n\n/** One row of the artifact. @internal */\nexport interface WitnessResultRecord {\n readonly recordId: string;\n readonly witnessId: string;\n readonly kind: 'symbolic' | 'numeric';\n readonly status: WitnessStatus;\n /** Present iff `status === 'unresolved'`. */\n readonly reason?: UnresolvedReason;\n readonly detail: string;\n /** Numeric witnesses only, and only when a number was produced. */\n readonly convergence?: Convergence;\n}\n\n/** The committed artifact, `data/atlas/witness-results.json`. @internal */\nexport interface WitnessResultsArtifact {\n readonly schemaVersion: '0';\n readonly results: readonly WitnessResultRecord[];\n}\n\n/**\n * Run every registered witness and assemble the artifact.\n *\n * @param registry - the witnesses to run; defaults to {@link WITNESS_REGISTRY}.\n * @param simplifier - forwarded to `runSymbolicWitness`. Omit it for the real\n * peer (resolved through `isSimplifierAvailable()`); pass `null` to run every\n * symbolic witness as peer-absent.\n * @returns the artifact; never throws, because neither runner does.\n * @internal\n */\nexport async function runWitnessRegistry(\n registry: readonly RegisteredWitness[] = WITNESS_REGISTRY,\n simplifier?: SymbolicSimplifier | null,\n): Promise<WitnessResultsArtifact> {\n const results: WitnessResultRecord[] = [];\n for (const entry of registry) {\n // Sequential on purpose: the order of the artifact is the order of the\n // registry, and a symbolic run's timeout budget should not compete with\n // its neighbours for the event loop.\n let run: WitnessRunResult;\n let convergence: Convergence | undefined;\n if (entry.kind === 'symbolic') {\n run = await runSymbolicWitness(entry.spec, simplifier);\n } else {\n const numeric = runNumericWitness(entry.spec);\n run = numeric;\n convergence = numeric.convergence;\n }\n results.push({\n recordId: entry.recordId,\n witnessId: run.witnessId,\n kind: run.kind,\n status: run.status,\n ...(run.reason === undefined ? {} : { reason: run.reason }),\n detail: run.detail,\n ...(convergence === undefined ? {} : { convergence }),\n });\n }\n return { schemaVersion: '0', results };\n}\n\n/**\n * The ids of witnesses of `recordId` that the artifact records as `'checked'`\n * — the value to pass as `deriveEvidence`'s `passingWitnessIds` for the\n * artifact-governed kinds.\n *\n * Only `'checked'` counts. An `'unresolved'` row (peer absent, timeout, an\n * irreducible difference) is not a pass, and admitting it would hand\n * `symbolically-checked` to a claim nobody examined.\n *\n * @internal\n */\nexport function artifactPassingWitnessIds(\n artifact: WitnessResultsArtifact,\n recordId: string,\n): ReadonlySet<string> {\n return new Set(\n artifact.results\n .filter((r) => r.recordId === recordId && r.status === 'checked')\n .map((r) => r.witnessId),\n );\n}\n"]}
@@ -5,9 +5,10 @@
5
5
  * `witness-numeric.ts` checks agreement with a target, which is the wrong
6
6
  * shape for a bound: a bound that holds is not equal to anything. Here each
7
7
  * resolution returns the measured quantity and the bound at the SAME samples.
8
- * At each sample the coarse-to-fine difference of the measurement is taken as
9
- * its numerical uncertainty `u`, and the fine margin `bound − measured` is
10
- * judged against it:
8
+ * At each sample the coarse-to-fine difference of the measurement, plus the
9
+ * coarse-to-fine difference of the bound when the bound itself is computed
10
+ * numerically, is taken as the numerical uncertainty `u`, and the fine margin
11
+ * `bound − measured` is judged against it:
11
12
  *
12
13
  * - `'refuted'` iff at some sample the measurement exceeds the bound by more
13
14
  * than `u` there;
@@ -1 +1 @@
1
- {"version":3,"file":"witness-dominance.d.ts","sourceRoot":"","sources":["../../src/atlas/witness-dominance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,6GAA6G;AAC7G,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,sFAAsF;IACtF,QAAQ,CAAC,QAAQ,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK;QAAE,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,CAAC;IACvH,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED,kGAAkG;AAClG,MAAM,WAAW,kBAAmB,SAAQ,gBAAgB;IAC1D,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,mFAAmF;IACnF,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,6CAA6C;IAC7C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,kGAAkG;IAClG,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,sGAAsG;AACtG,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,oBAAoB,GAAG,kBAAkB,CAwDlF"}
1
+ {"version":3,"file":"witness-dominance.d.ts","sourceRoot":"","sources":["../../src/atlas/witness-dominance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,6GAA6G;AAC7G,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,sFAAsF;IACtF,QAAQ,CAAC,QAAQ,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK;QAAE,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,CAAC;IACvH,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAED,kGAAkG;AAClG,MAAM,WAAW,kBAAmB,SAAQ,gBAAgB;IAC1D,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,mFAAmF;IACnF,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,6CAA6C;IAC7C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,kGAAkG;IAClG,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,sGAAsG;AACtG,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,oBAAoB,GAAG,kBAAkB,CAmElF"}
@@ -5,9 +5,10 @@
5
5
  * `witness-numeric.ts` checks agreement with a target, which is the wrong
6
6
  * shape for a bound: a bound that holds is not equal to anything. Here each
7
7
  * resolution returns the measured quantity and the bound at the SAME samples.
8
- * At each sample the coarse-to-fine difference of the measurement is taken as
9
- * its numerical uncertainty `u`, and the fine margin `bound − measured` is
10
- * judged against it:
8
+ * At each sample the coarse-to-fine difference of the measurement, plus the
9
+ * coarse-to-fine difference of the bound when the bound itself is computed
10
+ * numerically, is taken as the numerical uncertainty `u`, and the fine margin
11
+ * `bound − measured` is judged against it:
11
12
  *
12
13
  * - `'refuted'` iff at some sample the measurement exceeds the bound by more
13
14
  * than `u` there;
@@ -38,7 +39,14 @@ export function runDominanceWitness(spec) {
38
39
  }
39
40
  const n = fine.measured.length;
40
41
  const finite = (xs) => xs.every(Number.isFinite);
41
- if (n === 0 || coarse.measured.length !== n || fine.bound.length !== n || !finite(fine.measured) || !finite(coarse.measured) || !finite(fine.bound)) {
42
+ if (n === 0 ||
43
+ coarse.measured.length !== n ||
44
+ fine.bound.length !== n ||
45
+ coarse.bound.length !== n ||
46
+ !finite(fine.measured) ||
47
+ !finite(coarse.measured) ||
48
+ !finite(fine.bound) ||
49
+ !finite(coarse.bound)) {
42
50
  return {
43
51
  ...base,
44
52
  status: 'unresolved',
@@ -55,7 +63,9 @@ export function runDominanceWitness(spec) {
55
63
  for (let i = 0; i < n; i++) {
56
64
  const m = fine.measured[i];
57
65
  const b = fine.bound[i];
58
- const u = Math.abs(m - coarse.measured[i]);
66
+ // A closed-form bound is the same at both resolutions and adds nothing;
67
+ // a bound that moved between them is uncertain by that movement.
68
+ const u = Math.abs(m - coarse.measured[i]) + Math.abs(b - coarse.bound[i]);
59
69
  margin = Math.min(margin, b - m);
60
70
  uncertainty = Math.max(uncertainty, u);
61
71
  if (b > 0)