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":"witness-dominance.js","sourceRoot":"","sources":["../../src/atlas/witness-dominance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"witness-dominance.js","sourceRoot":"","sources":["../../src/atlas/witness-dominance.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * The dominance witness runner: a claimed UPPER BOUND checked against a\n * measured quantity at every sample, at two resolutions.\n *\n * `witness-numeric.ts` checks agreement with a target, which is the wrong\n * shape for a bound: a bound that holds is not equal to anything. Here each\n * resolution returns the measured quantity and the bound at the SAME samples.\n * At each sample the coarse-to-fine difference of the measurement, plus the\n * coarse-to-fine difference of the bound when the bound itself is computed\n * numerically, is taken as the numerical uncertainty `u`, and the fine margin\n * `bound − measured` is judged against it:\n *\n * - `'refuted'` iff at some sample the measurement exceeds the bound by more\n * than `u` there;\n * - `'checked'` iff at every sample the bound exceeds the measurement by more\n * than `u` there;\n * - `'unresolved'` (`'no-convergence'`) otherwise: the two resolutions do not\n * settle which side the bound is on at some sample.\n *\n * `u` is conservative: for a convergent scheme the fine error is smaller than\n * the coarse-to-fine difference.\n *\n * @module atlas/witness-dominance\n * @internal\n */\n\nimport type { WitnessRunResult } from './witness-result.js';\n\n/** The executable specification for checking a measured quantity against a claimed upper bound. @internal */\nexport interface DominanceWitnessSpec {\n readonly id: string;\n readonly kind: 'dominance';\n /** At a resolution: the measured quantity and the claimed bound, sample by sample. */\n readonly evaluate: (resolution: number) => { readonly measured: readonly number[]; readonly bound: readonly number[] };\n readonly coarseResolution: number;\n readonly fineResolution: number;\n}\n\n/** The numeric outcome of one dominance-witness run, including margin and tightness. @internal */\nexport interface DominanceRunResult extends WitnessRunResult {\n readonly kind: 'numeric';\n /** min(bound − measured) at the fine resolution; absent when evaluation failed. */\n readonly margin?: number;\n /** max |measured_fine − measured_coarse|. */\n readonly uncertainty?: number;\n /** max(measured / bound) at the fine resolution: how close the bound comes to the measurement. */\n readonly tightness?: number;\n}\n\n/** Run one dominance witness. Never throws: an evaluation that throws is `'unresolved'`. @internal */\nexport function runDominanceWitness(spec: DominanceWitnessSpec): DominanceRunResult {\n const started = Date.now();\n const base = { witnessId: spec.id, kind: 'numeric' as const };\n const elapsed = (): number => Date.now() - started;\n let coarse: ReturnType<DominanceWitnessSpec['evaluate']>;\n let fine: ReturnType<DominanceWitnessSpec['evaluate']>;\n try {\n coarse = spec.evaluate(spec.coarseResolution);\n fine = spec.evaluate(spec.fineResolution);\n } catch (err) {\n return { ...base, status: 'unresolved', reason: 'parse-error', detail: `Evaluation threw: ${String(err)}.`, elapsedMs: elapsed() };\n }\n const n = fine.measured.length;\n const finite = (xs: readonly number[]): boolean => xs.every(Number.isFinite);\n if (\n n === 0 ||\n coarse.measured.length !== n ||\n fine.bound.length !== n ||\n coarse.bound.length !== n ||\n !finite(fine.measured) ||\n !finite(coarse.measured) ||\n !finite(fine.bound) ||\n !finite(coarse.bound)\n ) {\n return {\n ...base,\n status: 'unresolved',\n reason: 'parse-error',\n detail: 'The two resolutions did not produce the same number of finite samples; nothing is concluded.',\n elapsedMs: elapsed(),\n };\n }\n let margin = Infinity;\n let uncertainty = 0;\n let tightness = 0;\n let holds = true;\n let exceeds = false;\n for (let i = 0; i < n; i++) {\n const m = fine.measured[i]!;\n const b = fine.bound[i]!;\n // A closed-form bound is the same at both resolutions and adds nothing;\n // a bound that moved between them is uncertain by that movement.\n const u = Math.abs(m - coarse.measured[i]!) + Math.abs(b - coarse.bound[i]!);\n margin = Math.min(margin, b - m);\n uncertainty = Math.max(uncertainty, u);\n if (b > 0) tightness = Math.max(tightness, m / b);\n if (!(b - m > u)) holds = false;\n if (m - b > u) exceeds = true;\n }\n const record = { margin, uncertainty, tightness };\n const numbers =\n `smallest margin bound − measured = ${margin}, largest numerical uncertainty ${uncertainty}, ` +\n `max measured/bound = ${tightness} over ${n} samples`;\n if (exceeds) {\n return { ...base, status: 'refuted', ...record, detail: `The measurement exceeds the bound by more than its uncertainty: ${numbers}.`, elapsedMs: elapsed() };\n }\n if (holds) {\n return { ...base, status: 'checked', ...record, detail: `The bound holds at every sample by more than its uncertainty: ${numbers}.`, elapsedMs: elapsed() };\n }\n return {\n ...base,\n status: 'unresolved',\n reason: 'no-convergence',\n ...record,\n detail: `The two resolutions do not settle which side of the bound the measurement is on: ${numbers}.`,\n elapsedMs: elapsed(),\n };\n}\n"]}
@@ -24,6 +24,16 @@
24
24
  * inside the tolerance while refinement is not converging is agreement by
25
25
  * accident, and the tolerance alone cannot tell the two apart.
26
26
  *
27
+ * ## An observed order is REPORTED beside the ratio, from three or more resolutions
28
+ *
29
+ * A spec may name further resolutions (`orderResolutions`). With three or
30
+ * more in all, MathTS `linearRegression` of log|error| on log(1/resolution)
31
+ * gives an OBSERVED order with the slope's standard error, carried as
32
+ * {@link ObservedOrder}. The same rule applies: nothing compares it with an
33
+ * expected order, and it changes no verdict. The extra resolutions are
34
+ * evaluated after the two-resolution verdict is fixed; one that throws, is
35
+ * non-finite, or lands exactly on the target drops the fit and nothing else.
36
+ *
27
37
  * @module atlas/witness-numeric
28
38
  * @internal
29
39
  */
@@ -36,11 +46,25 @@ export interface Convergence {
36
46
  readonly fine: number;
37
47
  /**
38
48
  * `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.
49
+ * fine error is exactly zero and the coarse one is not, which is a
50
+ * legitimate outcome for an exact scheme and must not be reported as a
51
+ * failure. `NaN` when BOTH errors are exactly zero: `0/0` has no value,
52
+ * and the run is `'unresolved'` with reason `'no-error-to-reduce'`.
41
53
  */
42
54
  readonly ratio: number;
43
55
  }
56
+ /**
57
+ * The observed order of convergence over `n` resolutions: `slope` is the
58
+ * fitted exponent p in |error| ∝ h^p with h = 1/resolution (the slope of
59
+ * log|error| against log(1/resolution)), `stdErr` the standard error of that
60
+ * slope from the fit (n − 2 degrees of freedom). Reported, never asserted.
61
+ * @internal
62
+ */
63
+ export interface ObservedOrder {
64
+ readonly slope: number;
65
+ readonly stdErr: number;
66
+ readonly n: number;
67
+ }
44
68
  /** What a numeric witness asserts, and how to evaluate it. @internal */
45
69
  export interface NumericWitnessSpec {
46
70
  /** The `Witness.id`. */
@@ -51,22 +75,32 @@ export interface NumericWitnessSpec {
51
75
  * only requires that `fineResolution` is the more refined of the two.
52
76
  */
53
77
  readonly evaluate: (resolution: number) => number;
54
- /** The value the claim should reproduce. */
78
+ /** The value the claim should reproduce. A non-finite target is `'unresolved'`. */
55
79
  readonly target: number;
56
80
  readonly coarseResolution: number;
57
81
  readonly fineResolution: number;
58
82
  /**
59
83
  * Absolute tolerance the FINE evaluation must meet. Required: a default
60
84
  * tolerance is a claim about accuracy that the caller, not this module,
61
- * is entitled to make.
85
+ * is entitled to make. A tolerance that is not a finite number ≥ 0 is
86
+ * `'unresolved'`: `fine > NaN` is false, so a NaN here would otherwise
87
+ * report `'checked'` for any fine value.
62
88
  */
63
89
  readonly tolerance: number;
90
+ /**
91
+ * Further resolutions, beyond `coarseResolution` and `fineResolution`,
92
+ * evaluated only to fit the observed order. They enter no verdict, no
93
+ * convergence record and no detail sentence.
94
+ */
95
+ readonly orderResolutions?: readonly number[];
64
96
  }
65
97
  /** A result that also carries the two-resolution record, when one was produced. */
66
98
  export interface NumericWitnessRunResult extends WitnessRunResult {
67
99
  readonly kind: 'numeric';
68
100
  /** Absent only when evaluation threw before any number existed. */
69
101
  readonly convergence?: Convergence;
102
+ /** Present only when `orderResolutions` gave three or more finite, non-zero errors to fit. */
103
+ readonly observedOrder?: ObservedOrder;
70
104
  }
71
105
  /**
72
106
  * Run one numeric witness at two resolutions.
@@ -1 +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"}
1
+ {"version":3,"file":"witness-numeric.d.ts","sourceRoot":"","sources":["../../src/atlas/witness-numeric.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAGH,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;;;;;;OAMG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;CACpB;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,mFAAmF;IACnF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC;;;;;;OAMG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/C;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;IACnC,8FAA8F;IAC9F,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;CACxC;AAoCD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,kBAAkB,GAAG,uBAAuB,CA+GnF"}
@@ -24,9 +24,54 @@
24
24
  * inside the tolerance while refinement is not converging is agreement by
25
25
  * accident, and the tolerance alone cannot tell the two apart.
26
26
  *
27
+ * ## An observed order is REPORTED beside the ratio, from three or more resolutions
28
+ *
29
+ * A spec may name further resolutions (`orderResolutions`). With three or
30
+ * more in all, MathTS `linearRegression` of log|error| on log(1/resolution)
31
+ * gives an OBSERVED order with the slope's standard error, carried as
32
+ * {@link ObservedOrder}. The same rule applies: nothing compares it with an
33
+ * expected order, and it changes no verdict. The extra resolutions are
34
+ * evaluated after the two-resolution verdict is fixed; one that throws, is
35
+ * non-finite, or lands exactly on the target drops the fit and nothing else.
36
+ *
27
37
  * @module atlas/witness-numeric
28
38
  * @internal
29
39
  */
40
+ import { linearRegression } from '@danielsimonjr/mathts-functions';
41
+ /**
42
+ * The observed order over the resolutions whose errors are all finite and
43
+ * positive, or `undefined` when fewer than three are, or an extra
44
+ * evaluation throws. The fit is log|error| against log(1/resolution).
45
+ */
46
+ function observedOrderOf(spec, errors) {
47
+ const points = [...errors];
48
+ try {
49
+ for (const resolution of spec.orderResolutions ?? []) {
50
+ points.push({ resolution, error: Math.abs(spec.evaluate(resolution) - spec.target) });
51
+ }
52
+ }
53
+ catch {
54
+ return undefined;
55
+ }
56
+ if (points.length < 3)
57
+ return undefined;
58
+ if (!points.every((p) => Number.isFinite(p.error) && p.error > 0 && Number.isFinite(p.resolution) && p.resolution > 0)) {
59
+ return undefined;
60
+ }
61
+ const x = points.map((p) => -Math.log(p.resolution));
62
+ const y = points.map((p) => Math.log(p.error));
63
+ const fit = linearRegression(x, y);
64
+ if (!Number.isFinite(fit.slope) || !Number.isFinite(fit.intercept))
65
+ return undefined;
66
+ // From @danielsimonjr/mathts-functions 0.68.5 (MathTS #371) the slope's standard error is the
67
+ // residual form √(Σ(y − ŷ)²/((n − 2) Σ(x − x̄)²)); before it, `syy − slope·sxy` cancelled on a
68
+ // near-exact fit and went negative, so an exact power law with rounded errors reported NaN and
69
+ // this runner recomputed the residual form itself. A non-finite value is still not reported.
70
+ const stdErr = fit.stdErr;
71
+ if (!Number.isFinite(stdErr))
72
+ return undefined;
73
+ return { slope: fit.slope, stdErr, n: points.length };
74
+ }
30
75
  /**
31
76
  * Run one numeric witness at two resolutions.
32
77
  *
@@ -40,6 +85,19 @@ export function runNumericWitness(spec) {
40
85
  const started = Date.now();
41
86
  const base = { witnessId: spec.id, kind: 'numeric' };
42
87
  const elapsed = () => Date.now() - started;
88
+ // A NaN target or tolerance makes every comparison below false, which
89
+ // would read as `'checked'`. Nothing is evaluated against a claim that
90
+ // does not state a finite target and a finite, non-negative tolerance.
91
+ if (!Number.isFinite(spec.target) || !Number.isFinite(spec.tolerance) || spec.tolerance < 0) {
92
+ return {
93
+ ...base,
94
+ status: 'unresolved',
95
+ reason: 'parse-error',
96
+ detail: `The claim does not state a finite target and a finite non-negative tolerance ` +
97
+ `(target ${spec.target}, tolerance ${spec.tolerance}). Nothing is concluded from it.`,
98
+ elapsedMs: elapsed(),
99
+ };
100
+ }
43
101
  let coarseValue;
44
102
  let fineValue;
45
103
  try {
@@ -68,14 +126,32 @@ export function runNumericWitness(spec) {
68
126
  const coarse = Math.abs(coarseValue - spec.target);
69
127
  const fine = Math.abs(fineValue - spec.target);
70
128
  // fine === 0 ⇒ an exact scheme. Infinity is the honest ratio there, and the
71
- // comparisons below treat it as "refinement helped", which it did.
72
- const ratio = fine === 0 ? (coarse === 0 ? 1 : Infinity) : coarse / fine;
129
+ // comparisons below treat it as "refinement helped", which it did. Both
130
+ // zero is 0/0: no ratio exists, and that case is reported on its own below.
131
+ const ratio = fine === 0 ? (coarse === 0 ? Number.NaN : Infinity) : coarse / fine;
73
132
  const convergence = { coarse, fine, ratio };
133
+ const order = observedOrderOf(spec, [
134
+ { resolution: spec.coarseResolution, error: coarse },
135
+ { resolution: spec.fineResolution, error: fine },
136
+ ]);
137
+ const observed = order === undefined ? {} : { observedOrder: order };
138
+ if (coarse === 0 && fine === 0) {
139
+ return {
140
+ ...base,
141
+ status: 'unresolved',
142
+ reason: 'no-error-to-reduce',
143
+ convergence,
144
+ detail: 'Both resolutions reproduce the target exactly, so there was no error for ' +
145
+ 'refinement to reduce. Agreement is recorded; convergence is not shown.',
146
+ elapsedMs: elapsed(),
147
+ };
148
+ }
74
149
  if (fine > spec.tolerance) {
75
150
  return {
76
151
  ...base,
77
152
  status: 'refuted',
78
153
  convergence,
154
+ ...observed,
79
155
  detail: `The fine evaluation misses the target by ${fine}, outside the stated ` +
80
156
  `tolerance ${spec.tolerance}.`,
81
157
  elapsedMs: elapsed(),
@@ -87,6 +163,7 @@ export function runNumericWitness(spec) {
87
163
  status: 'unresolved',
88
164
  reason: 'no-convergence',
89
165
  convergence,
166
+ ...observed,
90
167
  detail: `Refinement did not reduce the error (ratio ${ratio}). The fine value is ` +
91
168
  'inside tolerance, but agreement that does not improve with refinement is ' +
92
169
  'not evidence that the scheme converges to the target.',
@@ -97,6 +174,7 @@ export function runNumericWitness(spec) {
97
174
  ...base,
98
175
  status: 'checked',
99
176
  convergence,
177
+ ...observed,
100
178
  detail: `Fine error ${fine} is within tolerance ${spec.tolerance}, and refinement ` +
101
179
  `reduced the error by a factor of ${ratio}.`,
102
180
  elapsedMs: elapsed(),
@@ -1 +1 @@
1
- {"version":3,"file":"witness-numeric.js","sourceRoot":"","sources":["../../src/atlas/witness-numeric.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AA+CH;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAwB;IACxD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,SAAkB,EAAE,CAAC;IAC9D,MAAM,OAAO,GAAG,GAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;IAEnD,IAAI,WAAmB,CAAC;IACxB,IAAI,SAAiB,CAAC;IACtB,IAAI,CAAC;QACH,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACnD,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACjD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,GAAG,IAAI;YACP,MAAM,EAAE,YAAY;YACpB,MAAM,EAAE,aAAa;YACrB,MAAM,EAAE,oDAAoD,MAAM,CAAC,GAAG,CAAC,GAAG;YAC1E,SAAS,EAAE,OAAO,EAAE;SACrB,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACjE,OAAO;YACL,GAAG,IAAI;YACP,MAAM,EAAE,YAAY;YACpB,MAAM,EAAE,aAAa;YACrB,MAAM,EACJ,kDAAkD,WAAW,SAAS;gBACtE,GAAG,SAAS,kCAAkC;YAChD,SAAS,EAAE,OAAO,EAAE;SACrB,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/C,4EAA4E;IAC5E,mEAAmE;IACnE,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;IACzE,MAAM,WAAW,GAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAEzD,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC1B,OAAO;YACL,GAAG,IAAI;YACP,MAAM,EAAE,SAAS;YACjB,WAAW;YACX,MAAM,EACJ,4CAA4C,IAAI,uBAAuB;gBACvE,aAAa,IAAI,CAAC,SAAS,GAAG;YAChC,SAAS,EAAE,OAAO,EAAE;SACrB,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACf,OAAO;YACL,GAAG,IAAI;YACP,MAAM,EAAE,YAAY;YACpB,MAAM,EAAE,gBAAgB;YACxB,WAAW;YACX,MAAM,EACJ,8CAA8C,KAAK,uBAAuB;gBAC1E,2EAA2E;gBAC3E,uDAAuD;YACzD,SAAS,EAAE,OAAO,EAAE;SACrB,CAAC;IACJ,CAAC;IAED,OAAO;QACL,GAAG,IAAI;QACP,MAAM,EAAE,SAAS;QACjB,WAAW;QACX,MAAM,EACJ,cAAc,IAAI,wBAAwB,IAAI,CAAC,SAAS,mBAAmB;YAC3E,oCAAoC,KAAK,GAAG;QAC9C,SAAS,EAAE,OAAO,EAAE;KACrB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"witness-numeric.js","sourceRoot":"","sources":["../../src/atlas/witness-numeric.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Atlas Phase 4, S4.2 — the numeric witness runner.\n *\n * Design note: `docs/planning/Atlas-Phase-4-Design.md` §2.3.\n *\n * A numeric witness evaluates a claim at TWO resolutions and reports whether\n * refinement moved the answer toward the target. Two resolutions are the\n * minimum that can say anything at all: one number agreeing with a target is\n * consistent with a scheme that is simply wrong by an amount the tolerance\n * happens to admit.\n *\n * ## The ratio is REPORTED, never compared against an expected order\n *\n * `convergence.ratio = |coarse − target| / |fine − target|` is the factor by\n * which refinement reduced the error. A second-order scheme halving its step\n * should give ≈ 4; a first-order one ≈ 2. **Nothing here asserts which.** The\n * witnesses in hand do not all record their scheme's order, and asserting an\n * order nobody wrote down would be fabrication of exactly the kind this sprint\n * forbids. The number goes into the results artifact; a reviewer reads it.\n *\n * What the runner DOES decide is the weaker, checkable thing: a ratio at or\n * below 1 means refinement did NOT improve the answer, and that earns\n * `'unresolved'` rather than `'checked'` — a fine value that happens to land\n * inside the tolerance while refinement is not converging is agreement by\n * accident, and the tolerance alone cannot tell the two apart.\n *\n * ## An observed order is REPORTED beside the ratio, from three or more resolutions\n *\n * A spec may name further resolutions (`orderResolutions`). With three or\n * more in all, MathTS `linearRegression` of log|error| on log(1/resolution)\n * gives an OBSERVED order with the slope's standard error, carried as\n * {@link ObservedOrder}. The same rule applies: nothing compares it with an\n * expected order, and it changes no verdict. The extra resolutions are\n * evaluated after the two-resolution verdict is fixed; one that throws, is\n * non-finite, or lands exactly on the target drops the fit and nothing else.\n *\n * @module atlas/witness-numeric\n * @internal\n */\n\nimport { linearRegression } from '@danielsimonjr/mathts-functions';\nimport type { WitnessRunResult } from './witness-result.js';\n\n/** The two-resolution error record a numeric witness carries. @internal */\nexport interface Convergence {\n /** |coarse − target| in the witness's own units. */\n readonly coarse: number;\n /** |fine − target|. */\n readonly fine: number;\n /**\n * `coarse / fine`. Greater than 1 ⇒ refinement helped. `Infinity` when the\n * fine error is exactly zero and the coarse one is not, which is a\n * legitimate outcome for an exact scheme and must not be reported as a\n * failure. `NaN` when BOTH errors are exactly zero: `0/0` has no value,\n * and the run is `'unresolved'` with reason `'no-error-to-reduce'`.\n */\n readonly ratio: number;\n}\n\n/**\n * The observed order of convergence over `n` resolutions: `slope` is the\n * fitted exponent p in |error| ∝ h^p with h = 1/resolution (the slope of\n * log|error| against log(1/resolution)), `stdErr` the standard error of that\n * slope from the fit (n − 2 degrees of freedom). Reported, never asserted.\n * @internal\n */\nexport interface ObservedOrder {\n readonly slope: number;\n readonly stdErr: number;\n readonly n: number;\n}\n\n/** What a numeric witness asserts, and how to evaluate it. @internal */\nexport interface NumericWitnessSpec {\n /** The `Witness.id`. */\n readonly id: string;\n /**\n * Evaluate the claim at a resolution. The meaning of the argument is the\n * witness's own (a step count, a grid size, a truncation order); the runner\n * only requires that `fineResolution` is the more refined of the two.\n */\n readonly evaluate: (resolution: number) => number;\n /** The value the claim should reproduce. A non-finite target is `'unresolved'`. */\n readonly target: number;\n readonly coarseResolution: number;\n readonly fineResolution: number;\n /**\n * Absolute tolerance the FINE evaluation must meet. Required: a default\n * tolerance is a claim about accuracy that the caller, not this module,\n * is entitled to make. A tolerance that is not a finite number ≥ 0 is\n * `'unresolved'`: `fine > NaN` is false, so a NaN here would otherwise\n * report `'checked'` for any fine value.\n */\n readonly tolerance: number;\n /**\n * Further resolutions, beyond `coarseResolution` and `fineResolution`,\n * evaluated only to fit the observed order. They enter no verdict, no\n * convergence record and no detail sentence.\n */\n readonly orderResolutions?: readonly number[];\n}\n\n/** A result that also carries the two-resolution record, when one was produced. */\nexport interface NumericWitnessRunResult extends WitnessRunResult {\n readonly kind: 'numeric';\n /** Absent only when evaluation threw before any number existed. */\n readonly convergence?: Convergence;\n /** Present only when `orderResolutions` gave three or more finite, non-zero errors to fit. */\n readonly observedOrder?: ObservedOrder;\n}\n\n/**\n * The observed order over the resolutions whose errors are all finite and\n * positive, or `undefined` when fewer than three are, or an extra\n * evaluation throws. The fit is log|error| against log(1/resolution).\n */\nfunction observedOrderOf(\n spec: NumericWitnessSpec,\n errors: readonly { readonly resolution: number; readonly error: number }[],\n): ObservedOrder | undefined {\n const points = [...errors];\n try {\n for (const resolution of spec.orderResolutions ?? []) {\n points.push({ resolution, error: Math.abs(spec.evaluate(resolution) - spec.target) });\n }\n } catch {\n return undefined;\n }\n if (points.length < 3) return undefined;\n if (!points.every((p) => Number.isFinite(p.error) && p.error > 0 && Number.isFinite(p.resolution) && p.resolution > 0)) {\n return undefined;\n }\n const x = points.map((p) => -Math.log(p.resolution));\n const y = points.map((p) => Math.log(p.error));\n const fit = linearRegression(x, y);\n if (!Number.isFinite(fit.slope) || !Number.isFinite(fit.intercept)) return undefined;\n // From @danielsimonjr/mathts-functions 0.68.5 (MathTS #371) the slope's standard error is the\n // residual form √(Σ(y − ŷ)²/((n − 2) Σ(x − x̄)²)); before it, `syy − slope·sxy` cancelled on a\n // near-exact fit and went negative, so an exact power law with rounded errors reported NaN and\n // this runner recomputed the residual form itself. A non-finite value is still not reported.\n const stdErr: number = fit.stdErr;\n if (!Number.isFinite(stdErr)) return undefined;\n return { slope: fit.slope, stdErr, n: points.length };\n}\n\n/**\n * Run one numeric witness at two resolutions.\n *\n * @param spec - the claim and its two resolutions.\n * @returns a result carrying `convergence`; **never throws** — an evaluation\n * that throws is `'unresolved'` with `'parse-error'`, because a scheme that\n * blew up has not refuted the physics it was evaluating.\n * @internal\n */\nexport function runNumericWitness(spec: NumericWitnessSpec): NumericWitnessRunResult {\n const started = Date.now();\n const base = { witnessId: spec.id, kind: 'numeric' as const };\n const elapsed = (): number => Date.now() - started;\n\n // A NaN target or tolerance makes every comparison below false, which\n // would read as `'checked'`. Nothing is evaluated against a claim that\n // does not state a finite target and a finite, non-negative tolerance.\n if (!Number.isFinite(spec.target) || !Number.isFinite(spec.tolerance) || spec.tolerance < 0) {\n return {\n ...base,\n status: 'unresolved',\n reason: 'parse-error',\n detail:\n `The claim does not state a finite target and a finite non-negative tolerance ` +\n `(target ${spec.target}, tolerance ${spec.tolerance}). Nothing is concluded from it.`,\n elapsedMs: elapsed(),\n };\n }\n\n let coarseValue: number;\n let fineValue: number;\n try {\n coarseValue = spec.evaluate(spec.coarseResolution);\n fineValue = spec.evaluate(spec.fineResolution);\n } catch (err) {\n return {\n ...base,\n status: 'unresolved',\n reason: 'parse-error',\n detail: `Evaluation threw rather than producing a number: ${String(err)}.`,\n elapsedMs: elapsed(),\n };\n }\n\n if (!Number.isFinite(coarseValue) || !Number.isFinite(fineValue)) {\n return {\n ...base,\n status: 'unresolved',\n reason: 'parse-error',\n detail:\n `Evaluation produced a non-finite value (coarse ${coarseValue}, fine ` +\n `${fineValue}). Nothing is concluded from it.`,\n elapsedMs: elapsed(),\n };\n }\n\n const coarse = Math.abs(coarseValue - spec.target);\n const fine = Math.abs(fineValue - spec.target);\n // fine === 0 ⇒ an exact scheme. Infinity is the honest ratio there, and the\n // comparisons below treat it as \"refinement helped\", which it did. Both\n // zero is 0/0: no ratio exists, and that case is reported on its own below.\n const ratio = fine === 0 ? (coarse === 0 ? Number.NaN : Infinity) : coarse / fine;\n const convergence: Convergence = { coarse, fine, ratio };\n const order = observedOrderOf(spec, [\n { resolution: spec.coarseResolution, error: coarse },\n { resolution: spec.fineResolution, error: fine },\n ]);\n const observed = order === undefined ? {} : { observedOrder: order };\n\n if (coarse === 0 && fine === 0) {\n return {\n ...base,\n status: 'unresolved',\n reason: 'no-error-to-reduce',\n convergence,\n detail:\n 'Both resolutions reproduce the target exactly, so there was no error for ' +\n 'refinement to reduce. Agreement is recorded; convergence is not shown.',\n elapsedMs: elapsed(),\n };\n }\n\n if (fine > spec.tolerance) {\n return {\n ...base,\n status: 'refuted',\n convergence,\n ...observed,\n detail:\n `The fine evaluation misses the target by ${fine}, outside the stated ` +\n `tolerance ${spec.tolerance}.`,\n elapsedMs: elapsed(),\n };\n }\n\n if (ratio <= 1) {\n return {\n ...base,\n status: 'unresolved',\n reason: 'no-convergence',\n convergence,\n ...observed,\n detail:\n `Refinement did not reduce the error (ratio ${ratio}). The fine value is ` +\n 'inside tolerance, but agreement that does not improve with refinement is ' +\n 'not evidence that the scheme converges to the target.',\n elapsedMs: elapsed(),\n };\n }\n\n return {\n ...base,\n status: 'checked',\n convergence,\n ...observed,\n detail:\n `Fine error ${fine} is within tolerance ${spec.tolerance}, and refinement ` +\n `reduced the error by a factor of ${ratio}.`,\n elapsedMs: elapsed(),\n };\n}\n"]}
@@ -47,7 +47,13 @@ export type UnresolvedReason =
47
47
  /** The check ran to completion and neither confirmed nor refuted. */
48
48
  | 'not-simplified'
49
49
  /** Refinement did not improve the answer, so nothing is concluded. */
50
- | 'no-convergence';
50
+ | 'no-convergence'
51
+ /**
52
+ * Both resolutions hit the target exactly, so there was no error for
53
+ * refinement to reduce and convergence cannot be shown. Not a failure of
54
+ * the scheme and not a demonstration of it.
55
+ */
56
+ | 'no-error-to-reduce';
51
57
  /** What one witness run produced. @internal */
52
58
  export interface WitnessRunResult {
53
59
  /** The `Witness.id` this run corresponds to (`'W7b'`). */
@@ -1 +1 @@
1
- {"version":3,"file":"witness-result.d.ts","sourceRoot":"","sources":["../../src/atlas/witness-result.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH;;;;;;;;GAQG;AACH,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,SAAS,GAAG,YAAY,CAAC;AAEjE;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB;AAC1B,kEAAkE;AAChE,aAAa;AACf,8DAA8D;GAC5D,SAAS;AACX,yDAAyD;GACvD,aAAa;AACf,qEAAqE;GACnE,gBAAgB;AAClB,sEAAsE;GACpE,gBAAgB,CAAC;AAErB,+CAA+C;AAC/C,MAAM,WAAW,gBAAgB;IAC/B,0DAA0D;IAC1D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,iEAAiE;IACjE,QAAQ,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC;IACnC,6EAA6E;IAC7E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,sCAAsC;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,SAAS,gBAAgB,EAAE,GACnC,WAAW,CAAC,MAAM,CAAC,CAErB"}
1
+ {"version":3,"file":"witness-result.d.ts","sourceRoot":"","sources":["../../src/atlas/witness-result.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH;;;;;;;;GAQG;AACH,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,SAAS,GAAG,YAAY,CAAC;AAEjE;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB;AAC1B,kEAAkE;AAChE,aAAa;AACf,8DAA8D;GAC5D,SAAS;AACX,yDAAyD;GACvD,aAAa;AACf,qEAAqE;GACnE,gBAAgB;AAClB,sEAAsE;GACpE,gBAAgB;AAClB;;;;GAIG;GACD,oBAAoB,CAAC;AAEzB,+CAA+C;AAC/C,MAAM,WAAW,gBAAgB;IAC/B,0DAA0D;IAC1D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,iEAAiE;IACjE,QAAQ,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC;IACnC,6EAA6E;IAC7E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,sCAAsC;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,SAAS,gBAAgB,EAAE,GACnC,WAAW,CAAC,MAAM,CAAC,CAErB"}
@@ -1 +1 @@
1
- {"version":3,"file":"witness-result.js","sourceRoot":"","sources":["../../src/atlas/witness-result.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AA6CH;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAAoC;IAEpC,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AACxF,CAAC"}
1
+ {"version":3,"file":"witness-result.js","sourceRoot":"","sources":["../../src/atlas/witness-result.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAmDH;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAAoC;IAEpC,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AACxF,CAAC","sourcesContent":["/**\n * Atlas Phase 4, S4.2 — the shape a witness run reports.\n *\n * Design note: `docs/planning/Atlas-Phase-4-Design.md` §2.2.\n *\n * **The load-bearing distinction in this file: a check that DID NOT RUN is not\n * a check that FAILED.** Peer absent, budget exhausted, and parser throw are\n * all `'unresolved'`, each carrying the reason it could not answer. Only a\n * check that COMPLETES and finds a disagreement is `'refuted'`.\n *\n * This repo has been bitten by exactly that conflation more than once — a\n * checker that discarded its own stderr manufactured a false negative\n * indistinguishable from a clean pass. Folding \"could not run\" into \"failed\"\n * is the same defect with the sign flipped: it turns a missing optional peer\n * into a refutation of the physics.\n *\n * Nothing here throws. A runner that threw would force every caller into a\n * `try`/`catch` whose `catch` arm cannot tell which of the three outcomes it\n * is looking at.\n *\n * @module atlas/witness-result\n * @internal\n */\n\n/**\n * What a witness run concluded.\n *\n * - `'checked'` — the check RAN and the claim held.\n * - `'refuted'` — the check RAN and the claim did not hold.\n * - `'unresolved'` — the check did not run, or ran and could not decide.\n *\n * @internal\n */\nexport type WitnessStatus = 'checked' | 'refuted' | 'unresolved';\n\n/**\n * Why a witness is `'unresolved'`. Required on that status so a reader never\n * has to guess which of four very different situations produced it.\n *\n * @internal\n */\nexport type UnresolvedReason =\n /** The optional peer that performs the check is not installed. */\n | 'peer-absent'\n /** The wall-clock budget elapsed before an answer arrived. */\n | 'timeout'\n /** The input could not be parsed or evaluated at all. */\n | 'parse-error'\n /** The check ran to completion and neither confirmed nor refuted. */\n | 'not-simplified'\n /** Refinement did not improve the answer, so nothing is concluded. */\n | 'no-convergence'\n /**\n * Both resolutions hit the target exactly, so there was no error for\n * refinement to reduce and convergence cannot be shown. Not a failure of\n * the scheme and not a demonstration of it.\n */\n | 'no-error-to-reduce';\n\n/** What one witness run produced. @internal */\nexport interface WitnessRunResult {\n /** The `Witness.id` this run corresponds to (`'W7b'`). */\n readonly witnessId: string;\n readonly kind: 'symbolic' | 'numeric';\n readonly status: WitnessStatus;\n /** REQUIRED when `status === 'unresolved'`, absent otherwise. */\n readonly reason?: UnresolvedReason;\n /** Human-readable note — never the discriminator, always the explanation. */\n readonly detail: string;\n /** Milliseconds the runner waited. */\n readonly elapsedMs: number;\n}\n\n/**\n * The ids of runs that CHECKED, as `deriveEvidence` wants its\n * `passingWitnessIds` argument.\n *\n * A convenience with one purpose: keep the mapping from run results to\n * \"passing\" in ONE place. Writing `results.filter(r => r.status !== 'refuted')`\n * at a call site would hand `symbolically-checked` to every unresolved run —\n * the free-tag defect `derive-evidence.ts` documents at length, reintroduced\n * one layer up.\n *\n * @internal\n */\nexport function passingWitnessIds(\n results: readonly WitnessRunResult[],\n): ReadonlySet<string> {\n return new Set(results.filter((r) => r.status === 'checked').map((r) => r.witnessId));\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"witness-specs.d.ts","sourceRoot":"","sources":["../../src/atlas/witness-specs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"witness-specs.d.ts","sourceRoot":"","sources":["../../src/atlas/witness-specs.ts"],"names":[],"mappings":"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"}
@@ -176,6 +176,7 @@ export const WITNESS_REGISTRY = [
176
176
  coarseResolution: 160,
177
177
  fineResolution: 640,
178
178
  tolerance: 1e-9,
179
+ orderResolutions: [2560, 10240],
179
180
  },
180
181
  },
181
182
  {
@@ -190,6 +191,7 @@ export const WITNESS_REGISTRY = [
190
191
  coarseResolution: 100,
191
192
  fineResolution: 1000,
192
193
  tolerance: 1e-4,
194
+ orderResolutions: [10000, 100000],
193
195
  },
194
196
  },
195
197
  {
@@ -204,6 +206,7 @@ export const WITNESS_REGISTRY = [
204
206
  coarseResolution: 80,
205
207
  fineResolution: 160,
206
208
  tolerance: 5e-4,
209
+ orderResolutions: [320, 640],
207
210
  },
208
211
  },
209
212
  {
@@ -231,6 +234,7 @@ export const WITNESS_REGISTRY = [
231
234
  coarseResolution: 1,
232
235
  fineResolution: 4,
233
236
  tolerance: 1e-3,
237
+ orderResolutions: [16, 64],
234
238
  },
235
239
  },
236
240
  {
@@ -246,6 +250,7 @@ export const WITNESS_REGISTRY = [
246
250
  coarseResolution: 40,
247
251
  fineResolution: 80,
248
252
  tolerance: 2e-4,
253
+ orderResolutions: [160, 320],
249
254
  },
250
255
  },
251
256
  {
@@ -259,6 +264,7 @@ export const WITNESS_REGISTRY = [
259
264
  coarseResolution: 4,
260
265
  fineResolution: 8,
261
266
  tolerance: 2e-3,
267
+ orderResolutions: [16, 32],
262
268
  },
263
269
  },
264
270
  {
@@ -273,6 +279,7 @@ export const WITNESS_REGISTRY = [
273
279
  coarseResolution: 64,
274
280
  fineResolution: 128,
275
281
  tolerance: 2e-4,
282
+ orderResolutions: [256, 512],
276
283
  },
277
284
  },
278
285
  {
@@ -286,6 +293,7 @@ export const WITNESS_REGISTRY = [
286
293
  coarseResolution: 1,
287
294
  fineResolution: 2,
288
295
  tolerance: 2e-3,
296
+ orderResolutions: [4, 8],
289
297
  },
290
298
  claim: {
291
299
  name: 'bound',
@@ -304,6 +312,8 @@ export const WITNESS_REGISTRY = [
304
312
  coarseResolution: 10,
305
313
  fineResolution: 100,
306
314
  tolerance: 0.02,
315
+ // 1000 τ_p only: 161 ms; 10000 τ_p measured 1.4 s.
316
+ orderResolutions: [1000],
307
317
  },
308
318
  },
309
319
  {
@@ -327,6 +337,7 @@ export const WITNESS_REGISTRY = [
327
337
  coarseResolution: 2,
328
338
  fineResolution: 4,
329
339
  tolerance: 0.03,
340
+ orderResolutions: [8, 16],
330
341
  },
331
342
  claim: {
332
343
  name: 'bound',
@@ -344,6 +355,7 @@ export const WITNESS_REGISTRY = [
344
355
  coarseResolution: 1,
345
356
  fineResolution: 2,
346
357
  tolerance: 3e-3,
358
+ orderResolutions: [4, 8],
347
359
  },
348
360
  claim: {
349
361
  name: 'bound',
@@ -365,6 +377,8 @@ export const WITNESS_REGISTRY = [
365
377
  coarseResolution: 2,
366
378
  fineResolution: 4,
367
379
  tolerance: 0.025,
380
+ // The approach to the steady state is exponential in t, not a power law; the fit reports what it sees.
381
+ orderResolutions: [8, 16],
368
382
  },
369
383
  },
370
384
  {
@@ -378,6 +392,7 @@ export const WITNESS_REGISTRY = [
378
392
  coarseResolution: 1,
379
393
  fineResolution: 2,
380
394
  tolerance: 1e-3,
395
+ orderResolutions: [4, 8],
381
396
  },
382
397
  // The spec reads only x = ck/ω₀; c = ω₀ = 1 is one point with that x.
383
398
  claim: { name: 'bound', at: (resolution) => ({ c: 1, omega0: 1, k: WS5_FIXTURE.x0 / resolution }) },
@@ -393,6 +408,7 @@ export const WITNESS_REGISTRY = [
393
408
  coarseResolution: 50,
394
409
  fineResolution: 100,
395
410
  tolerance: 3e-4,
411
+ orderResolutions: [200, 400],
396
412
  },
397
413
  },
398
414
  {
@@ -406,6 +422,7 @@ export const WITNESS_REGISTRY = [
406
422
  coarseResolution: 1,
407
423
  fineResolution: 2,
408
424
  tolerance: 0.15,
425
+ orderResolutions: [4, 8],
409
426
  },
410
427
  claim: {
411
428
  name: 'bound',
@@ -431,6 +448,7 @@ export const WITNESS_REGISTRY = [
431
448
  coarseResolution: 1,
432
449
  fineResolution: 2,
433
450
  tolerance: 0.002507,
451
+ orderResolutions: [4, 8],
434
452
  },
435
453
  claim: { name: 'bound', at: (resolution) => ({ theta0: W7_FIXTURE.theta0 / resolution }) },
436
454
  },
@@ -447,6 +465,7 @@ export const WITNESS_REGISTRY = [
447
465
  coarseResolution: 1,
448
466
  fineResolution: 2,
449
467
  tolerance: dampedOffsetBoundAt({ m: W8B_FIXTURE.m / 2, b: W8B_FIXTURE.b, k: W8B_FIXTURE.k, x0: W8B_FIXTURE.x0, v0: W8B_FIXTURE.v0 }),
468
+ orderResolutions: [4, 8],
450
469
  },
451
470
  claim: {
452
471
  name: 'bound-holds-at',
@@ -1 +1 @@
1
- {"version":3,"file":"witness-specs.js","sourceRoot":"","sources":["../../src/atlas/witness-specs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"witness-specs.js","sourceRoot":"","sources":["../../src/atlas/witness-specs.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Atlas Phase 4, S4.3 — the EXECUTABLE witness registry.\n *\n * Design note: `docs/planning/Atlas-Phase-4-Design.md` §3.\n *\n * A `Witness` record names a check and the test file that runs it; it carries\n * nothing a runner can execute. This module holds the executable form of every\n * witness the results artifact covers, keyed by the record it supports. The\n * Lead-run `scripts/emit-witness-results.mjs` runs exactly this list, and\n * `tests/atlas/witness-results.test.ts` deep-equals the committed artifact\n * against a fresh run of it.\n *\n * ## The symbolic specs apply the bridge's DICTIONARY, they do not restate it\n *\n * Writing `lhs` and `rhs` as two hand-typed ASTs that happen to be equal would\n * check nothing but the typist. Each spec below starts from the PREMISE\n * model's expression and pushes it through the bridge's variable dictionary\n * with `substitute`; the CAS then has to show that the result equals the\n * CONCLUSION model's expression. What is checked is the dictionary.\n *\n * @module atlas/witness-specs\n * @internal\n */\n\nimport type { ExprNode } from '../dimensional/ast-types.js';\nimport { sym } from '../dimensional/ast-builders.js';\nimport { DIMENSIONLESS, ENERGY, LENGTH, MASS } from '../dimensional/types.js';\nimport { substitute } from '../composition/expr-subst.js';\nimport {\n CAPACITANCE,\n DAMPING,\n INDUCTANCE,\n RESISTANCE,\n SPRING_CONSTANT,\n} from './oscillators/dimensions.js';\nimport {\n heatSteadyDeviation,\n langevinMsdRatio,\n telegraphSlowRateRatio,\n telegraphWaveFrequencyRatio,\n diffusionKernel,\n gaussianSpread,\n heatFtcsCentre,\n randomWalkCentralDensity,\n wickHeatResidual,\n} from './diffusion/numerics.js';\nimport type {\n HeatFixture,\n LangevinFixture,\n SteadyStateFixture,\n WickFixture,\n} from './diffusion/numerics.js';\nimport { DENSITY, DIFFUSIVITY, SPECIFIC_HEAT, THERMAL_CONDUCTIVITY } from './diffusion/dimensions.js';\nimport { VISCOSITY } from './diffusion/models.js';\nimport { wickRotatedFreeKernel } from './witnesses/quantum-support.js';\nimport {\n kgNonrelativisticError,\n kgUniformModeValue,\n stiffStringPhaseVelocity,\n acousticLeapfrogQuarter,\n dalembertResidual,\n kleinGordonPhaseVelocity,\n stringLeapfrogMidpoint,\n} from './waves/numerics.js';\nimport type { AcousticFixture, DalembertFixture, StringFixture } from './waves/numerics.js';\nimport { pendulumPeriodErrorAt } from './oscillators/bridges-limits.js';\nimport { SPRING_LC_RELATIVE_PERIOD_TRANSPORT, W1TAU_FIXTURE } from './oscillators/norm-transport.js';\nimport { measureTransportedPeriodError } from './oscillators/norm-transport-witness.js';\nimport { dampedOffsetBoundAt } from './oscillators/bridges-limits.js';\nimport { dispersionErrorApproximation } from './oscillators/bridges-coarse.js';\nimport {\n measureChainDispersionError,\n measureMasslessOffset,\n measurePendulumPeriodRatio,\n W7_FIXTURE,\n W8B_FIXTURE,\n W9_FIXTURE,\n} from './oscillators/limit-witnesses.js';\nimport type { NumericWitnessSpec } from './witness-numeric.js';\nimport type { SymbolicWitnessSpec } from './witness-symbolic.js';\n\n/** A symbolic spec bound to the record it supports. @internal */\nexport interface RegisteredSymbolicWitness {\n /** The `AtlasBridge.id` (or other record id) the witness belongs to. */\n readonly recordId: string;\n readonly kind: 'symbolic';\n readonly spec: SymbolicWitnessSpec;\n}\n\n/**\n * The claim of its record a witness tests. `tests/atlas/witness-claims.test.ts`\n * checks each attribution against the spec.\n *\n * - `'bound'`: at `at(fineResolution)`, a point inside the record's regime, the\n * witness's error is the bound's own quantity in the bound's norm (it equals\n * `deltaAt` there: the bound is sharp), and its tolerance is no looser than\n * `delta`, so the bound failing there refutes the witness.\n * - `'bound-holds-at'`: for a bound that is not sharp. At that point, inside the\n * regime, the witness's error is measured in the bound's norm and its\n * tolerance IS `deltaAt` there, so the bound failing at that point refutes the\n * witness. That the spec measures the bound's norm is checked beside the spec.\n * - `'preserves'`: the witness tests `item`, one entry of the record's\n * `preserves`, at a point inside the regime.\n *\n * @internal\n */\nexport type WitnessClaim =\n | {\n readonly name: 'bound' | 'bound-holds-at';\n /** The point the spec evaluates at a resolution, in the names the bound's `deltaAt` reads. */\n readonly at: (resolution: number) => Readonly<Record<string, number>>;\n }\n | {\n readonly name: 'preserves';\n /** One entry of the record's `preserves`, verbatim. */\n readonly item: string;\n /** The point the spec evaluates at a resolution, in the names the regime's groups read. */\n readonly at: (resolution: number) => Readonly<Record<string, number>>;\n };\n\n/** A numeric spec bound to the record it supports. @internal */\nexport interface RegisteredNumericWitness {\n readonly recordId: string;\n readonly kind: 'numeric';\n readonly spec: NumericWitnessSpec;\n /** Absent: the witness is not attributed to any one claim of its record. */\n readonly claim?: WitnessClaim;\n}\n\n/** One entry of the registry. @internal */\nexport type RegisteredWitness = RegisteredSymbolicWitness | RegisteredNumericWitness;\n\nconst op = (o: '*' | '/' | '+' | '-' | '^', ...args: ExprNode[]): ExprNode => ({\n kind: 'op',\n op: o,\n args,\n});\nconst n = (value: number): ExprNode => sym(String(value), DIMENSIONLESS);\n\n/**\n * Push `expr` through a variable dictionary, REFUSING a mapping that matches no\n * leaf. A zero-occurrence substitution is a silent no-op that would leave the\n * premise variable in place and let the check pass or fail for the wrong\n * reason — the same guard `composeSymbolic` applies (Adam A-3).\n */\nfunction applyDictionary(expr: ExprNode, dictionary: Readonly<Record<string, ExprNode>>): ExprNode {\n let out = expr;\n for (const [name, replacement] of Object.entries(dictionary)) {\n const r = substitute(out, name, replacement);\n if (r.count === 0) {\n throw new Error(`witness-specs: dictionary entry '${name}' matches no leaf`);\n }\n out = r.expr;\n }\n return out;\n}\n\n// Spring and LC symbols, with the dimensions the oscillator models declare.\nconst m = sym('m', MASS);\nconst k = sym('k', SPRING_CONSTANT);\nconst b = sym('b', DAMPING);\nconst L = sym('L', INDUCTANCE);\nconst C = sym('C', CAPACITANCE);\nconst R = sym('R', RESISTANCE);\n\n/** The spring ↔ circuit dictionary of `ab-spring-lc` / `ab-damped-rlc`: m ↔ L, k ↔ 1/C, b ↔ R. */\nconst SPRING_TO_CIRCUIT: Readonly<Record<string, ExprNode>> = {\n m: L,\n k: op('/', n(1), C),\n b: R,\n};\n\n// ── Diffusion family (S4.4) ────────────────────────────────────────────────\n\n/** WD1 fixture: D and t, fixed while the walk is refined. @internal */\nexport const WD1_FIXTURE = { D: 0.5, t: 2 } as const;\n\n/**\n * WD2 fixture. κ, ρ and c_p are chosen so the heat equation's own variables\n * are all different from 1 while κ/(ρ c_p) = 1: a dictionary that dropped or\n * inverted a factor would move the answer.\n *\n * @internal\n */\nexport const WD2_FIXTURE: HeatFixture = {\n kappa: 2,\n rho: 4,\n cp: 0.5,\n s0: 0.05,\n tEnd: 0.2,\n halfWidth: 4,\n};\n\n/** WD3 fixture: an off-centre point, so no symmetry zeroes a derivative. @internal */\nexport const WD3_FIXTURE: WickFixture = { hbar: 1, m: 0.5, s: 0.7, x: 0.3, tau: 0.4, h0: 0.1 };\n\nconst kappa = sym('kappa', THERMAL_CONDUCTIVITY);\nconst rho = sym('rho', DENSITY);\nconst cp = sym('cp', SPECIFIC_HEAT);\nconst D = sym('D', DIFFUSIVITY);\nconst q = sym('q', { ...LENGTH, L: -1 });\n\n// ── Wave family (S4.5) ─────────────────────────────────────────────────────\n\n/** WS1 fixture: F and μ both ≠ 1 while c = √(F/μ) = 2. @internal */\nexport const WS1_FIXTURE: StringFixture = { tension: 2, mu: 0.5, tEnd: 0.3 };\n\n/** WS2 fixture: an off-centre point where both profiles contribute. @internal */\nexport const WS2_FIXTURE: DalembertFixture = { c: 1.5, x: 0.4, t: 0.3, h0: 0.1 };\n\n/** WS3 fixture: γ = 1.4 with nondimensional p₀ = 1, ρ₀ = 1.2. @internal */\nexport const WS3_FIXTURE: AcousticFixture = { p0: 1, rho0: 1.2, gamma: 1.4, tEnd: 0.37 };\n\n/** WS4 fixture: ω₀ = c = 1, base wavenumber k₀ = 10 (the domain edge ω₀/(ck) = 0.1). @internal */\nexport const WS4_FIXTURE = { omega0: 1, c: 1, k0: 10 } as const;\n\n// ── Sprint 4 closure ───────────────────────────────────────────────────────\n\n/** WD4 fixture: m, γ, k_BT all ≠ 1; τ_p = m/γ = 4. @internal */\nexport const WD4_FIXTURE: LangevinFixture = { m: 2, gamma: 0.5, kT: 1.5 };\n\n/** WD6 base: τ₀ = 0.1 with D = q = 1, so ε = τ at the resolution's τ = τ₀/resolution. @internal */\nexport const WD6_FIXTURE = { tau0: 0.1, D: 1, q: 1 } as const;\n\n/** WD7 base: ε = 25 · resolution with D = q = 1. @internal */\nexport const WD7_FIXTURE = { eps0: 25, D: 1, q: 1 } as const;\n\n/** WD8 fixture: a unit rod held at 2 and 5, base time 0.1 (Fourier number 0.1 per unit). @internal */\nexport const WD8_FIXTURE: SteadyStateFixture = {\n alpha: 1,\n ell: 1,\n tLeft: 2,\n tRight: 5,\n t0: 0.1,\n cells: 40,\n};\n\n/** WS5 base: x₀ = ck/ω₀ = 0.1, halved per resolution step. @internal */\nexport const WS5_FIXTURE = { x0: 0.1 } as const;\n\n/** WS6 fixture: c = 1, ω₀ = 2, t = 3; resolution = time steps. @internal */\nexport const WS6_FIXTURE = { c: 1, omega0: 2, tEnd: 3 } as const;\n\n/** WS7 fixture: F = 100, μ = 0.01 (so √(F/μ) = 100), EI = 0.01, k₀ = 10 (β = 0.01 at res 1). @internal */\nexport const WS7_FIXTURE = { F: 100, mu: 0.01, EI: 0.01, k0: 10 } as const;\n\nconst kT = sym('kT', ENERGY);\nconst gammaSym = sym('gamma', DAMPING);\nconst eta = sym('eta', VISCOSITY);\nconst a = sym('a', LENGTH);\nconst pi = sym('pi', DIMENSIONLESS);\n\n/**\n * Every witness the results artifact covers, in a fixed order (the artifact is\n * emitted in this order, so reordering is a reviewable diff, not churn).\n *\n * @internal\n */\nexport const WITNESS_REGISTRY: readonly RegisteredWitness[] = [\n {\n // ω0² of the spring, pushed through the dictionary, is ω0² of the LC circuit.\n recordId: 'ab-spring-lc',\n kind: 'symbolic',\n spec: {\n id: 'W1s',\n lhs: applyDictionary(op('/', k, m), { m: SPRING_TO_CIRCUIT['m']!, k: SPRING_TO_CIRCUIT['k']! }),\n rhs: op('/', n(1), op('*', L, C)),\n },\n },\n {\n // ζ² of the damped spring, b²/(4mk), pushed through the dictionary, is ζ² of\n // the RLC circuit, R²C/(4L). The squared form avoids a fractional exponent\n // on a dimensioned base, which the grammar forbids.\n recordId: 'ab-damped-rlc',\n kind: 'symbolic',\n spec: {\n id: 'W2s',\n lhs: applyDictionary(op('/', op('^', b, n(2)), op('*', n(4), m, k)), SPRING_TO_CIRCUIT),\n rhs: op('/', op('*', op('^', R, n(2)), C), op('*', n(4), L)),\n },\n },\n {\n // Norm transport, not a bridge claim: the pendulum's image under ab-spring-lc's\n // map, integrated in circuit time, has K times the pendulum's relative period\n // error against the circuit. Keyed by the transport id, so the bridge's own\n // evidence is not derived from it (ADR-transported-norm-composition.md §4).\n recordId: SPRING_LC_RELATIVE_PERIOD_TRANSPORT.id,\n kind: 'numeric',\n spec: {\n id: SPRING_LC_RELATIVE_PERIOD_TRANSPORT.witness.id,\n evaluate: (steps) => measureTransportedPeriodError(W1TAU_FIXTURE.theta0, steps),\n target: SPRING_LC_RELATIVE_PERIOD_TRANSPORT.KAt({}) * pendulumPeriodErrorAt({ theta0: W1TAU_FIXTURE.theta0 }),\n coarseResolution: 160,\n fineResolution: 640,\n tolerance: 1e-9,\n orderResolutions: [2560, 10240],\n },\n },\n {\n // Coarse-graining: the walk's density at the origin converges to the\n // diffusion kernel as the closure D = Δx²/(2Δt) is held and Δt → 0.\n recordId: 'ab-walk-diffusion',\n kind: 'numeric',\n spec: {\n id: 'WD1',\n evaluate: (steps) => randomWalkCentralDensity(steps, WD1_FIXTURE.D, WD1_FIXTURE.t),\n target: diffusionKernel(0, WD1_FIXTURE.t, WD1_FIXTURE.D),\n coarseResolution: 100,\n fineResolution: 1000,\n tolerance: 1e-4,\n orderResolutions: [10000, 100000],\n },\n },\n {\n // Exact equivalence: the HEAT equation, solved in κ, ρ, c_p, reproduces the\n // FICK solution with D = κ/(ρ c_p).\n recordId: 'ab-heat-diffusion',\n kind: 'numeric',\n spec: {\n id: 'WD2',\n evaluate: (cells) => heatFtcsCentre(cells, WD2_FIXTURE),\n target: gaussianSpread(\n 0,\n WD2_FIXTURE.tEnd,\n WD2_FIXTURE.kappa / (WD2_FIXTURE.rho * WD2_FIXTURE.cp),\n WD2_FIXTURE.s0,\n ),\n coarseResolution: 80,\n fineResolution: 160,\n tolerance: 5e-4,\n orderResolutions: [320, 640],\n },\n },\n {\n // The heat side's Fourier-mode decay rate κq²/(ρ c_p), pushed through the\n // inverse dictionary κ ↦ D ρ c_p, is the Fick side's D q².\n recordId: 'ab-heat-diffusion',\n kind: 'symbolic',\n spec: {\n id: 'WD2s',\n lhs: applyDictionary(op('/', op('*', kappa, op('^', q, n(2))), op('*', rho, cp)), {\n kappa: op('*', D, rho, cp),\n }),\n rhs: op('*', D, op('^', q, n(2))),\n },\n },\n {\n // Analytic continuation: the Wick-rotated free kernel satisfies the\n // diffusion equation with D = ħ/(2m); the residual's target is zero.\n recordId: 'ab-schrodinger-diffusion',\n kind: 'numeric',\n spec: {\n id: 'WD3',\n evaluate: (resolution) => wickHeatResidual(resolution, WD3_FIXTURE, wickRotatedFreeKernel),\n target: 0,\n coarseResolution: 1,\n fineResolution: 4,\n tolerance: 1e-3,\n orderResolutions: [16, 64],\n },\n },\n {\n // Restriction: the string, solved in F and μ, reproduces the 1-D wave\n // solution with c = √(F/μ).\n recordId: 'ab-string-wave',\n kind: 'numeric',\n spec: {\n id: 'WS1',\n evaluate: (cells) => stringLeapfrogMidpoint(cells, WS1_FIXTURE),\n target:\n Math.sin(Math.PI * 0.5) *\n Math.cos(Math.PI * Math.sqrt(WS1_FIXTURE.tension / WS1_FIXTURE.mu) * WS1_FIXTURE.tEnd),\n coarseResolution: 40,\n fineResolution: 80,\n tolerance: 2e-4,\n orderResolutions: [160, 320],\n },\n },\n {\n // Derivation: d'Alembert's form satisfies the wave equation; residual → 0.\n recordId: 'ab-wave-dalembert',\n kind: 'numeric',\n spec: {\n id: 'WS2',\n evaluate: (resolution) => dalembertResidual(resolution, WS2_FIXTURE),\n target: 0,\n coarseResolution: 4,\n fineResolution: 8,\n tolerance: 2e-3,\n orderResolutions: [16, 32],\n },\n },\n {\n // Hyperedge: linearized Euler closed by the adiabatic EOS reproduces the\n // sound model with c_s² = γp₀/ρ₀.\n recordId: 'ab-sound-speed',\n kind: 'numeric',\n spec: {\n id: 'WS3',\n evaluate: (cells) => acousticLeapfrogQuarter(cells, WS3_FIXTURE),\n target: Math.cos(\n 2 * Math.PI * Math.sqrt((WS3_FIXTURE.gamma * WS3_FIXTURE.p0) / WS3_FIXTURE.rho0) * WS3_FIXTURE.tEnd,\n ),\n coarseResolution: 64,\n fineResolution: 128,\n tolerance: 2e-4,\n orderResolutions: [256, 512],\n },\n },\n {\n // Approximation: the Klein–Gordon phase velocity tends to c as k grows.\n recordId: 'ab-klein-gordon-wave',\n kind: 'numeric',\n spec: {\n id: 'WS4',\n evaluate: (resolution) =>\n kleinGordonPhaseVelocity(resolution, WS4_FIXTURE.omega0, WS4_FIXTURE.c, WS4_FIXTURE.k0),\n target: WS4_FIXTURE.c,\n coarseResolution: 1,\n fineResolution: 2,\n tolerance: 2e-3,\n orderResolutions: [4, 8],\n },\n claim: {\n name: 'bound',\n at: (resolution) => ({ omega0: WS4_FIXTURE.omega0, c: WS4_FIXTURE.c, k: WS4_FIXTURE.k0 * resolution }),\n },\n },\n // ── Sprint 4 closure ─────────────────────────────────────────────────────\n {\n // Coarse-graining: Langevin second moments at t = resolution · τ_p, over 2Dt.\n recordId: 'ab-langevin-diffusion',\n kind: 'numeric',\n spec: {\n id: 'WD4',\n evaluate: (resolution) => langevinMsdRatio(resolution, WD4_FIXTURE),\n target: 1,\n coarseResolution: 10,\n fineResolution: 100,\n tolerance: 0.02,\n // 1000 τ_p only: 161 ms; 10000 τ_p measured 1.4 s.\n orderResolutions: [1000],\n },\n },\n {\n // Hyperedge: γ = 6πηa pushed into Einstein's D = k_BT/γ.\n recordId: 'ab-stokes-einstein',\n kind: 'symbolic',\n spec: {\n id: 'WD5s',\n lhs: applyDictionary(op('/', kT, gammaSym), { gamma: op('*', n(6), pi, eta, a) }),\n rhs: op('/', kT, op('*', n(6), pi, eta, a)),\n },\n },\n {\n // Singular limit τ → 0: the telegraph slow rate over Dq² tends to 1.\n recordId: 'ab-telegraph-diffusion',\n kind: 'numeric',\n spec: {\n id: 'WD6',\n evaluate: (resolution) =>\n telegraphSlowRateRatio(WD6_FIXTURE.tau0 / resolution, WD6_FIXTURE.D, WD6_FIXTURE.q),\n target: 1,\n coarseResolution: 2,\n fineResolution: 4,\n tolerance: 0.03,\n orderResolutions: [8, 16],\n },\n claim: {\n name: 'bound',\n at: (resolution) => ({ tau: WD6_FIXTURE.tau0 / resolution, D: WD6_FIXTURE.D, q: WD6_FIXTURE.q }),\n },\n },\n {\n // ε → ∞: the telegraph oscillation frequency over c q tends to 1.\n recordId: 'ab-telegraph-wave',\n kind: 'numeric',\n spec: {\n id: 'WD7',\n evaluate: (resolution) =>\n telegraphWaveFrequencyRatio(WD7_FIXTURE.eps0 * resolution, WD7_FIXTURE.D, WD7_FIXTURE.q),\n target: 1,\n coarseResolution: 1,\n fineResolution: 2,\n tolerance: 3e-3,\n orderResolutions: [4, 8],\n },\n claim: {\n name: 'bound',\n at: (resolution) => ({\n tau: (WD7_FIXTURE.eps0 * resolution) / (WD7_FIXTURE.D * WD7_FIXTURE.q ** 2),\n D: WD7_FIXTURE.D,\n q: WD7_FIXTURE.q,\n }),\n },\n },\n {\n // Steady state: the heat solution's deviation from the Laplace profile → 0.\n recordId: 'ab-heat-laplace',\n kind: 'numeric',\n spec: {\n id: 'WD8',\n evaluate: (resolution) => heatSteadyDeviation(resolution, WD8_FIXTURE),\n target: 0,\n coarseResolution: 2,\n fineResolution: 4,\n tolerance: 0.025,\n // The approach to the steady state is exponential in t, not a power law; the fit reports what it sees.\n orderResolutions: [8, 16],\n },\n },\n {\n // Non-relativistic limit: kinetic-frequency error → 0 as x = ck/ω₀ halves.\n recordId: 'ab-kg-schrodinger',\n kind: 'numeric',\n spec: {\n id: 'WS5',\n evaluate: (resolution) => kgNonrelativisticError(WS5_FIXTURE.x0 / resolution),\n target: 0,\n coarseResolution: 1,\n fineResolution: 2,\n tolerance: 1e-3,\n orderResolutions: [4, 8],\n },\n // The spec reads only x = ck/ω₀; c = ω₀ = 1 is one point with that x.\n claim: { name: 'bound', at: (resolution) => ({ c: 1, omega0: 1, k: WS5_FIXTURE.x0 / resolution }) },\n },\n {\n // Uniform-mode restriction: the full KG PDE, uniform data, vs cos(ω₀t).\n recordId: 'ab-kg-oscillator',\n kind: 'numeric',\n spec: {\n id: 'WS6',\n evaluate: (steps) =>\n kgUniformModeValue(steps, WS6_FIXTURE.c, WS6_FIXTURE.omega0, WS6_FIXTURE.tEnd),\n target: Math.cos(WS6_FIXTURE.omega0 * WS6_FIXTURE.tEnd),\n coarseResolution: 50,\n fineResolution: 100,\n tolerance: 3e-4,\n orderResolutions: [200, 400],\n },\n },\n {\n // Flexible-string limit: stiff-string phase velocity → √(F/μ) as k shrinks.\n recordId: 'ab-stiff-string',\n kind: 'numeric',\n spec: {\n id: 'WS7',\n evaluate: (resolution) =>\n stiffStringPhaseVelocity(resolution, WS7_FIXTURE.F, WS7_FIXTURE.mu, WS7_FIXTURE.EI, WS7_FIXTURE.k0),\n target: Math.sqrt(WS7_FIXTURE.F / WS7_FIXTURE.mu),\n coarseResolution: 1,\n fineResolution: 2,\n tolerance: 0.15,\n orderResolutions: [4, 8],\n },\n claim: {\n name: 'bound',\n at: (resolution) => ({\n F: WS7_FIXTURE.F,\n mu: WS7_FIXTURE.mu,\n EI: WS7_FIXTURE.EI,\n k: WS7_FIXTURE.k0 / resolution,\n }),\n },\n },\n // ── The three oscillator bridges that had no in-process witness ──────────\n {\n // Regular limit θ0 → 0: T/T0 of the pendulum, integrated by RK4, tends to 1.\n // The tolerance is the upper end W7 records, 0.002507 at θ0 = 0.2; the\n // bound's deltaAt there is the AGM form, a second method.\n recordId: 'ab-pendulum-linear',\n kind: 'numeric',\n spec: {\n id: 'W7',\n evaluate: (resolution) => measurePendulumPeriodRatio(W7_FIXTURE.theta0 / resolution),\n target: 1,\n coarseResolution: 1,\n fineResolution: 2,\n tolerance: 0.002507,\n orderResolutions: [4, 8],\n },\n claim: { name: 'bound', at: (resolution) => ({ theta0: W7_FIXTURE.theta0 / resolution }) },\n },\n {\n // Singular limit m → 0: the full damped spring's offset from the reduced\n // model outside the layer, integrated by RK4; the tolerance is the bound's\n // own deltaAt at the fine mass, which is not sharp there.\n recordId: 'ab-damped-massless',\n kind: 'numeric',\n spec: {\n id: 'W8b',\n evaluate: (resolution) => measureMasslessOffset(W8B_FIXTURE.m / resolution),\n target: 0,\n coarseResolution: 1,\n fineResolution: 2,\n tolerance: dampedOffsetBoundAt({ m: W8B_FIXTURE.m / 2, b: W8B_FIXTURE.b, k: W8B_FIXTURE.k, x0: W8B_FIXTURE.x0, v0: W8B_FIXTURE.v0 }),\n orderResolutions: [4, 8],\n },\n claim: {\n name: 'bound-holds-at',\n at: (resolution) => ({ m: W8B_FIXTURE.m / resolution, b: W8B_FIXTURE.b, k: W8B_FIXTURE.k, x0: W8B_FIXTURE.x0, v0: W8B_FIXTURE.v0 }),\n },\n },\n {\n // Coarse-graining, long wavelength: 1 − ω/(c q) measured on the integrated\n // ring, over (qa)²/24, tends to 1 within the 0.5% W9 records.\n recordId: 'ab-chain-wave',\n kind: 'numeric',\n spec: {\n id: 'W9',\n evaluate: (resolution) => {\n const masses = W9_FIXTURE.masses * resolution;\n return measureChainDispersionError(masses) / dispersionErrorApproximation((2 * Math.PI) / masses);\n },\n target: 1,\n coarseResolution: 1,\n fineResolution: 2,\n tolerance: 0.005,\n },\n claim: {\n name: 'preserves',\n item: 'long-wavelength dispersion ω ≈ c q',\n at: (resolution) => ({ qa: (2 * Math.PI) / (W9_FIXTURE.masses * resolution) }),\n },\n },\n];\n"]}