universal-physics-tensor 0.45.2 → 0.47.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (548) hide show
  1. package/README.md +85 -66
  2. package/bin/upt.mjs +22 -22
  3. package/dist/atlas/applicability.d.ts +108 -0
  4. package/dist/atlas/applicability.d.ts.map +1 -0
  5. package/dist/atlas/applicability.js +301 -0
  6. package/dist/atlas/applicability.js.map +1 -0
  7. package/dist/atlas/association.d.ts +92 -0
  8. package/dist/atlas/association.d.ts.map +1 -0
  9. package/dist/atlas/association.js +112 -0
  10. package/dist/atlas/association.js.map +1 -0
  11. package/dist/atlas/benchmark/backend-shapes.d.ts +47 -0
  12. package/dist/atlas/benchmark/backend-shapes.d.ts.map +1 -0
  13. package/dist/atlas/benchmark/backend-shapes.js +58 -0
  14. package/dist/atlas/benchmark/backend-shapes.js.map +1 -0
  15. package/dist/atlas/benchmark/baselines.d.ts +64 -0
  16. package/dist/atlas/benchmark/baselines.d.ts.map +1 -0
  17. package/dist/atlas/benchmark/baselines.js +112 -0
  18. package/dist/atlas/benchmark/baselines.js.map +1 -0
  19. package/dist/atlas/benchmark/leakage.d.ts +56 -0
  20. package/dist/atlas/benchmark/leakage.d.ts.map +1 -0
  21. package/dist/atlas/benchmark/leakage.js +100 -0
  22. package/dist/atlas/benchmark/leakage.js.map +1 -0
  23. package/dist/atlas/benchmark/loader.d.ts +56 -0
  24. package/dist/atlas/benchmark/loader.d.ts.map +1 -0
  25. package/dist/atlas/benchmark/loader.js +104 -0
  26. package/dist/atlas/benchmark/loader.js.map +1 -0
  27. package/dist/atlas/benchmark/run-atlas.d.ts +72 -0
  28. package/dist/atlas/benchmark/run-atlas.d.ts.map +1 -0
  29. package/dist/atlas/benchmark/run-atlas.js +210 -0
  30. package/dist/atlas/benchmark/run-atlas.js.map +1 -0
  31. package/dist/atlas/benchmark/stats.d.ts +90 -0
  32. package/dist/atlas/benchmark/stats.d.ts.map +1 -0
  33. package/dist/atlas/benchmark/stats.js +159 -0
  34. package/dist/atlas/benchmark/stats.js.map +1 -0
  35. package/dist/atlas/benchmark/study.d.ts +120 -0
  36. package/dist/atlas/benchmark/study.d.ts.map +1 -0
  37. package/dist/atlas/benchmark/study.js +192 -0
  38. package/dist/atlas/benchmark/study.js.map +1 -0
  39. package/dist/atlas/benchmark/types.d.ts +79 -0
  40. package/dist/atlas/benchmark/types.d.ts.map +1 -0
  41. package/dist/atlas/benchmark/types.js +46 -0
  42. package/dist/atlas/benchmark/types.js.map +1 -0
  43. package/dist/atlas/composition-table.d.ts +55 -0
  44. package/dist/atlas/composition-table.d.ts.map +1 -0
  45. package/dist/atlas/composition-table.js +133 -0
  46. package/dist/atlas/composition-table.js.map +1 -0
  47. package/dist/atlas/conventions.d.ts +63 -0
  48. package/dist/atlas/conventions.d.ts.map +1 -0
  49. package/dist/atlas/conventions.js +93 -0
  50. package/dist/atlas/conventions.js.map +1 -0
  51. package/dist/atlas/coverage.d.ts +93 -0
  52. package/dist/atlas/coverage.d.ts.map +1 -0
  53. package/dist/atlas/coverage.js +69 -0
  54. package/dist/atlas/coverage.js.map +1 -0
  55. package/dist/atlas/derivation.d.ts +137 -0
  56. package/dist/atlas/derivation.d.ts.map +1 -0
  57. package/dist/atlas/derivation.js +190 -0
  58. package/dist/atlas/derivation.js.map +1 -0
  59. package/dist/atlas/derive-evidence.d.ts +218 -0
  60. package/dist/atlas/derive-evidence.d.ts.map +1 -0
  61. package/dist/atlas/derive-evidence.js +225 -0
  62. package/dist/atlas/derive-evidence.js.map +1 -0
  63. package/dist/atlas/diffusion/bridges-closure.d.ts +63 -0
  64. package/dist/atlas/diffusion/bridges-closure.d.ts.map +1 -0
  65. package/dist/atlas/diffusion/bridges-closure.js +350 -0
  66. package/dist/atlas/diffusion/bridges-closure.js.map +1 -0
  67. package/dist/atlas/diffusion/bridges.d.ts +36 -0
  68. package/dist/atlas/diffusion/bridges.d.ts.map +1 -0
  69. package/dist/atlas/diffusion/bridges.js +226 -0
  70. package/dist/atlas/diffusion/bridges.js.map +1 -0
  71. package/dist/atlas/diffusion/dimensions.d.ts +21 -0
  72. package/dist/atlas/diffusion/dimensions.d.ts.map +1 -0
  73. package/dist/atlas/diffusion/dimensions.js +21 -0
  74. package/dist/atlas/diffusion/dimensions.js.map +1 -0
  75. package/dist/atlas/diffusion/index.d.ts +16 -0
  76. package/dist/atlas/diffusion/index.d.ts.map +1 -0
  77. package/dist/atlas/diffusion/index.js +23 -0
  78. package/dist/atlas/diffusion/index.js.map +1 -0
  79. package/dist/atlas/diffusion/models.d.ts +24 -0
  80. package/dist/atlas/diffusion/models.d.ts.map +1 -0
  81. package/dist/atlas/diffusion/models.js +139 -0
  82. package/dist/atlas/diffusion/models.js.map +1 -0
  83. package/dist/atlas/diffusion/numerics.d.ts +181 -0
  84. package/dist/atlas/diffusion/numerics.d.ts.map +1 -0
  85. package/dist/atlas/diffusion/numerics.js +251 -0
  86. package/dist/atlas/diffusion/numerics.js.map +1 -0
  87. package/dist/atlas/error-algebra.d.ts +52 -0
  88. package/dist/atlas/error-algebra.d.ts.map +1 -0
  89. package/dist/atlas/error-algebra.js +55 -0
  90. package/dist/atlas/error-algebra.js.map +1 -0
  91. package/dist/atlas/export.d.ts +48 -0
  92. package/dist/atlas/export.d.ts.map +1 -0
  93. package/dist/atlas/export.js +106 -0
  94. package/dist/atlas/export.js.map +1 -0
  95. package/dist/atlas/families.d.ts +14 -0
  96. package/dist/atlas/families.d.ts.map +1 -0
  97. package/dist/atlas/families.js +20 -0
  98. package/dist/atlas/families.js.map +1 -0
  99. package/dist/atlas/index.d.ts +90 -0
  100. package/dist/atlas/index.d.ts.map +1 -0
  101. package/dist/atlas/index.js +69 -0
  102. package/dist/atlas/index.js.map +1 -0
  103. package/dist/atlas/link-prediction.d.ts +71 -0
  104. package/dist/atlas/link-prediction.d.ts.map +1 -0
  105. package/dist/atlas/link-prediction.js +128 -0
  106. package/dist/atlas/link-prediction.js.map +1 -0
  107. package/dist/atlas/model.d.ts +70 -0
  108. package/dist/atlas/model.d.ts.map +1 -0
  109. package/dist/atlas/model.js +26 -0
  110. package/dist/atlas/model.js.map +1 -0
  111. package/dist/atlas/oscillators/bridges-coarse.d.ts +71 -0
  112. package/dist/atlas/oscillators/bridges-coarse.d.ts.map +1 -0
  113. package/dist/atlas/oscillators/bridges-coarse.js +146 -0
  114. package/dist/atlas/oscillators/bridges-coarse.js.map +1 -0
  115. package/dist/atlas/oscillators/bridges-exact.d.ts +70 -0
  116. package/dist/atlas/oscillators/bridges-exact.d.ts.map +1 -0
  117. package/dist/atlas/oscillators/bridges-exact.js +230 -0
  118. package/dist/atlas/oscillators/bridges-exact.js.map +1 -0
  119. package/dist/atlas/oscillators/bridges-limits.d.ts +118 -0
  120. package/dist/atlas/oscillators/bridges-limits.d.ts.map +1 -0
  121. package/dist/atlas/oscillators/bridges-limits.js +345 -0
  122. package/dist/atlas/oscillators/bridges-limits.js.map +1 -0
  123. package/dist/atlas/oscillators/dimensions.d.ts +34 -0
  124. package/dist/atlas/oscillators/dimensions.d.ts.map +1 -0
  125. package/dist/atlas/oscillators/dimensions.js +34 -0
  126. package/dist/atlas/oscillators/dimensions.js.map +1 -0
  127. package/dist/atlas/oscillators/index.d.ts +38 -0
  128. package/dist/atlas/oscillators/index.d.ts.map +1 -0
  129. package/dist/atlas/oscillators/index.js +37 -0
  130. package/dist/atlas/oscillators/index.js.map +1 -0
  131. package/dist/atlas/oscillators/models.d.ts +25 -0
  132. package/dist/atlas/oscillators/models.d.ts.map +1 -0
  133. package/dist/atlas/oscillators/models.js +160 -0
  134. package/dist/atlas/oscillators/models.js.map +1 -0
  135. package/dist/atlas/oscillators/rejections.d.ts +21 -0
  136. package/dist/atlas/oscillators/rejections.d.ts.map +1 -0
  137. package/dist/atlas/oscillators/rejections.js +54 -0
  138. package/dist/atlas/oscillators/rejections.js.map +1 -0
  139. package/dist/atlas/path-bound.d.ts +143 -0
  140. package/dist/atlas/path-bound.d.ts.map +1 -0
  141. package/dist/atlas/path-bound.js +268 -0
  142. package/dist/atlas/path-bound.js.map +1 -0
  143. package/dist/atlas/poster/associations.d.ts +66 -0
  144. package/dist/atlas/poster/associations.d.ts.map +1 -0
  145. package/dist/atlas/poster/associations.js +90 -0
  146. package/dist/atlas/poster/associations.js.map +1 -0
  147. package/dist/atlas/poster/derivations.d.ts +156 -0
  148. package/dist/atlas/poster/derivations.d.ts.map +1 -0
  149. package/dist/atlas/poster/derivations.js +430 -0
  150. package/dist/atlas/poster/derivations.js.map +1 -0
  151. package/dist/atlas/poster/statements.d.ts +198 -0
  152. package/dist/atlas/poster/statements.d.ts.map +1 -0
  153. package/dist/atlas/poster/statements.js +365 -0
  154. package/dist/atlas/poster/statements.js.map +1 -0
  155. package/dist/atlas/public.d.ts +26 -0
  156. package/dist/atlas/public.d.ts.map +1 -0
  157. package/dist/atlas/public.js +21 -0
  158. package/dist/atlas/public.js.map +1 -0
  159. package/dist/atlas/regime.d.ts +171 -0
  160. package/dist/atlas/regime.d.ts.map +1 -0
  161. package/dist/atlas/regime.js +309 -0
  162. package/dist/atlas/regime.js.map +1 -0
  163. package/dist/atlas/serialize.d.ts +50 -0
  164. package/dist/atlas/serialize.d.ts.map +1 -0
  165. package/dist/atlas/serialize.js +180 -0
  166. package/dist/atlas/serialize.js.map +1 -0
  167. package/dist/atlas/statement.d.ts +165 -0
  168. package/dist/atlas/statement.d.ts.map +1 -0
  169. package/dist/atlas/statement.js +176 -0
  170. package/dist/atlas/statement.js.map +1 -0
  171. package/dist/atlas/types.d.ts +325 -0
  172. package/dist/atlas/types.d.ts.map +1 -0
  173. package/dist/atlas/types.js +61 -0
  174. package/dist/atlas/types.js.map +1 -0
  175. package/dist/atlas/waves/bridges-closure.d.ts +39 -0
  176. package/dist/atlas/waves/bridges-closure.d.ts.map +1 -0
  177. package/dist/atlas/waves/bridges-closure.js +226 -0
  178. package/dist/atlas/waves/bridges-closure.js.map +1 -0
  179. package/dist/atlas/waves/bridges.d.ts +49 -0
  180. package/dist/atlas/waves/bridges.d.ts.map +1 -0
  181. package/dist/atlas/waves/bridges.js +266 -0
  182. package/dist/atlas/waves/bridges.js.map +1 -0
  183. package/dist/atlas/waves/index.d.ts +16 -0
  184. package/dist/atlas/waves/index.d.ts.map +1 -0
  185. package/dist/atlas/waves/index.js +23 -0
  186. package/dist/atlas/waves/index.js.map +1 -0
  187. package/dist/atlas/waves/models.d.ts +29 -0
  188. package/dist/atlas/waves/models.d.ts.map +1 -0
  189. package/dist/atlas/waves/models.js +127 -0
  190. package/dist/atlas/waves/models.js.map +1 -0
  191. package/dist/atlas/waves/numerics.d.ts +149 -0
  192. package/dist/atlas/waves/numerics.d.ts.map +1 -0
  193. package/dist/atlas/waves/numerics.js +218 -0
  194. package/dist/atlas/waves/numerics.js.map +1 -0
  195. package/dist/atlas/witness-artifact.d.ts +65 -0
  196. package/dist/atlas/witness-artifact.d.ts.map +1 -0
  197. package/dist/atlas/witness-artifact.js +78 -0
  198. package/dist/atlas/witness-artifact.js.map +1 -0
  199. package/dist/atlas/witness-numeric.d.ts +81 -0
  200. package/dist/atlas/witness-numeric.d.ts.map +1 -0
  201. package/dist/atlas/witness-numeric.js +105 -0
  202. package/dist/atlas/witness-numeric.js.map +1 -0
  203. package/dist/atlas/witness-result.d.ts +77 -0
  204. package/dist/atlas/witness-result.d.ts.map +1 -0
  205. package/dist/atlas/witness-result.js +39 -0
  206. package/dist/atlas/witness-result.js.map +1 -0
  207. package/dist/atlas/witness-specs.d.ts +110 -0
  208. package/dist/atlas/witness-specs.d.ts.map +1 -0
  209. package/dist/atlas/witness-specs.js +372 -0
  210. package/dist/atlas/witness-specs.js.map +1 -0
  211. package/dist/atlas/witness-symbolic.d.ts +79 -0
  212. package/dist/atlas/witness-symbolic.d.ts.map +1 -0
  213. package/dist/atlas/witness-symbolic.js +140 -0
  214. package/dist/atlas/witness-symbolic.js.map +1 -0
  215. package/dist/atlas/witnesses/quantum-support.d.ts +50 -0
  216. package/dist/atlas/witnesses/quantum-support.d.ts.map +1 -0
  217. package/dist/atlas/witnesses/quantum-support.js +48 -0
  218. package/dist/atlas/witnesses/quantum-support.js.map +1 -0
  219. package/dist/bridges/be11-decoherence-confrontation.js.map +1 -1
  220. package/dist/bridges/be21-kss-confrontation.js.map +1 -1
  221. package/dist/bridges/be23-planckian-confrontation.js.map +1 -1
  222. package/dist/bridges/be35-bootstrap-confrontation.js.map +1 -1
  223. package/dist/bridges/be36-gw170817-confrontation.js.map +1 -1
  224. package/dist/bridges/be37-cassini-confrontation.js.map +1 -1
  225. package/dist/bridges/be48-collapse-confrontation.js.map +1 -1
  226. package/dist/bridges/be51-lensing-confrontation.d.ts.map +1 -1
  227. package/dist/bridges/be51-lensing-confrontation.js +5 -3
  228. package/dist/bridges/be51-lensing-confrontation.js.map +1 -1
  229. package/dist/bridges/be52-mercury-confrontation.d.ts.map +1 -1
  230. package/dist/bridges/be52-mercury-confrontation.js +4 -1
  231. package/dist/bridges/be52-mercury-confrontation.js.map +1 -1
  232. package/dist/bridges/be55-quantum-hall-confrontation.js.map +1 -1
  233. package/dist/bridges/be56-casimir-confrontation.js.map +1 -1
  234. package/dist/bridges/be58-johnson-nyquist-confrontation.js.map +1 -1
  235. package/dist/bridges/be59-ac-josephson-confrontation.js.map +1 -1
  236. package/dist/bridges/be60-fractional-qh-confrontation.js.map +1 -1
  237. package/dist/bridges/be61-wiedemann-franz-confrontation.js.map +1 -1
  238. package/dist/bridges/be62-bcs-gap-confrontation.js.map +1 -1
  239. package/dist/bridges/be63-chandrasekhar-mass-confrontation.js.map +1 -1
  240. package/dist/bridges/be64-eddington-luminosity-confrontation.js.map +1 -1
  241. package/dist/bridges/be65-jeans-mass-confrontation.js.map +1 -1
  242. package/dist/bridges/bridge-equations.d.ts +2 -2
  243. package/dist/bridges/bridge-equations.d.ts.map +1 -1
  244. package/dist/bridges/bridge-equations.js +2 -2
  245. package/dist/bridges/bridge-equations.js.map +1 -1
  246. package/dist/bridges/catalog-adapter.d.ts.map +1 -1
  247. package/dist/bridges/catalog-adapter.js.map +1 -1
  248. package/dist/bridges/confrontations.d.ts.map +1 -1
  249. package/dist/bridges/confrontations.js +7 -0
  250. package/dist/bridges/confrontations.js.map +1 -1
  251. package/dist/bridges/equations/_be-helpers.d.ts +2 -2
  252. package/dist/bridges/equations/_be-helpers.js +2 -2
  253. package/dist/bridges/equations/be-20-vacuum-energy.js.map +1 -1
  254. package/dist/bridges/equations/be-35-conformal-bootstrap.d.ts +59 -72
  255. package/dist/bridges/equations/be-35-conformal-bootstrap.d.ts.map +1 -1
  256. package/dist/bridges/equations/be-35-conformal-bootstrap.js +66 -98
  257. package/dist/bridges/equations/be-35-conformal-bootstrap.js.map +1 -1
  258. package/dist/bridges/equations/be-48-grw-localization.d.ts +9 -8
  259. package/dist/bridges/equations/be-48-grw-localization.d.ts.map +1 -1
  260. package/dist/bridges/equations/be-48-grw-localization.js +9 -8
  261. package/dist/bridges/equations/be-48-grw-localization.js.map +1 -1
  262. package/dist/bridges/gravitational-lensing.d.ts +10 -0
  263. package/dist/bridges/gravitational-lensing.d.ts.map +1 -1
  264. package/dist/bridges/gravitational-lensing.js.map +1 -1
  265. package/dist/bridges/index.d.ts +125 -7
  266. package/dist/bridges/index.d.ts.map +1 -1
  267. package/dist/bridges/index.js +483 -20
  268. package/dist/bridges/index.js.map +1 -1
  269. package/dist/bridges/observations/types.d.ts +14 -0
  270. package/dist/bridges/observations/types.d.ts.map +1 -1
  271. package/dist/bridges/observations/types.js.map +1 -1
  272. package/dist/bridges/perihelion-precession.d.ts +10 -0
  273. package/dist/bridges/perihelion-precession.d.ts.map +1 -1
  274. package/dist/bridges/perihelion-precession.js.map +1 -1
  275. package/dist/bridges/rhs-registry.js +2 -2
  276. package/dist/canonical/canonical-equation.d.ts +15 -0
  277. package/dist/canonical/canonical-equation.d.ts.map +1 -1
  278. package/dist/canonical/entries/_l1-build.d.ts +1 -1
  279. package/dist/canonical/entries/_l1-build.d.ts.map +1 -1
  280. package/dist/canonical/entries/atomic.d.ts.map +1 -1
  281. package/dist/canonical/entries/atomic.js +23 -0
  282. package/dist/canonical/entries/atomic.js.map +1 -1
  283. package/dist/canonical/entries/nonmonomial.d.ts.map +1 -1
  284. package/dist/canonical/entries/nonmonomial.js +93 -0
  285. package/dist/canonical/entries/nonmonomial.js.map +1 -1
  286. package/dist/canonical/normal-form.js.map +1 -1
  287. package/dist/canonical/residual.d.ts +28 -0
  288. package/dist/canonical/residual.d.ts.map +1 -0
  289. package/dist/canonical/residual.js +31 -0
  290. package/dist/canonical/residual.js.map +1 -0
  291. package/dist/cli/command.d.ts +8 -0
  292. package/dist/cli/command.d.ts.map +1 -1
  293. package/dist/cli/command.js +10 -0
  294. package/dist/cli/command.js.map +1 -1
  295. package/dist/cli/commands/atlas.d.ts +3 -0
  296. package/dist/cli/commands/atlas.d.ts.map +1 -0
  297. package/dist/cli/commands/atlas.js +158 -0
  298. package/dist/cli/commands/atlas.js.map +1 -0
  299. package/dist/cli/commands/audit.js +3 -3
  300. package/dist/cli/commands/candidates.js +3 -3
  301. package/dist/cli/commands/canonical.js +3 -3
  302. package/dist/cli/commands/confront.d.ts.map +1 -1
  303. package/dist/cli/commands/confront.js +8 -1
  304. package/dist/cli/commands/confront.js.map +1 -1
  305. package/dist/cli/commands/connectors.js +7 -7
  306. package/dist/cli/commands/coverage.js +3 -3
  307. package/dist/cli/commands/derive.d.ts.map +1 -1
  308. package/dist/cli/commands/derive.js +40 -9
  309. package/dist/cli/commands/derive.js.map +1 -1
  310. package/dist/cli/commands/discover.d.ts.map +1 -1
  311. package/dist/cli/commands/discover.js +46 -27
  312. package/dist/cli/commands/discover.js.map +1 -1
  313. package/dist/cli/commands/evaluate.d.ts.map +1 -1
  314. package/dist/cli/commands/evaluate.js +2 -1
  315. package/dist/cli/commands/evaluate.js.map +1 -1
  316. package/dist/cli/commands/explain.d.ts.map +1 -1
  317. package/dist/cli/commands/explain.js +19 -6
  318. package/dist/cli/commands/explain.js.map +1 -1
  319. package/dist/cli/commands/index.d.ts +3 -0
  320. package/dist/cli/commands/index.d.ts.map +1 -1
  321. package/dist/cli/commands/index.js +3 -0
  322. package/dist/cli/commands/index.js.map +1 -1
  323. package/dist/cli/commands/map.d.ts.map +1 -1
  324. package/dist/cli/commands/map.js +187 -36
  325. package/dist/cli/commands/map.js.map +1 -1
  326. package/dist/cli/commands/path.d.ts +3 -0
  327. package/dist/cli/commands/path.d.ts.map +1 -0
  328. package/dist/cli/commands/path.js +228 -0
  329. package/dist/cli/commands/path.js.map +1 -0
  330. package/dist/cli/commands/predict.js +4 -4
  331. package/dist/cli/commands/priority.js +2 -2
  332. package/dist/cli/commands/probe.d.ts.map +1 -1
  333. package/dist/cli/commands/probe.js +59 -2
  334. package/dist/cli/commands/probe.js.map +1 -1
  335. package/dist/cli/commands/recover.d.ts.map +1 -1
  336. package/dist/cli/commands/recover.js +25 -6
  337. package/dist/cli/commands/recover.js.map +1 -1
  338. package/dist/cli/commands/regime.d.ts +41 -0
  339. package/dist/cli/commands/regime.d.ts.map +1 -0
  340. package/dist/cli/commands/regime.js +243 -0
  341. package/dist/cli/commands/regime.js.map +1 -0
  342. package/dist/cli/commands/symbolic.js +5 -5
  343. package/dist/cli/errors.d.ts +13 -1
  344. package/dist/cli/errors.d.ts.map +1 -1
  345. package/dist/cli/errors.js +13 -1
  346. package/dist/cli/errors.js.map +1 -1
  347. package/dist/cli/graphs.d.ts.map +1 -1
  348. package/dist/cli/graphs.js +5 -1
  349. package/dist/cli/graphs.js.map +1 -1
  350. package/dist/cli/main.d.ts.map +1 -1
  351. package/dist/cli/main.js +29 -2
  352. package/dist/cli/main.js.map +1 -1
  353. package/dist/cli/output.d.ts +6 -1
  354. package/dist/cli/output.d.ts.map +1 -1
  355. package/dist/cli/output.js.map +1 -1
  356. package/dist/cli/version.js.map +1 -1
  357. package/dist/cli-api.d.ts +21 -1
  358. package/dist/cli-api.d.ts.map +1 -1
  359. package/dist/cli-api.js +23 -1
  360. package/dist/cli-api.js.map +1 -1
  361. package/dist/composition/axis-audit.js.map +1 -1
  362. package/dist/composition/bridge-prediction.d.ts.map +1 -1
  363. package/dist/composition/bridge-prediction.js +0 -0
  364. package/dist/composition/bridge-prediction.js.map +1 -1
  365. package/dist/composition/canonical-compare.d.ts +65 -0
  366. package/dist/composition/canonical-compare.d.ts.map +1 -0
  367. package/dist/composition/canonical-compare.js +237 -0
  368. package/dist/composition/canonical-compare.js.map +1 -0
  369. package/dist/composition/canonical-graph.d.ts +2 -2
  370. package/dist/composition/canonical-graph.js +2 -2
  371. package/dist/composition/canonical-graph.js.map +1 -1
  372. package/dist/composition/canonical-prefactors.d.ts +32 -0
  373. package/dist/composition/canonical-prefactors.d.ts.map +1 -0
  374. package/dist/composition/canonical-prefactors.js +80 -0
  375. package/dist/composition/canonical-prefactors.js.map +1 -0
  376. package/dist/composition/compose-symbolic.d.ts.map +1 -1
  377. package/dist/composition/compose-symbolic.js.map +1 -1
  378. package/dist/composition/compose.d.ts.map +1 -1
  379. package/dist/composition/compose.js +80 -1
  380. package/dist/composition/compose.js.map +1 -1
  381. package/dist/composition/consequence.js.map +1 -1
  382. package/dist/composition/discovery.d.ts +20 -3
  383. package/dist/composition/discovery.d.ts.map +1 -1
  384. package/dist/composition/discovery.js +30 -4
  385. package/dist/composition/discovery.js.map +1 -1
  386. package/dist/composition/edge.d.ts +64 -0
  387. package/dist/composition/edge.d.ts.map +1 -1
  388. package/dist/composition/edge.js +29 -0
  389. package/dist/composition/edge.js.map +1 -1
  390. package/dist/composition/edges/calibration.d.ts.map +1 -1
  391. package/dist/composition/edges/calibration.js +46 -0
  392. package/dist/composition/edges/calibration.js.map +1 -1
  393. package/dist/composition/edges/catalog-quantum.d.ts.map +1 -1
  394. package/dist/composition/edges/catalog-quantum.js +9 -0
  395. package/dist/composition/edges/catalog-quantum.js.map +1 -1
  396. package/dist/composition/edges/catalog-tranche.d.ts.map +1 -1
  397. package/dist/composition/edges/catalog-tranche.js +18 -0
  398. package/dist/composition/edges/catalog-tranche.js.map +1 -1
  399. package/dist/composition/enumerate.js.map +1 -1
  400. package/dist/composition/explain.d.ts +9 -1
  401. package/dist/composition/explain.d.ts.map +1 -1
  402. package/dist/composition/explain.js +34 -8
  403. package/dist/composition/explain.js.map +1 -1
  404. package/dist/composition/expr-eval.d.ts.map +1 -1
  405. package/dist/composition/expr-eval.js.map +1 -1
  406. package/dist/composition/expr-simplify.d.ts +13 -0
  407. package/dist/composition/expr-simplify.d.ts.map +1 -1
  408. package/dist/composition/expr-simplify.js +25 -0
  409. package/dist/composition/expr-simplify.js.map +1 -1
  410. package/dist/composition/expr-subst.js.map +1 -1
  411. package/dist/composition/graph-viz-svg.d.ts.map +1 -1
  412. package/dist/composition/graph-viz.d.ts +118 -1
  413. package/dist/composition/graph-viz.d.ts.map +1 -1
  414. package/dist/composition/graph-viz.js +189 -6
  415. package/dist/composition/graph-viz.js.map +1 -1
  416. package/dist/composition/grounding.d.ts.map +1 -1
  417. package/dist/composition/grounding.js +6 -1
  418. package/dist/composition/grounding.js.map +1 -1
  419. package/dist/composition/identifiability.js.map +1 -1
  420. package/dist/composition/index.d.ts +4 -2
  421. package/dist/composition/index.d.ts.map +1 -1
  422. package/dist/composition/index.js +2 -1
  423. package/dist/composition/index.js.map +1 -1
  424. package/dist/composition/poster-source.d.ts +153 -0
  425. package/dist/composition/poster-source.d.ts.map +1 -0
  426. package/dist/composition/poster-source.js +183 -0
  427. package/dist/composition/poster-source.js.map +1 -0
  428. package/dist/composition/probe/backend-protocol.d.ts +34 -1
  429. package/dist/composition/probe/backend-protocol.d.ts.map +1 -1
  430. package/dist/composition/probe/backend-protocol.js +9 -2
  431. package/dist/composition/probe/backend-protocol.js.map +1 -1
  432. package/dist/composition/probe/candidate-store.d.ts.map +1 -1
  433. package/dist/composition/probe/corpus.d.ts +12 -0
  434. package/dist/composition/probe/corpus.d.ts.map +1 -1
  435. package/dist/composition/probe/corpus.js +100 -0
  436. package/dist/composition/probe/corpus.js.map +1 -1
  437. package/dist/composition/probe/generator.d.ts +14 -0
  438. package/dist/composition/probe/generator.d.ts.map +1 -1
  439. package/dist/composition/probe/generator.js +24 -2
  440. package/dist/composition/probe/generator.js.map +1 -1
  441. package/dist/composition/probe/limits.js.map +1 -1
  442. package/dist/composition/probe/pipeline.d.ts +5 -0
  443. package/dist/composition/probe/pipeline.d.ts.map +1 -1
  444. package/dist/composition/probe/pipeline.js +20 -3
  445. package/dist/composition/probe/pipeline.js.map +1 -1
  446. package/dist/composition/probe/problem.js.map +1 -1
  447. package/dist/composition/probe/report.d.ts.map +1 -1
  448. package/dist/composition/probe/report.js +2 -0
  449. package/dist/composition/probe/report.js.map +1 -1
  450. package/dist/composition/probe/residual.d.ts.map +1 -1
  451. package/dist/composition/probe/residual.js.map +1 -1
  452. package/dist/composition/probe/search-budget.js.map +1 -1
  453. package/dist/composition/proposed-bridges.d.ts +2 -2
  454. package/dist/composition/proposed-bridges.d.ts.map +1 -1
  455. package/dist/composition/proposed-bridges.js +1 -1
  456. package/dist/composition/proposed-bridges.js.map +1 -1
  457. package/dist/composition/retrodiction.js.map +1 -1
  458. package/dist/composition/uncertainty.d.ts +52 -2
  459. package/dist/composition/uncertainty.d.ts.map +1 -1
  460. package/dist/composition/uncertainty.js +38 -2
  461. package/dist/composition/uncertainty.js.map +1 -1
  462. package/dist/composition/user-equation.d.ts.map +1 -1
  463. package/dist/core/constants.d.ts +13 -0
  464. package/dist/core/constants.d.ts.map +1 -1
  465. package/dist/core/constants.js +13 -0
  466. package/dist/core/constants.js.map +1 -1
  467. package/dist/core/flux-rules.d.ts.map +1 -1
  468. package/dist/core/flux-rules.js.map +1 -1
  469. package/dist/core/labeled-tensor.d.ts.map +1 -1
  470. package/dist/core/regime-registry.d.ts.map +1 -1
  471. package/dist/core/regime-rule-install.js.map +1 -1
  472. package/dist/core/tensor.d.ts.map +1 -1
  473. package/dist/core/tensor.js.map +1 -1
  474. package/dist/core/types.d.ts.map +1 -1
  475. package/dist/diff/bridge-ast-gradient.js.map +1 -1
  476. package/dist/diff/bridge-gradient.d.ts +1 -1
  477. package/dist/diff/bridge-gradient.js +1 -1
  478. package/dist/dimensional/ast-types.d.ts +31 -1
  479. package/dist/dimensional/ast-types.d.ts.map +1 -1
  480. package/dist/dimensional/bridge-check.d.ts +1 -1
  481. package/dist/dimensional/bridge-check.js +1 -1
  482. package/dist/dimensional/buckingham.d.ts.map +1 -1
  483. package/dist/dimensional/connection.d.ts +2 -0
  484. package/dist/dimensional/connection.d.ts.map +1 -1
  485. package/dist/dimensional/connection.js +2 -0
  486. package/dist/dimensional/connection.js.map +1 -1
  487. package/dist/dimensional/curvature-composite.d.ts +5 -3
  488. package/dist/dimensional/curvature-composite.d.ts.map +1 -1
  489. package/dist/dimensional/curvature-composite.js +1 -0
  490. package/dist/dimensional/curvature-composite.js.map +1 -1
  491. package/dist/dimensional/curvature-invariants.d.ts +2 -0
  492. package/dist/dimensional/curvature-invariants.d.ts.map +1 -1
  493. package/dist/dimensional/curvature-invariants.js +2 -0
  494. package/dist/dimensional/curvature-invariants.js.map +1 -1
  495. package/dist/dimensional/dimension-spec.d.ts.map +1 -1
  496. package/dist/dimensional/einstein-equation.d.ts +3 -3
  497. package/dist/dimensional/einstein-equation.js +3 -3
  498. package/dist/dimensional/errors.d.ts.map +1 -1
  499. package/dist/dimensional/metric.d.ts +5 -2
  500. package/dist/dimensional/metric.d.ts.map +1 -1
  501. package/dist/dimensional/metric.js +5 -2
  502. package/dist/dimensional/metric.js.map +1 -1
  503. package/dist/dimensional/tensor-trace.js.map +1 -1
  504. package/dist/dimensional/validator-registry.js.map +1 -1
  505. package/dist/dimensional/validator.d.ts +3 -2
  506. package/dist/dimensional/validator.d.ts.map +1 -1
  507. package/dist/dimensional/validator.js +23 -4
  508. package/dist/dimensional/validator.js.map +1 -1
  509. package/dist/index.d.ts +4 -3
  510. package/dist/index.d.ts.map +1 -1
  511. package/dist/index.js +4 -1
  512. package/dist/index.js.map +1 -1
  513. package/dist/numerical/curvature-lowering-helpers.d.ts.map +1 -1
  514. package/dist/numerical/curvature-lowering-helpers.js +104 -0
  515. package/dist/numerical/curvature-lowering-helpers.js.map +1 -1
  516. package/dist/numerical/errors.d.ts.map +1 -1
  517. package/dist/numerical/errors.js.map +1 -1
  518. package/dist/numerical/float64-engine.d.ts.map +1 -1
  519. package/dist/numerical/float64-engine.js +51 -24
  520. package/dist/numerical/float64-engine.js.map +1 -1
  521. package/dist/numerical/formula-dimension.d.ts.map +1 -1
  522. package/dist/numerical/formula-dimension.js.map +1 -1
  523. package/dist/numerical/formula.d.ts.map +1 -1
  524. package/dist/numerical/formula.js.map +1 -1
  525. package/dist/numerical/geometrized.d.ts.map +1 -1
  526. package/dist/numerical/gl4-integrator.d.ts +3 -3
  527. package/dist/numerical/gl4-integrator.js +3 -3
  528. package/dist/numerical/killing.d.ts +47 -5
  529. package/dist/numerical/killing.d.ts.map +1 -1
  530. package/dist/numerical/killing.js +41 -3
  531. package/dist/numerical/killing.js.map +1 -1
  532. package/dist/numerical/klein-gordon.d.ts +2 -2
  533. package/dist/numerical/klein-gordon.js +2 -2
  534. package/dist/numerical/lowering.d.ts +2 -2
  535. package/dist/numerical/lowering.d.ts.map +1 -1
  536. package/dist/numerical/lowering.js +5 -3
  537. package/dist/numerical/lowering.js.map +1 -1
  538. package/dist/numerical/mathts-engine.d.ts.map +1 -1
  539. package/dist/numerical/mathts-engine.js.map +1 -1
  540. package/dist/numerical/metric-inverse.js.map +1 -1
  541. package/dist/numerical/perihelion-finder.d.ts +15 -13
  542. package/dist/numerical/perihelion-finder.d.ts.map +1 -1
  543. package/dist/numerical/perihelion-finder.js +15 -13
  544. package/dist/numerical/perihelion-finder.js.map +1 -1
  545. package/dist/numerical/weyl-lowering.d.ts.map +1 -1
  546. package/dist/numerical/weyl-lowering.js +90 -40
  547. package/dist/numerical/weyl-lowering.js.map +1 -1
  548. package/package.json +163 -104
@@ -0,0 +1,149 @@
1
+ /**
2
+ * Atlas Phase 4, S4.5 — the numerics behind the wave family's witnesses.
3
+ *
4
+ * Each function evaluates one claim at a RESOLUTION, so the numeric witness
5
+ * runner can record how the error shrinks under refinement. No function
6
+ * asserts an order; the runner reports the ratio (Phase 4 design note §2.3).
7
+ *
8
+ * @module atlas/waves/numerics
9
+ */
10
+ /** Parameters of the WS1 string fixture. @internal */
11
+ export interface StringFixture {
12
+ /** Tension F. */
13
+ readonly tension: number;
14
+ /** Linear mass density μ. */
15
+ readonly mu: number;
16
+ /** Final time. */
17
+ readonly tEnd: number;
18
+ }
19
+ /**
20
+ * WS1 — the displacement at the midpoint `x = ½, t = tEnd` of a string of unit
21
+ * length with fixed ends, from a leapfrog solution of `μ y_tt = F y_xx` written
22
+ * in the string's OWN variables, starting from `y = sin(πx)` at rest.
23
+ *
24
+ * The comparison target, `sin(πx) cos(π c t)` with `c = √(F/μ)`, is the 1-D
25
+ * wave equation's solution, so the pair tests the restriction's dictionary.
26
+ * The Courant number `cΔt/Δx` is held at 1/2.
27
+ *
28
+ * @param cells - spatial intervals (made even so the midpoint is a node).
29
+ * @internal
30
+ */
31
+ export declare function stringLeapfrogMidpoint(cells: number, f: StringFixture): number;
32
+ /** Parameters of the WS2 d'Alembert fixture. @internal */
33
+ export interface DalembertFixture {
34
+ readonly c: number;
35
+ /** The point `(x, t)` the residual is evaluated at. */
36
+ readonly x: number;
37
+ readonly t: number;
38
+ /** Base finite-difference step; the resolution divides it. */
39
+ readonly h0: number;
40
+ }
41
+ /**
42
+ * The d'Alembert form `u = f(x − ct) + g(x + ct)` with the WS2 profiles.
43
+ *
44
+ * @internal
45
+ */
46
+ export declare function dalembert(x: number, t: number, c: number): number;
47
+ /**
48
+ * WS2 — the finite-difference residual `|u_tt − c² u_xx|` of the d'Alembert
49
+ * form at one point, step `h = h0/resolution` in both variables. Exactly zero
50
+ * in the limit; the runner records how fast the estimate gets there.
51
+ *
52
+ * @internal
53
+ */
54
+ export declare function dalembertResidual(resolution: number, f: DalembertFixture): number;
55
+ /** Parameters of the WS3 acoustic fixture. @internal */
56
+ export interface AcousticFixture {
57
+ /** Ambient pressure p₀. */
58
+ readonly p0: number;
59
+ /** Ambient density ρ₀. */
60
+ readonly rho0: number;
61
+ /** Adiabatic index γ. */
62
+ readonly gamma: number;
63
+ readonly tEnd: number;
64
+ }
65
+ /**
66
+ * The adiabatic equation of state `p(ρ) = p₀ (ρ/ρ₀)^γ` — the SECOND premise of
67
+ * the sound-speed hyperedge — and its derivative at `ρ`.
68
+ *
69
+ * @internal
70
+ */
71
+ export declare function adiabaticSlope(rho: number, f: AcousticFixture): number;
72
+ /**
73
+ * WS3 — the pressure perturbation at `x = ¼, t = tEnd` from a staggered
74
+ * leapfrog solution of the LINEARIZED EULER equations
75
+ * `∂ρ′/∂t = −ρ₀ ∂v/∂x`, `ρ₀ ∂v/∂t = −∂p′/∂x`, closed by the ADIABATIC EOS
76
+ * `p′ = (dp/dρ)|ρ₀ ρ′`, on a periodic unit domain from `p′ = sin 2πx` at rest.
77
+ *
78
+ * Both premises enter in their own form: the Euler pair steps `ρ′` and `v`,
79
+ * and the only link from `ρ′` to `p′` is {@link adiabaticSlope}. The
80
+ * comparison target `sin(2πx) cos(2π c t)` with `c² = γ p₀/ρ₀` is the SOUND
81
+ * model's solution, so the pair tests the hyperedge's derivation.
82
+ *
83
+ * @param cells - grid intervals (made a multiple of 4 so `x = ¼` is a node).
84
+ * @internal
85
+ */
86
+ export declare function acousticLeapfrogQuarter(cells: number, f: AcousticFixture): number;
87
+ /**
88
+ * Speed of sound from the adiabatic (Laplace) and isothermal (Newton) closures.
89
+ *
90
+ * @internal
91
+ */
92
+ export declare function soundSpeeds(p0: number, rho0: number, gamma: number): {
93
+ readonly adiabatic: number;
94
+ readonly isothermal: number;
95
+ };
96
+ /**
97
+ * Relative phase-velocity error of the Klein–Gordon mode against the
98
+ * dispersion-free wave: `√(1 + (ω₀/(c k))²) − 1`.
99
+ *
100
+ * This is the exact quantity the approximation bound of `ab-klein-gordon-wave`
101
+ * is stated in; it is increasing in `ω₀/(c k)`, so its value at the edge of the
102
+ * declared range is the supremum over the range.
103
+ *
104
+ * @internal
105
+ */
106
+ export declare function kleinGordonPhaseError(omega0: number, c: number, k: number): number;
107
+ /**
108
+ * WS4 — the Klein–Gordon phase velocity `√(c² + ω₀²/k²)` at wavenumber
109
+ * `k = k₀ · resolution`. It tends to the wave speed `c` as `k` grows: the
110
+ * dispersion-free limit, approached from above.
111
+ *
112
+ * @internal
113
+ */
114
+ export declare function kleinGordonPhaseVelocity(resolution: number, omega0: number, c: number, k0: number): number;
115
+ /**
116
+ * The relative error of the non-relativistic kinetic frequency: the
117
+ * Klein–Gordon mode's `ω − ω₀ = ω₀(√(1 + x²) − 1)` against the free
118
+ * Schrödinger particle's `ω₀ x²/2` under `ħ/m ↦ c²/ω₀`, with `x = c k/ω₀`.
119
+ * Equals `|(√(1 + x²) − 1)/(x²/2) − 1|`, increasing in x.
120
+ *
121
+ * @internal
122
+ */
123
+ export declare function kgNonrelativisticError(x: number): number;
124
+ /**
125
+ * WS6 — `u(tEnd)` of the SPATIALLY UNIFORM Klein–Gordon field on a periodic
126
+ * grid, stepped by leapfrog in the full PDE `u_tt = c² u_xx − ω₀² u` from
127
+ * `u = 1` at rest, with `steps` time steps. The uniform mode's Laplacian
128
+ * vanishes, so the field should follow the oscillator solution `cos(ω₀ t)`.
129
+ *
130
+ * @internal
131
+ */
132
+ export declare function kgUniformModeValue(steps: number, c: number, omega0: number, tEnd: number, cells?: number): number;
133
+ /**
134
+ * Relative phase-velocity error of a stiff string against the flexible string:
135
+ * `√(1 + β) − 1` with `β = EI k²/F`. Increasing in β, so its value at the
136
+ * domain edge is the supremum over the domain.
137
+ *
138
+ * @internal
139
+ */
140
+ export declare function stiffStringPhaseError(F: number, EI: number, k: number): number;
141
+ /**
142
+ * WS7 — the stiff string's phase velocity `√(F/μ + (EI/μ)k²)` at wavenumber
143
+ * `k = k₀/resolution`: it tends to the flexible-string speed `√(F/μ)` as the
144
+ * wavelength grows.
145
+ *
146
+ * @internal
147
+ */
148
+ export declare function stiffStringPhaseVelocity(resolution: number, F: number, mu: number, EI: number, k0: number): number;
149
+ //# sourceMappingURL=numerics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"numerics.d.ts","sourceRoot":"","sources":["../../../src/atlas/waves/numerics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,218 @@
1
+ /**
2
+ * Atlas Phase 4, S4.5 — the numerics behind the wave family's witnesses.
3
+ *
4
+ * Each function evaluates one claim at a RESOLUTION, so the numeric witness
5
+ * runner can record how the error shrinks under refinement. No function
6
+ * asserts an order; the runner reports the ratio (Phase 4 design note §2.3).
7
+ *
8
+ * @module atlas/waves/numerics
9
+ */
10
+ /**
11
+ * WS1 — the displacement at the midpoint `x = ½, t = tEnd` of a string of unit
12
+ * length with fixed ends, from a leapfrog solution of `μ y_tt = F y_xx` written
13
+ * in the string's OWN variables, starting from `y = sin(πx)` at rest.
14
+ *
15
+ * The comparison target, `sin(πx) cos(π c t)` with `c = √(F/μ)`, is the 1-D
16
+ * wave equation's solution, so the pair tests the restriction's dictionary.
17
+ * The Courant number `cΔt/Δx` is held at 1/2.
18
+ *
19
+ * @param cells - spatial intervals (made even so the midpoint is a node).
20
+ * @internal
21
+ */
22
+ export function stringLeapfrogMidpoint(cells, f) {
23
+ const nx = 2 * Math.ceil(cells / 2);
24
+ const dx = 1 / nx;
25
+ // Courant 1/2 from the string's own coefficients: Δt = ½ Δx √(μ/F).
26
+ const dtMax = 0.5 * dx * Math.sqrt(f.mu / f.tension);
27
+ const steps = Math.ceil(f.tEnd / dtMax);
28
+ const dt = f.tEnd / steps;
29
+ const r2 = (f.tension * dt * dt) / (f.mu * dx * dx);
30
+ let prev = new Float64Array(nx + 1);
31
+ let cur = new Float64Array(nx + 1);
32
+ let next = new Float64Array(nx + 1);
33
+ for (let i = 0; i <= nx; i++)
34
+ prev[i] = Math.sin(Math.PI * i * dx);
35
+ // First step from rest: y¹ = y⁰ + ½ r² δ²y⁰ (second-order start).
36
+ for (let i = 1; i < nx; i++) {
37
+ cur[i] = prev[i] + 0.5 * r2 * (prev[i + 1] - 2 * prev[i] + prev[i - 1]);
38
+ }
39
+ for (let n = 1; n < steps; n++) {
40
+ for (let i = 1; i < nx; i++) {
41
+ next[i] = 2 * cur[i] - prev[i] + r2 * (cur[i + 1] - 2 * cur[i] + cur[i - 1]);
42
+ }
43
+ [prev, cur, next] = [cur, next, prev];
44
+ }
45
+ return cur[nx / 2];
46
+ }
47
+ /** The two profiles of WS2: deliberately different, so neither direction is trivial. */
48
+ const profileRight = (s) => Math.exp(-s * s);
49
+ const profileLeft = (s) => 0.5 * Math.exp(-((s - 1) * (s - 1)) / 0.5);
50
+ /**
51
+ * The d'Alembert form `u = f(x − ct) + g(x + ct)` with the WS2 profiles.
52
+ *
53
+ * @internal
54
+ */
55
+ export function dalembert(x, t, c) {
56
+ return profileRight(x - c * t) + profileLeft(x + c * t);
57
+ }
58
+ /**
59
+ * WS2 — the finite-difference residual `|u_tt − c² u_xx|` of the d'Alembert
60
+ * form at one point, step `h = h0/resolution` in both variables. Exactly zero
61
+ * in the limit; the runner records how fast the estimate gets there.
62
+ *
63
+ * @internal
64
+ */
65
+ export function dalembertResidual(resolution, f) {
66
+ const h = f.h0 / resolution;
67
+ const u = (x, t) => dalembert(x, t, f.c);
68
+ const utt = (u(f.x, f.t + h) - 2 * u(f.x, f.t) + u(f.x, f.t - h)) / (h * h);
69
+ const uxx = (u(f.x + h, f.t) - 2 * u(f.x, f.t) + u(f.x - h, f.t)) / (h * h);
70
+ return Math.abs(utt - f.c * f.c * uxx);
71
+ }
72
+ /**
73
+ * The adiabatic equation of state `p(ρ) = p₀ (ρ/ρ₀)^γ` — the SECOND premise of
74
+ * the sound-speed hyperedge — and its derivative at `ρ`.
75
+ *
76
+ * @internal
77
+ */
78
+ export function adiabaticSlope(rho, f) {
79
+ return (f.gamma * f.p0 * Math.pow(rho / f.rho0, f.gamma - 1)) / f.rho0;
80
+ }
81
+ /**
82
+ * WS3 — the pressure perturbation at `x = ¼, t = tEnd` from a staggered
83
+ * leapfrog solution of the LINEARIZED EULER equations
84
+ * `∂ρ′/∂t = −ρ₀ ∂v/∂x`, `ρ₀ ∂v/∂t = −∂p′/∂x`, closed by the ADIABATIC EOS
85
+ * `p′ = (dp/dρ)|ρ₀ ρ′`, on a periodic unit domain from `p′ = sin 2πx` at rest.
86
+ *
87
+ * Both premises enter in their own form: the Euler pair steps `ρ′` and `v`,
88
+ * and the only link from `ρ′` to `p′` is {@link adiabaticSlope}. The
89
+ * comparison target `sin(2πx) cos(2π c t)` with `c² = γ p₀/ρ₀` is the SOUND
90
+ * model's solution, so the pair tests the hyperedge's derivation.
91
+ *
92
+ * @param cells - grid intervals (made a multiple of 4 so `x = ¼` is a node).
93
+ * @internal
94
+ */
95
+ export function acousticLeapfrogQuarter(cells, f) {
96
+ const nx = 4 * Math.ceil(cells / 4);
97
+ const dx = 1 / nx;
98
+ const slope = adiabaticSlope(f.rho0, f);
99
+ const cMax = Math.sqrt(slope);
100
+ const dtMax = (0.5 * dx) / cMax;
101
+ const steps = Math.ceil(f.tEnd / dtMax);
102
+ const dt = f.tEnd / steps;
103
+ // ρ′ at nodes i·Δx; v at half-nodes (i + ½)Δx, periodic.
104
+ const rho = new Float64Array(nx);
105
+ const v = new Float64Array(nx);
106
+ for (let i = 0; i < nx; i++)
107
+ rho[i] = Math.sin(2 * Math.PI * i * dx) / slope;
108
+ const pressure = (i) => slope * rho[(i + nx) % nx];
109
+ // Half step from rest: v^{1/2} = −(Δt/2ρ₀) ∂p′/∂x.
110
+ for (let i = 0; i < nx; i++)
111
+ v[i] = (-(0.5 * dt) / f.rho0) * ((pressure(i + 1) - pressure(i)) / dx);
112
+ for (let n = 0; n < steps; n++) {
113
+ for (let i = 0; i < nx; i++) {
114
+ const dv = (v[i] - v[(i - 1 + nx) % nx]) / dx;
115
+ rho[i] = rho[i] - dt * f.rho0 * dv;
116
+ }
117
+ if (n < steps - 1) {
118
+ for (let i = 0; i < nx; i++)
119
+ v[i] = v[i] - (dt / f.rho0) * ((pressure(i + 1) - pressure(i)) / dx);
120
+ }
121
+ }
122
+ return pressure(nx / 4);
123
+ }
124
+ /**
125
+ * Speed of sound from the adiabatic (Laplace) and isothermal (Newton) closures.
126
+ *
127
+ * @internal
128
+ */
129
+ export function soundSpeeds(p0, rho0, gamma) {
130
+ return { adiabatic: Math.sqrt((gamma * p0) / rho0), isothermal: Math.sqrt(p0 / rho0) };
131
+ }
132
+ /**
133
+ * Relative phase-velocity error of the Klein–Gordon mode against the
134
+ * dispersion-free wave: `√(1 + (ω₀/(c k))²) − 1`.
135
+ *
136
+ * This is the exact quantity the approximation bound of `ab-klein-gordon-wave`
137
+ * is stated in; it is increasing in `ω₀/(c k)`, so its value at the edge of the
138
+ * declared range is the supremum over the range.
139
+ *
140
+ * @internal
141
+ */
142
+ export function kleinGordonPhaseError(omega0, c, k) {
143
+ const ratio = omega0 / (c * k);
144
+ return Math.sqrt(1 + ratio * ratio) - 1;
145
+ }
146
+ /**
147
+ * WS4 — the Klein–Gordon phase velocity `√(c² + ω₀²/k²)` at wavenumber
148
+ * `k = k₀ · resolution`. It tends to the wave speed `c` as `k` grows: the
149
+ * dispersion-free limit, approached from above.
150
+ *
151
+ * @internal
152
+ */
153
+ export function kleinGordonPhaseVelocity(resolution, omega0, c, k0) {
154
+ const k = k0 * resolution;
155
+ return Math.sqrt(c * c + (omega0 * omega0) / (k * k));
156
+ }
157
+ // ── Sprint 4 closure: Klein–Gordon limits, weak damping ────────────────────
158
+ /**
159
+ * The relative error of the non-relativistic kinetic frequency: the
160
+ * Klein–Gordon mode's `ω − ω₀ = ω₀(√(1 + x²) − 1)` against the free
161
+ * Schrödinger particle's `ω₀ x²/2` under `ħ/m ↦ c²/ω₀`, with `x = c k/ω₀`.
162
+ * Equals `|(√(1 + x²) − 1)/(x²/2) − 1|`, increasing in x.
163
+ *
164
+ * @internal
165
+ */
166
+ export function kgNonrelativisticError(x) {
167
+ if (x === 0)
168
+ return 0;
169
+ return Math.abs((Math.sqrt(1 + x * x) - 1) / ((x * x) / 2) - 1);
170
+ }
171
+ /**
172
+ * WS6 — `u(tEnd)` of the SPATIALLY UNIFORM Klein–Gordon field on a periodic
173
+ * grid, stepped by leapfrog in the full PDE `u_tt = c² u_xx − ω₀² u` from
174
+ * `u = 1` at rest, with `steps` time steps. The uniform mode's Laplacian
175
+ * vanishes, so the field should follow the oscillator solution `cos(ω₀ t)`.
176
+ *
177
+ * @internal
178
+ */
179
+ export function kgUniformModeValue(steps, c, omega0, tEnd, cells = 16) {
180
+ const dt = tEnd / steps;
181
+ const dx = 1 / cells;
182
+ let prev = new Float64Array(cells).fill(1);
183
+ let cur = new Float64Array(cells);
184
+ let next = new Float64Array(cells);
185
+ const lap = (a, i) => (a[(i + 1) % cells] - 2 * a[i] + a[(i - 1 + cells) % cells]) / (dx * dx);
186
+ for (let i = 0; i < cells; i++) {
187
+ cur[i] = prev[i] + 0.5 * dt * dt * (c * c * lap(prev, i) - omega0 * omega0 * prev[i]);
188
+ }
189
+ for (let n = 1; n < steps; n++) {
190
+ for (let i = 0; i < cells; i++) {
191
+ next[i] = 2 * cur[i] - prev[i] + dt * dt * (c * c * lap(cur, i) - omega0 * omega0 * cur[i]);
192
+ }
193
+ [prev, cur, next] = [cur, next, prev];
194
+ }
195
+ return cur[0];
196
+ }
197
+ /**
198
+ * Relative phase-velocity error of a stiff string against the flexible string:
199
+ * `√(1 + β) − 1` with `β = EI k²/F`. Increasing in β, so its value at the
200
+ * domain edge is the supremum over the domain.
201
+ *
202
+ * @internal
203
+ */
204
+ export function stiffStringPhaseError(F, EI, k) {
205
+ return Math.sqrt(1 + (EI * k * k) / F) - 1;
206
+ }
207
+ /**
208
+ * WS7 — the stiff string's phase velocity `√(F/μ + (EI/μ)k²)` at wavenumber
209
+ * `k = k₀/resolution`: it tends to the flexible-string speed `√(F/μ)` as the
210
+ * wavelength grows.
211
+ *
212
+ * @internal
213
+ */
214
+ export function stiffStringPhaseVelocity(resolution, F, mu, EI, k0) {
215
+ const k = k0 / resolution;
216
+ return Math.sqrt(F / mu + (EI / mu) * k * k);
217
+ }
218
+ //# sourceMappingURL=numerics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"numerics.js","sourceRoot":"","sources":["../../../src/atlas/waves/numerics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Atlas Phase 4, S4.3 — the witness-results ARTIFACT: its shape, the run that
3
+ * produces it, and the one reader that turns it into passing witness ids.
4
+ *
5
+ * Design note: `docs/planning/Atlas-Phase-4-Design.md` §3.
6
+ *
7
+ * **The load-bearing invariant: no test writes the artifact.** The Lead runs
8
+ * `scripts/emit-witness-results.mjs`, which calls {@link runWitnessRegistry}
9
+ * and writes `data/atlas/witness-results.json`. `tests/atlas/witness-results.test.ts`
10
+ * deep-equals the committed file against a fresh in-process run — the
11
+ * `atlas-json` pattern. A test that wrote the artifact would certify whatever
12
+ * the last run happened to produce, which is the opposite of a check.
13
+ *
14
+ * **The artifact is deterministic by construction.** `elapsedMs` is dropped:
15
+ * wall-clock time differs on every run, and a pin that deep-equals it could
16
+ * never pass twice. Everything kept is a function of the specs and the peer.
17
+ *
18
+ * @module atlas/witness-artifact
19
+ * @internal
20
+ */
21
+ import type { Convergence } from './witness-numeric.js';
22
+ import type { UnresolvedReason, WitnessStatus } from './witness-result.js';
23
+ import type { SymbolicSimplifier } from './witness-symbolic.js';
24
+ import type { RegisteredWitness } from './witness-specs.js';
25
+ /** One row of the artifact. @internal */
26
+ export interface WitnessResultRecord {
27
+ readonly recordId: string;
28
+ readonly witnessId: string;
29
+ readonly kind: 'symbolic' | 'numeric';
30
+ readonly status: WitnessStatus;
31
+ /** Present iff `status === 'unresolved'`. */
32
+ readonly reason?: UnresolvedReason;
33
+ readonly detail: string;
34
+ /** Numeric witnesses only, and only when a number was produced. */
35
+ readonly convergence?: Convergence;
36
+ }
37
+ /** The committed artifact, `data/atlas/witness-results.json`. @internal */
38
+ export interface WitnessResultsArtifact {
39
+ readonly schemaVersion: '0';
40
+ readonly results: readonly WitnessResultRecord[];
41
+ }
42
+ /**
43
+ * Run every registered witness and assemble the artifact.
44
+ *
45
+ * @param registry - the witnesses to run; defaults to {@link WITNESS_REGISTRY}.
46
+ * @param simplifier - forwarded to `runSymbolicWitness`. Omit it for the real
47
+ * peer (resolved through `isSimplifierAvailable()`); pass `null` to run every
48
+ * symbolic witness as peer-absent.
49
+ * @returns the artifact; never throws, because neither runner does.
50
+ * @internal
51
+ */
52
+ export declare function runWitnessRegistry(registry?: readonly RegisteredWitness[], simplifier?: SymbolicSimplifier | null): Promise<WitnessResultsArtifact>;
53
+ /**
54
+ * The ids of witnesses of `recordId` that the artifact records as `'checked'`
55
+ * — the value to pass as `deriveEvidence`'s `passingWitnessIds` for the
56
+ * artifact-governed kinds.
57
+ *
58
+ * Only `'checked'` counts. An `'unresolved'` row (peer absent, timeout, an
59
+ * irreducible difference) is not a pass, and admitting it would hand
60
+ * `symbolically-checked` to a claim nobody examined.
61
+ *
62
+ * @internal
63
+ */
64
+ export declare function artifactPassingWitnessIds(artifact: WitnessResultsArtifact, recordId: string): ReadonlySet<string>;
65
+ //# sourceMappingURL=witness-artifact.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"witness-artifact.d.ts","sourceRoot":"","sources":["../../src/atlas/witness-artifact.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,KAAK,EAAE,gBAAgB,EAAoB,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC7F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAG5D,yCAAyC;AACzC,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,6CAA6C;IAC7C,QAAQ,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,mEAAmE;IACnE,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;CACpC;AAED,2EAA2E;AAC3E,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,SAAS,mBAAmB,EAAE,CAAC;CAClD;AAED;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,GAAE,SAAS,iBAAiB,EAAqB,EACzD,UAAU,CAAC,EAAE,kBAAkB,GAAG,IAAI,GACrC,OAAO,CAAC,sBAAsB,CAAC,CA0BjC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,sBAAsB,EAChC,QAAQ,EAAE,MAAM,GACf,WAAW,CAAC,MAAM,CAAC,CAMrB"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Atlas Phase 4, S4.3 — the witness-results ARTIFACT: its shape, the run that
3
+ * produces it, and the one reader that turns it into passing witness ids.
4
+ *
5
+ * Design note: `docs/planning/Atlas-Phase-4-Design.md` §3.
6
+ *
7
+ * **The load-bearing invariant: no test writes the artifact.** The Lead runs
8
+ * `scripts/emit-witness-results.mjs`, which calls {@link runWitnessRegistry}
9
+ * and writes `data/atlas/witness-results.json`. `tests/atlas/witness-results.test.ts`
10
+ * deep-equals the committed file against a fresh in-process run — the
11
+ * `atlas-json` pattern. A test that wrote the artifact would certify whatever
12
+ * the last run happened to produce, which is the opposite of a check.
13
+ *
14
+ * **The artifact is deterministic by construction.** `elapsedMs` is dropped:
15
+ * wall-clock time differs on every run, and a pin that deep-equals it could
16
+ * never pass twice. Everything kept is a function of the specs and the peer.
17
+ *
18
+ * @module atlas/witness-artifact
19
+ * @internal
20
+ */
21
+ import { runNumericWitness } from './witness-numeric.js';
22
+ import { runSymbolicWitness } from './witness-symbolic.js';
23
+ import { WITNESS_REGISTRY } from './witness-specs.js';
24
+ /**
25
+ * Run every registered witness and assemble the artifact.
26
+ *
27
+ * @param registry - the witnesses to run; defaults to {@link WITNESS_REGISTRY}.
28
+ * @param simplifier - forwarded to `runSymbolicWitness`. Omit it for the real
29
+ * peer (resolved through `isSimplifierAvailable()`); pass `null` to run every
30
+ * symbolic witness as peer-absent.
31
+ * @returns the artifact; never throws, because neither runner does.
32
+ * @internal
33
+ */
34
+ export async function runWitnessRegistry(registry = WITNESS_REGISTRY, simplifier) {
35
+ const results = [];
36
+ for (const entry of registry) {
37
+ // Sequential on purpose: the order of the artifact is the order of the
38
+ // registry, and a symbolic run's timeout budget should not compete with
39
+ // its neighbours for the event loop.
40
+ let run;
41
+ let convergence;
42
+ if (entry.kind === 'symbolic') {
43
+ run = await runSymbolicWitness(entry.spec, simplifier);
44
+ }
45
+ else {
46
+ const numeric = runNumericWitness(entry.spec);
47
+ run = numeric;
48
+ convergence = numeric.convergence;
49
+ }
50
+ results.push({
51
+ recordId: entry.recordId,
52
+ witnessId: run.witnessId,
53
+ kind: run.kind,
54
+ status: run.status,
55
+ ...(run.reason === undefined ? {} : { reason: run.reason }),
56
+ detail: run.detail,
57
+ ...(convergence === undefined ? {} : { convergence }),
58
+ });
59
+ }
60
+ return { schemaVersion: '0', results };
61
+ }
62
+ /**
63
+ * The ids of witnesses of `recordId` that the artifact records as `'checked'`
64
+ * — the value to pass as `deriveEvidence`'s `passingWitnessIds` for the
65
+ * artifact-governed kinds.
66
+ *
67
+ * Only `'checked'` counts. An `'unresolved'` row (peer absent, timeout, an
68
+ * irreducible difference) is not a pass, and admitting it would hand
69
+ * `symbolically-checked` to a claim nobody examined.
70
+ *
71
+ * @internal
72
+ */
73
+ export function artifactPassingWitnessIds(artifact, recordId) {
74
+ return new Set(artifact.results
75
+ .filter((r) => r.recordId === recordId && r.status === 'checked')
76
+ .map((r) => r.witnessId));
77
+ }
78
+ //# sourceMappingURL=witness-artifact.js.map
@@ -0,0 +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"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Atlas Phase 4, S4.2 — the numeric witness runner.
3
+ *
4
+ * Design note: `docs/planning/Atlas-Phase-4-Design.md` §2.3.
5
+ *
6
+ * A numeric witness evaluates a claim at TWO resolutions and reports whether
7
+ * refinement moved the answer toward the target. Two resolutions are the
8
+ * minimum that can say anything at all: one number agreeing with a target is
9
+ * consistent with a scheme that is simply wrong by an amount the tolerance
10
+ * happens to admit.
11
+ *
12
+ * ## The ratio is REPORTED, never compared against an expected order
13
+ *
14
+ * `convergence.ratio = |coarse − target| / |fine − target|` is the factor by
15
+ * which refinement reduced the error. A second-order scheme halving its step
16
+ * should give ≈ 4; a first-order one ≈ 2. **Nothing here asserts which.** The
17
+ * witnesses in hand do not all record their scheme's order, and asserting an
18
+ * order nobody wrote down would be fabrication of exactly the kind this sprint
19
+ * forbids. The number goes into the results artifact; a reviewer reads it.
20
+ *
21
+ * What the runner DOES decide is the weaker, checkable thing: a ratio at or
22
+ * below 1 means refinement did NOT improve the answer, and that earns
23
+ * `'unresolved'` rather than `'checked'` — a fine value that happens to land
24
+ * inside the tolerance while refinement is not converging is agreement by
25
+ * accident, and the tolerance alone cannot tell the two apart.
26
+ *
27
+ * @module atlas/witness-numeric
28
+ * @internal
29
+ */
30
+ import type { WitnessRunResult } from './witness-result.js';
31
+ /** The two-resolution error record a numeric witness carries. @internal */
32
+ export interface Convergence {
33
+ /** |coarse − target| in the witness's own units. */
34
+ readonly coarse: number;
35
+ /** |fine − target|. */
36
+ readonly fine: number;
37
+ /**
38
+ * `coarse / fine`. Greater than 1 ⇒ refinement helped. `Infinity` when the
39
+ * fine error is exactly zero, which is a legitimate outcome for an exact
40
+ * scheme and must not be reported as a failure.
41
+ */
42
+ readonly ratio: number;
43
+ }
44
+ /** What a numeric witness asserts, and how to evaluate it. @internal */
45
+ export interface NumericWitnessSpec {
46
+ /** The `Witness.id`. */
47
+ readonly id: string;
48
+ /**
49
+ * Evaluate the claim at a resolution. The meaning of the argument is the
50
+ * witness's own (a step count, a grid size, a truncation order); the runner
51
+ * only requires that `fineResolution` is the more refined of the two.
52
+ */
53
+ readonly evaluate: (resolution: number) => number;
54
+ /** The value the claim should reproduce. */
55
+ readonly target: number;
56
+ readonly coarseResolution: number;
57
+ readonly fineResolution: number;
58
+ /**
59
+ * Absolute tolerance the FINE evaluation must meet. Required: a default
60
+ * tolerance is a claim about accuracy that the caller, not this module,
61
+ * is entitled to make.
62
+ */
63
+ readonly tolerance: number;
64
+ }
65
+ /** A result that also carries the two-resolution record, when one was produced. */
66
+ export interface NumericWitnessRunResult extends WitnessRunResult {
67
+ readonly kind: 'numeric';
68
+ /** Absent only when evaluation threw before any number existed. */
69
+ readonly convergence?: Convergence;
70
+ }
71
+ /**
72
+ * Run one numeric witness at two resolutions.
73
+ *
74
+ * @param spec - the claim and its two resolutions.
75
+ * @returns a result carrying `convergence`; **never throws** — an evaluation
76
+ * that throws is `'unresolved'` with `'parse-error'`, because a scheme that
77
+ * blew up has not refuted the physics it was evaluating.
78
+ * @internal
79
+ */
80
+ export declare function runNumericWitness(spec: NumericWitnessSpec): NumericWitnessRunResult;
81
+ //# sourceMappingURL=witness-numeric.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"witness-numeric.d.ts","sourceRoot":"","sources":["../../src/atlas/witness-numeric.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,2EAA2E;AAC3E,MAAM,WAAW,WAAW;IAC1B,oDAAoD;IACpD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,uBAAuB;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,wEAAwE;AACxE,MAAM,WAAW,kBAAkB;IACjC,wBAAwB;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,MAAM,CAAC;IAClD,4CAA4C;IAC5C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,mFAAmF;AACnF,MAAM,WAAW,uBAAwB,SAAQ,gBAAgB;IAC/D,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,mEAAmE;IACnE,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;CACpC;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,kBAAkB,GAAG,uBAAuB,CA0EnF"}