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":"proposed-bridges.js","sourceRoot":"","sources":["../../src/composition/proposed-bridges.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"proposed-bridges.js","sourceRoot":"","sources":["../../src/composition/proposed-bridges.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Identity-consequence surfacer — turns a `promising` discovery identification\n * into the ONE algebraic relation it implies, as an UNADJUDICATED proposal.\n *\n * When the discovery funnel flags `a ≟ b` (two canonical quantities of equal\n * dimension), and `a`, `b` are the TARGETS of two canonical equations `Eₐ`, `E_b`,\n * the hypothesised identity `a ≡ b` makes their right-hand sides equal:\n *\n * Eₐ.scalarAst = E_b.scalarAst\n *\n * Eliminating (isolating) one free variable yields a relation among the union of\n * the two governing sets — e.g. Landauer `k_B T ln2` ≟ Planck–Einstein `h ν`\n * gives `ν = (k_B ln2 / h) · T`, the \"Landauer photon\".\n *\n * CRITICAL — this is NOT new physics and NOT a bridge. It is the algebraic\n * consequence of an UNADJUDICATED identification, surfaced for a physicist to\n * judge (Part-VI §XXVII-B: the enumerator proposes, humans dispose). Every\n * emitted record carries `status: 'unadjudicated'` — a literal that is NOT a\n * member of `BridgeEquationStatus`, so a proposal can never be assigned where a\n * catalog entry is expected. The generator NEVER writes `BRIDGE_EQUATIONS` and a\n * proposal is NEVER added to `CANONICAL_GRAPH` (no coincidence-amplifying loop).\n *\n * Scope (v0.24.0 pilot): canonical-only `promising` candidates whose BOTH source\n * equations (a) have a non-null `dimensional.monomial` (determinate) and (b) are\n * `epistemicStatus: 'fully-quantitative'` (so the eliminated prefactor is a\n * closed numeric constant, not an operator-valued stub — this gates out\n * `CE-jarzynski`). See `docs/planning/v0.24.0-{Design,Review-Findings}.md`.\n *\n * INTERNAL tooling — deliberately NOT re-exported from `src/index.ts`.\n *\n * @module composition/proposed-bridges\n */\n\nimport { Fraction } from '@danielsimonjr/mathts-core';\nimport type { ExprNode } from '../dimensional/validator.js';\nimport { validate } from '../dimensional/validator.js';\nimport { sym, symbolPower } from '../dimensional/ast-builders.js';\nimport type { Dimension } from '../dimensional/types.js';\nimport { DIMENSIONLESS } from '../dimensional/types.js';\nimport { equals, format } from '../dimensional/algebra.js';\nimport type { DimensionalVariable } from '../dimensional/buckingham.js';\nimport type { BridgeEquationStatus } from '../bridges/index.js';\nimport { canonicalByTarget, canonicalById } from '../canonical/registry.js';\nimport type { KnownIssue } from '../bridges/index.js';\nimport { BRIDGE_EQUATIONS } from '../bridges/index.js';\nimport { catalogIdNumber } from '../bridges/catalog-load.js';\nimport { normalForm } from '../canonical/normal-form.js';\nimport { isRegisteredConstant } from '../dimensional/symbolic-constants.js';\nimport { forEachScalarLeaf, isDecimalLiteral, mapScalarLeaves } from '../dimensional/ast-leaves.js';\nimport { evalExpr } from './expr-eval.js';\nimport { rankDiscoveries } from './discovery.js';\nimport type { VettedCandidate } from './discovery.js';\nimport { CANONICAL_GRAPH } from './canonical-graph.js';\nimport { CATALOG_GRAPH } from './catalog-graph.js';\nimport { rationalExponentOf } from './formula-shape.js';\nimport { equalUpToConstant } from './algebraic-equivalence.js';\nimport { formatRational, fractionToNumber } from './rational-exponent.js';\n\n// ── monomial algebra over flat ExprNode forms ───────────────────────────────\n\n/**\n * A flat monomial: leaf name → its dimension and signed exact exponent.\n * `k_B·T·ln2 / h` ⇒ {k_B:+1, T:+1, ln2:+1, h:-1}. The exponent is a core\n * `Fraction`, so solving for a cubed leaf carries `1/3`, not\n * `0.3333333333333333`, and a cancellation is an exact zero.\n *\n * @internal\n */\nexport type Mono = Map<string, { dim: Dimension; exp: Fraction }>;\n\nconst ONE = new Fraction(1);\nconst MINUS_ONE = new Fraction(-1);\n\n/** Thrown when an AST is not a product / quotient / integer-power of symbols. @internal */\nexport class NotAMonomialError extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'NotAMonomialError';\n }\n}\n\nfunction mergeInto(into: Mono, from: Mono, scale: Fraction): void {\n for (const [name, { dim, exp }] of from) {\n const cur = into.get(name);\n if (cur === undefined) {\n into.set(name, { dim, exp: exp.multiply(scale) });\n } else {\n if (!equals(cur.dim, dim)) {\n throw new NotAMonomialError(\n `leaf '${name}' appears with inconsistent dimensions`,\n );\n }\n cur.exp = cur.exp.add(exp.multiply(scale));\n }\n }\n}\n\n/**\n * Decompose a flat-monomial `ExprNode` into a leaf→exponent map. Throws\n * `NotAMonomialError` on sums, differences, or non-symbol bases — this is the\n * AST-level monomial gate.\n *\n * @internal\n */\nexport function toMonomial(ast: ExprNode): Mono {\n const out: Mono = new Map();\n switch (ast.kind) {\n case 'symbol':\n out.set(ast.name, { dim: ast.dim, exp: ONE });\n return out;\n case 'op':\n switch (ast.op) {\n case '*':\n for (const a of ast.args) mergeInto(out, toMonomial(a), ONE);\n return out;\n case '/': {\n const [num, ...dens] = ast.args;\n mergeInto(out, toMonomial(num), ONE);\n for (const d of dens) mergeInto(out, toMonomial(d), MINUS_ONE);\n return out;\n }\n case '^': {\n const [base, expNode] = ast.args;\n if (expNode.kind !== 'symbol') {\n throw new NotAMonomialError('non-literal exponent');\n }\n const n = rationalExponentOf(expNode.name);\n if (n === undefined) {\n throw new NotAMonomialError(`non-numeric exponent '${expNode.name}'`);\n }\n mergeInto(out, toMonomial(base), n);\n return out;\n }\n default:\n throw new NotAMonomialError(`operator '${ast.op}' is not monomial`);\n }\n default:\n throw new NotAMonomialError(`node kind '${ast.kind}' is not monomial`);\n }\n}\n\n/** Rebuild a flat-monomial `ExprNode` from a leaf→exponent map (numerator =\n * positive exponents, denominator = negative). Zero exponents drop out. The\n * exponent literal is the double built from the fraction (`1/3` is written\n * `0.3333333333333333`), so one rational is always one spelling.\n *\n * This is not merged with `monomialToExpr` (composition/probe/generator.ts),\n * which writes one product with negative exponents in code-unit name order;\n * this one orders names by `localeCompare` and splits a quotient. The\n * proposals' printed formulas and the IC dedup key read this tree, so one\n * builder would move them. Both build each factor with `symbolPower`.\n * @internal */\nexport function fromMonomial(m: Mono): ExprNode {\n const factor = (name: string, dim: Dimension, e: Fraction): ExprNode =>\n symbolPower(sym(name, dim), fractionToNumber(e));\n\n const num: ExprNode[] = [];\n const den: ExprNode[] = [];\n for (const [name, { dim, exp }] of [...m].sort((a, b) => a[0].localeCompare(b[0]))) {\n if (exp.isZero()) continue;\n if (exp.numerator > 0n) num.push(factor(name, dim, exp));\n else den.push(factor(name, dim, exp.abs()));\n }\n const product = (xs: ExprNode[]): ExprNode =>\n xs.length === 1 ? xs[0] : { kind: 'op', op: '*', args: xs };\n\n const numerator = num.length === 0 ? sym('1', DIMENSIONLESS) : product(num);\n if (den.length === 0) return numerator;\n return { kind: 'op', op: '/', args: [numerator, product(den)] };\n}\n\n// ── the proposal record ─────────────────────────────────────────────────────\n\n/**\n * A machine-DERIVED candidate bridge — the MATH ONLY. The algebraic consequence\n * of an UNADJUDICATED identification; never a status claim. Structurally distinct\n * from `BridgeEquationEntry` (omits every physics-judgment field) and carries the\n * literal `status: 'unadjudicated'`, which is NOT a `BridgeEquationStatus`.\n *\n * @internal\n */\nexport interface ProposedBridge {\n /** `IC-<sorted-a>--<sorted-b>--<solvedFor>`. */\n readonly id: string;\n readonly derivedFrom: {\n readonly identification: { readonly a: string; readonly b: string; readonly dim: string };\n readonly sourceEquationIds: readonly [string, string];\n readonly solvedFor: string;\n };\n readonly target: DimensionalVariable;\n /** Free (non-constant) inputs of the derived relation. */\n readonly governing: readonly DimensionalVariable[];\n readonly formulaLatex: string;\n /** Dimensionally-VALIDATED derived RHS (round-trips to `dimensionalSignature`). */\n readonly scalarAst: ExprNode;\n /** `format()` of the inferred dimension — same convention as the catalog. */\n readonly dimensionalSignature: string;\n /** Mechanical derivation description — NO physics claim. */\n readonly provenance: string;\n /** Other identifications that derive the SAME relation (same normal form, up\n * to dimensionless constants), collapsed into this proposal by the dedup pass.\n * Empty unless a wider candidate scope produced structural duplicates. */\n readonly alsoDerivableFrom: readonly string[];\n /** ALWAYS the literal 'unadjudicated'. NOT a BridgeEquationStatus. */\n readonly status: 'unadjudicated';\n /** Numerically evaluate the derived RHS; constants auto-resolve, supply the\n * free `governing` leaves (e.g. `{ T: 300 }`). */\n evaluate(values: Readonly<Record<string, number>>): number;\n}\n\nconst isConstant = isRegisteredConstant;\n\n/** One leaf of a monomial with its exact exponent. @internal */\nexport interface MonoLeaf {\n readonly name: string;\n readonly dim: Dimension;\n readonly exp: Fraction;\n}\n\n/** The single non-constant leaf of a monomial, or null if 0 or >1. */\nfunction uniqueNonConstantLeaf(m: Mono): MonoLeaf | null {\n const free = [...m].filter(([name]) => !isConstant(name));\n if (free.length !== 1) return null;\n const [name, { dim, exp }] = free[0];\n return { name, dim, exp };\n}\n\n/** The LaTeX of a monomial, exponents rendered from their fractions (`y^{1/3}`). @internal */\nexport function latexFromMono(m: Mono): string {\n const num: string[] = [];\n const den: string[] = [];\n for (const [name, { exp }] of [...m].sort((a, b) => a[0].localeCompare(b[0]))) {\n if (exp.isZero()) continue;\n const magnitude = exp.abs();\n const tok = magnitude.equals(ONE) ? name : `${name}^{${formatRational(magnitude)}}`;\n (exp.numerator > 0n ? num : den).push(tok);\n }\n const n = num.join(' \\\\cdot ') || '1';\n return den.length ? `\\\\frac{${n}}{${den.join(' \\\\cdot ')}}` : n;\n}\n\n/**\n * Isolate `solveFor` from `m1 = m2`: `solveFor^e = m1 / (m2 without solveFor)`,\n * every exponent divided by `e`, exactly. `m2` must hold `solveFor`.\n *\n * @internal\n */\nexport function isolateLeaf(m1: Mono, m2: Mono, solveFor: MonoLeaf): Mono {\n const result: Mono = new Map();\n mergeInto(result, m1, ONE);\n const m2NoSolve: Mono = new Map(m2);\n m2NoSolve.delete(solveFor.name);\n mergeInto(result, m2NoSolve, MINUS_ONE);\n if (!solveFor.exp.equals(ONE)) {\n for (const v of result.values()) v.exp = v.exp.divide(solveFor.exp);\n }\n return result;\n}\n\n// ── leaf-name canonicalization ──────────────────────────────────────────────\n// A canonical equation's `scalarAst` uses private symbols (`T`) while its\n// `dimensional.governing` and the whole composition graph (and bridge `symbolic`\n// forms) use quantity names (`temperature`). Aligning the AST leaves to the\n// governing names lets a derivation from a canonical equation and one from a\n// bridge edge of the SAME physics collapse under `dedupByNormalForm`.\n\nfunction collectLeafDims(ast: ExprNode, into: Map<string, Dimension>): void {\n forEachScalarLeaf(\n ast,\n (leaf) => {\n if (!into.has(leaf.name)) into.set(leaf.name, leaf.dim);\n },\n {},\n );\n}\n\n/** Map each non-constant `scalarAst` leaf to the governing quantity of equal\n * dimension, when that match is unique (else leave it — never guess). */\nfunction leafCanonMap(\n scalarAst: ExprNode,\n governing: readonly DimensionalVariable[],\n): Map<string, string> {\n const leaves = new Map<string, Dimension>();\n collectLeafDims(scalarAst, leaves);\n const govFree = governing.filter((g) => !isConstant(g.name));\n const map = new Map<string, string>();\n for (const [leaf, dim] of leaves) {\n if (isConstant(leaf) || isDecimalLiteral(leaf)) continue;\n if (govFree.some((g) => g.name === leaf)) continue; // already a graph name\n const matches = govFree.filter((g) => equals(g.dim, dim));\n if (matches.length === 1) map.set(leaf, matches[0].name);\n }\n return map;\n}\n\nfunction renameLeaves(ast: ExprNode, map: ReadonlyMap<string, string>): ExprNode {\n if (map.size === 0) return ast;\n return mapScalarLeaves(\n ast,\n (leaf) => {\n const r = map.get(leaf.name);\n return r ? { ...leaf, name: r } : leaf;\n },\n {},\n );\n}\n\n// ── the generator ───────────────────────────────────────────────────────────\n\n/**\n * An admissible source for the elimination: a target name backed by a flat\n * monomial `scalarAst` whose prefactor is a closed constant. Canonical equations\n * and bridge edges both project to this shape, so the generator no longer needs\n * to know which it came from.\n */\ninterface EquationSource {\n /** `CE-…` (canonical) or `BE-<n>` (bridge). */\n readonly id: string;\n readonly kind: 'canonical' | 'bridge';\n readonly scalarAst: ExprNode;\n readonly targetDim: Dimension;\n /** `epistemicStatus` (canonical) or `confidence` (bridge) — recorded, not gated. */\n readonly grade: string;\n}\n\n/** True if the monomial carries a dimensionless leaf that is neither a known\n * constant, a numeric literal, NOR a declared input quantity — i.e. an\n * operator-valued STUB (e.g. Jarzynski's `ln_avg_exp_minus_betaW`), not a clean\n * dimensionless INPUT like a coupling constant (BE-18's `yukawa-coupling`). */\nfunction hasNonConstantStub(m: Mono, inputs: ReadonlySet<string>): boolean {\n for (const [name, { dim }] of m) {\n if (\n equals(dim, DIMENSIONLESS) &&\n !isConstant(name) &&\n !isDecimalLiteral(name) &&\n !inputs.has(name)\n ) {\n return true;\n }\n }\n return false;\n}\n\n/** ALL admissible sources for `name` — every canonical equation AND every bridge\n * edge whose target is `name` and whose form is a clean monomial. A target with\n * several sources (e.g. BE-42 Hawking's two parametrisations) is DE-AMBIGUATED by\n * enumeration, not skipped; coinciding derivations collapse later under dedup.\n * @internal */\nexport function resolveSources(name: string): EquationSource[] {\n const out: EquationSource[] = [];\n\n // Canonical: a determinate monomial AND a fully-quantitative form.\n for (const e of canonicalByTarget(name)) {\n if (\n e.scalarAst &&\n e.dimensional.monomial !== null &&\n e.epistemicStatus === 'fully-quantitative'\n ) {\n // Align the AST's private leaf symbols (`T`) with the governing quantity\n // names (`temperature`) so canonical- and bridge-sourced derivations of the\n // same relation collapse under dedup.\n const scalarAst = renameLeaves(\n e.scalarAst,\n leafCanonMap(e.scalarAst, e.dimensional.governing),\n );\n out.push({\n id: e.id,\n kind: 'canonical',\n scalarAst,\n targetDim: e.dimensional.target.dim,\n grade: e.epistemicStatus,\n });\n }\n }\n\n // Bridge: edges carrying a clean-monomial `symbolic` form. `confidence` is about\n // FRAMING, not formula completeness, so it is recorded — not gated; the\n // structural stub check enforces a closed prefactor instead.\n for (const edge of CATALOG_GRAPH) {\n if (edge.target.name !== name || !edge.symbolic) continue;\n let m: Mono;\n try {\n m = toMonomial(edge.symbolic);\n } catch (err) {\n if (err instanceof NotAMonomialError) continue;\n throw err;\n }\n if (hasNonConstantStub(m, new Set(edge.sources.map((s) => s.name)))) continue;\n const dim = validate(edge.symbolic).inferredDimension;\n if (!dim || !equals(dim, edge.target.dim)) continue;\n out.push({\n id: edge.beId !== null ? `BE-${edge.beId}` : edge.id,\n kind: 'bridge',\n scalarAst: edge.symbolic,\n targetDim: edge.target.dim,\n grade: edge.confidence,\n });\n }\n\n return out;\n}\n\n/**\n * Derive the implied relation for each `promising` identification in `candidates`.\n * Returns ONE proposal per admissible candidate (Adam M2), structurally\n * de-duplicated (`dedupByNormalForm`).\n *\n * Candidate-set-agnostic: pass `rankDiscoveries(CANONICAL_GRAPH)` (default),\n * `…(CATALOG_GRAPH)`, or `…([...CATALOG_GRAPH, ...CANONICAL_GRAPH])` to widen the\n * source — the CLI `discover --derive` forwards whichever `--source=` graph is\n * selected. Each endpoint is resolved by `resolveSource` to a canonical equation\n * OR a bridge edge with a clean-monomial `symbolic` form, so a candidate yields a\n * proposal when BOTH endpoints resolve (the Landauer photon, for instance, is\n * derivable both from `CE-landauer` and — at `--source=both` — from the BE-16\n * bridge). A target with SEVERAL admissible sources (BE-42 Hawking's two\n * parametrisations, or a canonical + bridge pair) is de-ambiguated by ENUMERATION\n * — every source pair is tried and coincidences collapse under dedup. HONEST\n * BOUNDARY: an endpoint with no clean-monomial source (a bridge with no `symbolic`\n * form or a non-monomial one) yields nothing.\n *\n * Pure; reads the registries, writes nothing.\n *\n * @internal\n */\nexport function deriveProposedBridges(\n candidates: readonly VettedCandidate[] = rankDiscoveries(CANONICAL_GRAPH),\n): readonly ProposedBridge[] {\n const out: ProposedBridge[] = [];\n for (const cand of candidates) {\n if (cand.verdict !== 'promising') continue;\n const [t0, t1] = [cand.a, cand.b].sort();\n // Enumerate every admissible source pair (de-ambiguation by enumeration).\n for (const E1 of resolveSources(t0)) {\n for (const E2 of resolveSources(t1)) {\n const p = derivePair(cand, t0, t1, E1, E2);\n if (p) out.push(p);\n }\n }\n }\n return disambiguateIds(dedupByNormalForm(out));\n}\n\n/** Derive one proposal from a fixed source pair, or null if inadmissible. */\nfunction derivePair(\n cand: VettedCandidate,\n t0: string,\n t1: string,\n E1: EquationSource,\n E2: EquationSource,\n): ProposedBridge | null {\n let m1: Mono;\n let m2: Mono;\n try {\n m1 = toMonomial(E1.scalarAst);\n m2 = toMonomial(E2.scalarAst);\n } catch (e) {\n if (e instanceof NotAMonomialError) return null;\n throw e;\n }\n\n const solveFor = uniqueNonConstantLeaf(m2);\n if (!solveFor) return null; // no single observable to isolate\n if (m1.has(solveFor.name)) return null; // degenerate overlap (Design §5.2)\n\n // Isolate solveFor from `m1 = m2`: solveFor^e = m1 / (m2 without solveFor).\n const result = isolateLeaf(m1, m2, solveFor);\n\n const scalarAst = fromMonomial(result);\n const dim = validate(scalarAst).inferredDimension;\n if (!dim || !equals(dim, solveFor.dim)) return null; // round-trip guard\n\n const governing: DimensionalVariable[] = [...result]\n .filter(([name]) => !isConstant(name))\n .map(([name, { dim: d }]) => ({ name, dim: d }));\n\n const src = (e: EquationSource) => `${e.id} (${e.kind}, ${e.grade})`;\n const provenance =\n `Monomial elimination of the UNADJUDICATED identification ${cand.a} ≡ ${cand.b} ` +\n `(${src(E1)}.rhs = ${src(E2)}.rhs), solved for '${solveFor.name}'. ` +\n `Algebraic consequence of a hypothesised identity — NOT a new physical ` +\n `relation and NOT a bridge. Invertible (any free leaf may be isolated).`;\n\n return {\n id: `IC-${t0}--${t1}--${solveFor.name}`,\n derivedFrom: {\n identification: { a: cand.a, b: cand.b, dim: cand.dim },\n sourceEquationIds: [E1.id, E2.id],\n solvedFor: solveFor.name,\n },\n target: { name: solveFor.name, dim: solveFor.dim },\n governing,\n formulaLatex: `${solveFor.name} = ${latexFromMono(result)}`,\n scalarAst,\n dimensionalSignature: format(dim),\n provenance,\n alsoDerivableFrom: [],\n status: 'unadjudicated',\n evaluate: (values) => evalExpr(scalarAst, values),\n };\n}\n\n/** Make ids unique: when distinct proposals (different source pairs) collide on\n * the base `IC-<a>--<b>--<solveFor>` id, suffix each with its source pair. */\nfunction disambiguateIds(\n proposals: readonly ProposedBridge[],\n): readonly ProposedBridge[] {\n const counts = new Map<string, number>();\n for (const p of proposals) counts.set(p.id, (counts.get(p.id) ?? 0) + 1);\n return proposals.map((p) =>\n (counts.get(p.id) ?? 0) > 1\n ? { ...p, id: `${p.id}--${p.derivedFrom.sourceEquationIds.join('+')}` }\n : p,\n );\n}\n\n/**\n * The hash a proposal dedupes under: `normalForm` of its monomial rebuilt\n * from the exact exponents (so `0.3333333333333333` and\n * `0.33333333333333337` are one `1/3`), or of the AST itself when it is not\n * a monomial.\n */\nfunction dedupKey(p: ProposedBridge): string {\n let canonical: ExprNode = p.scalarAst;\n try {\n canonical = fromMonomial(toMonomial(p.scalarAst));\n } catch (err) {\n if (!(err instanceof NotAMonomialError)) throw err;\n }\n return `${normalForm(canonical)}::${p.dimensionalSignature}`;\n}\n\n/**\n * Collapse proposals that derive the SAME relation — equal `normalForm` (up to\n * dimensionless constants) of the exact monomial AND equal target dimension —\n * into the first, recording the others' identifications in\n * `alsoDerivableFrom`. Distinct stubs do NOT collapse (e.g. Landauer's dropped\n * `ln2` vs an operator stub hash differently), so this only merges genuine\n * structural twins that a wider candidate scope can produce (Design §9 #2).\n * Deterministic: input order is preserved.\n *\n * @internal\n */\nexport function dedupByNormalForm(\n proposals: readonly ProposedBridge[],\n): readonly ProposedBridge[] {\n const byKey = new Map<string, ProposedBridge>();\n const order: string[] = [];\n const extras = new Map<string, string[]>();\n\n for (const p of proposals) {\n let key = dedupKey(p);\n // On a hash miss, the algebraic step: a kept proposal of the same dimension\n // that is this one up to a constant owns the key (`a/(b/c)` for `a·c/b`).\n if (!byKey.has(key)) {\n const twin = order.find((k) => {\n const candidate = byKey.get(k)!;\n return candidate.dimensionalSignature === p.dimensionalSignature && equalUpToConstant(candidate.scalarAst, p.scalarAst).equal;\n });\n if (twin !== undefined) key = twin;\n }\n const kept = byKey.get(key);\n if (kept === undefined) {\n byKey.set(key, p);\n order.push(key);\n extras.set(key, [...p.alsoDerivableFrom]);\n } else {\n const tag = `${p.derivedFrom.identification.a} ≡ ${p.derivedFrom.identification.b}`;\n extras.get(key)!.push(tag, ...p.alsoDerivableFrom);\n }\n }\n\n return order.map((key) => {\n const p = byKey.get(key)!;\n const merged = [...new Set(extras.get(key)!)].sort();\n return merged.length === p.alsoDerivableFrom.length\n ? p\n : { ...p, alsoDerivableFrom: merged };\n });\n}\n\n// ── promotion gate (guardrail #5) ───────────────────────────────────────────\n\n/** The human inputs a proposal CANNOT supply — fabricating them is forbidden. */\ninterface PromotionEvidence {\n /** Literature anchor establishing the relation (appears / contradicts / neither). */\n readonly citation: string;\n /** Human-chosen catalog status — never defaulted. */\n readonly status: BridgeEquationStatus;\n /** Path to the recorded adversarial + literature review. */\n readonly reviewRef: string;\n}\n\n/** A review-ready promotion request — the artifact a human turns into a catalog\n * entry. Holding one does NOT mutate `BRIDGE_EQUATIONS`. */\ninterface PromotionRequest {\n readonly proposal: ProposedBridge;\n readonly evidence: PromotionEvidence;\n}\n\n/** Thrown when a proposal is promoted without the evidence the promotion requires. @internal */\nexport class MissingEvidenceError extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'MissingEvidenceError';\n }\n}\n\n/**\n * Gate a proposal toward the catalog. THROWS `MissingEvidenceError` unless every\n * human input is present and non-blank (operationalises \"null, not guessed\").\n * Returns a `PromotionRequest`; it deliberately does NOT synthesise a\n * `BridgeEquationEntry` — the physics-judgment fields are human work.\n *\n * @internal\n */\nexport function promoteProposal(\n proposal: ProposedBridge,\n evidence: PromotionEvidence,\n): PromotionRequest {\n const blank = (s: unknown): boolean => typeof s !== 'string' || s.trim() === '';\n if (blank(evidence.citation)) throw new MissingEvidenceError('citation required');\n if (blank(evidence.reviewRef)) throw new MissingEvidenceError('reviewRef required');\n if (!evidence.status) throw new MissingEvidenceError('status required (not defaulted)');\n return { proposal, evidence };\n}\n\n// ── PROPOSED_BRIDGES review surface (catalog field-shape, own registry) ──────\n\n/**\n * A derived proposal in the catalog's field SHAPE, for review — but in its OWN\n * registry and carrying `status: 'unadjudicated'` (NOT a `BridgeEquationStatus`).\n * This is deliberately NOT a `BridgeEquationEntry`: it omits the spec-only fields\n * (`source_part`/`source_section`/numeric `id`) and never enters `BRIDGE_EQUATIONS`,\n * which stays the faithful encoding of the specification.\n *\n * @internal\n */\ninterface ProposedBridgeEntry {\n readonly id: string;\n readonly name: string;\n readonly category: 'Z';\n readonly category_name: 'Machine-Derived Identity Consequences (UNADJUDICATED)';\n /** The two regimes bridged — the source equations' domains. */\n readonly bridges: readonly [string, string];\n /** ALWAYS 'unadjudicated' — not a catalog status. */\n readonly status: 'unadjudicated';\n readonly context: string;\n readonly formula_latex: string;\n readonly dimensional_signature: string;\n /** Honest references: a derivation note + the SOURCE equations' citations,\n * never a fabricated citation for the derived relation itself. */\n readonly references: readonly string[];\n readonly known_issues: readonly KnownIssue[];\n readonly derivedFrom: ProposedBridge['derivedFrom'];\n readonly notes: string;\n}\n\n/** Domain label + citations for a source id — canonical (`CE-…`) or bridge\n * (`BE-<n>`), so the entry surface works for either source kind. */\nfunction equationMeta(id: string): { domain: string; references: readonly string[] } {\n const ce = canonicalById(id);\n if (ce) return { domain: ce.domain, references: ce.references };\n const n = catalogIdNumber(id);\n const be = n === undefined ? undefined : BRIDGE_EQUATIONS.find((e) => e.id === n);\n if (be) return { domain: `${be.bridges[0]}↔${be.bridges[1]} (${be.status})`, references: be.references };\n return { domain: 'unknown', references: [] };\n}\n\n/** Render a `ProposedBridge` into the catalog field-shape, filled honestly. @internal */\nexport function toProposedEntry(p: ProposedBridge): ProposedBridgeEntry {\n const [id1, id2] = p.derivedFrom.sourceEquationIds;\n const M1 = equationMeta(id1);\n const M2 = equationMeta(id2);\n const { a, b } = p.derivedFrom.identification;\n const srcRefs = [\n [id1, M1] as const,\n [id2, M2] as const,\n ].flatMap(([id, m]) => m.references.map((r) => `source ${id}: ${r}`));\n return {\n id: p.id,\n name: `${a} ≡ ${b} ⇒ ${p.derivedFrom.solvedFor} (derived)`,\n category: 'Z',\n category_name: 'Machine-Derived Identity Consequences (UNADJUDICATED)',\n bridges: [M1.domain, M2.domain],\n status: 'unadjudicated',\n context:\n `Algebraic consequence of the UNADJUDICATED identification ${a} ≡ ${b} ` +\n `(${id1}.rhs = ${id2}.rhs), solved for ${p.derivedFrom.solvedFor}. A ` +\n `dimensional coincidence surfaced by the discovery funnel — no physical ` +\n `mechanism is asserted, and it is NOT a bridge.`,\n formula_latex: p.formulaLatex,\n dimensional_signature: p.dimensionalSignature,\n references: [\n 'Machine-derived; the combined relation has no independent literature.',\n ...srcRefs,\n ],\n known_issues: [\n {\n severity: 'phenomenological-ansatz',\n description:\n 'Machine-derived dimensional coincidence: the algebraic consequence ' +\n 'of an unadjudicated identification, with no mechanism and no ' +\n 'independent literature. Promotion to BRIDGE_EQUATIONS requires an ' +\n 'adversarial + literature review (Part-VI §XXVII-B) via promoteProposal().',\n fixable: 'unknown',\n },\n ],\n derivedFrom: p.derivedFrom,\n notes:\n p.provenance +\n (p.alsoDerivableFrom.length\n ? ` Also derivable from: ${p.alsoDerivableFrom.join('; ')}.`\n : ''),\n };\n}\n\n/**\n * The PROPOSED-BRIDGE review surface: derived identity-consequences in the\n * catalog's field shape, in their OWN registry, every entry `status:\n * 'unadjudicated'`. Separate from `BRIDGE_EQUATIONS` (the faithful spec\n * encoding), which this never mutates. Default scope: canonical-only — widen with\n * `deriveProposedBridges(rankDiscoveries(graph)).map(toProposedEntry)`.\n *\n * @internal\n */\nexport const PROPOSED_BRIDGES: readonly ProposedBridgeEntry[] =\n deriveProposedBridges().map(toProposedEntry);\n"]}
@@ -9,8 +9,4 @@ import type { Quantity } from './quantity.js';
9
9
  export declare function allQuantities(): readonly Quantity[];
10
10
  /** The graph node named `name`. */
11
11
  export declare function quantityByName(name: string): Quantity;
12
- /** Canonical temperature node. */
13
- export declare const temperatureQ: Quantity;
14
- /** Canonical mass node. */
15
- export declare const massQ: Quantity;
16
12
  //# sourceMappingURL=quantities.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"quantities.d.ts","sourceRoot":"","sources":["../../src/composition/quantities.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAoB,MAAM,eAAe,CAAC;AAahE,+CAA+C;AAC/C,wBAAgB,aAAa,IAAI,SAAS,QAAQ,EAAE,CAEnD;AAED,mCAAmC;AACnC,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAIrD;AAED,kCAAkC;AAClC,eAAO,MAAM,YAAY,UAAgC,CAAC;AAC1D,2BAA2B;AAC3B,eAAO,MAAM,KAAK,UAAyB,CAAC"}
1
+ {"version":3,"file":"quantities.d.ts","sourceRoot":"","sources":["../../src/composition/quantities.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAiB9C,+CAA+C;AAC/C,wBAAgB,aAAa,IAAI,SAAS,QAAQ,EAAE,CAEnD;AAED,mCAAmC;AACnC,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAIrD"}
@@ -5,6 +5,10 @@
5
5
  * @module composition/quantities
6
6
  */
7
7
  import { allQuantityRecords } from '../dimensional/quantity-registry.js';
8
+ import { regimeAttributesOf } from './quantity.js';
9
+ // A row's attributes are checked against the axis registry here, at load: a
10
+ // misspelt axis or value in `data/quantities.json` is an error, not an unstated
11
+ // axis the gate silently abstains on (9.0.0 audit §4 Low).
8
12
  const nodes = new Map();
9
13
  for (const row of allQuantityRecords()) {
10
14
  if (!row.graphNode)
@@ -13,7 +17,7 @@ for (const row of allQuantityRecords()) {
13
17
  name: row.id,
14
18
  symbol: row.symbol,
15
19
  dim: row.dimension,
16
- attributes: row.attributes,
20
+ attributes: regimeAttributesOf(row.attributes, `data/quantities.json ${row.id}`),
17
21
  });
18
22
  }
19
23
  /** Every graph quantity, in registry order. */
@@ -27,8 +31,4 @@ export function quantityByName(name) {
27
31
  throw new Error(`quantityByName: no graph quantity '${name}'`);
28
32
  return found;
29
33
  }
30
- /** Canonical temperature node. */
31
- export const temperatureQ = quantityByName('temperature');
32
- /** Canonical mass node. */
33
- export const massQ = quantityByName('mass');
34
34
  //# sourceMappingURL=quantities.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"quantities.js","sourceRoot":"","sources":["../../src/composition/quantities.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAGzE,MAAM,KAAK,GAAG,IAAI,GAAG,EAAoB,CAAC;AAC1C,KAAK,MAAM,GAAG,IAAI,kBAAkB,EAAE,EAAE,CAAC;IACvC,IAAI,CAAC,GAAG,CAAC,SAAS;QAAE,SAAS;IAC7B,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE;QAChB,IAAI,EAAE,GAAG,CAAC,EAAE;QACZ,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,GAAG,EAAE,GAAG,CAAC,SAAS;QAClB,UAAU,EAAE,GAAG,CAAC,UAA8B;KAC/C,CAAC,CAAC;AACL,CAAC;AAED,+CAA+C;AAC/C,MAAM,UAAU,aAAa;IAC3B,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;AAC7B,CAAC;AAED,mCAAmC;AACnC,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,KAAK,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,IAAI,GAAG,CAAC,CAAC;IACxF,OAAO,KAAK,CAAC;AACf,CAAC;AAED,kCAAkC;AAClC,MAAM,CAAC,MAAM,YAAY,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;AAC1D,2BAA2B;AAC3B,MAAM,CAAC,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"quantities.js","sourceRoot":"","sources":["../../src/composition/quantities.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAEzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEnD,4EAA4E;AAC5E,gFAAgF;AAChF,2DAA2D;AAC3D,MAAM,KAAK,GAAG,IAAI,GAAG,EAAoB,CAAC;AAC1C,KAAK,MAAM,GAAG,IAAI,kBAAkB,EAAE,EAAE,CAAC;IACvC,IAAI,CAAC,GAAG,CAAC,SAAS;QAAE,SAAS;IAC7B,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE;QAChB,IAAI,EAAE,GAAG,CAAC,EAAE;QACZ,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,GAAG,EAAE,GAAG,CAAC,SAAS;QAClB,UAAU,EAAE,kBAAkB,CAAC,GAAG,CAAC,UAAU,EAAE,wBAAwB,GAAG,CAAC,EAAE,EAAE,CAAC;KACjF,CAAC,CAAC;AACL,CAAC;AAED,+CAA+C;AAC/C,MAAM,UAAU,aAAa;IAC3B,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;AAC7B,CAAC;AAED,mCAAmC;AACnC,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,KAAK,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,IAAI,GAAG,CAAC,CAAC;IACxF,OAAO,KAAK,CAAC;AACf,CAAC","sourcesContent":["/**\n * Graph quantity nodes, projected from the quantity registry.\n * One object per canonical name.\n *\n * @module composition/quantities\n */\n\nimport { allQuantityRecords } from '../dimensional/quantity-registry.js';\nimport type { Quantity } from './quantity.js';\nimport { regimeAttributesOf } from './quantity.js';\n\n// A row's attributes are checked against the axis registry here, at load: a\n// misspelt axis or value in `data/quantities.json` is an error, not an unstated\n// axis the gate silently abstains on (9.0.0 audit §4 Low).\nconst nodes = new Map<string, Quantity>();\nfor (const row of allQuantityRecords()) {\n if (!row.graphNode) continue;\n nodes.set(row.id, {\n name: row.id,\n symbol: row.symbol,\n dim: row.dimension,\n attributes: regimeAttributesOf(row.attributes, `data/quantities.json ${row.id}`),\n });\n}\n\n/** Every graph quantity, in registry order. */\nexport function allQuantities(): readonly Quantity[] {\n return [...nodes.values()];\n}\n\n/** The graph node named `name`. */\nexport function quantityByName(name: string): Quantity {\n const found = nodes.get(name);\n if (found === undefined) throw new Error(`quantityByName: no graph quantity '${name}'`);\n return found;\n}\n"]}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * The one component owner: items that share a (canonical) quantity are one cluster.
3
+ *
4
+ * `linkageMap` (equations sharing a quantity), `buildVizModel` (junctions sharing a quantity,
5
+ * with a proposed or user overlay) and the discovery funnel (quantities sharing an equation or
6
+ * an identification) each once ran their own union-find with the same ordering. This module is
7
+ * that partition, computed through MathTS `connectedComponents` over an adjacency of item
8
+ * indices, with the ordering every caller used: a cluster keeps its items in input order, and
9
+ * clusters come largest first, then by the id of their first item. The anchoring rules differ
10
+ * between callers on purpose (`graph-viz.ts` anchors on `law` or `established` status,
11
+ * `bridge-analysis.ts` on `established` confidence) and stay with each caller.
12
+ *
13
+ * @module composition/quantity-clusters
14
+ */
15
+ /**
16
+ * Quantity-name canonicalizer honouring `QUANTITY_IDENTIFICATIONS`: maps each name to its
17
+ * identified representative (`hawking-temperature` → `temperature`) and leaves every other
18
+ * name alone. The linkage substrate of `linkageMap`, `proposeLinkCandidates` and the visual
19
+ * map. `anchoringDistance` deliberately does NOT use it (it links on raw names; its 0/∞
20
+ * distance contract is pinned).
21
+ *
22
+ * @internal
23
+ */
24
+ export declare function quantityCanonicalizer(): (name: string) => string;
25
+ /**
26
+ * Group items by one key, keys in first-seen order, members in input order. The group-by
27
+ * every cluster consumer once re-inlined as `if (!m.has(k)) m.set(k, []); m.get(k)!.push(v)`.
28
+ *
29
+ * @internal
30
+ */
31
+ export declare function groupInto<K, V>(items: readonly V[], keyOf: (item: V) => K): Map<K, V[]>;
32
+ /**
33
+ * Partition `items` into clusters of items that share at least one key (transitively): the
34
+ * connected components, through MathTS `connectedComponents`, of the graph whose nodes are item
35
+ * indices and whose links join items with a key in common. Each cluster lists its items in
36
+ * input order; clusters come largest first, then by `idOf` of their first item (by that item's
37
+ * input position when no `idOf` is given). An item with no key is a cluster of its own; an
38
+ * empty input is no cluster.
39
+ *
40
+ * Cost: `connectedComponents` takes a dense n×n adjacency matrix, so memory is O(n²) in the
41
+ * number of items (8·n² bytes as numbers: about 4 MB at n = 700, the order of the quantity
42
+ * names one discovery context clusters, once per context; 800 MB at n = 10 000). A caller with
43
+ * thousands of items should expect that, or cluster with a union-find over the key lists.
44
+ *
45
+ * @internal
46
+ */
47
+ export declare function clusterBySharedKeys<T>(items: readonly T[], keysOf: (item: T) => readonly string[], idOf?: (item: T) => string): T[][];
48
+ //# sourceMappingURL=quantity-clusters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quantity-clusters.d.ts","sourceRoot":"","sources":["../../src/composition/quantity-clusters.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAKH;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,IAAI,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAGhE;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CASvF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EACnC,KAAK,EAAE,SAAS,CAAC,EAAE,EACnB,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,SAAS,MAAM,EAAE,EACtC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,GACzB,CAAC,EAAE,EAAE,CAgCP"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * The one component owner: items that share a (canonical) quantity are one cluster.
3
+ *
4
+ * `linkageMap` (equations sharing a quantity), `buildVizModel` (junctions sharing a quantity,
5
+ * with a proposed or user overlay) and the discovery funnel (quantities sharing an equation or
6
+ * an identification) each once ran their own union-find with the same ordering. This module is
7
+ * that partition, computed through MathTS `connectedComponents` over an adjacency of item
8
+ * indices, with the ordering every caller used: a cluster keeps its items in input order, and
9
+ * clusters come largest first, then by the id of their first item. The anchoring rules differ
10
+ * between callers on purpose (`graph-viz.ts` anchors on `law` or `established` status,
11
+ * `bridge-analysis.ts` on `established` confidence) and stay with each caller.
12
+ *
13
+ * @module composition/quantity-clusters
14
+ */
15
+ import { connectedComponents } from '@danielsimonjr/mathts-functions';
16
+ import { QUANTITY_IDENTIFICATIONS } from './compose.js';
17
+ /**
18
+ * Quantity-name canonicalizer honouring `QUANTITY_IDENTIFICATIONS`: maps each name to its
19
+ * identified representative (`hawking-temperature` → `temperature`) and leaves every other
20
+ * name alone. The linkage substrate of `linkageMap`, `proposeLinkCandidates` and the visual
21
+ * map. `anchoringDistance` deliberately does NOT use it (it links on raw names; its 0/∞
22
+ * distance contract is pinned).
23
+ *
24
+ * @internal
25
+ */
26
+ export function quantityCanonicalizer() {
27
+ const alias = new Map(QUANTITY_IDENTIFICATIONS.map((id) => [id.from, id.to]));
28
+ return (n) => alias.get(n) ?? n;
29
+ }
30
+ /**
31
+ * Group items by one key, keys in first-seen order, members in input order. The group-by
32
+ * every cluster consumer once re-inlined as `if (!m.has(k)) m.set(k, []); m.get(k)!.push(v)`.
33
+ *
34
+ * @internal
35
+ */
36
+ export function groupInto(items, keyOf) {
37
+ const out = new Map();
38
+ for (const item of items) {
39
+ const k = keyOf(item);
40
+ const group = out.get(k);
41
+ if (group === undefined)
42
+ out.set(k, [item]);
43
+ else
44
+ group.push(item);
45
+ }
46
+ return out;
47
+ }
48
+ /**
49
+ * Partition `items` into clusters of items that share at least one key (transitively): the
50
+ * connected components, through MathTS `connectedComponents`, of the graph whose nodes are item
51
+ * indices and whose links join items with a key in common. Each cluster lists its items in
52
+ * input order; clusters come largest first, then by `idOf` of their first item (by that item's
53
+ * input position when no `idOf` is given). An item with no key is a cluster of its own; an
54
+ * empty input is no cluster.
55
+ *
56
+ * Cost: `connectedComponents` takes a dense n×n adjacency matrix, so memory is O(n²) in the
57
+ * number of items (8·n² bytes as numbers: about 4 MB at n = 700, the order of the quantity
58
+ * names one discovery context clusters, once per context; 800 MB at n = 10 000). A caller with
59
+ * thousands of items should expect that, or cluster with a union-find over the key lists.
60
+ *
61
+ * @internal
62
+ */
63
+ export function clusterBySharedKeys(items, keysOf, idOf) {
64
+ const n = items.length;
65
+ if (n === 0)
66
+ return [];
67
+ // Items sharing a key: the first holder of the key is linked to every later holder, which is
68
+ // enough for connectivity (a star joins the whole set).
69
+ const holders = new Map();
70
+ items.forEach((item, i) => {
71
+ for (const key of keysOf(item)) {
72
+ const list = holders.get(key);
73
+ if (list === undefined)
74
+ holders.set(key, [i]);
75
+ else
76
+ list.push(i);
77
+ }
78
+ });
79
+ const adjacency = Array.from({ length: n }, () => new Array(n).fill(0));
80
+ for (const idxs of holders.values()) {
81
+ for (let k = 1; k < idxs.length; k++) {
82
+ adjacency[idxs[0]][idxs[k]] = 1;
83
+ adjacency[idxs[k]][idxs[0]] = 1;
84
+ }
85
+ }
86
+ const components = connectedComponents(adjacency);
87
+ const clusters = components.map((idxs) => [...idxs].sort((a, b) => a - b));
88
+ const first = (c) => idOf === undefined ? String(c[0]).padStart(12, '0') : idOf(items[c[0]]);
89
+ clusters.sort((a, b) => b.length - a.length || first(a).localeCompare(first(b)));
90
+ // Every item is placed exactly once: a component listing that dropped or repeated an index
91
+ // would be the instrument reporting its own breakage, so say so rather than render it.
92
+ const placed = clusters.reduce((acc, c) => acc + c.length, 0);
93
+ if (placed !== n || new Set(clusters.flat()).size !== n) {
94
+ throw new Error(`clusterBySharedKeys: ${placed} placements over ${n} items`);
95
+ }
96
+ return clusters.map((c) => c.map((i) => items[i]));
97
+ }
98
+ //# sourceMappingURL=quantity-clusters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quantity-clusters.js","sourceRoot":"","sources":["../../src/composition/quantity-clusters.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * The one component owner: items that share a (canonical) quantity are one cluster.\n *\n * `linkageMap` (equations sharing a quantity), `buildVizModel` (junctions sharing a quantity,\n * with a proposed or user overlay) and the discovery funnel (quantities sharing an equation or\n * an identification) each once ran their own union-find with the same ordering. This module is\n * that partition, computed through MathTS `connectedComponents` over an adjacency of item\n * indices, with the ordering every caller used: a cluster keeps its items in input order, and\n * clusters come largest first, then by the id of their first item. The anchoring rules differ\n * between callers on purpose (`graph-viz.ts` anchors on `law` or `established` status,\n * `bridge-analysis.ts` on `established` confidence) and stay with each caller.\n *\n * @module composition/quantity-clusters\n */\n\nimport { connectedComponents } from '@danielsimonjr/mathts-functions';\nimport { QUANTITY_IDENTIFICATIONS } from './compose.js';\n\n/**\n * Quantity-name canonicalizer honouring `QUANTITY_IDENTIFICATIONS`: maps each name to its\n * identified representative (`hawking-temperature` → `temperature`) and leaves every other\n * name alone. The linkage substrate of `linkageMap`, `proposeLinkCandidates` and the visual\n * map. `anchoringDistance` deliberately does NOT use it (it links on raw names; its 0/∞\n * distance contract is pinned).\n *\n * @internal\n */\nexport function quantityCanonicalizer(): (name: string) => string {\n const alias = new Map<string, string>(QUANTITY_IDENTIFICATIONS.map((id) => [id.from, id.to]));\n return (n: string): string => alias.get(n) ?? n;\n}\n\n/**\n * Group items by one key, keys in first-seen order, members in input order. The group-by\n * every cluster consumer once re-inlined as `if (!m.has(k)) m.set(k, []); m.get(k)!.push(v)`.\n *\n * @internal\n */\nexport function groupInto<K, V>(items: readonly V[], keyOf: (item: V) => K): Map<K, V[]> {\n const out = new Map<K, V[]>();\n for (const item of items) {\n const k = keyOf(item);\n const group = out.get(k);\n if (group === undefined) out.set(k, [item]);\n else group.push(item);\n }\n return out;\n}\n\n/**\n * Partition `items` into clusters of items that share at least one key (transitively): the\n * connected components, through MathTS `connectedComponents`, of the graph whose nodes are item\n * indices and whose links join items with a key in common. Each cluster lists its items in\n * input order; clusters come largest first, then by `idOf` of their first item (by that item's\n * input position when no `idOf` is given). An item with no key is a cluster of its own; an\n * empty input is no cluster.\n *\n * Cost: `connectedComponents` takes a dense n×n adjacency matrix, so memory is O(n²) in the\n * number of items (8·n² bytes as numbers: about 4 MB at n = 700, the order of the quantity\n * names one discovery context clusters, once per context; 800 MB at n = 10 000). A caller with\n * thousands of items should expect that, or cluster with a union-find over the key lists.\n *\n * @internal\n */\nexport function clusterBySharedKeys<T>(\n items: readonly T[],\n keysOf: (item: T) => readonly string[],\n idOf?: (item: T) => string,\n): T[][] {\n const n = items.length;\n if (n === 0) return [];\n // Items sharing a key: the first holder of the key is linked to every later holder, which is\n // enough for connectivity (a star joins the whole set).\n const holders = new Map<string, number[]>();\n items.forEach((item, i) => {\n for (const key of keysOf(item)) {\n const list = holders.get(key);\n if (list === undefined) holders.set(key, [i]);\n else list.push(i);\n }\n });\n const adjacency: number[][] = Array.from({ length: n }, () => new Array<number>(n).fill(0));\n for (const idxs of holders.values()) {\n for (let k = 1; k < idxs.length; k++) {\n adjacency[idxs[0]][idxs[k]] = 1;\n adjacency[idxs[k]][idxs[0]] = 1;\n }\n }\n const components = connectedComponents(adjacency);\n const clusters = components.map((idxs) => [...idxs].sort((a, b) => a - b));\n const first = (c: readonly number[]): string =>\n idOf === undefined ? String(c[0]).padStart(12, '0') : idOf(items[c[0]]);\n clusters.sort((a, b) => b.length - a.length || first(a).localeCompare(first(b)));\n // Every item is placed exactly once: a component listing that dropped or repeated an index\n // would be the instrument reporting its own breakage, so say so rather than render it.\n const placed = clusters.reduce((acc, c) => acc + c.length, 0);\n if (placed !== n || new Set(clusters.flat()).size !== n) {\n throw new Error(`clusterBySharedKeys: ${placed} placements over ${n} items`);\n }\n return clusters.map((c) => c.map((i) => items[i]));\n}\n"]}
@@ -58,11 +58,26 @@ export interface Quantity {
58
58
  /** Sparse regime attributes — only what is known. */
59
59
  readonly attributes: RegimeAttributes;
60
60
  }
61
+ /** An attribute set read by axis name. The keys are the registry's axis names. */
62
+ type AttributeRecord = Readonly<Record<string, string | undefined>>;
63
+ /**
64
+ * The attribute set `record` states, checked against the axis registry.
65
+ *
66
+ * Every key must be a registry axis and every value one of that axis's
67
+ * values; anything else throws, so a misspelt axis or value in a data row
68
+ * cannot enter the gate as a silently unstated axis. An `undefined` value is
69
+ * an axis the record leaves open. The check is what makes the narrowing to
70
+ * `RegimeAttributes` true; nothing is assumed.
71
+ *
72
+ * @internal
73
+ */
74
+ export declare function regimeAttributesOf(record: AttributeRecord, where?: string): RegimeAttributes;
61
75
  /**
62
76
  * Graph-native membership criterion primitive (v0.8.0 G-2): two
63
- * attribute sets "differ" iff at least one regime axis is stated on
77
+ * attribute sets "differ" iff at least one registry axis is stated on
64
78
  * BOTH sides with different values. Axes stated on only one side are
65
- * inconclusive and do not count as a difference.
79
+ * inconclusive and do not count as a difference. The axes are the
80
+ * registry's (`AXES`), so an axis added there is read here.
66
81
  *
67
82
  * A bridge is an edge whose endpoint quantities differ; a law is an
68
83
  * edge whose endpoints share all mutually-stated attributes.
@@ -70,4 +85,5 @@ export interface Quantity {
70
85
  * @public
71
86
  */
72
87
  export declare function regimesDiffer(a: RegimeAttributes, b: RegimeAttributes): boolean;
88
+ export {};
73
89
  //# sourceMappingURL=quantity.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"quantity.d.ts","sourceRoot":"","sources":["../../src/composition/quantity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EACV,SAAS,EACT,SAAS,EACT,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,cAAc,EACf,MAAM,WAAW,CAAC;AAEnB;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,eAAe,CAAC;IACvC,iFAAiF;IACjF,QAAQ,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC;IACjC,yFAAyF;IACzF,QAAQ,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC;IACjC,sGAAsG;IACtG,QAAQ,CAAC,UAAU,CAAC,EAAE,cAAc,CAAC;CACtC;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,QAAQ;IACvB,4EAA4E;IAC5E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,yCAAyC;IACzC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,+CAA+C;IAC/C,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IACxB,qDAAqD;IACrD,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;CACvC;AAID;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC3B,CAAC,EAAE,gBAAgB,EACnB,CAAC,EAAE,gBAAgB,GAClB,OAAO,CAOT"}
1
+ {"version":3,"file":"quantity.d.ts","sourceRoot":"","sources":["../../src/composition/quantity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EACV,SAAS,EACT,SAAS,EACT,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,cAAc,EACf,MAAM,WAAW,CAAC;AAGnB;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,eAAe,CAAC;IACvC,iFAAiF;IACjF,QAAQ,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC;IACjC,yFAAyF;IACzF,QAAQ,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC;IACjC,sGAAsG;IACtG,QAAQ,CAAC,UAAU,CAAC,EAAE,cAAc,CAAC;CACtC;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,QAAQ;IACvB,4EAA4E;IAC5E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,yCAAyC;IACzC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,+CAA+C;IAC/C,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IACxB,qDAAqD;IACrD,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;CACvC;AAED,kFAAkF;AAClF,KAAK,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;AAEpE;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,SAAe,GAAG,gBAAgB,CAYlG;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAC3B,CAAC,EAAE,gBAAgB,EACnB,CAAC,EAAE,gBAAgB,GAClB,OAAO,CAST"}
@@ -18,12 +18,39 @@
18
18
  *
19
19
  * @module composition/quantity
20
20
  */
21
- const REGIME_KEYS = ['scale', 'force', 'information'];
21
+ import { AXES } from './axes.js';
22
+ /**
23
+ * The attribute set `record` states, checked against the axis registry.
24
+ *
25
+ * Every key must be a registry axis and every value one of that axis's
26
+ * values; anything else throws, so a misspelt axis or value in a data row
27
+ * cannot enter the gate as a silently unstated axis. An `undefined` value is
28
+ * an axis the record leaves open. The check is what makes the narrowing to
29
+ * `RegimeAttributes` true; nothing is assumed.
30
+ *
31
+ * @internal
32
+ */
33
+ export function regimeAttributesOf(record, where = 'attributes') {
34
+ const checked = {};
35
+ for (const [axis, value] of Object.entries(record)) {
36
+ if (value === undefined)
37
+ continue;
38
+ const spec = AXES.find((a) => a.name === axis);
39
+ if (spec === undefined)
40
+ throw new Error(`${where}: '${axis}' is not a registry axis`);
41
+ if (!spec.values.includes(value)) {
42
+ throw new Error(`${where}: '${value}' is not a value of the ${axis} axis (${spec.values.join(', ')})`);
43
+ }
44
+ checked[axis] = value;
45
+ }
46
+ return checked;
47
+ }
22
48
  /**
23
49
  * Graph-native membership criterion primitive (v0.8.0 G-2): two
24
- * attribute sets "differ" iff at least one regime axis is stated on
50
+ * attribute sets "differ" iff at least one registry axis is stated on
25
51
  * BOTH sides with different values. Axes stated on only one side are
26
- * inconclusive and do not count as a difference.
52
+ * inconclusive and do not count as a difference. The axes are the
53
+ * registry's (`AXES`), so an axis added there is read here.
27
54
  *
28
55
  * A bridge is an edge whose endpoint quantities differ; a law is an
29
56
  * edge whose endpoints share all mutually-stated attributes.
@@ -31,9 +58,11 @@ const REGIME_KEYS = ['scale', 'force', 'information'];
31
58
  * @public
32
59
  */
33
60
  export function regimesDiffer(a, b) {
34
- for (const key of REGIME_KEYS) {
35
- const av = a[key];
36
- const bv = b[key];
61
+ const left = a;
62
+ const right = b;
63
+ for (const { name } of AXES) {
64
+ const av = left[name];
65
+ const bv = right[name];
37
66
  if (av !== undefined && bv !== undefined && av !== bv)
38
67
  return true;
39
68
  }
@@ -1 +1 @@
1
- {"version":3,"file":"quantity.js","sourceRoot":"","sources":["../../src/composition/quantity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAoDH,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,CAAU,CAAC;AAE/D;;;;;;;;;;GAUG;AACH,MAAM,UAAU,aAAa,CAC3B,CAAmB,EACnB,CAAmB;IAEnB,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAClB,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAClB,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE;YAAE,OAAO,IAAI,CAAC;IACrE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"quantity.js","sourceRoot":"","sources":["../../src/composition/quantity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAWH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AA6CjC;;;;;;;;;;GAUG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAuB,EAAE,KAAK,GAAG,YAAY;IAC9E,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACnD,IAAI,KAAK,KAAK,SAAS;YAAE,SAAS;QAClC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QAC/C,IAAI,IAAI,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,MAAM,IAAI,0BAA0B,CAAC,CAAC;QACtF,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,MAAM,KAAK,2BAA2B,IAAI,UAAU,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzG,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IACxB,CAAC;IACD,OAAO,OAA2B,CAAC;AACrC,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,aAAa,CAC3B,CAAmB,EACnB,CAAmB;IAEnB,MAAM,IAAI,GAAG,CAAoB,CAAC;IAClC,MAAM,KAAK,GAAG,CAAoB,CAAC;IACnC,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;QAC5B,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;QACvB,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE;YAAE,OAAO,IAAI,CAAC;IACrE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC","sourcesContent":["/**\n * Composition graph — quantity nodes (v0.8.0 T2, per\n * docs/planning/v0.8.0-Design.md §3).\n *\n * A `Quantity` is a node in the composition graph: a named physical\n * quantity with an exact SI dimension (the ℤ⁷ exponent vector) and a\n * SPARSE set of regime attributes. Attributes are deliberately\n * `Partial` — the classification axes are unevenly load-bearing, so a\n * quantity records only what is known and sourced.\n *\n * The axis TYPES + the classification registry live in `axes.ts` (the\n * single source; `RegimeAttributes` references them). Symmetry, topology,\n * and quantum statistics are now first-class attribute axes (2026-07-05\n * extensible-axis expansion) — but they remain UNGATED in the discovery\n * falsifier until the discrimination audit (`axis-audit.ts`) shows they\n * actually fire on real candidates. The SI `Dimension` axis is separate\n * (the 7-base system in `dimensional/`), not an attribute here.\n *\n * @module composition/quantity\n */\n\nimport type { Dimension } from '../dimensional/types.js';\nimport type {\n ScaleAxis,\n ForceAxis,\n InformationAxis,\n SymmetryAxis,\n TopologyAxis,\n StatisticsAxis,\n} from './axes.js';\nimport { AXES } from './axes.js';\n\n/**\n * Sparse regime attributes — the classification axes demoted from\n * container dimensions to node attributes. Values + the gated flags live\n * in the `axes.ts` registry.\n *\n * @public\n */\nexport interface RegimeAttributes {\n readonly scale?: ScaleAxis;\n readonly force?: ForceAxis;\n readonly information?: InformationAxis;\n /** Symmetry class — first-class 2026-07-05; ungated until the audit earns it. */\n readonly symmetry?: SymmetryAxis;\n /** Topological invariant type — populates the Topology axis; ungated until the audit. */\n readonly topology?: TopologyAxis;\n /** Quantum statistics (the 7th axis); ungated until the audit confirms independent discrimination. */\n readonly statistics?: StatisticsAxis;\n}\n\n/**\n * A node in the composition graph: a physical quantity.\n *\n * `name` is the canonical graph identity (junction matching is by\n * name or by explicit `QuantityIdentification`); `symbol` is display\n * only. `dim` is the exact SI dimension used by the dimension-functor\n * check at composition junctions.\n *\n * @public\n */\nexport interface Quantity {\n /** Canonical graph identity, e.g. 'temperature', 'schwarzschild-radius'. */\n readonly name: string;\n /** Display symbol, e.g. 'T_H', 'r_s'. */\n readonly symbol: string;\n /** Exact SI dimension (ℤ⁷ exponent vector). */\n readonly dim: Dimension;\n /** Sparse regime attributes — only what is known. */\n readonly attributes: RegimeAttributes;\n}\n\n/** An attribute set read by axis name. The keys are the registry's axis names. */\ntype AttributeRecord = Readonly<Record<string, string | undefined>>;\n\n/**\n * The attribute set `record` states, checked against the axis registry.\n *\n * Every key must be a registry axis and every value one of that axis's\n * values; anything else throws, so a misspelt axis or value in a data row\n * cannot enter the gate as a silently unstated axis. An `undefined` value is\n * an axis the record leaves open. The check is what makes the narrowing to\n * `RegimeAttributes` true; nothing is assumed.\n *\n * @internal\n */\nexport function regimeAttributesOf(record: AttributeRecord, where = 'attributes'): RegimeAttributes {\n const checked: Record<string, string> = {};\n for (const [axis, value] of Object.entries(record)) {\n if (value === undefined) continue;\n const spec = AXES.find((a) => a.name === axis);\n if (spec === undefined) throw new Error(`${where}: '${axis}' is not a registry axis`);\n if (!spec.values.includes(value)) {\n throw new Error(`${where}: '${value}' is not a value of the ${axis} axis (${spec.values.join(', ')})`);\n }\n checked[axis] = value;\n }\n return checked as RegimeAttributes;\n}\n\n/**\n * Graph-native membership criterion primitive (v0.8.0 G-2): two\n * attribute sets \"differ\" iff at least one registry axis is stated on\n * BOTH sides with different values. Axes stated on only one side are\n * inconclusive and do not count as a difference. The axes are the\n * registry's (`AXES`), so an axis added there is read here.\n *\n * A bridge is an edge whose endpoint quantities differ; a law is an\n * edge whose endpoints share all mutually-stated attributes.\n *\n * @public\n */\nexport function regimesDiffer(\n a: RegimeAttributes,\n b: RegimeAttributes,\n): boolean {\n const left = a as AttributeRecord;\n const right = b as AttributeRecord;\n for (const { name } of AXES) {\n const av = left[name];\n const bv = right[name];\n if (av !== undefined && bv !== undefined && av !== bv) return true;\n }\n return false;\n}\n"]}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Exact rationals from doubles, for exponents and prefactors.
3
+ *
4
+ * A monomial exponent read from an AST literal (`0.5`, `0.3333333333333333`)
5
+ * and a prefactor recovered by a fit are doubles that stand for small
6
+ * rationals. This module turns one into a core `Fraction` when a rational
7
+ * with a bounded denominator reproduces it to a stated relative tolerance,
8
+ * and refuses otherwise, so an irrational is never approximated into a
9
+ * rational and a rounding error never becomes a denominator of 10¹⁶.
10
+ *
11
+ * `Fraction.fromNumber(x, cap)` is asked first. Before `@danielsimonjr/mathts-core`
12
+ * 0.18.1 it could return a denominator above its cap; the cap and the tolerance
13
+ * are still checked here, which costs nothing and catches a regression. When that answer is refused, a bounded-denominator scan (the one
14
+ * `dimensional/buckingham.ts` uses for dimension exponents) is the second
15
+ * method, so a rational the continued fraction stepped past is still found.
16
+ *
17
+ * @module composition/rational-exponent
18
+ */
19
+ import { Fraction } from '@danielsimonjr/mathts-core';
20
+ /** The denominator cap the Buckingham enumerator uses for exponents. @internal */
21
+ export declare const DEFAULT_MAX_DENOMINATOR = 720;
22
+ /** Options of {@link rationalize}. @internal */
23
+ export interface RationalizeOptions {
24
+ /** Largest denominator accepted (default {@link DEFAULT_MAX_DENOMINATOR}). */
25
+ readonly maxDenominator?: number;
26
+ /** Relative tolerance `|n/d − x| ≤ tolerance·|x|` (default 1e-9); for `x = 0` the match is exact. */
27
+ readonly tolerance?: number;
28
+ }
29
+ /**
30
+ * The rational with denominator ≤ `maxDenominator` that reproduces `x` to
31
+ * the tolerance, or `undefined` when there is none.
32
+ *
33
+ * @internal
34
+ */
35
+ export declare function rationalize(x: number, options?: RationalizeOptions): Fraction | undefined;
36
+ /** The double a fraction stands for (numerator over denominator, one rounding). @internal */
37
+ export declare function fractionToNumber(f: Fraction): number;
38
+ /** `9/8`, `2`, `-1/3`: the fraction in lowest terms, no sign on the denominator. @internal */
39
+ export declare function formatRational(f: Fraction): string;
40
+ //# sourceMappingURL=rational-exponent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rational-exponent.d.ts","sourceRoot":"","sources":["../../src/composition/rational-exponent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAEtD,kFAAkF;AAClF,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAE3C,gDAAgD;AAChD,MAAM,WAAW,kBAAkB;IACjC,8EAA8E;IAC9E,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,qGAAqG;IACrG,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAQD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,kBAAuB,GAAG,QAAQ,GAAG,SAAS,CAiB7F;AAED,6FAA6F;AAC7F,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,QAAQ,GAAG,MAAM,CAEpD;AAED,8FAA8F;AAC9F,wBAAgB,cAAc,CAAC,CAAC,EAAE,QAAQ,GAAG,MAAM,CAElD"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Exact rationals from doubles, for exponents and prefactors.
3
+ *
4
+ * A monomial exponent read from an AST literal (`0.5`, `0.3333333333333333`)
5
+ * and a prefactor recovered by a fit are doubles that stand for small
6
+ * rationals. This module turns one into a core `Fraction` when a rational
7
+ * with a bounded denominator reproduces it to a stated relative tolerance,
8
+ * and refuses otherwise, so an irrational is never approximated into a
9
+ * rational and a rounding error never becomes a denominator of 10¹⁶.
10
+ *
11
+ * `Fraction.fromNumber(x, cap)` is asked first. Before `@danielsimonjr/mathts-core`
12
+ * 0.18.1 it could return a denominator above its cap; the cap and the tolerance
13
+ * are still checked here, which costs nothing and catches a regression. When that answer is refused, a bounded-denominator scan (the one
14
+ * `dimensional/buckingham.ts` uses for dimension exponents) is the second
15
+ * method, so a rational the continued fraction stepped past is still found.
16
+ *
17
+ * @module composition/rational-exponent
18
+ */
19
+ import { Fraction } from '@danielsimonjr/mathts-core';
20
+ /** The denominator cap the Buckingham enumerator uses for exponents. @internal */
21
+ export const DEFAULT_MAX_DENOMINATOR = 720;
22
+ function within(candidate, x, tolerance) {
23
+ const value = fractionToNumber(candidate);
24
+ if (x === 0)
25
+ return value === 0;
26
+ return Math.abs(value - x) <= tolerance * Math.abs(x);
27
+ }
28
+ /**
29
+ * The rational with denominator ≤ `maxDenominator` that reproduces `x` to
30
+ * the tolerance, or `undefined` when there is none.
31
+ *
32
+ * @internal
33
+ */
34
+ export function rationalize(x, options = {}) {
35
+ if (!Number.isFinite(x))
36
+ return undefined;
37
+ const maxDenominator = options.maxDenominator ?? DEFAULT_MAX_DENOMINATOR;
38
+ const tolerance = options.tolerance ?? 1e-9;
39
+ if (Number.isInteger(x))
40
+ return new Fraction(x, 1);
41
+ const guess = Fraction.fromNumber(x, BigInt(maxDenominator));
42
+ if (guess.denominator <= BigInt(maxDenominator) && within(guess, x, tolerance))
43
+ return guess;
44
+ for (let d = 1; d <= maxDenominator; d++) {
45
+ const n = Math.round(x * d);
46
+ // A safe-integer n/d is the same correctly rounded quotient as the reduced
47
+ // fraction's, so a miss is decided on doubles and no Fraction is built for it
48
+ // (the clean-prefactor rule asks this 43,200 times for one miss).
49
+ if (Number.isSafeInteger(n) && !(Math.abs(n / d - x) <= tolerance * Math.abs(x)))
50
+ continue;
51
+ const candidate = new Fraction(n, d);
52
+ if (within(candidate, x, tolerance))
53
+ return candidate;
54
+ }
55
+ return undefined;
56
+ }
57
+ /** The double a fraction stands for (numerator over denominator, one rounding). @internal */
58
+ export function fractionToNumber(f) {
59
+ return Number(f.numerator) / Number(f.denominator);
60
+ }
61
+ /** `9/8`, `2`, `-1/3`: the fraction in lowest terms, no sign on the denominator. @internal */
62
+ export function formatRational(f) {
63
+ return f.denominator === 1n ? f.numerator.toString() : `${f.numerator}/${f.denominator}`;
64
+ }
65
+ //# sourceMappingURL=rational-exponent.js.map