universal-physics-tensor 10.0.0 → 12.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 (835) hide show
  1. package/README.md +39 -36
  2. package/bin/upt.mjs +13 -1
  3. package/data/applied-cases.json +1892 -0
  4. package/data/applied-cases.schema.json +194 -0
  5. package/data/atlas/atlas.json +25 -25
  6. package/data/atlas/atlas.jsonld +1 -1
  7. package/data/atlas/diffusion.json +6 -6
  8. package/data/atlas/oscillators.json +7 -7
  9. package/data/atlas/waves.json +14 -14
  10. package/data/atlas/witness-results.json +11 -11
  11. package/data/bridge-catalog.json +389 -230
  12. package/data/bridge-catalog.schema.json +45 -7
  13. package/data/units.json +6 -25
  14. package/dist/atlas/applicability.d.ts.map +1 -1
  15. package/dist/atlas/applicability.js +21 -15
  16. package/dist/atlas/applicability.js.map +1 -1
  17. package/dist/atlas/benchmark/hybrid-retrieval.d.ts +9 -1
  18. package/dist/atlas/benchmark/hybrid-retrieval.d.ts.map +1 -1
  19. package/dist/atlas/benchmark/hybrid-retrieval.js +15 -13
  20. package/dist/atlas/benchmark/hybrid-retrieval.js.map +1 -1
  21. package/dist/atlas/benchmark/loader.js +2 -2
  22. package/dist/atlas/benchmark/loader.js.map +1 -1
  23. package/dist/atlas/benchmark/stats.d.ts +2 -2
  24. package/dist/atlas/benchmark/stats.d.ts.map +1 -1
  25. package/dist/atlas/benchmark/stats.js +9 -15
  26. package/dist/atlas/benchmark/stats.js.map +1 -1
  27. package/dist/atlas/catalog-formal-ref.d.ts +26 -3
  28. package/dist/atlas/catalog-formal-ref.d.ts.map +1 -1
  29. package/dist/atlas/catalog-formal-ref.js +52 -5
  30. package/dist/atlas/catalog-formal-ref.js.map +1 -1
  31. package/dist/atlas/chain-pipeline.d.ts.map +1 -1
  32. package/dist/atlas/chain-pipeline.js +7 -8
  33. package/dist/atlas/chain-pipeline.js.map +1 -1
  34. package/dist/atlas/diffusion/bridges-closure.d.ts +0 -4
  35. package/dist/atlas/diffusion/bridges-closure.d.ts.map +1 -1
  36. package/dist/atlas/diffusion/bridges-closure.js +8 -12
  37. package/dist/atlas/diffusion/bridges-closure.js.map +1 -1
  38. package/dist/atlas/diffusion/bridges.d.ts.map +1 -1
  39. package/dist/atlas/diffusion/bridges.js +27 -39
  40. package/dist/atlas/diffusion/bridges.js.map +1 -1
  41. package/dist/atlas/diffusion/dimensions.d.ts +6 -14
  42. package/dist/atlas/diffusion/dimensions.d.ts.map +1 -1
  43. package/dist/atlas/diffusion/dimensions.js +8 -16
  44. package/dist/atlas/diffusion/dimensions.js.map +1 -1
  45. package/dist/atlas/diffusion/models.d.ts +3 -3
  46. package/dist/atlas/diffusion/models.d.ts.map +1 -1
  47. package/dist/atlas/diffusion/models.js +5 -10
  48. package/dist/atlas/diffusion/models.js.map +1 -1
  49. package/dist/atlas/diffusion/numerics.d.ts +16 -4
  50. package/dist/atlas/diffusion/numerics.d.ts.map +1 -1
  51. package/dist/atlas/diffusion/numerics.js +38 -24
  52. package/dist/atlas/diffusion/numerics.js.map +1 -1
  53. package/dist/atlas/link-prediction.d.ts +106 -3
  54. package/dist/atlas/link-prediction.d.ts.map +1 -1
  55. package/dist/atlas/link-prediction.js +212 -66
  56. package/dist/atlas/link-prediction.js.map +1 -1
  57. package/dist/atlas/oscillators/bridges-coarse.d.ts.map +1 -1
  58. package/dist/atlas/oscillators/bridges-coarse.js +7 -11
  59. package/dist/atlas/oscillators/bridges-coarse.js.map +1 -1
  60. package/dist/atlas/oscillators/bridges-exact.d.ts.map +1 -1
  61. package/dist/atlas/oscillators/bridges-exact.js +6 -7
  62. package/dist/atlas/oscillators/bridges-exact.js.map +1 -1
  63. package/dist/atlas/oscillators/bridges-limits.d.ts +3 -16
  64. package/dist/atlas/oscillators/bridges-limits.d.ts.map +1 -1
  65. package/dist/atlas/oscillators/bridges-limits.js +23 -34
  66. package/dist/atlas/oscillators/bridges-limits.js.map +1 -1
  67. package/dist/atlas/oscillators/dimensions.d.ts +9 -21
  68. package/dist/atlas/oscillators/dimensions.d.ts.map +1 -1
  69. package/dist/atlas/oscillators/dimensions.js +9 -21
  70. package/dist/atlas/oscillators/dimensions.js.map +1 -1
  71. package/dist/atlas/oscillators/limit-witnesses.d.ts +2 -2
  72. package/dist/atlas/oscillators/limit-witnesses.d.ts.map +1 -1
  73. package/dist/atlas/oscillators/limit-witnesses.js +17 -15
  74. package/dist/atlas/oscillators/limit-witnesses.js.map +1 -1
  75. package/dist/atlas/oscillators/models.d.ts.map +1 -1
  76. package/dist/atlas/oscillators/models.js +2 -6
  77. package/dist/atlas/oscillators/models.js.map +1 -1
  78. package/dist/atlas/oscillators/pendulum-motion.d.ts +29 -6
  79. package/dist/atlas/oscillators/pendulum-motion.d.ts.map +1 -1
  80. package/dist/atlas/oscillators/pendulum-motion.js +60 -40
  81. package/dist/atlas/oscillators/pendulum-motion.js.map +1 -1
  82. package/dist/atlas/oscillators/phase-translation.d.ts +0 -11
  83. package/dist/atlas/oscillators/phase-translation.d.ts.map +1 -1
  84. package/dist/atlas/oscillators/phase-translation.js +3 -4
  85. package/dist/atlas/oscillators/phase-translation.js.map +1 -1
  86. package/dist/atlas/oscillators/position-translation.d.ts +68 -7
  87. package/dist/atlas/oscillators/position-translation.d.ts.map +1 -1
  88. package/dist/atlas/oscillators/position-translation.js +123 -12
  89. package/dist/atlas/oscillators/position-translation.js.map +1 -1
  90. package/dist/atlas/oscillators/rejections.d.ts +0 -2
  91. package/dist/atlas/oscillators/rejections.d.ts.map +1 -1
  92. package/dist/atlas/oscillators/rejections.js +0 -7
  93. package/dist/atlas/oscillators/rejections.js.map +1 -1
  94. package/dist/atlas/physjs-entries.generated.d.ts +35 -25
  95. package/dist/atlas/physjs-entries.generated.d.ts.map +1 -1
  96. package/dist/atlas/physjs-entries.generated.js +37 -25
  97. package/dist/atlas/physjs-entries.generated.js.map +1 -1
  98. package/dist/atlas/physjs-ref.d.ts +34 -31
  99. package/dist/atlas/physjs-ref.d.ts.map +1 -1
  100. package/dist/atlas/physjs-ref.js +55 -53
  101. package/dist/atlas/physjs-ref.js.map +1 -1
  102. package/dist/atlas/physjs-reviewed.d.ts +1 -1
  103. package/dist/atlas/physjs-reviewed.js +15 -15
  104. package/dist/atlas/physjs-reviewed.js.map +1 -1
  105. package/dist/atlas/poster/statements.d.ts +0 -19
  106. package/dist/atlas/poster/statements.d.ts.map +1 -1
  107. package/dist/atlas/poster/statements.js +1 -1
  108. package/dist/atlas/poster/statements.js.map +1 -1
  109. package/dist/atlas/proof-target.d.ts +1 -1
  110. package/dist/atlas/proof-target.js +1 -1
  111. package/dist/atlas/proof-target.js.map +1 -1
  112. package/dist/atlas/regime.d.ts +1 -1
  113. package/dist/atlas/regime.d.ts.map +1 -1
  114. package/dist/atlas/regime.js +1 -1
  115. package/dist/atlas/regime.js.map +1 -1
  116. package/dist/atlas/text-overlap.d.ts +23 -0
  117. package/dist/atlas/text-overlap.d.ts.map +1 -0
  118. package/dist/atlas/text-overlap.js +41 -0
  119. package/dist/atlas/text-overlap.js.map +1 -0
  120. package/dist/atlas/waves/bridges-closure.d.ts.map +1 -1
  121. package/dist/atlas/waves/bridges-closure.js +2 -6
  122. package/dist/atlas/waves/bridges-closure.js.map +1 -1
  123. package/dist/atlas/waves/bridges.d.ts.map +1 -1
  124. package/dist/atlas/waves/bridges.js +32 -48
  125. package/dist/atlas/waves/bridges.js.map +1 -1
  126. package/dist/atlas/waves/models.d.ts +5 -6
  127. package/dist/atlas/waves/models.d.ts.map +1 -1
  128. package/dist/atlas/waves/models.js +7 -13
  129. package/dist/atlas/waves/models.js.map +1 -1
  130. package/dist/atlas/waves/numerics.d.ts.map +1 -1
  131. package/dist/atlas/waves/numerics.js +10 -3
  132. package/dist/atlas/waves/numerics.js.map +1 -1
  133. package/dist/atlas/witness-numeric.d.ts +30 -0
  134. package/dist/atlas/witness-numeric.d.ts.map +1 -1
  135. package/dist/atlas/witness-numeric.js +53 -0
  136. package/dist/atlas/witness-numeric.js.map +1 -1
  137. package/dist/atlas/witness-specs.d.ts.map +1 -1
  138. package/dist/atlas/witness-specs.js +19 -0
  139. package/dist/atlas/witness-specs.js.map +1 -1
  140. package/dist/atlas/witness-symbolic.d.ts +75 -3
  141. package/dist/atlas/witness-symbolic.d.ts.map +1 -1
  142. package/dist/atlas/witness-symbolic.js +116 -10
  143. package/dist/atlas/witness-symbolic.js.map +1 -1
  144. package/dist/bridges/catalog-load.d.ts.map +1 -1
  145. package/dist/bridges/catalog-load.js +13 -8
  146. package/dist/bridges/catalog-load.js.map +1 -1
  147. package/dist/bridges/catalog-types.d.ts +26 -2
  148. package/dist/bridges/catalog-types.d.ts.map +1 -1
  149. package/dist/bridges/catalog-types.js +11 -1
  150. package/dist/bridges/catalog-types.js.map +1 -1
  151. package/dist/bridges/evaluation-errors.d.ts +31 -1
  152. package/dist/bridges/evaluation-errors.d.ts.map +1 -1
  153. package/dist/bridges/evaluation-errors.js +20 -2
  154. package/dist/bridges/evaluation-errors.js.map +1 -1
  155. package/dist/bridges/evaluator-inputs.d.ts.map +1 -1
  156. package/dist/bridges/evaluator-inputs.js +7 -5
  157. package/dist/bridges/evaluator-inputs.js.map +1 -1
  158. package/dist/bridges/evaluators.d.ts.map +1 -1
  159. package/dist/bridges/evaluators.js +27 -12
  160. package/dist/bridges/evaluators.js.map +1 -1
  161. package/dist/bridges/expr-parse.d.ts +11 -0
  162. package/dist/bridges/expr-parse.d.ts.map +1 -1
  163. package/dist/bridges/expr-parse.js +14 -5
  164. package/dist/bridges/expr-parse.js.map +1 -1
  165. package/dist/bridges/holds.d.ts +35 -3
  166. package/dist/bridges/holds.d.ts.map +1 -1
  167. package/dist/bridges/holds.js +117 -23
  168. package/dist/bridges/holds.js.map +1 -1
  169. package/dist/bridges/notices.d.ts.map +1 -1
  170. package/dist/bridges/notices.js +5 -5
  171. package/dist/bridges/notices.js.map +1 -1
  172. package/dist/bridges/relation-eval.d.ts +4 -4
  173. package/dist/bridges/relation-eval.d.ts.map +1 -1
  174. package/dist/bridges/relation-eval.js +15 -16
  175. package/dist/bridges/relation-eval.js.map +1 -1
  176. package/dist/bridges/sensitivity.d.ts.map +1 -1
  177. package/dist/bridges/sensitivity.js +3 -3
  178. package/dist/bridges/sensitivity.js.map +1 -1
  179. package/dist/bridges/validity.d.ts +33 -0
  180. package/dist/bridges/validity.d.ts.map +1 -0
  181. package/dist/bridges/validity.js +67 -0
  182. package/dist/bridges/validity.js.map +1 -0
  183. package/dist/canonical/entries/atomic.js +1 -3
  184. package/dist/canonical/entries/atomic.js.map +1 -1
  185. package/dist/canonical/entries/condensed-matter.d.ts.map +1 -1
  186. package/dist/canonical/entries/condensed-matter.js +4 -5
  187. package/dist/canonical/entries/condensed-matter.js.map +1 -1
  188. package/dist/canonical/entries/dimensional-classics.d.ts.map +1 -1
  189. package/dist/canonical/entries/dimensional-classics.js +3 -4
  190. package/dist/canonical/entries/dimensional-classics.js.map +1 -1
  191. package/dist/canonical/entries/electromagnetism.d.ts.map +1 -1
  192. package/dist/canonical/entries/electromagnetism.js +4 -10
  193. package/dist/canonical/entries/electromagnetism.js.map +1 -1
  194. package/dist/canonical/entries/fluids-waves.d.ts.map +1 -1
  195. package/dist/canonical/entries/fluids-waves.js +3 -7
  196. package/dist/canonical/entries/fluids-waves.js.map +1 -1
  197. package/dist/canonical/entries/mechanics.d.ts.map +1 -1
  198. package/dist/canonical/entries/mechanics.js +4 -6
  199. package/dist/canonical/entries/mechanics.js.map +1 -1
  200. package/dist/canonical/entries/nonmonomial.d.ts.map +1 -1
  201. package/dist/canonical/entries/nonmonomial.js +9 -17
  202. package/dist/canonical/entries/nonmonomial.js.map +1 -1
  203. package/dist/canonical/entries/relativity.d.ts.map +1 -1
  204. package/dist/canonical/entries/relativity.js +6 -6
  205. package/dist/canonical/entries/relativity.js.map +1 -1
  206. package/dist/canonical/entries/thermo-nuclear-cosmo.d.ts.map +1 -1
  207. package/dist/canonical/entries/thermo-nuclear-cosmo.js +6 -10
  208. package/dist/canonical/entries/thermo-nuclear-cosmo.js.map +1 -1
  209. package/dist/canonical/fixed-points.d.ts +94 -0
  210. package/dist/canonical/fixed-points.d.ts.map +1 -0
  211. package/dist/canonical/fixed-points.js +81 -0
  212. package/dist/canonical/fixed-points.js.map +1 -0
  213. package/dist/canonical/linkage.d.ts.map +1 -1
  214. package/dist/canonical/linkage.js +25 -44
  215. package/dist/canonical/linkage.js.map +1 -1
  216. package/dist/canonical/normal-form.d.ts.map +1 -1
  217. package/dist/canonical/normal-form.js +5 -11
  218. package/dist/canonical/normal-form.js.map +1 -1
  219. package/dist/canonical/structural.d.ts +21 -21
  220. package/dist/canonical/structural.d.ts.map +1 -1
  221. package/dist/canonical/structural.js +40 -19
  222. package/dist/canonical/structural.js.map +1 -1
  223. package/dist/cases/catalog-checks.d.ts +10 -0
  224. package/dist/cases/catalog-checks.d.ts.map +1 -0
  225. package/dist/cases/catalog-checks.js +241 -0
  226. package/dist/cases/catalog-checks.js.map +1 -0
  227. package/dist/cases/catalog.d.ts +83 -0
  228. package/dist/cases/catalog.d.ts.map +1 -0
  229. package/dist/cases/catalog.js +118 -0
  230. package/dist/cases/catalog.js.map +1 -0
  231. package/dist/cases/engine.d.ts +13 -0
  232. package/dist/cases/engine.d.ts.map +1 -0
  233. package/dist/cases/engine.js +179 -0
  234. package/dist/cases/engine.js.map +1 -0
  235. package/dist/cases/index.d.ts.map +1 -1
  236. package/dist/cases/index.js +5 -7
  237. package/dist/cases/index.js.map +1 -1
  238. package/dist/cases/methods.d.ts +215 -0
  239. package/dist/cases/methods.d.ts.map +1 -0
  240. package/dist/cases/methods.js +743 -0
  241. package/dist/cases/methods.js.map +1 -0
  242. package/dist/cases/quadrature.d.ts +7 -9
  243. package/dist/cases/quadrature.d.ts.map +1 -1
  244. package/dist/cases/quadrature.js +28 -32
  245. package/dist/cases/quadrature.js.map +1 -1
  246. package/dist/cases/types.d.ts +12 -0
  247. package/dist/cases/types.d.ts.map +1 -1
  248. package/dist/cases/types.js.map +1 -1
  249. package/dist/cli/args.d.ts +25 -1
  250. package/dist/cli/args.d.ts.map +1 -1
  251. package/dist/cli/args.js +30 -8
  252. package/dist/cli/args.js.map +1 -1
  253. package/dist/cli/bindings.d.ts.map +1 -1
  254. package/dist/cli/bindings.js +5 -4
  255. package/dist/cli/bindings.js.map +1 -1
  256. package/dist/cli/command.d.ts +11 -1
  257. package/dist/cli/command.d.ts.map +1 -1
  258. package/dist/cli/command.js.map +1 -1
  259. package/dist/cli/commands/_atlas-map.d.ts +0 -9
  260. package/dist/cli/commands/_atlas-map.d.ts.map +1 -1
  261. package/dist/cli/commands/_atlas-map.js +8 -18
  262. package/dist/cli/commands/_atlas-map.js.map +1 -1
  263. package/dist/cli/commands/_atlas-route.d.ts.map +1 -1
  264. package/dist/cli/commands/_atlas-route.js +6 -2
  265. package/dist/cli/commands/_atlas-route.js.map +1 -1
  266. package/dist/cli/commands/_discovery-opts.d.ts +1 -0
  267. package/dist/cli/commands/_discovery-opts.d.ts.map +1 -1
  268. package/dist/cli/commands/_discovery-opts.js +9 -9
  269. package/dist/cli/commands/_discovery-opts.js.map +1 -1
  270. package/dist/cli/commands/atlas.d.ts.map +1 -1
  271. package/dist/cli/commands/atlas.js +8 -5
  272. package/dist/cli/commands/atlas.js.map +1 -1
  273. package/dist/cli/commands/audit.d.ts.map +1 -1
  274. package/dist/cli/commands/audit.js +8 -1
  275. package/dist/cli/commands/audit.js.map +1 -1
  276. package/dist/cli/commands/axes.d.ts.map +1 -1
  277. package/dist/cli/commands/axes.js +20 -1
  278. package/dist/cli/commands/axes.js.map +1 -1
  279. package/dist/cli/commands/confront.d.ts.map +1 -1
  280. package/dist/cli/commands/confront.js +8 -14
  281. package/dist/cli/commands/confront.js.map +1 -1
  282. package/dist/cli/commands/derive.d.ts.map +1 -1
  283. package/dist/cli/commands/derive.js +22 -22
  284. package/dist/cli/commands/derive.js.map +1 -1
  285. package/dist/cli/commands/discover.d.ts.map +1 -1
  286. package/dist/cli/commands/discover.js +122 -73
  287. package/dist/cli/commands/discover.js.map +1 -1
  288. package/dist/cli/commands/eval.d.ts.map +1 -1
  289. package/dist/cli/commands/eval.js +1 -0
  290. package/dist/cli/commands/eval.js.map +1 -1
  291. package/dist/cli/commands/evaluate.d.ts.map +1 -1
  292. package/dist/cli/commands/evaluate.js +67 -39
  293. package/dist/cli/commands/evaluate.js.map +1 -1
  294. package/dist/cli/commands/explain.d.ts.map +1 -1
  295. package/dist/cli/commands/explain.js +24 -3
  296. package/dist/cli/commands/explain.js.map +1 -1
  297. package/dist/cli/commands/ground.d.ts.map +1 -1
  298. package/dist/cli/commands/ground.js +7 -1
  299. package/dist/cli/commands/ground.js.map +1 -1
  300. package/dist/cli/commands/map.d.ts.map +1 -1
  301. package/dist/cli/commands/map.js +84 -11
  302. package/dist/cli/commands/map.js.map +1 -1
  303. package/dist/cli/commands/metric.d.ts.map +1 -1
  304. package/dist/cli/commands/metric.js +12 -9
  305. package/dist/cli/commands/metric.js.map +1 -1
  306. package/dist/cli/commands/path.d.ts +10 -0
  307. package/dist/cli/commands/path.d.ts.map +1 -1
  308. package/dist/cli/commands/path.js +25 -3
  309. package/dist/cli/commands/path.js.map +1 -1
  310. package/dist/cli/commands/probe.d.ts.map +1 -1
  311. package/dist/cli/commands/probe.js +59 -16
  312. package/dist/cli/commands/probe.js.map +1 -1
  313. package/dist/cli/commands/regime.d.ts.map +1 -1
  314. package/dist/cli/commands/regime.js +1 -0
  315. package/dist/cli/commands/regime.js.map +1 -1
  316. package/dist/cli/commands/retrieve.d.ts.map +1 -1
  317. package/dist/cli/commands/retrieve.js +1 -0
  318. package/dist/cli/commands/retrieve.js.map +1 -1
  319. package/dist/cli/commands/search.d.ts.map +1 -1
  320. package/dist/cli/commands/search.js +1 -0
  321. package/dist/cli/commands/search.js.map +1 -1
  322. package/dist/cli/commands/symbolic.d.ts.map +1 -1
  323. package/dist/cli/commands/symbolic.js +19 -28
  324. package/dist/cli/commands/symbolic.js.map +1 -1
  325. package/dist/cli/commands/testplan.d.ts.map +1 -1
  326. package/dist/cli/commands/testplan.js +4 -2
  327. package/dist/cli/commands/testplan.js.map +1 -1
  328. package/dist/cli/determination.d.ts +1 -0
  329. package/dist/cli/determination.d.ts.map +1 -1
  330. package/dist/cli/determination.js.map +1 -1
  331. package/dist/cli/expr-print.d.ts +0 -2
  332. package/dist/cli/expr-print.d.ts.map +1 -1
  333. package/dist/cli/expr-print.js +7 -31
  334. package/dist/cli/expr-print.js.map +1 -1
  335. package/dist/cli/flag-help.d.ts +1 -0
  336. package/dist/cli/flag-help.d.ts.map +1 -1
  337. package/dist/cli/flag-help.js +1 -0
  338. package/dist/cli/flag-help.js.map +1 -1
  339. package/dist/cli/graphs.d.ts +2 -0
  340. package/dist/cli/graphs.d.ts.map +1 -1
  341. package/dist/cli/graphs.js +1 -0
  342. package/dist/cli/graphs.js.map +1 -1
  343. package/dist/cli/main.d.ts +8 -0
  344. package/dist/cli/main.d.ts.map +1 -1
  345. package/dist/cli/main.js +19 -3
  346. package/dist/cli/main.js.map +1 -1
  347. package/dist/cli/numeric-flag.d.ts +12 -0
  348. package/dist/cli/numeric-flag.d.ts.map +1 -0
  349. package/dist/cli/numeric-flag.js +44 -0
  350. package/dist/cli/numeric-flag.js.map +1 -0
  351. package/dist/cli/output.d.ts +28 -0
  352. package/dist/cli/output.d.ts.map +1 -1
  353. package/dist/cli/output.js +23 -0
  354. package/dist/cli/output.js.map +1 -1
  355. package/dist/cli/record-reach.js +2 -2
  356. package/dist/cli/record-reach.js.map +1 -1
  357. package/dist/cli/record-tables.d.ts.map +1 -1
  358. package/dist/cli/record-tables.js +6 -5
  359. package/dist/cli/record-tables.js.map +1 -1
  360. package/dist/cli/record.d.ts +1 -5
  361. package/dist/cli/record.d.ts.map +1 -1
  362. package/dist/cli/record.js +9 -8
  363. package/dist/cli/record.js.map +1 -1
  364. package/dist/cli/search-index.d.ts.map +1 -1
  365. package/dist/cli/search-index.js +7 -6
  366. package/dist/cli/search-index.js.map +1 -1
  367. package/dist/cli/statuses.d.ts +0 -2
  368. package/dist/cli/statuses.d.ts.map +1 -1
  369. package/dist/cli/statuses.js +12 -9
  370. package/dist/cli/statuses.js.map +1 -1
  371. package/dist/cli/stored-results.d.ts +7 -0
  372. package/dist/cli/stored-results.d.ts.map +1 -0
  373. package/dist/cli/stored-results.js +23 -0
  374. package/dist/cli/stored-results.js.map +1 -0
  375. package/dist/cli/version.d.ts +1 -0
  376. package/dist/cli/version.d.ts.map +1 -1
  377. package/dist/cli/version.js +8 -5
  378. package/dist/cli/version.js.map +1 -1
  379. package/dist/cli-api.d.ts +36 -5
  380. package/dist/cli-api.d.ts.map +1 -1
  381. package/dist/cli-api.js +30 -4
  382. package/dist/cli-api.js.map +1 -1
  383. package/dist/composition/algebraic-equivalence.d.ts +43 -0
  384. package/dist/composition/algebraic-equivalence.d.ts.map +1 -0
  385. package/dist/composition/algebraic-equivalence.js +115 -0
  386. package/dist/composition/algebraic-equivalence.js.map +1 -0
  387. package/dist/composition/axes.d.ts +0 -6
  388. package/dist/composition/axes.d.ts.map +1 -1
  389. package/dist/composition/axes.js +6 -6
  390. package/dist/composition/axes.js.map +1 -1
  391. package/dist/composition/axis-audit.d.ts +47 -20
  392. package/dist/composition/axis-audit.d.ts.map +1 -1
  393. package/dist/composition/axis-audit.js +82 -9
  394. package/dist/composition/axis-audit.js.map +1 -1
  395. package/dist/composition/bridge-analysis.d.ts +17 -0
  396. package/dist/composition/bridge-analysis.d.ts.map +1 -1
  397. package/dist/composition/bridge-analysis.js +102 -55
  398. package/dist/composition/bridge-analysis.js.map +1 -1
  399. package/dist/composition/canonical-compare.d.ts +40 -0
  400. package/dist/composition/canonical-compare.d.ts.map +1 -1
  401. package/dist/composition/canonical-compare.js +122 -24
  402. package/dist/composition/canonical-compare.js.map +1 -1
  403. package/dist/composition/canonical-graph.d.ts +3 -3
  404. package/dist/composition/canonical-graph.d.ts.map +1 -1
  405. package/dist/composition/canonical-graph.js +11 -38
  406. package/dist/composition/canonical-graph.js.map +1 -1
  407. package/dist/composition/canonical-json.js +2 -2
  408. package/dist/composition/canonical-json.js.map +1 -1
  409. package/dist/composition/catalog-graph.d.ts.map +1 -1
  410. package/dist/composition/catalog-graph.js +2 -5
  411. package/dist/composition/catalog-graph.js.map +1 -1
  412. package/dist/composition/chain-candidate.d.ts +8 -0
  413. package/dist/composition/chain-candidate.d.ts.map +1 -1
  414. package/dist/composition/chain-candidate.js +9 -2
  415. package/dist/composition/chain-candidate.js.map +1 -1
  416. package/dist/composition/chain-match.d.ts +6 -3
  417. package/dist/composition/chain-match.d.ts.map +1 -1
  418. package/dist/composition/chain-match.js +4 -1
  419. package/dist/composition/chain-match.js.map +1 -1
  420. package/dist/composition/chain-result.d.ts.map +1 -1
  421. package/dist/composition/chain-result.js +2 -14
  422. package/dist/composition/chain-result.js.map +1 -1
  423. package/dist/composition/compose-symbolic.d.ts.map +1 -1
  424. package/dist/composition/compose-symbolic.js +3 -2
  425. package/dist/composition/compose-symbolic.js.map +1 -1
  426. package/dist/composition/compose.d.ts.map +1 -1
  427. package/dist/composition/compose.js +13 -5
  428. package/dist/composition/compose.js.map +1 -1
  429. package/dist/composition/composition-recovery.d.ts.map +1 -1
  430. package/dist/composition/composition-recovery.js +4 -7
  431. package/dist/composition/composition-recovery.js.map +1 -1
  432. package/dist/composition/consequence.d.ts +15 -5
  433. package/dist/composition/consequence.d.ts.map +1 -1
  434. package/dist/composition/consequence.js +6 -4
  435. package/dist/composition/consequence.js.map +1 -1
  436. package/dist/composition/discovery.d.ts +129 -9
  437. package/dist/composition/discovery.d.ts.map +1 -1
  438. package/dist/composition/discovery.js +171 -67
  439. package/dist/composition/discovery.js.map +1 -1
  440. package/dist/composition/edge.d.ts +21 -2
  441. package/dist/composition/edge.d.ts.map +1 -1
  442. package/dist/composition/edge.js +23 -1
  443. package/dist/composition/edge.js.map +1 -1
  444. package/dist/composition/enumerate.d.ts.map +1 -1
  445. package/dist/composition/enumerate.js +18 -3
  446. package/dist/composition/enumerate.js.map +1 -1
  447. package/dist/composition/evaluate-relation.d.ts +35 -11
  448. package/dist/composition/evaluate-relation.d.ts.map +1 -1
  449. package/dist/composition/evaluate-relation.js +60 -39
  450. package/dist/composition/evaluate-relation.js.map +1 -1
  451. package/dist/composition/explain.d.ts +3 -12
  452. package/dist/composition/explain.d.ts.map +1 -1
  453. package/dist/composition/explain.js +7 -20
  454. package/dist/composition/explain.js.map +1 -1
  455. package/dist/composition/expr-eval.d.ts +1 -1
  456. package/dist/composition/expr-eval.d.ts.map +1 -1
  457. package/dist/composition/expr-eval.js +6 -15
  458. package/dist/composition/expr-eval.js.map +1 -1
  459. package/dist/composition/expr-simplify.d.ts +26 -14
  460. package/dist/composition/expr-simplify.d.ts.map +1 -1
  461. package/dist/composition/expr-simplify.js +64 -72
  462. package/dist/composition/expr-simplify.js.map +1 -1
  463. package/dist/composition/formula-shape.d.ts +23 -4
  464. package/dist/composition/formula-shape.d.ts.map +1 -1
  465. package/dist/composition/formula-shape.js +57 -17
  466. package/dist/composition/formula-shape.js.map +1 -1
  467. package/dist/composition/graph-structure.d.ts +98 -0
  468. package/dist/composition/graph-structure.d.ts.map +1 -0
  469. package/dist/composition/graph-structure.js +167 -0
  470. package/dist/composition/graph-structure.js.map +1 -0
  471. package/dist/composition/graph-viz-svg.d.ts.map +1 -1
  472. package/dist/composition/graph-viz-svg.js +1 -1
  473. package/dist/composition/graph-viz-svg.js.map +1 -1
  474. package/dist/composition/graph-viz.d.ts.map +1 -1
  475. package/dist/composition/graph-viz.js +8 -37
  476. package/dist/composition/graph-viz.js.map +1 -1
  477. package/dist/composition/grounding.d.ts.map +1 -1
  478. package/dist/composition/grounding.js +19 -7
  479. package/dist/composition/grounding.js.map +1 -1
  480. package/dist/composition/identifiability.d.ts +91 -4
  481. package/dist/composition/identifiability.d.ts.map +1 -1
  482. package/dist/composition/identifiability.js +363 -6
  483. package/dist/composition/identifiability.js.map +1 -1
  484. package/dist/composition/index.d.ts +8 -4
  485. package/dist/composition/index.d.ts.map +1 -1
  486. package/dist/composition/index.js +3 -2
  487. package/dist/composition/index.js.map +1 -1
  488. package/dist/composition/mathts-quiet.d.ts +7 -8
  489. package/dist/composition/mathts-quiet.d.ts.map +1 -1
  490. package/dist/composition/mathts-quiet.js +7 -16
  491. package/dist/composition/mathts-quiet.js.map +1 -1
  492. package/dist/composition/mathts-scalar-symbols.d.ts.map +1 -1
  493. package/dist/composition/mathts-scalar-symbols.js +2 -1
  494. package/dist/composition/mathts-scalar-symbols.js.map +1 -1
  495. package/dist/composition/own-equation-magnitude.d.ts +95 -0
  496. package/dist/composition/own-equation-magnitude.d.ts.map +1 -0
  497. package/dist/composition/own-equation-magnitude.js +270 -0
  498. package/dist/composition/own-equation-magnitude.js.map +1 -0
  499. package/dist/composition/probe/backend-protocol.d.ts +3 -0
  500. package/dist/composition/probe/backend-protocol.d.ts.map +1 -1
  501. package/dist/composition/probe/backend-protocol.js.map +1 -1
  502. package/dist/composition/probe/candidate-store.d.ts +1 -0
  503. package/dist/composition/probe/candidate-store.d.ts.map +1 -1
  504. package/dist/composition/probe/candidate-store.js +1 -0
  505. package/dist/composition/probe/candidate-store.js.map +1 -1
  506. package/dist/composition/probe/corpus.d.ts +8 -4
  507. package/dist/composition/probe/corpus.d.ts.map +1 -1
  508. package/dist/composition/probe/corpus.js +23 -12
  509. package/dist/composition/probe/corpus.js.map +1 -1
  510. package/dist/composition/probe/dataset.d.ts +18 -0
  511. package/dist/composition/probe/dataset.d.ts.map +1 -1
  512. package/dist/composition/probe/dataset.js +95 -50
  513. package/dist/composition/probe/dataset.js.map +1 -1
  514. package/dist/composition/probe/experiment-design.d.ts +7 -1
  515. package/dist/composition/probe/experiment-design.d.ts.map +1 -1
  516. package/dist/composition/probe/experiment-design.js +44 -24
  517. package/dist/composition/probe/experiment-design.js.map +1 -1
  518. package/dist/composition/probe/falsify.d.ts +2 -0
  519. package/dist/composition/probe/falsify.d.ts.map +1 -1
  520. package/dist/composition/probe/falsify.js +2 -0
  521. package/dist/composition/probe/falsify.js.map +1 -1
  522. package/dist/composition/probe/fit.d.ts +7 -0
  523. package/dist/composition/probe/fit.d.ts.map +1 -1
  524. package/dist/composition/probe/fit.js +46 -22
  525. package/dist/composition/probe/fit.js.map +1 -1
  526. package/dist/composition/probe/frontier.d.ts.map +1 -1
  527. package/dist/composition/probe/frontier.js +33 -15
  528. package/dist/composition/probe/frontier.js.map +1 -1
  529. package/dist/composition/probe/generator.d.ts +30 -1
  530. package/dist/composition/probe/generator.d.ts.map +1 -1
  531. package/dist/composition/probe/generator.js +58 -36
  532. package/dist/composition/probe/generator.js.map +1 -1
  533. package/dist/composition/probe/index.d.ts +14 -0
  534. package/dist/composition/probe/index.d.ts.map +1 -1
  535. package/dist/composition/probe/index.js +6 -0
  536. package/dist/composition/probe/index.js.map +1 -1
  537. package/dist/composition/probe/limits.d.ts +25 -1
  538. package/dist/composition/probe/limits.d.ts.map +1 -1
  539. package/dist/composition/probe/limits.js +53 -11
  540. package/dist/composition/probe/limits.js.map +1 -1
  541. package/dist/composition/probe/pipeline.d.ts +5 -0
  542. package/dist/composition/probe/pipeline.d.ts.map +1 -1
  543. package/dist/composition/probe/pipeline.js +73 -24
  544. package/dist/composition/probe/pipeline.js.map +1 -1
  545. package/dist/composition/probe/power-law.d.ts +121 -0
  546. package/dist/composition/probe/power-law.d.ts.map +1 -0
  547. package/dist/composition/probe/power-law.js +251 -0
  548. package/dist/composition/probe/power-law.js.map +1 -0
  549. package/dist/composition/probe/problem.d.ts +8 -4
  550. package/dist/composition/probe/problem.d.ts.map +1 -1
  551. package/dist/composition/probe/problem.js +177 -49
  552. package/dist/composition/probe/problem.js.map +1 -1
  553. package/dist/composition/probe/report.js +1 -1
  554. package/dist/composition/probe/report.js.map +1 -1
  555. package/dist/composition/probe/residual.d.ts +7 -1
  556. package/dist/composition/probe/residual.d.ts.map +1 -1
  557. package/dist/composition/probe/residual.js +10 -7
  558. package/dist/composition/probe/residual.js.map +1 -1
  559. package/dist/composition/probe/run-manifest.d.ts +1 -0
  560. package/dist/composition/probe/run-manifest.d.ts.map +1 -1
  561. package/dist/composition/probe/run-manifest.js.map +1 -1
  562. package/dist/composition/probe/scalar-search.d.ts +50 -0
  563. package/dist/composition/probe/scalar-search.d.ts.map +1 -0
  564. package/dist/composition/probe/scalar-search.js +169 -0
  565. package/dist/composition/probe/scalar-search.js.map +1 -0
  566. package/dist/composition/probe/scoring.d.ts +1 -0
  567. package/dist/composition/probe/scoring.d.ts.map +1 -1
  568. package/dist/composition/probe/scoring.js.map +1 -1
  569. package/dist/composition/probe/structure.d.ts +82 -17
  570. package/dist/composition/probe/structure.d.ts.map +1 -1
  571. package/dist/composition/probe/structure.js +129 -55
  572. package/dist/composition/probe/structure.js.map +1 -1
  573. package/dist/composition/probe/study.d.ts +31 -9
  574. package/dist/composition/probe/study.d.ts.map +1 -1
  575. package/dist/composition/probe/study.js +235 -184
  576. package/dist/composition/probe/study.js.map +1 -1
  577. package/dist/composition/probe/t-tail.d.ts +16 -0
  578. package/dist/composition/probe/t-tail.d.ts.map +1 -0
  579. package/dist/composition/probe/t-tail.js +29 -0
  580. package/dist/composition/probe/t-tail.js.map +1 -0
  581. package/dist/composition/probe/types.d.ts +3 -0
  582. package/dist/composition/probe/types.d.ts.map +1 -1
  583. package/dist/composition/probe/types.js.map +1 -1
  584. package/dist/composition/proposed-bridges.d.ts +52 -12
  585. package/dist/composition/proposed-bridges.d.ts.map +1 -1
  586. package/dist/composition/proposed-bridges.js +107 -60
  587. package/dist/composition/proposed-bridges.js.map +1 -1
  588. package/dist/composition/quantity-clusters.d.ts +48 -0
  589. package/dist/composition/quantity-clusters.d.ts.map +1 -0
  590. package/dist/composition/quantity-clusters.js +98 -0
  591. package/dist/composition/quantity-clusters.js.map +1 -0
  592. package/dist/composition/rational-exponent.d.ts +40 -0
  593. package/dist/composition/rational-exponent.d.ts.map +1 -0
  594. package/dist/composition/rational-exponent.js +65 -0
  595. package/dist/composition/rational-exponent.js.map +1 -0
  596. package/dist/composition/representative-values.d.ts +22 -0
  597. package/dist/composition/representative-values.d.ts.map +1 -1
  598. package/dist/composition/representative-values.js +29 -0
  599. package/dist/composition/representative-values.js.map +1 -1
  600. package/dist/composition/retrodiction.d.ts +15 -0
  601. package/dist/composition/retrodiction.d.ts.map +1 -1
  602. package/dist/composition/retrodiction.js +12 -4
  603. package/dist/composition/retrodiction.js.map +1 -1
  604. package/dist/composition/user-equation.d.ts +1 -0
  605. package/dist/composition/user-equation.d.ts.map +1 -1
  606. package/dist/composition/user-equation.js +3 -2
  607. package/dist/composition/user-equation.js.map +1 -1
  608. package/dist/core/assignment.d.ts +19 -0
  609. package/dist/core/assignment.d.ts.map +1 -0
  610. package/dist/core/assignment.js +19 -0
  611. package/dist/core/assignment.js.map +1 -0
  612. package/dist/core/compare.d.ts +32 -0
  613. package/dist/core/compare.d.ts.map +1 -0
  614. package/dist/core/compare.js +46 -0
  615. package/dist/core/compare.js.map +1 -0
  616. package/dist/core/constants.d.ts +42 -41
  617. package/dist/core/constants.d.ts.map +1 -1
  618. package/dist/core/constants.js +71 -51
  619. package/dist/core/constants.js.map +1 -1
  620. package/dist/core/data-file.d.ts +7 -0
  621. package/dist/core/data-file.d.ts.map +1 -1
  622. package/dist/core/data-file.js +17 -0
  623. package/dist/core/data-file.js.map +1 -1
  624. package/dist/core/format.d.ts +36 -0
  625. package/dist/core/format.d.ts.map +1 -0
  626. package/dist/core/format.js +39 -0
  627. package/dist/core/format.js.map +1 -0
  628. package/dist/core/hash.d.ts +14 -0
  629. package/dist/core/hash.d.ts.map +1 -0
  630. package/dist/core/hash.js +17 -0
  631. package/dist/core/hash.js.map +1 -0
  632. package/dist/core/json-schema.d.ts +2 -0
  633. package/dist/core/json-schema.d.ts.map +1 -1
  634. package/dist/core/json-schema.js +14 -13
  635. package/dist/core/json-schema.js.map +1 -1
  636. package/dist/core/labeled-tensor.d.ts.map +1 -1
  637. package/dist/core/labeled-tensor.js +0 -8
  638. package/dist/core/labeled-tensor.js.map +1 -1
  639. package/dist/core/mathts-read.d.ts +25 -0
  640. package/dist/core/mathts-read.d.ts.map +1 -0
  641. package/dist/core/mathts-read.js +51 -0
  642. package/dist/core/mathts-read.js.map +1 -0
  643. package/dist/core/tensor.d.ts.map +1 -1
  644. package/dist/core/tensor.js +24 -0
  645. package/dist/core/tensor.js.map +1 -1
  646. package/dist/core/types.d.ts +5 -5
  647. package/dist/diff/bridge-ast-gradient.d.ts +27 -23
  648. package/dist/diff/bridge-ast-gradient.d.ts.map +1 -1
  649. package/dist/diff/bridge-ast-gradient.js +75 -173
  650. package/dist/diff/bridge-ast-gradient.js.map +1 -1
  651. package/dist/diff/bridge-gradient.d.ts +19 -6
  652. package/dist/diff/bridge-gradient.d.ts.map +1 -1
  653. package/dist/diff/bridge-gradient.js +19 -11
  654. package/dist/diff/bridge-gradient.js.map +1 -1
  655. package/dist/diff/bridge-specs.d.ts.map +1 -1
  656. package/dist/diff/bridge-specs.js +3 -0
  657. package/dist/diff/bridge-specs.js.map +1 -1
  658. package/dist/dimensional/algebra.d.ts +18 -0
  659. package/dist/dimensional/algebra.d.ts.map +1 -1
  660. package/dist/dimensional/algebra.js +41 -1
  661. package/dist/dimensional/algebra.js.map +1 -1
  662. package/dist/dimensional/ast-builders.d.ts +7 -0
  663. package/dist/dimensional/ast-builders.d.ts.map +1 -1
  664. package/dist/dimensional/ast-builders.js +11 -0
  665. package/dist/dimensional/ast-builders.js.map +1 -1
  666. package/dist/dimensional/ast-leaves.d.ts +81 -0
  667. package/dist/dimensional/ast-leaves.d.ts.map +1 -0
  668. package/dist/dimensional/ast-leaves.js +146 -0
  669. package/dist/dimensional/ast-leaves.js.map +1 -0
  670. package/dist/dimensional/ast-types.d.ts +15 -0
  671. package/dist/dimensional/ast-types.d.ts.map +1 -1
  672. package/dist/dimensional/ast-types.js.map +1 -1
  673. package/dist/dimensional/buckingham.d.ts.map +1 -1
  674. package/dist/dimensional/buckingham.js +15 -27
  675. package/dist/dimensional/buckingham.js.map +1 -1
  676. package/dist/dimensional/constant-rows.js +9 -9
  677. package/dist/dimensional/constant-rows.js.map +1 -1
  678. package/dist/dimensional/curvature-composite.d.ts +1 -1
  679. package/dist/dimensional/curvature-composite.js.map +1 -1
  680. package/dist/dimensional/dimension-inference.d.ts.map +1 -1
  681. package/dist/dimensional/dimension-inference.js +1 -2
  682. package/dist/dimensional/dimension-inference.js.map +1 -1
  683. package/dist/dimensional/errors.d.ts +1 -1
  684. package/dist/dimensional/errors.d.ts.map +1 -1
  685. package/dist/dimensional/errors.js +1 -15
  686. package/dist/dimensional/errors.js.map +1 -1
  687. package/dist/dimensional/exact-scale.d.ts +24 -11
  688. package/dist/dimensional/exact-scale.d.ts.map +1 -1
  689. package/dist/dimensional/exact-scale.js +122 -130
  690. package/dist/dimensional/exact-scale.js.map +1 -1
  691. package/dist/dimensional/gauge-field.d.ts.map +1 -1
  692. package/dist/dimensional/gauge-field.js +2 -2
  693. package/dist/dimensional/gauge-field.js.map +1 -1
  694. package/dist/dimensional/hyphen-names.d.ts +12 -2
  695. package/dist/dimensional/hyphen-names.d.ts.map +1 -1
  696. package/dist/dimensional/hyphen-names.js +44 -19
  697. package/dist/dimensional/hyphen-names.js.map +1 -1
  698. package/dist/dimensional/mathts-unit-delegation.d.ts +29 -0
  699. package/dist/dimensional/mathts-unit-delegation.d.ts.map +1 -0
  700. package/dist/dimensional/mathts-unit-delegation.js +187 -0
  701. package/dist/dimensional/mathts-unit-delegation.js.map +1 -0
  702. package/dist/dimensional/mathts-unit-wrapper.d.ts +33 -0
  703. package/dist/dimensional/mathts-unit-wrapper.d.ts.map +1 -0
  704. package/dist/dimensional/mathts-unit-wrapper.js +190 -0
  705. package/dist/dimensional/mathts-unit-wrapper.js.map +1 -0
  706. package/dist/dimensional/metric.d.ts.map +1 -1
  707. package/dist/dimensional/metric.js +0 -1
  708. package/dist/dimensional/metric.js.map +1 -1
  709. package/dist/dimensional/scalar-lowering.d.ts +21 -0
  710. package/dist/dimensional/scalar-lowering.d.ts.map +1 -0
  711. package/dist/dimensional/scalar-lowering.js +45 -0
  712. package/dist/dimensional/scalar-lowering.js.map +1 -0
  713. package/dist/dimensional/symbolic-constants.d.ts +9 -0
  714. package/dist/dimensional/symbolic-constants.d.ts.map +1 -1
  715. package/dist/dimensional/symbolic-constants.js +13 -1
  716. package/dist/dimensional/symbolic-constants.js.map +1 -1
  717. package/dist/dimensional/types.d.ts +36 -0
  718. package/dist/dimensional/types.d.ts.map +1 -1
  719. package/dist/dimensional/types.js +45 -7
  720. package/dist/dimensional/types.js.map +1 -1
  721. package/dist/dimensional/unit-data.d.ts +5 -1
  722. package/dist/dimensional/unit-data.d.ts.map +1 -1
  723. package/dist/dimensional/unit-data.js +30 -6
  724. package/dist/dimensional/unit-data.js.map +1 -1
  725. package/dist/dimensional/units.d.ts +2 -0
  726. package/dist/dimensional/units.d.ts.map +1 -1
  727. package/dist/dimensional/units.js +59 -3
  728. package/dist/dimensional/units.js.map +1 -1
  729. package/dist/dimensional/validator.d.ts +2 -0
  730. package/dist/dimensional/validator.d.ts.map +1 -1
  731. package/dist/dimensional/validator.js.map +1 -1
  732. package/dist/index.d.ts +9 -3
  733. package/dist/index.d.ts.map +1 -1
  734. package/dist/index.js +10 -4
  735. package/dist/index.js.map +1 -1
  736. package/dist/numerical/christoffel-flat.d.ts.map +1 -1
  737. package/dist/numerical/christoffel-flat.js +3 -2
  738. package/dist/numerical/christoffel-flat.js.map +1 -1
  739. package/dist/numerical/connection-lowering-helpers.d.ts +3 -1
  740. package/dist/numerical/connection-lowering-helpers.d.ts.map +1 -1
  741. package/dist/numerical/connection-lowering-helpers.js +11 -15
  742. package/dist/numerical/connection-lowering-helpers.js.map +1 -1
  743. package/dist/numerical/covariant-eikonal.d.ts.map +1 -1
  744. package/dist/numerical/covariant-eikonal.js +34 -11
  745. package/dist/numerical/covariant-eikonal.js.map +1 -1
  746. package/dist/numerical/curvature-lowering-helpers.js +3 -2
  747. package/dist/numerical/curvature-lowering-helpers.js.map +1 -1
  748. package/dist/numerical/errors.d.ts.map +1 -1
  749. package/dist/numerical/errors.js +0 -3
  750. package/dist/numerical/errors.js.map +1 -1
  751. package/dist/numerical/finite-difference.d.ts +22 -0
  752. package/dist/numerical/finite-difference.d.ts.map +1 -0
  753. package/dist/numerical/finite-difference.js +27 -0
  754. package/dist/numerical/finite-difference.js.map +1 -0
  755. package/dist/numerical/geodesic-integrator.d.ts.map +1 -1
  756. package/dist/numerical/geodesic-integrator.js +22 -14
  757. package/dist/numerical/geodesic-integrator.js.map +1 -1
  758. package/dist/numerical/geometrized.d.ts.map +1 -1
  759. package/dist/numerical/geometrized.js +0 -1
  760. package/dist/numerical/geometrized.js.map +1 -1
  761. package/dist/numerical/mathts-engine.d.ts.map +1 -1
  762. package/dist/numerical/mathts-engine.js +10 -24
  763. package/dist/numerical/mathts-engine.js.map +1 -1
  764. package/dist/numerical/metric-inverse.d.ts.map +1 -1
  765. package/dist/numerical/metric-inverse.js +83 -46
  766. package/dist/numerical/metric-inverse.js.map +1 -1
  767. package/dist/numerical/null-ray-integrator.d.ts +2 -1
  768. package/dist/numerical/null-ray-integrator.d.ts.map +1 -1
  769. package/dist/numerical/null-ray-integrator.js +12 -12
  770. package/dist/numerical/null-ray-integrator.js.map +1 -1
  771. package/dist/numerical/painleve-gullstrand-metric.js +2 -2
  772. package/dist/numerical/painleve-gullstrand-metric.js.map +1 -1
  773. package/dist/numerical/pderiv.d.ts.map +1 -1
  774. package/dist/numerical/pderiv.js +2 -6
  775. package/dist/numerical/pderiv.js.map +1 -1
  776. package/dist/numerical/perihelion-finder.d.ts +0 -36
  777. package/dist/numerical/perihelion-finder.d.ts.map +1 -1
  778. package/dist/numerical/perihelion-finder.js +41 -87
  779. package/dist/numerical/perihelion-finder.js.map +1 -1
  780. package/dist/numerical/quadrature.d.ts.map +1 -1
  781. package/dist/numerical/quadrature.js +11 -13
  782. package/dist/numerical/quadrature.js.map +1 -1
  783. package/dist/numerical/rk4-trajectory.d.ts +10 -0
  784. package/dist/numerical/rk4-trajectory.d.ts.map +1 -0
  785. package/dist/numerical/rk4-trajectory.js +37 -0
  786. package/dist/numerical/rk4-trajectory.js.map +1 -0
  787. package/dist/numerical/schwarzschild.d.ts +14 -0
  788. package/dist/numerical/schwarzschild.d.ts.map +1 -0
  789. package/dist/numerical/schwarzschild.js +17 -0
  790. package/dist/numerical/schwarzschild.js.map +1 -0
  791. package/dist/numerical/spacetime-metrics.d.ts +12 -0
  792. package/dist/numerical/spacetime-metrics.d.ts.map +1 -1
  793. package/dist/numerical/spacetime-metrics.js +72 -56
  794. package/dist/numerical/spacetime-metrics.js.map +1 -1
  795. package/dist/numerical/statistics.d.ts +24 -0
  796. package/dist/numerical/statistics.d.ts.map +1 -0
  797. package/dist/numerical/statistics.js +52 -0
  798. package/dist/numerical/statistics.js.map +1 -0
  799. package/dist/numerical/strides.d.ts +3 -2
  800. package/dist/numerical/strides.d.ts.map +1 -1
  801. package/dist/numerical/strides.js +3 -10
  802. package/dist/numerical/strides.js.map +1 -1
  803. package/dist/numerical/tensor-engine.d.ts +21 -0
  804. package/dist/numerical/tensor-engine.d.ts.map +1 -1
  805. package/dist/numerical/tensor-engine.js +12 -0
  806. package/dist/numerical/tensor-engine.js.map +1 -1
  807. package/dist/relations/regime.d.ts +10 -0
  808. package/dist/relations/regime.d.ts.map +1 -1
  809. package/dist/relations/regime.js +18 -1
  810. package/dist/relations/regime.js.map +1 -1
  811. package/package.json +9 -12
  812. package/dist/cases/brownian-sphere.d.ts +0 -68
  813. package/dist/cases/brownian-sphere.d.ts.map +0 -1
  814. package/dist/cases/brownian-sphere.js +0 -354
  815. package/dist/cases/brownian-sphere.js.map +0 -1
  816. package/dist/cases/damped-resonator.d.ts +0 -23
  817. package/dist/cases/damped-resonator.d.ts.map +0 -1
  818. package/dist/cases/damped-resonator.js +0 -224
  819. package/dist/cases/damped-resonator.js.map +0 -1
  820. package/dist/cases/kepler-rv.d.ts +0 -13
  821. package/dist/cases/kepler-rv.d.ts.map +0 -1
  822. package/dist/cases/kepler-rv.js +0 -172
  823. package/dist/cases/kepler-rv.js.map +0 -1
  824. package/dist/cases/lumped-cooling.d.ts +0 -46
  825. package/dist/cases/lumped-cooling.d.ts.map +0 -1
  826. package/dist/cases/lumped-cooling.js +0 -261
  827. package/dist/cases/lumped-cooling.js.map +0 -1
  828. package/dist/cases/resistor-noise.d.ts +0 -14
  829. package/dist/cases/resistor-noise.d.ts.map +0 -1
  830. package/dist/cases/resistor-noise.js +0 -215
  831. package/dist/cases/resistor-noise.js.map +0 -1
  832. package/dist/cases/skin-depth.d.ts +0 -21
  833. package/dist/cases/skin-depth.d.ts.map +0 -1
  834. package/dist/cases/skin-depth.js +0 -174
  835. package/dist/cases/skin-depth.js.map +0 -1
@@ -1,3 +1,4 @@
1
+ import { hasMagnitudeEvidence } from './discovery.js';
1
2
  /**
2
3
  * Derive the grounding ledger from a candidate's existing falsifier results.
3
4
  * `consequence` is the optional consequence-annotation signal (from
@@ -18,15 +19,23 @@ export function describeGrounding(c, consequence) {
18
19
  if (c.numericallyConsistent)
19
20
  passed.push('numerical-consistency');
20
21
  // Magnitude gate: ran only when both endpoints had a representative value.
21
- // An anchor-invariant ratio is fixed by the graph at every anchor, so its
22
- // agreement is an identity, not a survived test (persona finding L3).
23
- if (c.magnitudeChecked && c.magnitudeAnchorInvariant === true) {
22
+ // A clash is the gate FIRING: its failure is the magnitude-clash verdict, not a
23
+ // grounding line (as for numerical consistency above), so it is neither passed
24
+ // nor a gap. An anchor-invariant ratio is fixed by the graph at every anchor, so
25
+ // its agreement is an identity, not a survived test (persona finding L3).
26
+ if (c.verdict === 'magnitude-clash') {
27
+ // the verdict states it
28
+ }
29
+ else if (c.magnitudeChecked && c.magnitudeAnchorInvariant === true) {
24
30
  gaps.push('magnitude (anchor-invariant: the graph fixes this ratio at every anchor, so the match is an identity, not evidence)');
25
31
  }
26
32
  else if (c.magnitudeChecked) {
27
33
  const parts = [];
28
34
  if (c.ordersApart != null)
29
35
  parts.push(`${c.ordersApart.toFixed(1)} orders`);
36
+ // A magnitude from the quantity's own equation is not anchor-derived: say which, and where from.
37
+ if ((c.magnitudeDerived ?? []).length > 0)
38
+ parts.push(`${c.magnitudeDerived.join(', ')} from its own equation`);
30
39
  if (c.magnitudeUsedAnchor)
31
40
  parts.push('anchor-derived');
32
41
  passed.push(parts.length ? `magnitude (${parts.join(', ')})` : 'magnitude');
@@ -62,10 +71,13 @@ export function describeGrounding(c, consequence) {
62
71
  export function describeReadiness(c, consequence) {
63
72
  const survived = [];
64
73
  const abstained = [];
65
- if (c.magnitudeChecked && c.magnitudeAnchorInvariant !== true)
66
- survived.push('magnitude');
67
- else
68
- abstained.push('magnitude');
74
+ // A magnitude clash is the falsifier firing: it neither survived nor abstained.
75
+ if (c.verdict !== 'magnitude-clash') {
76
+ if (hasMagnitudeEvidence(c))
77
+ survived.push('magnitude');
78
+ else
79
+ abstained.push('magnitude');
80
+ }
69
81
  if (c.axisChecked && c.axisClashes.length === 0)
70
82
  survived.push('axis');
71
83
  else if (!c.axisChecked)
@@ -1 +1 @@
1
- {"version":3,"file":"grounding.js","sourceRoot":"","sources":["../../src/composition/grounding.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * PI-instrument Phase 1 — the epistemic-grounding ledger. A pure, derived view\n * over a `VettedCandidate`'s already-computed falsifier results: which gates RAN\n * a real comparison and the candidate SURVIVED (`passed`), which could not test\n * it or produced an unadjudicated result (`gaps`), and the honest ceiling — no\n * mechanism test (axis-compatibility is a proxy, not a mechanism test) and no\n * data confrontation. Annotation-only: it changes no verdict, score, or count.\n *\n * The ledger's job is to expose WEAKNESS so a PI knows how much weight a verdict\n * bears. A gate lands in `passed` ONLY if it ran a real comparison and the\n * candidate survived; anything untestable (an abstained gate) or unadjudicated\n * (a novel machine-derived consequence) is a `gap`, never a strength. There is\n * deliberately NO single \"tier\": magnitude (numeric) and axis (regime) are\n * orthogonal evidence and must not collapse into one rank a PI could misread as\n * credibility.\n *\n * @module composition/grounding\n */\nimport type { VettedCandidate } from './discovery.js';\nimport type { ConsequenceSignal } from './consequence.js';\n\n/** The epistemic-grounding ledger for one discovery candidate. @public */\nexport interface CandidateGrounding {\n /** Gates that ran a real comparison AND the candidate survived. */\n readonly passed: readonly string[];\n /** Gates that could NOT test the candidate, or produced an unadjudicated result. */\n readonly gaps: readonly string[];\n /**\n * Honest ceiling — no mechanism test has run. This is PERMANENT for a\n * dimensional discovery candidate, not a placeholder: axis-compatibility is a\n * regime PROXY, and `entailed` (the strongest available signal — the\n * consequence re-derives a known canonical law) is a structural-consequence\n * check, not a mechanism test. A dedicated mechanism-proxy gate was assessed\n * 2026-07-04 and found NOT buildable without fabricating coupling physics the\n * catalog does not have (Phase 2 grounding; see the PI-instrument Phase 2\n * not-build note). Real mechanism lives in the ESTABLISHED-bridge world\n * (`upt confront`), not in candidate space. The field stays for honesty (the\n * ceiling is never a silent omission) and for the constructive path: growing\n * the canonical registry so `entailed` stops abstaining.\n */\n readonly mechanismTested: false;\n /**\n * Honest ceiling — this candidate is not confronted with real data. This is\n * PERMANENT for a dimensional discovery candidate, not a placeholder: a\n * cross-cluster dimensional identification is a coincidence review surface\n * (0/8 ever adjudicated genuine) with no implied observable to measure. Data\n * confrontation lives in the ESTABLISHED-bridge world (`upt confront`), which\n * the evidence-spine work grows. The scientific loop is closed not by\n * confronting candidates but by the FIREWALL: a candidate must graduate to an\n * established bridge (human review + citation) before it can be data-tested.\n * A propose→confront loop over candidates was assessed 2026-07-04 (PI-instrument\n * Phase 3) and found to have no confrontable target — the honest boundary is\n * that candidates are unconfrontable until promoted. The field stays for\n * honesty and flips only for a candidate that is `entailed` into (or graduates\n * to) a data-confronted relation.\n */\n readonly dataTested: false;\n}\n\n/**\n * Derive the grounding ledger from a candidate's existing falsifier results.\n * `consequence` is the optional consequence-annotation signal (from\n * `annotateConsequences`); omit it when the consequence layer did not run.\n *\n * Designed for `promising` candidates (the ones a PI reviews), but honest for\n * any candidate: it never reports a gate as `passed` unless it actually ran and\n * the candidate survived it.\n *\n * @public\n */\nexport function describeGrounding(\n c: VettedCandidate,\n consequence?: ConsequenceSignal,\n): CandidateGrounding {\n const passed: string[] = [];\n const gaps: string[] = [];\n\n // Numerical-consistency: the retrodiction filter always runs. It is `passed`\n // only when the candidate is actually consistent (a contradictory candidate's\n // failure is its verdict, not a grounding line — this view is for survivors).\n if (c.numericallyConsistent) passed.push('numerical-consistency');\n\n // Magnitude gate: ran only when both endpoints had a representative value.\n // An anchor-invariant ratio is fixed by the graph at every anchor, so its\n // agreement is an identity, not a survived test (persona finding L3).\n if (c.magnitudeChecked && c.magnitudeAnchorInvariant === true) {\n gaps.push(\n 'magnitude (anchor-invariant: the graph fixes this ratio at every anchor, so the match is an identity, not evidence)',\n );\n } else if (c.magnitudeChecked) {\n const parts: string[] = [];\n if (c.ordersApart != null) parts.push(`${c.ordersApart.toFixed(1)} orders`);\n if (c.magnitudeUsedAnchor) parts.push('anchor-derived');\n passed.push(parts.length ? `magnitude (${parts.join(', ')})` : 'magnitude');\n } else {\n gaps.push('magnitude (no representative value)');\n }\n\n // Axis-compatibility: honestly PARTIAL — \"≥1 regime axis resolved and agreed\",\n // never \"fully axis-checked\". Cleared only when an axis was resolved AND none\n // clashed. (A clash is the axis-clash verdict, not a survivor's grounding.)\n if (c.axisChecked && c.axisClashes.length === 0) {\n passed.push('axis-compatible (≥1 regime axis)');\n } else if (!c.axisChecked) {\n gaps.push('axis (regime attributes unresolved)');\n }\n\n // Consequence: ONLY `entailed` clears (the consequence re-derives a known\n // canonical law — a real check against standard physics). `novel-consequence`\n // is an UNADJUDICATED machine-surfaced relation — a weakness to investigate,\n // not a passed test. `inconclusive` means the consequence layer could not test.\n if (consequence === 'entailed') passed.push('consequence: entailed');\n else if (consequence === 'novel-consequence') gaps.push('consequence: novel (unadjudicated)');\n else if (consequence === 'inconclusive') gaps.push('consequence: inconclusive');\n\n return { passed, gaps, mechanismTested: false, dataTested: false };\n}\n\n/** An independent falsifier: a gate that can reject an identification the anchored graph cannot. */\nexport type IndependentFalsifier = 'magnitude' | 'axis' | 'consequence';\n\n/**\n * How far one candidate is from being a testable claim, dimension by dimension.\n * Deliberately NOT a score: the dimensions are orthogonal and are never summed.\n * @internal\n */\nexport interface CandidateReadiness {\n /** Connectivity. It makes a candidate worth a look; it is never evidence. */\n readonly structure: { readonly mergesComponents: boolean; readonly unlocks: number };\n /** `same-kind`: the names share a kind token. `dimension-only`: nothing but the dimension is shared. */\n readonly kind: 'same-kind' | 'dimension-only';\n /**\n * Independent falsifiers that ran and the candidate survived, and those that\n * abstained. An abstention is a missing test, never a pass. Numerical\n * consistency is not listed: it runs from a single anchor and cannot reach\n * the quantities an identification unlocks.\n */\n readonly falsifiers: {\n readonly survived: readonly IndependentFalsifier[];\n readonly abstained: readonly IndependentFalsifier[];\n };\n readonly mechanismTested: false;\n readonly dataTested: false;\n /** What would make the identification testable, each item derived from why a gate abstained. */\n readonly needs: {\n /** The premise every literal identification a≡b rests on. */\n readonly premise: string;\n /** Endpoints that need a representative magnitude for the magnitude falsifier to run. */\n readonly magnitudeFor: readonly string[];\n /** Axes and endpoints that need a stated regime for the axis falsifier to run. */\n readonly regimeFor: readonly { readonly axis: string; readonly endpoints: readonly string[] }[];\n /** The consequence check could not re-derive a known law. */\n readonly derivableConsequence: boolean;\n };\n /** The independent observation that would test the premise. */\n readonly observation: string;\n}\n\n/**\n * Derive a candidate's readiness from its falsifier fields.\n * @internal\n */\nexport function describeReadiness(c: VettedCandidate, consequence?: ConsequenceSignal): CandidateReadiness {\n const survived: IndependentFalsifier[] = [];\n const abstained: IndependentFalsifier[] = [];\n if (c.magnitudeChecked && c.magnitudeAnchorInvariant !== true) survived.push('magnitude');\n else abstained.push('magnitude');\n if (c.axisChecked && c.axisClashes.length === 0) survived.push('axis');\n else if (!c.axisChecked) abstained.push('axis');\n if (consequence === 'entailed') survived.push('consequence');\n else abstained.push('consequence');\n const kind = c.sameKind ? 'same-kind' : 'dimension-only';\n return {\n structure: { mergesComponents: c.mergesComponents, unlocks: c.unlocksFromAnchor.length },\n kind,\n falsifiers: { survived, abstained },\n mechanismTested: false,\n dataTested: false,\n needs: {\n premise:\n kind === 'same-kind'\n ? `${c.a} and ${c.b} are the same physical quantity, not two quantities of one kind`\n : `${c.a} and ${c.b} are the same physical quantity, not only both ${c.dim}`,\n magnitudeFor: c.magnitudeChecked ? [] : [...(c.magnitudeMissing ?? [])],\n regimeFor: c.axisChecked ? [] : (c.axisUnstated ?? []).map((u) => ({ axis: u.axis, endpoints: [...u.endpoints] })),\n derivableConsequence: consequence !== 'entailed',\n },\n observation:\n `measure ${c.a} and ${c.b} in one system that defines both: the identification predicts equal values ` +\n 'within uncertainty. If no system defines both, it has no observable content yet.',\n };\n}\n"]}
1
+ {"version":3,"file":"grounding.js","sourceRoot":"","sources":["../../src/composition/grounding.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * PI-instrument Phase 1 — the epistemic-grounding ledger. A pure, derived view\n * over a `VettedCandidate`'s already-computed falsifier results: which gates RAN\n * a real comparison and the candidate SURVIVED (`passed`), which could not test\n * it or produced an unadjudicated result (`gaps`), and the honest ceiling — no\n * mechanism test (axis-compatibility is a proxy, not a mechanism test) and no\n * data confrontation. Annotation-only: it changes no verdict, score, or count.\n *\n * The ledger's job is to expose WEAKNESS so a PI knows how much weight a verdict\n * bears. A gate lands in `passed` ONLY if it ran a real comparison and the\n * candidate survived; anything untestable (an abstained gate) or unadjudicated\n * (a novel machine-derived consequence) is a `gap`, never a strength. There is\n * deliberately NO single \"tier\": magnitude (numeric) and axis (regime) are\n * orthogonal evidence and must not collapse into one rank a PI could misread as\n * credibility.\n *\n * @module composition/grounding\n */\nimport type { VettedCandidate } from './discovery.js';\nimport { hasMagnitudeEvidence } from './discovery.js';\nimport type { ConsequenceSignal } from './consequence.js';\n\n/** The epistemic-grounding ledger for one discovery candidate. @public */\nexport interface CandidateGrounding {\n /** Gates that ran a real comparison AND the candidate survived. */\n readonly passed: readonly string[];\n /** Gates that could NOT test the candidate, or produced an unadjudicated result. */\n readonly gaps: readonly string[];\n /**\n * Honest ceiling — no mechanism test has run. This is PERMANENT for a\n * dimensional discovery candidate, not a placeholder: axis-compatibility is a\n * regime PROXY, and `entailed` (the strongest available signal — the\n * consequence re-derives a known canonical law) is a structural-consequence\n * check, not a mechanism test. A dedicated mechanism-proxy gate was assessed\n * 2026-07-04 and found NOT buildable without fabricating coupling physics the\n * catalog does not have (Phase 2 grounding; see the PI-instrument Phase 2\n * not-build note). Real mechanism lives in the ESTABLISHED-bridge world\n * (`upt confront`), not in candidate space. The field stays for honesty (the\n * ceiling is never a silent omission) and for the constructive path: growing\n * the canonical registry so `entailed` stops abstaining.\n */\n readonly mechanismTested: false;\n /**\n * Honest ceiling — this candidate is not confronted with real data. This is\n * PERMANENT for a dimensional discovery candidate, not a placeholder: a\n * cross-cluster dimensional identification is a coincidence review surface\n * (0/8 ever adjudicated genuine) with no implied observable to measure. Data\n * confrontation lives in the ESTABLISHED-bridge world (`upt confront`), which\n * the evidence-spine work grows. The scientific loop is closed not by\n * confronting candidates but by the FIREWALL: a candidate must graduate to an\n * established bridge (human review + citation) before it can be data-tested.\n * A propose→confront loop over candidates was assessed 2026-07-04 (PI-instrument\n * Phase 3) and found to have no confrontable target — the honest boundary is\n * that candidates are unconfrontable until promoted. The field stays for\n * honesty and flips only for a candidate that is `entailed` into (or graduates\n * to) a data-confronted relation.\n */\n readonly dataTested: false;\n}\n\n/**\n * Derive the grounding ledger from a candidate's existing falsifier results.\n * `consequence` is the optional consequence-annotation signal (from\n * `annotateConsequences`); omit it when the consequence layer did not run.\n *\n * Designed for `promising` candidates (the ones a PI reviews), but honest for\n * any candidate: it never reports a gate as `passed` unless it actually ran and\n * the candidate survived it.\n *\n * @public\n */\nexport function describeGrounding(\n c: VettedCandidate,\n consequence?: ConsequenceSignal,\n): CandidateGrounding {\n const passed: string[] = [];\n const gaps: string[] = [];\n\n // Numerical-consistency: the retrodiction filter always runs. It is `passed`\n // only when the candidate is actually consistent (a contradictory candidate's\n // failure is its verdict, not a grounding line — this view is for survivors).\n if (c.numericallyConsistent) passed.push('numerical-consistency');\n\n // Magnitude gate: ran only when both endpoints had a representative value.\n // A clash is the gate FIRING: its failure is the magnitude-clash verdict, not a\n // grounding line (as for numerical consistency above), so it is neither passed\n // nor a gap. An anchor-invariant ratio is fixed by the graph at every anchor, so\n // its agreement is an identity, not a survived test (persona finding L3).\n if (c.verdict === 'magnitude-clash') {\n // the verdict states it\n } else if (c.magnitudeChecked && c.magnitudeAnchorInvariant === true) {\n gaps.push(\n 'magnitude (anchor-invariant: the graph fixes this ratio at every anchor, so the match is an identity, not evidence)',\n );\n } else if (c.magnitudeChecked) {\n const parts: string[] = [];\n if (c.ordersApart != null) parts.push(`${c.ordersApart.toFixed(1)} orders`);\n // A magnitude from the quantity's own equation is not anchor-derived: say which, and where from.\n if ((c.magnitudeDerived ?? []).length > 0) parts.push(`${c.magnitudeDerived!.join(', ')} from its own equation`);\n if (c.magnitudeUsedAnchor) parts.push('anchor-derived');\n passed.push(parts.length ? `magnitude (${parts.join(', ')})` : 'magnitude');\n } else {\n gaps.push('magnitude (no representative value)');\n }\n\n // Axis-compatibility: honestly PARTIAL — \"≥1 regime axis resolved and agreed\",\n // never \"fully axis-checked\". Cleared only when an axis was resolved AND none\n // clashed. (A clash is the axis-clash verdict, not a survivor's grounding.)\n if (c.axisChecked && c.axisClashes.length === 0) {\n passed.push('axis-compatible (≥1 regime axis)');\n } else if (!c.axisChecked) {\n gaps.push('axis (regime attributes unresolved)');\n }\n\n // Consequence: ONLY `entailed` clears (the consequence re-derives a known\n // canonical law — a real check against standard physics). `novel-consequence`\n // is an UNADJUDICATED machine-surfaced relation — a weakness to investigate,\n // not a passed test. `inconclusive` means the consequence layer could not test.\n if (consequence === 'entailed') passed.push('consequence: entailed');\n else if (consequence === 'novel-consequence') gaps.push('consequence: novel (unadjudicated)');\n else if (consequence === 'inconclusive') gaps.push('consequence: inconclusive');\n\n return { passed, gaps, mechanismTested: false, dataTested: false };\n}\n\n/** An independent falsifier: a gate that can reject an identification the anchored graph cannot. */\nexport type IndependentFalsifier = 'magnitude' | 'axis' | 'consequence';\n\n/**\n * How far one candidate is from being a testable claim, dimension by dimension.\n * Deliberately NOT a score: the dimensions are orthogonal and are never summed.\n * @internal\n */\nexport interface CandidateReadiness {\n /** Connectivity. It makes a candidate worth a look; it is never evidence. */\n readonly structure: { readonly mergesComponents: boolean; readonly unlocks: number };\n /** `same-kind`: the names share a kind token. `dimension-only`: nothing but the dimension is shared. */\n readonly kind: 'same-kind' | 'dimension-only';\n /**\n * Independent falsifiers that ran and the candidate survived, and those that\n * abstained. An abstention is a missing test, never a pass. Numerical\n * consistency is not listed: it runs from a single anchor and cannot reach\n * the quantities an identification unlocks.\n */\n readonly falsifiers: {\n readonly survived: readonly IndependentFalsifier[];\n readonly abstained: readonly IndependentFalsifier[];\n };\n readonly mechanismTested: false;\n readonly dataTested: false;\n /** What would make the identification testable, each item derived from why a gate abstained. */\n readonly needs: {\n /** The premise every literal identification a≡b rests on. */\n readonly premise: string;\n /** Endpoints that need a representative magnitude for the magnitude falsifier to run. */\n readonly magnitudeFor: readonly string[];\n /** Axes and endpoints that need a stated regime for the axis falsifier to run. */\n readonly regimeFor: readonly { readonly axis: string; readonly endpoints: readonly string[] }[];\n /** The consequence check could not re-derive a known law. */\n readonly derivableConsequence: boolean;\n };\n /** The independent observation that would test the premise. */\n readonly observation: string;\n}\n\n/**\n * Derive a candidate's readiness from its falsifier fields.\n * @internal\n */\nexport function describeReadiness(c: VettedCandidate, consequence?: ConsequenceSignal): CandidateReadiness {\n const survived: IndependentFalsifier[] = [];\n const abstained: IndependentFalsifier[] = [];\n // A magnitude clash is the falsifier firing: it neither survived nor abstained.\n if (c.verdict !== 'magnitude-clash') {\n if (hasMagnitudeEvidence(c)) survived.push('magnitude');\n else abstained.push('magnitude');\n }\n if (c.axisChecked && c.axisClashes.length === 0) survived.push('axis');\n else if (!c.axisChecked) abstained.push('axis');\n if (consequence === 'entailed') survived.push('consequence');\n else abstained.push('consequence');\n const kind = c.sameKind ? 'same-kind' : 'dimension-only';\n return {\n structure: { mergesComponents: c.mergesComponents, unlocks: c.unlocksFromAnchor.length },\n kind,\n falsifiers: { survived, abstained },\n mechanismTested: false,\n dataTested: false,\n needs: {\n premise:\n kind === 'same-kind'\n ? `${c.a} and ${c.b} are the same physical quantity, not two quantities of one kind`\n : `${c.a} and ${c.b} are the same physical quantity, not only both ${c.dim}`,\n magnitudeFor: c.magnitudeChecked ? [] : [...(c.magnitudeMissing ?? [])],\n regimeFor: c.axisChecked ? [] : (c.axisUnstated ?? []).map((u) => ({ axis: u.axis, endpoints: [...u.endpoints] })),\n derivableConsequence: consequence !== 'entailed',\n },\n observation:\n `measure ${c.a} and ${c.b} in one system that defines both: the identification predicts equal values ` +\n 'within uncertainty. If no system defines both, it has no observable content yet.',\n };\n}\n"]}
@@ -21,12 +21,28 @@
21
21
  * resulting nonlinear system has a unique numeric solution (undecidable
22
22
  * in general for closed-form evaluators). "Independent derivation" means
23
23
  * a structurally distinct edge, NOT a provably-independent formula — two
24
- * edges encoding the same relation are counted as two (an honest
25
- * over-count). The classifier PROPOSES; humans filter (Part-VI §XXVII-B),
26
- * exactly as `enumerateCompositions` does.
24
+ * edges encoding the same relation are counted as two by the forward
25
+ * count (an honest over-count, kept as `surplusConstraints`). The
26
+ * classifier PROPOSES; humans filter (Part-VI §XXVII-B), exactly as
27
+ * `enumerateCompositions` does.
28
+ *
29
+ * TWO INSTRUMENTS, TWO FIELDS. The forward closure fires an edge only when
30
+ * every source is known, so it never reads a law in reverse. The MONOMIAL
31
+ * edges (a `symbolic` product of powers, or a canonical equation with a
32
+ * stated monomial) are also a linear system in log space: `y = C Π xᵢ^aᵢ`
33
+ * is the row `log y − Σ aᵢ log xᵢ = log C`. Stacked with a unit row per
34
+ * known quantity, the exact null space (MathTS `rationalNullspace`) says
35
+ * which quantities are DETERMINED (their column is zero in every basis
36
+ * vector) whichever way the laws are read, and `distinct rows − rank` is
37
+ * the number of independent consistency checks, where a restated monomial
38
+ * is one row, not two. {@link identifiabilityByRank} is that instrument;
39
+ * {@link classifyIdentifiability} reports both, `determinable` being their
40
+ * union, and names every law the rank read in reverse, because a validity
41
+ * domain is stated on the sources and a caller may refuse the inversion.
27
42
  *
28
43
  * @module composition/identifiability
29
44
  */
45
+ import { Fraction } from '@danielsimonjr/mathts-core';
30
46
  import type { BridgeEdge } from './edge.js';
31
47
  import type { QuantityIdentification } from './compose.js';
32
48
  /** The four-way structural-identifiability verdict. @public */
@@ -42,6 +58,34 @@ export interface IdentifiabilityOptions {
42
58
  */
43
59
  readonly identifications?: readonly QuantityIdentification[];
44
60
  }
61
+ /**
62
+ * What the log-space rank says about one known set, over the monomial edges
63
+ * of the graph. See the module docs: this is the second instrument beside
64
+ * the forward closure, and its numbers are not the closure's.
65
+ *
66
+ * @public
67
+ */
68
+ export interface RankIdentifiability {
69
+ /** Every quantity whose column is zero in every null-space basis vector, sorted. */
70
+ readonly determined: readonly string[];
71
+ /** The quantities the rank determines that the forward closure does not, sorted. */
72
+ readonly determinedByRankOnly: readonly string[];
73
+ /**
74
+ * Independent consistency checks the system carries: distinct rows
75
+ * (a restated monomial is one row) minus the rank. Zero when every row
76
+ * is needed to determine what it determines.
77
+ */
78
+ readonly surplusChecks: number;
79
+ /**
80
+ * Ids of the monomial edges the rank read against their direction: a
81
+ * source of the edge is determined, and not by the forward closure over
82
+ * the monomial edges. A caller whose validity domain is stated on the
83
+ * sources may refuse these.
84
+ */
85
+ readonly usedInReverse: readonly string[];
86
+ /** Ids of the edges that contributed a row (a readable monomial, target not among its sources). */
87
+ readonly monomialEdges: readonly string[];
88
+ }
45
89
  /** The result of classifying one target against one known set. @public */
46
90
  export interface IdentifiabilityResult {
47
91
  /** The target quantity name that was classified. */
@@ -70,8 +114,14 @@ export interface IdentifiabilityResult {
70
114
  * moves the target toward determined. Empty when determinable.
71
115
  */
72
116
  readonly blockingFrontier: readonly string[];
73
- /** Every quantity determinable from the known set (the forward closure). */
117
+ /**
118
+ * Every quantity determinable from the known set: the forward closure
119
+ * united with what the log-space rank determines through the monomial
120
+ * edges (`rank.determined`), sorted.
121
+ */
74
122
  readonly determinable: readonly string[];
123
+ /** The rank instrument's own report for this known set. */
124
+ readonly rank: RankIdentifiability;
75
125
  }
76
126
  /**
77
127
  * The monotone forward closure: the least set ⊇ `knownNames` closed under
@@ -84,6 +134,43 @@ export interface IdentifiabilityResult {
84
134
  * @public
85
135
  */
86
136
  export declare function forwardClosure(edges: readonly BridgeEdge[], knownNames: readonly string[], identifications?: readonly QuantityIdentification[]): Set<string>;
137
+ /**
138
+ * The exact exponents of an edge's monomial over its SOURCE names, or
139
+ * undefined when it is not one. Internal: a `Fraction` is not a root type.
140
+ * @internal
141
+ */
142
+ export type EdgeMonomialReader = (edge: BridgeEdge) => ReadonlyMap<string, Fraction> | undefined;
143
+ /**
144
+ * The exact exponents of `edge`'s target over its source names, read from
145
+ * its `symbolic` form, or, for a canonical edge with no symbolic form, from
146
+ * the equation's stated monomial and `formulaFactors`. A leaf that is not a
147
+ * source (a constant, a literal, a held stub) is part of the prefactor and
148
+ * contributes no column. Undefined when the form is not a monomial, when an
149
+ * exponent is not a small rational, or when the target is among the sources.
150
+ *
151
+ * @internal
152
+ */
153
+ export declare function edgeMonomial(edge: BridgeEdge): ReadonlyMap<string, Fraction> | undefined;
154
+ /**
155
+ * {@link identifiabilityByRank} with the monomial reader chosen by the
156
+ * caller (the default is {@link edgeMonomial}). A custom reader's index and
157
+ * results are cached beside the default's, never in its place.
158
+ *
159
+ * @internal
160
+ */
161
+ export declare function identifiabilityByRankWith(edges: readonly BridgeEdge[], knownNames: readonly string[], reader: EdgeMonomialReader, opts?: IdentifiabilityOptions): RankIdentifiability;
162
+ /**
163
+ * The log-space rank: which quantities the monomial edges determine from
164
+ * `knownNames`, whichever direction each law is read, how many independent
165
+ * consistency checks the system carries, and which laws were read in
166
+ * reverse. Identifications stay directed, as in {@link forwardClosure}: a
167
+ * name they reach joins the known rows, and the system is solved again
168
+ * until nothing new is determined. Non-monomial edges contribute nothing
169
+ * here; the forward closure is their instrument.
170
+ *
171
+ * @public
172
+ */
173
+ export declare function identifiabilityByRank(edges: readonly BridgeEdge[], knownNames: readonly string[], opts?: IdentifiabilityOptions): RankIdentifiability;
87
174
  /**
88
175
  * Classify the structural identifiability of `targetName` given
89
176
  * `knownNames` over `edges`. See the module docs and
@@ -1 +1 @@
1
- {"version":3,"file":"identifiability.d.ts","sourceRoot":"","sources":["../../src/composition/identifiability.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAG3D,+DAA+D;AAC/D,MAAM,MAAM,sBAAsB,GAC9B,OAAO,GACP,kBAAkB,GAClB,oBAAoB,GACpB,iBAAiB,CAAC;AAEtB,0CAA0C;AAC1C,MAAM,WAAW,sBAAsB;IACrC;;;;;;OAMG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,sBAAsB,EAAE,CAAC;CAC9D;AAED,0EAA0E;AAC1E,MAAM,WAAW,qBAAqB;IACpC,oDAAoD;IACpD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,+CAA+C;IAC/C,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAC;IACzC;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC;;;;;OAKG;IACH,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC;;;;;OAKG;IACH,QAAQ,CAAC,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C,4EAA4E;IAC5E,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1C;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,SAAS,UAAU,EAAE,EAC5B,UAAU,EAAE,SAAS,MAAM,EAAE,EAC7B,eAAe,GAAE,SAAS,sBAAsB,EAA6B,GAC5E,GAAG,CAAC,MAAM,CAAC,CAoBb;AAyBD;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,SAAS,UAAU,EAAE,EAC5B,UAAU,EAAE,SAAS,MAAM,EAAE,EAC7B,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE,sBAA2B,GAChC,qBAAqB,CAyDvB;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,SAAS,UAAU,EAAE,EAC5B,UAAU,EAAE,SAAS,MAAM,EAAE,EAC7B,IAAI,GAAE,sBAA2B,GAChC,qBAAqB,EAAE,CAKzB"}
1
+ {"version":3,"file":"identifiability.d.ts","sourceRoot":"","sources":["../../src/composition/identifiability.ts"],"names":[],"mappings":"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"}