universal-physics-tensor 8.0.0 → 10.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 (916) hide show
  1. package/README.md +26 -21
  2. package/data/atlas/atlas.json +75 -64
  3. package/data/atlas/atlas.jsonld +1 -1
  4. package/data/atlas/diffusion.json +23 -22
  5. package/data/atlas/oscillators.json +21 -16
  6. package/data/atlas/waves.json +33 -28
  7. package/data/bridge-catalog.json +1356 -1791
  8. package/data/bridge-catalog.schema.json +789 -46
  9. package/data/quantities.json +280 -234
  10. package/data/quantities.schema.json +52 -0
  11. package/data/schemas/atlas-record.v0.json +184 -46
  12. package/data/units.json +1178 -0
  13. package/data/units.schema.json +124 -0
  14. package/dist/atlas/applicability.d.ts.map +1 -1
  15. package/dist/atlas/applicability.js +14 -3
  16. package/dist/atlas/applicability.js.map +1 -1
  17. package/dist/atlas/association.d.ts +1 -1
  18. package/dist/atlas/association.js.map +1 -1
  19. package/dist/atlas/benchmark/backend-shapes.d.ts.map +1 -1
  20. package/dist/atlas/benchmark/backend-shapes.js +5 -1
  21. package/dist/atlas/benchmark/backend-shapes.js.map +1 -1
  22. package/dist/atlas/benchmark/baselines.d.ts.map +1 -1
  23. package/dist/atlas/benchmark/baselines.js +8 -0
  24. package/dist/atlas/benchmark/baselines.js.map +1 -1
  25. package/dist/atlas/benchmark/hybrid-retrieval.d.ts +3 -2
  26. package/dist/atlas/benchmark/hybrid-retrieval.d.ts.map +1 -1
  27. package/dist/atlas/benchmark/hybrid-retrieval.js +16 -12
  28. package/dist/atlas/benchmark/hybrid-retrieval.js.map +1 -1
  29. package/dist/atlas/benchmark/leakage.js.map +1 -1
  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 +1 -1
  35. package/dist/atlas/benchmark/stats.d.ts.map +1 -1
  36. package/dist/atlas/benchmark/stats.js +1 -1
  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.js.map +1 -1
  45. package/dist/atlas/chain-pipeline.d.ts +0 -11
  46. package/dist/atlas/chain-pipeline.d.ts.map +1 -1
  47. package/dist/atlas/chain-pipeline.js +5 -16
  48. package/dist/atlas/chain-pipeline.js.map +1 -1
  49. package/dist/atlas/composition-table.js.map +1 -1
  50. package/dist/atlas/conventions.js.map +1 -1
  51. package/dist/atlas/coverage.d.ts +2 -2
  52. package/dist/atlas/coverage.js.map +1 -1
  53. package/dist/atlas/derivation.js.map +1 -1
  54. package/dist/atlas/derive-evidence.d.ts +6 -4
  55. package/dist/atlas/derive-evidence.d.ts.map +1 -1
  56. package/dist/atlas/derive-evidence.js +7 -2
  57. package/dist/atlas/derive-evidence.js.map +1 -1
  58. package/dist/atlas/diffusion/bridges-closure.d.ts.map +1 -1
  59. package/dist/atlas/diffusion/bridges-closure.js +0 -5
  60. package/dist/atlas/diffusion/bridges-closure.js.map +1 -1
  61. package/dist/atlas/diffusion/bridges.d.ts.map +1 -1
  62. package/dist/atlas/diffusion/bridges.js +0 -3
  63. package/dist/atlas/diffusion/bridges.js.map +1 -1
  64. package/dist/atlas/diffusion/dimensions.js.map +1 -1
  65. package/dist/atlas/diffusion/index.d.ts +1 -1
  66. package/dist/atlas/diffusion/index.d.ts.map +1 -1
  67. package/dist/atlas/diffusion/index.js.map +1 -1
  68. package/dist/atlas/diffusion/models.js.map +1 -1
  69. package/dist/atlas/diffusion/numerics.js.map +1 -1
  70. package/dist/atlas/error-algebra.d.ts +6 -0
  71. package/dist/atlas/error-algebra.d.ts.map +1 -1
  72. package/dist/atlas/error-algebra.js +26 -0
  73. package/dist/atlas/error-algebra.js.map +1 -1
  74. package/dist/atlas/export.d.ts +18 -2
  75. package/dist/atlas/export.d.ts.map +1 -1
  76. package/dist/atlas/export.js +9 -3
  77. package/dist/atlas/export.js.map +1 -1
  78. package/dist/atlas/families.d.ts +19 -2
  79. package/dist/atlas/families.d.ts.map +1 -1
  80. package/dist/atlas/families.js +26 -3
  81. package/dist/atlas/families.js.map +1 -1
  82. package/dist/atlas/family.d.ts +27 -0
  83. package/dist/atlas/family.d.ts.map +1 -0
  84. package/dist/atlas/family.js +12 -0
  85. package/dist/atlas/family.js.map +1 -0
  86. package/dist/atlas/index.d.ts +3 -2
  87. package/dist/atlas/index.d.ts.map +1 -1
  88. package/dist/atlas/index.js +2 -1
  89. package/dist/atlas/index.js.map +1 -1
  90. package/dist/atlas/link-prediction.d.ts +1 -1
  91. package/dist/atlas/link-prediction.d.ts.map +1 -1
  92. package/dist/atlas/link-prediction.js.map +1 -1
  93. package/dist/atlas/model.js.map +1 -1
  94. package/dist/atlas/oscillators/bridges-coarse.d.ts.map +1 -1
  95. package/dist/atlas/oscillators/bridges-coarse.js +0 -1
  96. package/dist/atlas/oscillators/bridges-coarse.js.map +1 -1
  97. package/dist/atlas/oscillators/bridges-exact.d.ts.map +1 -1
  98. package/dist/atlas/oscillators/bridges-exact.js +0 -3
  99. package/dist/atlas/oscillators/bridges-exact.js.map +1 -1
  100. package/dist/atlas/oscillators/bridges-limits.d.ts.map +1 -1
  101. package/dist/atlas/oscillators/bridges-limits.js +0 -2
  102. package/dist/atlas/oscillators/bridges-limits.js.map +1 -1
  103. package/dist/atlas/oscillators/dimensions.js.map +1 -1
  104. package/dist/atlas/oscillators/index.d.ts +1 -16
  105. package/dist/atlas/oscillators/index.d.ts.map +1 -1
  106. package/dist/atlas/oscillators/index.js.map +1 -1
  107. package/dist/atlas/oscillators/limit-witnesses.js.map +1 -1
  108. package/dist/atlas/oscillators/models.js.map +1 -1
  109. package/dist/atlas/oscillators/norm-transport-witness.js.map +1 -1
  110. package/dist/atlas/oscillators/norm-transport.js.map +1 -1
  111. package/dist/atlas/oscillators/norms.js.map +1 -1
  112. package/dist/atlas/oscillators/pendulum-motion.js.map +1 -1
  113. package/dist/atlas/oscillators/phase-carriage.js.map +1 -1
  114. package/dist/atlas/oscillators/phase-translation.js.map +1 -1
  115. package/dist/atlas/oscillators/position-translation.js.map +1 -1
  116. package/dist/atlas/oscillators/rejections.js.map +1 -1
  117. package/dist/atlas/path-bound.js.map +1 -1
  118. package/dist/atlas/physjs-entries.generated.d.ts +1601 -220
  119. package/dist/atlas/physjs-entries.generated.d.ts.map +1 -1
  120. package/dist/atlas/physjs-entries.generated.js +1854 -345
  121. package/dist/atlas/physjs-entries.generated.js.map +1 -1
  122. package/dist/atlas/physjs-ref.d.ts +151 -117
  123. package/dist/atlas/physjs-ref.d.ts.map +1 -1
  124. package/dist/atlas/physjs-ref.js +244 -211
  125. package/dist/atlas/physjs-ref.js.map +1 -1
  126. package/dist/atlas/physjs-reviewed.d.ts +31 -0
  127. package/dist/atlas/physjs-reviewed.d.ts.map +1 -0
  128. package/dist/atlas/physjs-reviewed.js +194 -0
  129. package/dist/atlas/physjs-reviewed.js.map +1 -0
  130. package/dist/atlas/poster/associations.js.map +1 -1
  131. package/dist/atlas/poster/derivations.js.map +1 -1
  132. package/dist/atlas/poster/statements.js.map +1 -1
  133. package/dist/atlas/proof-target.d.ts +16 -8
  134. package/dist/atlas/proof-target.d.ts.map +1 -1
  135. package/dist/atlas/proof-target.js +34 -31
  136. package/dist/atlas/proof-target.js.map +1 -1
  137. package/dist/atlas/public.d.ts +2 -1
  138. package/dist/atlas/public.d.ts.map +1 -1
  139. package/dist/atlas/public.js +2 -1
  140. package/dist/atlas/public.js.map +1 -1
  141. package/dist/atlas/regime.js.map +1 -1
  142. package/dist/atlas/serialize.d.ts +18 -12
  143. package/dist/atlas/serialize.d.ts.map +1 -1
  144. package/dist/atlas/serialize.js +28 -18
  145. package/dist/atlas/serialize.js.map +1 -1
  146. package/dist/atlas/statement.js.map +1 -1
  147. package/dist/atlas/translation-registry.js.map +1 -1
  148. package/dist/atlas/translation.js.map +1 -1
  149. package/dist/atlas/types.d.ts +9 -2
  150. package/dist/atlas/types.d.ts.map +1 -1
  151. package/dist/atlas/types.js +1 -1
  152. package/dist/atlas/types.js.map +1 -1
  153. package/dist/atlas/waves/bridges-closure.d.ts.map +1 -1
  154. package/dist/atlas/waves/bridges-closure.js +0 -3
  155. package/dist/atlas/waves/bridges-closure.js.map +1 -1
  156. package/dist/atlas/waves/bridges.d.ts.map +1 -1
  157. package/dist/atlas/waves/bridges.js +0 -4
  158. package/dist/atlas/waves/bridges.js.map +1 -1
  159. package/dist/atlas/waves/index.d.ts +1 -1
  160. package/dist/atlas/waves/index.d.ts.map +1 -1
  161. package/dist/atlas/waves/index.js.map +1 -1
  162. package/dist/atlas/waves/models.js.map +1 -1
  163. package/dist/atlas/waves/numerics.js.map +1 -1
  164. package/dist/atlas/witness-artifact.js.map +1 -1
  165. package/dist/atlas/witness-dominance.d.ts +4 -3
  166. package/dist/atlas/witness-dominance.d.ts.map +1 -1
  167. package/dist/atlas/witness-dominance.js +15 -5
  168. package/dist/atlas/witness-dominance.js.map +1 -1
  169. package/dist/atlas/witness-numeric.d.ts +8 -4
  170. package/dist/atlas/witness-numeric.d.ts.map +1 -1
  171. package/dist/atlas/witness-numeric.js +27 -2
  172. package/dist/atlas/witness-numeric.js.map +1 -1
  173. package/dist/atlas/witness-result.d.ts +7 -1
  174. package/dist/atlas/witness-result.d.ts.map +1 -1
  175. package/dist/atlas/witness-result.js.map +1 -1
  176. package/dist/atlas/witness-specs.js.map +1 -1
  177. package/dist/atlas/witness-symbolic.js.map +1 -1
  178. package/dist/atlas/witnesses/quantum-support.js.map +1 -1
  179. package/dist/bridges/caller-table.d.ts +1 -1
  180. package/dist/bridges/caller-table.d.ts.map +1 -1
  181. package/dist/bridges/caller-table.js.map +1 -1
  182. package/dist/bridges/carrier-sign.d.ts.map +1 -1
  183. package/dist/bridges/carrier-sign.js +8 -3
  184. package/dist/bridges/carrier-sign.js.map +1 -1
  185. package/dist/bridges/catalog-adapter.d.ts +12 -3
  186. package/dist/bridges/catalog-adapter.d.ts.map +1 -1
  187. package/dist/bridges/catalog-adapter.js +22 -14
  188. package/dist/bridges/catalog-adapter.js.map +1 -1
  189. package/dist/bridges/catalog-load.d.ts +19 -2
  190. package/dist/bridges/catalog-load.d.ts.map +1 -1
  191. package/dist/bridges/catalog-load.js +233 -14
  192. package/dist/bridges/catalog-load.js.map +1 -1
  193. package/dist/bridges/catalog-types.d.ts +96 -27
  194. package/dist/bridges/catalog-types.d.ts.map +1 -1
  195. package/dist/bridges/catalog-types.js.map +1 -1
  196. package/dist/bridges/coefficient-statement.js +1 -5
  197. package/dist/bridges/coefficient-statement.js.map +1 -1
  198. package/dist/bridges/confrontation-coverage.js.map +1 -1
  199. package/dist/bridges/confrontations.d.ts +1 -1
  200. package/dist/bridges/confrontations.d.ts.map +1 -1
  201. package/dist/bridges/confrontations.js +1 -1
  202. package/dist/bridges/confrontations.js.map +1 -1
  203. package/dist/bridges/evaluation-errors.d.ts +89 -0
  204. package/dist/bridges/evaluation-errors.d.ts.map +1 -0
  205. package/dist/bridges/evaluation-errors.js +136 -0
  206. package/dist/bridges/evaluation-errors.js.map +1 -0
  207. package/dist/bridges/evaluator-inputs.d.ts +5 -3
  208. package/dist/bridges/evaluator-inputs.d.ts.map +1 -1
  209. package/dist/bridges/evaluator-inputs.js +24 -24
  210. package/dist/bridges/evaluator-inputs.js.map +1 -1
  211. package/dist/bridges/evaluators.d.ts +48 -8
  212. package/dist/bridges/evaluators.d.ts.map +1 -1
  213. package/dist/bridges/evaluators.js +173 -38
  214. package/dist/bridges/evaluators.js.map +1 -1
  215. package/dist/bridges/expr-parse.d.ts +38 -7
  216. package/dist/bridges/expr-parse.d.ts.map +1 -1
  217. package/dist/bridges/expr-parse.js +129 -156
  218. package/dist/bridges/expr-parse.js.map +1 -1
  219. package/dist/bridges/holds.d.ts +16 -8
  220. package/dist/bridges/holds.d.ts.map +1 -1
  221. package/dist/bridges/holds.js +130 -236
  222. package/dist/bridges/holds.js.map +1 -1
  223. package/dist/bridges/index.d.ts +15 -14
  224. package/dist/bridges/index.d.ts.map +1 -1
  225. package/dist/bridges/index.js +14 -15
  226. package/dist/bridges/index.js.map +1 -1
  227. package/dist/bridges/input-contract.d.ts +65 -0
  228. package/dist/bridges/input-contract.d.ts.map +1 -0
  229. package/dist/bridges/input-contract.js +97 -0
  230. package/dist/bridges/input-contract.js.map +1 -0
  231. package/dist/bridges/membership.d.ts +5 -3
  232. package/dist/bridges/membership.d.ts.map +1 -1
  233. package/dist/bridges/membership.js +5 -6
  234. package/dist/bridges/membership.js.map +1 -1
  235. package/dist/bridges/notices.d.ts +11 -0
  236. package/dist/bridges/notices.d.ts.map +1 -0
  237. package/dist/bridges/notices.js +22 -0
  238. package/dist/bridges/notices.js.map +1 -0
  239. package/dist/bridges/observations/types.js.map +1 -1
  240. package/dist/bridges/rejected.d.ts +11 -17
  241. package/dist/bridges/rejected.d.ts.map +1 -1
  242. package/dist/bridges/rejected.js +13 -68
  243. package/dist/bridges/rejected.js.map +1 -1
  244. package/dist/bridges/relation-eval.d.ts +5 -6
  245. package/dist/bridges/relation-eval.d.ts.map +1 -1
  246. package/dist/bridges/relation-eval.js +9 -38
  247. package/dist/bridges/relation-eval.js.map +1 -1
  248. package/dist/bridges/rhs-registry.js.map +1 -1
  249. package/dist/bridges/sensitivity.d.ts +11 -3
  250. package/dist/bridges/sensitivity.d.ts.map +1 -1
  251. package/dist/bridges/sensitivity.js +24 -10
  252. package/dist/bridges/sensitivity.js.map +1 -1
  253. package/dist/bridges/tensor-index.js.map +1 -1
  254. package/dist/bridges/types.d.ts +1 -7
  255. package/dist/bridges/types.d.ts.map +1 -1
  256. package/dist/bridges/types.js +1 -4
  257. package/dist/bridges/types.js.map +1 -1
  258. package/dist/canonical/canonical-equation.d.ts +31 -0
  259. package/dist/canonical/canonical-equation.d.ts.map +1 -1
  260. package/dist/canonical/canonical-equation.js.map +1 -1
  261. package/dist/canonical/dimensional-fields.js.map +1 -1
  262. package/dist/canonical/entries/_l1-build.js.map +1 -1
  263. package/dist/canonical/entries/atomic.d.ts.map +1 -1
  264. package/dist/canonical/entries/atomic.js +11 -1
  265. package/dist/canonical/entries/atomic.js.map +1 -1
  266. package/dist/canonical/entries/condensed-matter.d.ts.map +1 -1
  267. package/dist/canonical/entries/condensed-matter.js +7 -4
  268. package/dist/canonical/entries/condensed-matter.js.map +1 -1
  269. package/dist/canonical/entries/dimensional-classics.d.ts.map +1 -1
  270. package/dist/canonical/entries/dimensional-classics.js +50 -2
  271. package/dist/canonical/entries/dimensional-classics.js.map +1 -1
  272. package/dist/canonical/entries/electromagnetism.d.ts.map +1 -1
  273. package/dist/canonical/entries/electromagnetism.js +32 -2
  274. package/dist/canonical/entries/electromagnetism.js.map +1 -1
  275. package/dist/canonical/entries/fluids-waves.d.ts.map +1 -1
  276. package/dist/canonical/entries/fluids-waves.js +34 -0
  277. package/dist/canonical/entries/fluids-waves.js.map +1 -1
  278. package/dist/canonical/entries/mechanics.d.ts.map +1 -1
  279. package/dist/canonical/entries/mechanics.js +24 -0
  280. package/dist/canonical/entries/mechanics.js.map +1 -1
  281. package/dist/canonical/entries/nonmonomial.d.ts.map +1 -1
  282. package/dist/canonical/entries/nonmonomial.js +42 -24
  283. package/dist/canonical/entries/nonmonomial.js.map +1 -1
  284. package/dist/canonical/entries/relativity.d.ts.map +1 -1
  285. package/dist/canonical/entries/relativity.js +6 -0
  286. package/dist/canonical/entries/relativity.js.map +1 -1
  287. package/dist/canonical/entries/statistical-mechanics.d.ts.map +1 -1
  288. package/dist/canonical/entries/statistical-mechanics.js +24 -5
  289. package/dist/canonical/entries/statistical-mechanics.js.map +1 -1
  290. package/dist/canonical/entries/thermo-nuclear-cosmo.d.ts.map +1 -1
  291. package/dist/canonical/entries/thermo-nuclear-cosmo.js +15 -0
  292. package/dist/canonical/entries/thermo-nuclear-cosmo.js.map +1 -1
  293. package/dist/canonical/linkage.d.ts +29 -4
  294. package/dist/canonical/linkage.d.ts.map +1 -1
  295. package/dist/canonical/linkage.js +31 -29
  296. package/dist/canonical/linkage.js.map +1 -1
  297. package/dist/canonical/normal-form.d.ts +0 -8
  298. package/dist/canonical/normal-form.d.ts.map +1 -1
  299. package/dist/canonical/normal-form.js +17 -12
  300. package/dist/canonical/normal-form.js.map +1 -1
  301. package/dist/canonical/registry.js.map +1 -1
  302. package/dist/canonical/residual.js.map +1 -1
  303. package/dist/canonical/seed-l-layer.d.ts +7 -1
  304. package/dist/canonical/seed-l-layer.d.ts.map +1 -1
  305. package/dist/canonical/seed-l-layer.js +7 -1
  306. package/dist/canonical/seed-l-layer.js.map +1 -1
  307. package/dist/canonical/structural.d.ts +21 -0
  308. package/dist/canonical/structural.d.ts.map +1 -1
  309. package/dist/canonical/structural.js +24 -4
  310. package/dist/canonical/structural.js.map +1 -1
  311. package/dist/cases/brownian-sphere.js +4 -4
  312. package/dist/cases/brownian-sphere.js.map +1 -1
  313. package/dist/cases/damped-resonator.js +2 -2
  314. package/dist/cases/damped-resonator.js.map +1 -1
  315. package/dist/cases/index.d.ts +9 -2
  316. package/dist/cases/index.d.ts.map +1 -1
  317. package/dist/cases/index.js +26 -7
  318. package/dist/cases/index.js.map +1 -1
  319. package/dist/cases/kepler-rv.js +6 -6
  320. package/dist/cases/kepler-rv.js.map +1 -1
  321. package/dist/cases/lumped-cooling.js +1 -1
  322. package/dist/cases/lumped-cooling.js.map +1 -1
  323. package/dist/cases/quadrature.js.map +1 -1
  324. package/dist/cases/resistor-noise.js +3 -3
  325. package/dist/cases/resistor-noise.js.map +1 -1
  326. package/dist/cases/skin-depth.js.map +1 -1
  327. package/dist/cases/types.js.map +1 -1
  328. package/dist/cli/args.d.ts +7 -2
  329. package/dist/cli/args.d.ts.map +1 -1
  330. package/dist/cli/args.js +18 -2
  331. package/dist/cli/args.js.map +1 -1
  332. package/dist/cli/bindings.d.ts +13 -0
  333. package/dist/cli/bindings.d.ts.map +1 -0
  334. package/dist/cli/bindings.js +32 -0
  335. package/dist/cli/bindings.js.map +1 -0
  336. package/dist/cli/closed-form-range.js.map +1 -1
  337. package/dist/cli/command.js.map +1 -1
  338. package/dist/cli/commands/_atlas-map.d.ts +3 -3
  339. package/dist/cli/commands/_atlas-map.d.ts.map +1 -1
  340. package/dist/cli/commands/_atlas-map.js +43 -18
  341. package/dist/cli/commands/_atlas-map.js.map +1 -1
  342. package/dist/cli/commands/_atlas-route.js.map +1 -1
  343. package/dist/cli/commands/_discovery-opts.d.ts +2 -1
  344. package/dist/cli/commands/_discovery-opts.d.ts.map +1 -1
  345. package/dist/cli/commands/_discovery-opts.js +48 -18
  346. package/dist/cli/commands/_discovery-opts.js.map +1 -1
  347. package/dist/cli/commands/atlas.d.ts.map +1 -1
  348. package/dist/cli/commands/atlas.js +7 -12
  349. package/dist/cli/commands/atlas.js.map +1 -1
  350. package/dist/cli/commands/audit.d.ts.map +1 -1
  351. package/dist/cli/commands/audit.js +13 -21
  352. package/dist/cli/commands/audit.js.map +1 -1
  353. package/dist/cli/commands/axes.js.map +1 -1
  354. package/dist/cli/commands/candidates.d.ts.map +1 -1
  355. package/dist/cli/commands/candidates.js +16 -8
  356. package/dist/cli/commands/candidates.js.map +1 -1
  357. package/dist/cli/commands/canonical.js.map +1 -1
  358. package/dist/cli/commands/chain.js +1 -1
  359. package/dist/cli/commands/chain.js.map +1 -1
  360. package/dist/cli/commands/confront.d.ts.map +1 -1
  361. package/dist/cli/commands/confront.js +22 -14
  362. package/dist/cli/commands/confront.js.map +1 -1
  363. package/dist/cli/commands/connectors.d.ts.map +1 -1
  364. package/dist/cli/commands/connectors.js +8 -9
  365. package/dist/cli/commands/connectors.js.map +1 -1
  366. package/dist/cli/commands/coverage.js.map +1 -1
  367. package/dist/cli/commands/derive.d.ts.map +1 -1
  368. package/dist/cli/commands/derive.js +50 -26
  369. package/dist/cli/commands/derive.js.map +1 -1
  370. package/dist/cli/commands/discover.d.ts.map +1 -1
  371. package/dist/cli/commands/discover.js +18 -13
  372. package/dist/cli/commands/discover.js.map +1 -1
  373. package/dist/cli/commands/eval.d.ts.map +1 -1
  374. package/dist/cli/commands/eval.js +29 -26
  375. package/dist/cli/commands/eval.js.map +1 -1
  376. package/dist/cli/commands/evaluate.d.ts +1 -35
  377. package/dist/cli/commands/evaluate.d.ts.map +1 -1
  378. package/dist/cli/commands/evaluate.js +99 -208
  379. package/dist/cli/commands/evaluate.js.map +1 -1
  380. package/dist/cli/commands/explain.d.ts.map +1 -1
  381. package/dist/cli/commands/explain.js +57 -45
  382. package/dist/cli/commands/explain.js.map +1 -1
  383. package/dist/cli/commands/frontier.js.map +1 -1
  384. package/dist/cli/commands/ground.d.ts.map +1 -1
  385. package/dist/cli/commands/ground.js +41 -11
  386. package/dist/cli/commands/ground.js.map +1 -1
  387. package/dist/cli/commands/index.js.map +1 -1
  388. package/dist/cli/commands/map.d.ts.map +1 -1
  389. package/dist/cli/commands/map.js +84 -92
  390. package/dist/cli/commands/map.js.map +1 -1
  391. package/dist/cli/commands/metric.d.ts.map +1 -1
  392. package/dist/cli/commands/metric.js +53 -15
  393. package/dist/cli/commands/metric.js.map +1 -1
  394. package/dist/cli/commands/path.js +4 -4
  395. package/dist/cli/commands/path.js.map +1 -1
  396. package/dist/cli/commands/predict.js.map +1 -1
  397. package/dist/cli/commands/priority.js.map +1 -1
  398. package/dist/cli/commands/probe.d.ts.map +1 -1
  399. package/dist/cli/commands/probe.js +50 -26
  400. package/dist/cli/commands/probe.js.map +1 -1
  401. package/dist/cli/commands/recover.js +1 -1
  402. package/dist/cli/commands/recover.js.map +1 -1
  403. package/dist/cli/commands/regime.d.ts +5 -4
  404. package/dist/cli/commands/regime.d.ts.map +1 -1
  405. package/dist/cli/commands/regime.js +25 -27
  406. package/dist/cli/commands/regime.js.map +1 -1
  407. package/dist/cli/commands/retrieve.d.ts.map +1 -1
  408. package/dist/cli/commands/retrieve.js +22 -14
  409. package/dist/cli/commands/retrieve.js.map +1 -1
  410. package/dist/cli/commands/search.d.ts.map +1 -1
  411. package/dist/cli/commands/search.js +8 -4
  412. package/dist/cli/commands/search.js.map +1 -1
  413. package/dist/cli/commands/symbolic.d.ts.map +1 -1
  414. package/dist/cli/commands/symbolic.js +14 -7
  415. package/dist/cli/commands/symbolic.js.map +1 -1
  416. package/dist/cli/commands/testplan.js +4 -4
  417. package/dist/cli/commands/testplan.js.map +1 -1
  418. package/dist/cli/conventions.d.ts +6 -7
  419. package/dist/cli/conventions.d.ts.map +1 -1
  420. package/dist/cli/conventions.js +19 -28
  421. package/dist/cli/conventions.js.map +1 -1
  422. package/dist/cli/determination.js.map +1 -1
  423. package/dist/cli/errors.js.map +1 -1
  424. package/dist/cli/euler-guard.d.ts +13 -2
  425. package/dist/cli/euler-guard.d.ts.map +1 -1
  426. package/dist/cli/euler-guard.js +17 -3
  427. package/dist/cli/euler-guard.js.map +1 -1
  428. package/dist/cli/eval-numbers.d.ts +4 -9
  429. package/dist/cli/eval-numbers.d.ts.map +1 -1
  430. package/dist/cli/eval-numbers.js +11 -41
  431. package/dist/cli/eval-numbers.js.map +1 -1
  432. package/dist/cli/expr-print.d.ts +29 -2
  433. package/dist/cli/expr-print.d.ts.map +1 -1
  434. package/dist/cli/expr-print.js +46 -2
  435. package/dist/cli/expr-print.js.map +1 -1
  436. package/dist/cli/flag-help.js.map +1 -1
  437. package/dist/cli/graphs.js.map +1 -1
  438. package/dist/cli/library-defaults.d.ts +19 -0
  439. package/dist/cli/library-defaults.d.ts.map +1 -0
  440. package/dist/cli/library-defaults.js +22 -0
  441. package/dist/cli/library-defaults.js.map +1 -0
  442. package/dist/cli/main.js +7 -3
  443. package/dist/cli/main.js.map +1 -1
  444. package/dist/cli/map-evidence.js.map +1 -1
  445. package/dist/cli/output.d.ts +3 -6
  446. package/dist/cli/output.d.ts.map +1 -1
  447. package/dist/cli/output.js.map +1 -1
  448. package/dist/cli/published-url.d.ts +2 -0
  449. package/dist/cli/published-url.d.ts.map +1 -1
  450. package/dist/cli/published-url.js +5 -0
  451. package/dist/cli/published-url.js.map +1 -1
  452. package/dist/cli/record-reach.d.ts +6 -0
  453. package/dist/cli/record-reach.d.ts.map +1 -1
  454. package/dist/cli/record-reach.js +16 -10
  455. package/dist/cli/record-reach.js.map +1 -1
  456. package/dist/cli/record-tables.d.ts +2 -1
  457. package/dist/cli/record-tables.d.ts.map +1 -1
  458. package/dist/cli/record-tables.js +8 -3
  459. package/dist/cli/record-tables.js.map +1 -1
  460. package/dist/cli/record.d.ts.map +1 -1
  461. package/dist/cli/record.js +31 -12
  462. package/dist/cli/record.js.map +1 -1
  463. package/dist/cli/search-index.d.ts +5 -0
  464. package/dist/cli/search-index.d.ts.map +1 -1
  465. package/dist/cli/search-index.js +12 -1
  466. package/dist/cli/search-index.js.map +1 -1
  467. package/dist/cli/statuses.js.map +1 -1
  468. package/dist/cli/top-level-help.js.map +1 -1
  469. package/dist/cli/version.js.map +1 -1
  470. package/dist/cli-api.d.ts +57 -18
  471. package/dist/cli-api.d.ts.map +1 -1
  472. package/dist/cli-api.js +49 -21
  473. package/dist/cli-api.js.map +1 -1
  474. package/dist/composition/adjudication.d.ts +8 -30
  475. package/dist/composition/adjudication.d.ts.map +1 -1
  476. package/dist/composition/adjudication.js +15 -67
  477. package/dist/composition/adjudication.js.map +1 -1
  478. package/dist/composition/aliases.d.ts +1 -1
  479. package/dist/composition/aliases.d.ts.map +1 -1
  480. package/dist/composition/aliases.js +10 -20
  481. package/dist/composition/aliases.js.map +1 -1
  482. package/dist/composition/audit-coverage.d.ts +2 -0
  483. package/dist/composition/audit-coverage.d.ts.map +1 -1
  484. package/dist/composition/audit-coverage.js.map +1 -1
  485. package/dist/composition/axes.d.ts +12 -0
  486. package/dist/composition/axes.d.ts.map +1 -1
  487. package/dist/composition/axes.js +18 -6
  488. package/dist/composition/axes.js.map +1 -1
  489. package/dist/composition/axis-audit.js.map +1 -1
  490. package/dist/composition/bridge-analysis.d.ts +0 -14
  491. package/dist/composition/bridge-analysis.d.ts.map +1 -1
  492. package/dist/composition/bridge-analysis.js +66 -57
  493. package/dist/composition/bridge-analysis.js.map +1 -1
  494. package/dist/composition/bridge-prediction.d.ts +5 -1
  495. package/dist/composition/bridge-prediction.d.ts.map +1 -1
  496. package/dist/composition/bridge-prediction.js +12 -16
  497. package/dist/composition/bridge-prediction.js.map +1 -1
  498. package/dist/composition/buckingham-filter.js.map +1 -1
  499. package/dist/composition/canonical-compare.d.ts.map +1 -1
  500. package/dist/composition/canonical-compare.js +12 -2
  501. package/dist/composition/canonical-compare.js.map +1 -1
  502. package/dist/composition/canonical-graph.d.ts +15 -18
  503. package/dist/composition/canonical-graph.d.ts.map +1 -1
  504. package/dist/composition/canonical-graph.js +59 -85
  505. package/dist/composition/canonical-graph.js.map +1 -1
  506. package/dist/composition/canonical-json.js.map +1 -1
  507. package/dist/composition/canonical-prefactors.d.ts +10 -29
  508. package/dist/composition/canonical-prefactors.d.ts.map +1 -1
  509. package/dist/composition/canonical-prefactors.js +15 -202
  510. package/dist/composition/canonical-prefactors.js.map +1 -1
  511. package/dist/composition/catalog-graph.d.ts.map +1 -1
  512. package/dist/composition/catalog-graph.js +6 -20
  513. package/dist/composition/catalog-graph.js.map +1 -1
  514. package/dist/composition/chain-candidate.d.ts +2 -0
  515. package/dist/composition/chain-candidate.d.ts.map +1 -1
  516. package/dist/composition/chain-candidate.js +2 -0
  517. package/dist/composition/chain-candidate.js.map +1 -1
  518. package/dist/composition/chain-match.js.map +1 -1
  519. package/dist/composition/chain-regime.js.map +1 -1
  520. package/dist/composition/chain-result.js.map +1 -1
  521. package/dist/composition/compose-surface.js.map +1 -1
  522. package/dist/composition/compose-symbolic.js.map +1 -1
  523. package/dist/composition/compose.d.ts.map +1 -1
  524. package/dist/composition/compose.js +154 -36
  525. package/dist/composition/compose.js.map +1 -1
  526. package/dist/composition/composition-recovery.js.map +1 -1
  527. package/dist/composition/consequence.d.ts.map +1 -1
  528. package/dist/composition/consequence.js +15 -6
  529. package/dist/composition/consequence.js.map +1 -1
  530. package/dist/composition/consistency.js.map +1 -1
  531. package/dist/composition/descriptor.d.ts +1 -1
  532. package/dist/composition/descriptor.d.ts.map +1 -1
  533. package/dist/composition/descriptor.js.map +1 -1
  534. package/dist/composition/dimension-adjacency.js.map +1 -1
  535. package/dist/composition/discovery.d.ts +67 -7
  536. package/dist/composition/discovery.d.ts.map +1 -1
  537. package/dist/composition/discovery.js +83 -23
  538. package/dist/composition/discovery.js.map +1 -1
  539. package/dist/composition/edge.d.ts +19 -22
  540. package/dist/composition/edge.d.ts.map +1 -1
  541. package/dist/composition/edge.js +25 -28
  542. package/dist/composition/edge.js.map +1 -1
  543. package/dist/composition/enumerate.d.ts +2 -2
  544. package/dist/composition/enumerate.d.ts.map +1 -1
  545. package/dist/composition/enumerate.js.map +1 -1
  546. package/dist/composition/evaluate-relation.d.ts +29 -5
  547. package/dist/composition/evaluate-relation.d.ts.map +1 -1
  548. package/dist/composition/evaluate-relation.js +100 -72
  549. package/dist/composition/evaluate-relation.js.map +1 -1
  550. package/dist/composition/explain.d.ts +14 -4
  551. package/dist/composition/explain.d.ts.map +1 -1
  552. package/dist/composition/explain.js +53 -19
  553. package/dist/composition/explain.js.map +1 -1
  554. package/dist/composition/expr-eval.d.ts.map +1 -1
  555. package/dist/composition/expr-eval.js +2 -1
  556. package/dist/composition/expr-eval.js.map +1 -1
  557. package/dist/composition/expr-simplify.d.ts.map +1 -1
  558. package/dist/composition/expr-simplify.js +9 -39
  559. package/dist/composition/expr-simplify.js.map +1 -1
  560. package/dist/composition/expr-subst.js.map +1 -1
  561. package/dist/composition/formula-shape.d.ts +9 -0
  562. package/dist/composition/formula-shape.d.ts.map +1 -1
  563. package/dist/composition/formula-shape.js +54 -0
  564. package/dist/composition/formula-shape.js.map +1 -1
  565. package/dist/composition/frontier-account.d.ts +3 -2
  566. package/dist/composition/frontier-account.d.ts.map +1 -1
  567. package/dist/composition/frontier-account.js +7 -3
  568. package/dist/composition/frontier-account.js.map +1 -1
  569. package/dist/composition/graph-viz-svg.js.map +1 -1
  570. package/dist/composition/graph-viz.js.map +1 -1
  571. package/dist/composition/grounding.js.map +1 -1
  572. package/dist/composition/identifiability.js.map +1 -1
  573. package/dist/composition/index.d.ts +9 -5
  574. package/dist/composition/index.d.ts.map +1 -1
  575. package/dist/composition/index.js +7 -4
  576. package/dist/composition/index.js.map +1 -1
  577. package/dist/composition/mathts-quiet.d.ts +28 -0
  578. package/dist/composition/mathts-quiet.d.ts.map +1 -0
  579. package/dist/composition/mathts-quiet.js +56 -0
  580. package/dist/composition/mathts-quiet.js.map +1 -0
  581. package/dist/composition/mathts-scalar-symbols.d.ts.map +1 -1
  582. package/dist/composition/mathts-scalar-symbols.js +18 -34
  583. package/dist/composition/mathts-scalar-symbols.js.map +1 -1
  584. package/dist/composition/not-composable-seeds.d.ts +3 -1
  585. package/dist/composition/not-composable-seeds.d.ts.map +1 -1
  586. package/dist/composition/not-composable-seeds.js +2 -0
  587. package/dist/composition/not-composable-seeds.js.map +1 -1
  588. package/dist/composition/probe/backend-protocol.js.map +1 -1
  589. package/dist/composition/probe/candidate-store.js.map +1 -1
  590. package/dist/composition/probe/corpus.js.map +1 -1
  591. package/dist/composition/probe/dataset.js.map +1 -1
  592. package/dist/composition/probe/experiment-design.js.map +1 -1
  593. package/dist/composition/probe/expression-gaps.js.map +1 -1
  594. package/dist/composition/probe/falsify.d.ts +14 -3
  595. package/dist/composition/probe/falsify.d.ts.map +1 -1
  596. package/dist/composition/probe/falsify.js +14 -27
  597. package/dist/composition/probe/falsify.js.map +1 -1
  598. package/dist/composition/probe/fingerprint.js.map +1 -1
  599. package/dist/composition/probe/fit.d.ts +1 -1
  600. package/dist/composition/probe/fit.d.ts.map +1 -1
  601. package/dist/composition/probe/fit.js +2 -1
  602. package/dist/composition/probe/fit.js.map +1 -1
  603. package/dist/composition/probe/frontier.js.map +1 -1
  604. package/dist/composition/probe/generator.js.map +1 -1
  605. package/dist/composition/probe/index.d.ts +4 -2
  606. package/dist/composition/probe/index.d.ts.map +1 -1
  607. package/dist/composition/probe/index.js +4 -2
  608. package/dist/composition/probe/index.js.map +1 -1
  609. package/dist/composition/probe/limits.js.map +1 -1
  610. package/dist/composition/probe/metadata.js.map +1 -1
  611. package/dist/composition/probe/pipeline.d.ts +5 -0
  612. package/dist/composition/probe/pipeline.d.ts.map +1 -1
  613. package/dist/composition/probe/pipeline.js +13 -6
  614. package/dist/composition/probe/pipeline.js.map +1 -1
  615. package/dist/composition/probe/problem.d.ts +8 -0
  616. package/dist/composition/probe/problem.d.ts.map +1 -1
  617. package/dist/composition/probe/problem.js +78 -12
  618. package/dist/composition/probe/problem.js.map +1 -1
  619. package/dist/composition/probe/report.js.map +1 -1
  620. package/dist/composition/probe/residual.js.map +1 -1
  621. package/dist/composition/probe/run-manifest.js +2 -2
  622. package/dist/composition/probe/run-manifest.js.map +1 -1
  623. package/dist/composition/probe/scoring.d.ts +2 -1
  624. package/dist/composition/probe/scoring.d.ts.map +1 -1
  625. package/dist/composition/probe/scoring.js +21 -7
  626. package/dist/composition/probe/scoring.js.map +1 -1
  627. package/dist/composition/probe/search-budget.js.map +1 -1
  628. package/dist/composition/probe/serialize.js.map +1 -1
  629. package/dist/composition/probe/structure.js.map +1 -1
  630. package/dist/composition/probe/study.d.ts +4 -3
  631. package/dist/composition/probe/study.d.ts.map +1 -1
  632. package/dist/composition/probe/study.js +5 -3
  633. package/dist/composition/probe/study.js.map +1 -1
  634. package/dist/composition/probe/types.d.ts +3 -1
  635. package/dist/composition/probe/types.d.ts.map +1 -1
  636. package/dist/composition/probe/types.js +2 -0
  637. package/dist/composition/probe/types.js.map +1 -1
  638. package/dist/composition/proposed-bridges.d.ts +11 -4
  639. package/dist/composition/proposed-bridges.d.ts.map +1 -1
  640. package/dist/composition/proposed-bridges.js +14 -6
  641. package/dist/composition/proposed-bridges.js.map +1 -1
  642. package/dist/composition/quantities.d.ts +0 -4
  643. package/dist/composition/quantities.d.ts.map +1 -1
  644. package/dist/composition/quantities.js +5 -5
  645. package/dist/composition/quantities.js.map +1 -1
  646. package/dist/composition/quantity.d.ts +18 -2
  647. package/dist/composition/quantity.d.ts.map +1 -1
  648. package/dist/composition/quantity.js +35 -6
  649. package/dist/composition/quantity.js.map +1 -1
  650. package/dist/composition/representative-values.js.map +1 -1
  651. package/dist/composition/retrodiction.d.ts +18 -0
  652. package/dist/composition/retrodiction.d.ts.map +1 -1
  653. package/dist/composition/retrodiction.js +37 -7
  654. package/dist/composition/retrodiction.js.map +1 -1
  655. package/dist/composition/uncertainty.js.map +1 -1
  656. package/dist/composition/user-equation.d.ts +11 -7
  657. package/dist/composition/user-equation.d.ts.map +1 -1
  658. package/dist/composition/user-equation.js +24 -26
  659. package/dist/composition/user-equation.js.map +1 -1
  660. package/dist/core/axes-registry.d.ts +8 -5
  661. package/dist/core/axes-registry.d.ts.map +1 -1
  662. package/dist/core/axes-registry.js.map +1 -1
  663. package/dist/core/cell.js.map +1 -1
  664. package/dist/core/constants.d.ts +35 -12
  665. package/dist/core/constants.d.ts.map +1 -1
  666. package/dist/core/constants.js +46 -15
  667. package/dist/core/constants.js.map +1 -1
  668. package/dist/core/data-file.d.ts +27 -0
  669. package/dist/core/data-file.d.ts.map +1 -0
  670. package/dist/core/data-file.js +48 -0
  671. package/dist/core/data-file.js.map +1 -0
  672. package/dist/core/flux-rules.js +1 -1
  673. package/dist/core/flux-rules.js.map +1 -1
  674. package/dist/core/json-schema.d.ts +27 -0
  675. package/dist/core/json-schema.d.ts.map +1 -0
  676. package/dist/core/json-schema.js +177 -0
  677. package/dist/core/json-schema.js.map +1 -0
  678. package/dist/core/labeled-tensor.d.ts +6 -1
  679. package/dist/core/labeled-tensor.d.ts.map +1 -1
  680. package/dist/core/labeled-tensor.js +18 -8
  681. package/dist/core/labeled-tensor.js.map +1 -1
  682. package/dist/core/regime-registry.d.ts +6 -2
  683. package/dist/core/regime-registry.d.ts.map +1 -1
  684. package/dist/core/regime-registry.js.map +1 -1
  685. package/dist/core/regime-rule-install.js.map +1 -1
  686. package/dist/core/regimes-builtins.js.map +1 -1
  687. package/dist/core/tensor.d.ts +7 -4
  688. package/dist/core/tensor.d.ts.map +1 -1
  689. package/dist/core/tensor.js +40 -8
  690. package/dist/core/tensor.js.map +1 -1
  691. package/dist/core/types.d.ts +3 -2
  692. package/dist/core/types.d.ts.map +1 -1
  693. package/dist/core/types.js +16 -14
  694. package/dist/core/types.js.map +1 -1
  695. package/dist/core/universal-index.js.map +1 -1
  696. package/dist/diff/bridge-ast-gradient.d.ts +4 -5
  697. package/dist/diff/bridge-ast-gradient.d.ts.map +1 -1
  698. package/dist/diff/bridge-ast-gradient.js +16 -23
  699. package/dist/diff/bridge-ast-gradient.js.map +1 -1
  700. package/dist/diff/bridge-gradient.d.ts +24 -80
  701. package/dist/diff/bridge-gradient.d.ts.map +1 -1
  702. package/dist/diff/bridge-gradient.js +21 -98
  703. package/dist/diff/bridge-gradient.js.map +1 -1
  704. package/dist/diff/bridge-specs.d.ts +18 -6
  705. package/dist/diff/bridge-specs.d.ts.map +1 -1
  706. package/dist/diff/bridge-specs.js +17 -5
  707. package/dist/diff/bridge-specs.js.map +1 -1
  708. package/dist/dimensional/algebra.js.map +1 -1
  709. package/dist/dimensional/ast-builders.d.ts +5 -4
  710. package/dist/dimensional/ast-builders.d.ts.map +1 -1
  711. package/dist/dimensional/ast-builders.js +6 -5
  712. package/dist/dimensional/ast-builders.js.map +1 -1
  713. package/dist/dimensional/ast-types.js.map +1 -1
  714. package/dist/dimensional/bridge-check.d.ts.map +1 -1
  715. package/dist/dimensional/bridge-check.js +3 -5
  716. package/dist/dimensional/bridge-check.js.map +1 -1
  717. package/dist/dimensional/buckingham.js.map +1 -1
  718. package/dist/dimensional/connection-validators.d.ts +2 -1
  719. package/dist/dimensional/connection-validators.d.ts.map +1 -1
  720. package/dist/dimensional/connection-validators.js.map +1 -1
  721. package/dist/dimensional/connection.js.map +1 -1
  722. package/dist/dimensional/constant-rows.d.ts +54 -0
  723. package/dist/dimensional/constant-rows.d.ts.map +1 -0
  724. package/dist/dimensional/constant-rows.js +115 -0
  725. package/dist/dimensional/constant-rows.js.map +1 -0
  726. package/dist/dimensional/constants.d.ts +7 -17
  727. package/dist/dimensional/constants.d.ts.map +1 -1
  728. package/dist/dimensional/constants.js +12 -21
  729. package/dist/dimensional/constants.js.map +1 -1
  730. package/dist/dimensional/curvature-composite.js.map +1 -1
  731. package/dist/dimensional/curvature-invariants.js.map +1 -1
  732. package/dist/dimensional/curvature.js.map +1 -1
  733. package/dist/dimensional/dimension-inference.js.map +1 -1
  734. package/dist/dimensional/dimension-spec.d.ts +21 -6
  735. package/dist/dimensional/dimension-spec.d.ts.map +1 -1
  736. package/dist/dimensional/dimension-spec.js +150 -160
  737. package/dist/dimensional/dimension-spec.js.map +1 -1
  738. package/dist/dimensional/einstein-equation.js.map +1 -1
  739. package/dist/dimensional/errors.d.ts +3 -1
  740. package/dist/dimensional/errors.d.ts.map +1 -1
  741. package/dist/dimensional/errors.js +2 -2
  742. package/dist/dimensional/errors.js.map +1 -1
  743. package/dist/dimensional/exact-scale.d.ts +79 -0
  744. package/dist/dimensional/exact-scale.d.ts.map +1 -0
  745. package/dist/dimensional/exact-scale.js +222 -0
  746. package/dist/dimensional/exact-scale.js.map +1 -0
  747. package/dist/dimensional/field-equation-helpers.js.map +1 -1
  748. package/dist/dimensional/formula-names.d.ts +13 -12
  749. package/dist/dimensional/formula-names.d.ts.map +1 -1
  750. package/dist/dimensional/formula-names.js +28 -51
  751. package/dist/dimensional/formula-names.js.map +1 -1
  752. package/dist/dimensional/fresh-label.js.map +1 -1
  753. package/dist/dimensional/friedmann-equation.d.ts +3 -3
  754. package/dist/dimensional/friedmann-equation.js +3 -3
  755. package/dist/dimensional/friedmann-equation.js.map +1 -1
  756. package/dist/dimensional/gauge-field.d.ts +2 -3
  757. package/dist/dimensional/gauge-field.d.ts.map +1 -1
  758. package/dist/dimensional/gauge-field.js +0 -1
  759. package/dist/dimensional/gauge-field.js.map +1 -1
  760. package/dist/dimensional/hyphen-names.d.ts.map +1 -1
  761. package/dist/dimensional/hyphen-names.js +8 -0
  762. package/dist/dimensional/hyphen-names.js.map +1 -1
  763. package/dist/dimensional/killing-validators.js.map +1 -1
  764. package/dist/dimensional/klein-gordon-equation.js.map +1 -1
  765. package/dist/dimensional/metric-validators.d.ts +2 -1
  766. package/dist/dimensional/metric-validators.d.ts.map +1 -1
  767. package/dist/dimensional/metric-validators.js.map +1 -1
  768. package/dist/dimensional/metric.js.map +1 -1
  769. package/dist/dimensional/natural-units.js.map +1 -1
  770. package/dist/dimensional/quantity-registry.d.ts +23 -1
  771. package/dist/dimensional/quantity-registry.d.ts.map +1 -1
  772. package/dist/dimensional/quantity-registry.js +55 -18
  773. package/dist/dimensional/quantity-registry.js.map +1 -1
  774. package/dist/dimensional/rg-flow.js.map +1 -1
  775. package/dist/dimensional/stress-energy-validators.js.map +1 -1
  776. package/dist/dimensional/symbolic-constants.d.ts +63 -19
  777. package/dist/dimensional/symbolic-constants.d.ts.map +1 -1
  778. package/dist/dimensional/symbolic-constants.js +114 -92
  779. package/dist/dimensional/symbolic-constants.js.map +1 -1
  780. package/dist/dimensional/tensor-trace.js.map +1 -1
  781. package/dist/dimensional/tensor.js.map +1 -1
  782. package/dist/dimensional/types.js.map +1 -1
  783. package/dist/dimensional/unit-convention.d.ts +0 -2
  784. package/dist/dimensional/unit-convention.d.ts.map +1 -1
  785. package/dist/dimensional/unit-convention.js +2 -2
  786. package/dist/dimensional/unit-convention.js.map +1 -1
  787. package/dist/dimensional/unit-data.d.ts +70 -0
  788. package/dist/dimensional/unit-data.d.ts.map +1 -0
  789. package/dist/dimensional/unit-data.js +139 -0
  790. package/dist/dimensional/unit-data.js.map +1 -0
  791. package/dist/dimensional/units.d.ts +87 -24
  792. package/dist/dimensional/units.d.ts.map +1 -1
  793. package/dist/dimensional/units.js +290 -295
  794. package/dist/dimensional/units.js.map +1 -1
  795. package/dist/dimensional/validator-registry.js.map +1 -1
  796. package/dist/dimensional/validator.d.ts +0 -16
  797. package/dist/dimensional/validator.d.ts.map +1 -1
  798. package/dist/dimensional/validator.js +65 -29
  799. package/dist/dimensional/validator.js.map +1 -1
  800. package/dist/dimensional/weyl-validators.js.map +1 -1
  801. package/dist/index.d.ts +65 -18
  802. package/dist/index.d.ts.map +1 -1
  803. package/dist/index.js +19 -24
  804. package/dist/index.js.map +1 -1
  805. package/dist/numerical/bianchi-residual.js.map +1 -1
  806. package/dist/numerical/binding-value.d.ts +32 -7
  807. package/dist/numerical/binding-value.d.ts.map +1 -1
  808. package/dist/numerical/binding-value.js +218 -209
  809. package/dist/numerical/binding-value.js.map +1 -1
  810. package/dist/numerical/christoffel-flat.js.map +1 -1
  811. package/dist/numerical/connection-lowering-helpers.js.map +1 -1
  812. package/dist/numerical/covariant-eikonal.d.ts.map +1 -1
  813. package/dist/numerical/covariant-eikonal.js +2 -2
  814. package/dist/numerical/covariant-eikonal.js.map +1 -1
  815. package/dist/numerical/curvature-lowering-helpers.d.ts +20 -0
  816. package/dist/numerical/curvature-lowering-helpers.d.ts.map +1 -1
  817. package/dist/numerical/curvature-lowering-helpers.js +6 -3
  818. package/dist/numerical/curvature-lowering-helpers.js.map +1 -1
  819. package/dist/numerical/derivative-lowering.js.map +1 -1
  820. package/dist/numerical/einstein-equation.js.map +1 -1
  821. package/dist/numerical/engine-registry.js.map +1 -1
  822. package/dist/numerical/errors.d.ts +7 -3
  823. package/dist/numerical/errors.d.ts.map +1 -1
  824. package/dist/numerical/errors.js +5 -5
  825. package/dist/numerical/errors.js.map +1 -1
  826. package/dist/numerical/evaluator-uncertainty.d.ts +34 -0
  827. package/dist/numerical/evaluator-uncertainty.d.ts.map +1 -0
  828. package/dist/numerical/evaluator-uncertainty.js +134 -0
  829. package/dist/numerical/evaluator-uncertainty.js.map +1 -0
  830. package/dist/numerical/formula-contract.d.ts +67 -7
  831. package/dist/numerical/formula-contract.d.ts.map +1 -1
  832. package/dist/numerical/formula-contract.js +68 -42
  833. package/dist/numerical/formula-contract.js.map +1 -1
  834. package/dist/numerical/formula-dimension.d.ts +17 -7
  835. package/dist/numerical/formula-dimension.d.ts.map +1 -1
  836. package/dist/numerical/formula-dimension.js +120 -44
  837. package/dist/numerical/formula-dimension.js.map +1 -1
  838. package/dist/numerical/formula-mathts.d.ts.map +1 -1
  839. package/dist/numerical/formula-mathts.js +10 -3
  840. package/dist/numerical/formula-mathts.js.map +1 -1
  841. package/dist/numerical/formula-registry.d.ts +13 -3
  842. package/dist/numerical/formula-registry.d.ts.map +1 -1
  843. package/dist/numerical/formula-registry.js +7 -2
  844. package/dist/numerical/formula-registry.js.map +1 -1
  845. package/dist/numerical/geodesic-integrator.js.map +1 -1
  846. package/dist/numerical/geometrized.js.map +1 -1
  847. package/dist/numerical/gl4-integrator.d.ts +28 -27
  848. package/dist/numerical/gl4-integrator.d.ts.map +1 -1
  849. package/dist/numerical/gl4-integrator.js +44 -45
  850. package/dist/numerical/gl4-integrator.js.map +1 -1
  851. package/dist/numerical/grid-field.js.map +1 -1
  852. package/dist/numerical/index.js.map +1 -1
  853. package/dist/numerical/input-validation.d.ts +3 -6
  854. package/dist/numerical/input-validation.d.ts.map +1 -1
  855. package/dist/numerical/input-validation.js +4 -8
  856. package/dist/numerical/input-validation.js.map +1 -1
  857. package/dist/numerical/killing.d.ts +8 -5
  858. package/dist/numerical/killing.d.ts.map +1 -1
  859. package/dist/numerical/killing.js.map +1 -1
  860. package/dist/numerical/klein-gordon.js.map +1 -1
  861. package/dist/numerical/kretschmann.js.map +1 -1
  862. package/dist/numerical/lowering-utils.js.map +1 -1
  863. package/dist/numerical/lowering.d.ts.map +1 -1
  864. package/dist/numerical/lowering.js +7 -17
  865. package/dist/numerical/lowering.js.map +1 -1
  866. package/dist/numerical/mathts-engine.d.ts.map +1 -1
  867. package/dist/numerical/mathts-engine.js +11 -6
  868. package/dist/numerical/mathts-engine.js.map +1 -1
  869. package/dist/numerical/metric-inverse.js.map +1 -1
  870. package/dist/numerical/null-ic.js.map +1 -1
  871. package/dist/numerical/null-ray-integrator.js +4 -4
  872. package/dist/numerical/null-ray-integrator.js.map +1 -1
  873. package/dist/numerical/painleve-gullstrand-metric.js.map +1 -1
  874. package/dist/numerical/pderiv.d.ts.map +1 -1
  875. package/dist/numerical/pderiv.js +9 -2
  876. package/dist/numerical/pderiv.js.map +1 -1
  877. package/dist/numerical/perihelion-finder.js.map +1 -1
  878. package/dist/numerical/quadrature.d.ts +5 -2
  879. package/dist/numerical/quadrature.d.ts.map +1 -1
  880. package/dist/numerical/quadrature.js +20 -3
  881. package/dist/numerical/quadrature.js.map +1 -1
  882. package/dist/numerical/spacetime-metrics.d.ts +17 -19
  883. package/dist/numerical/spacetime-metrics.d.ts.map +1 -1
  884. package/dist/numerical/spacetime-metrics.js +158 -250
  885. package/dist/numerical/spacetime-metrics.js.map +1 -1
  886. package/dist/numerical/strides.js.map +1 -1
  887. package/dist/numerical/tensor-engine.d.ts +9 -5
  888. package/dist/numerical/tensor-engine.d.ts.map +1 -1
  889. package/dist/numerical/tensor-engine.js.map +1 -1
  890. package/dist/numerical/types.js.map +1 -1
  891. package/dist/numerical/weyl-lowering.js.map +1 -1
  892. package/dist/relations/category.js.map +1 -1
  893. package/dist/relations/composition-table.d.ts +4 -4
  894. package/dist/relations/composition-table.js +4 -4
  895. package/dist/relations/composition-table.js.map +1 -1
  896. package/dist/relations/conventions.js.map +1 -1
  897. package/dist/relations/domain-regimes.js.map +1 -1
  898. package/dist/relations/regime-registration.js.map +1 -1
  899. package/dist/relations/regime-vocabularies.js.map +1 -1
  900. package/dist/relations/regime.d.ts +18 -8
  901. package/dist/relations/regime.d.ts.map +1 -1
  902. package/dist/relations/regime.js +26 -14
  903. package/dist/relations/regime.js.map +1 -1
  904. package/dist/relations/types.d.ts +26 -6
  905. package/dist/relations/types.d.ts.map +1 -1
  906. package/dist/relations/types.js +15 -3
  907. package/dist/relations/types.js.map +1 -1
  908. package/package.json +10 -14
  909. package/dist/bridges/registry.d.ts +0 -60
  910. package/dist/bridges/registry.d.ts.map +0 -1
  911. package/dist/bridges/registry.js +0 -87
  912. package/dist/bridges/registry.js.map +0 -1
  913. package/dist/cli/poster-source.d.ts +0 -154
  914. package/dist/cli/poster-source.d.ts.map +0 -1
  915. package/dist/cli/poster-source.js +0 -184
  916. package/dist/cli/poster-source.js.map +0 -1
@@ -10,16 +10,22 @@ const KINETIC_PRESSURE = dim(-1, 1, -2, 0, 0); // Pa [L⁻¹ M T⁻²]
10
10
  const MEAN_SQUARE_SPEED = dim(2, 0, -2, 0, 0); // m²/s² [L² T⁻²]
11
11
  export const STATISTICAL_MECHANICS = [
12
12
  l1({ name: 'thermal-energy', dim: ENERGY }, [
13
- { name: 'boltzmann-constant', dim: BOLTZMANN_CONSTANT },
13
+ { name: 'k_B', dim: BOLTZMANN_CONSTANT },
14
14
  { name: 'temperature', dim: TEMPERATURE },
15
15
  ], {
16
16
  id: 'CE-equipartition',
17
+ prefactor: {
18
+ value: 1.5,
19
+ quote: String.raw `\langle H_{\mathrm{kin}} \rangle = \left\langle \frac{p^2}{2m} \right\rangle = \langle \tfrac{1}{2} m v^{2} \rangle = \tfrac{3}{2} k_\text{B} T.`,
20
+ locator: "Wikipedia, 'Equipartition theorem', revision 1373697867, wikitext line 304",
21
+ },
22
+ holds: 'temperature >= 0',
17
23
  name: 'Equipartition (mean kinetic energy)',
18
24
  domain: 'statistical',
19
25
  formula_latex: '\\langle E \\rangle = \\tfrac{3}{2} k_B T',
20
26
  epistemicStatus: 'scalar-up-to-constant',
21
27
  scalarAst: op('*', [
22
- sym('boltzmann-constant', BOLTZMANN_CONSTANT),
28
+ sym('k_B', BOLTZMANN_CONSTANT),
23
29
  sym('temperature', TEMPERATURE),
24
30
  ]),
25
31
  regime: { scale: 'classical' },
@@ -28,19 +34,25 @@ export const STATISTICAL_MECHANICS = [
28
34
  partnerBridges: [],
29
35
  }),
30
36
  l1({ name: 'diffusion-coefficient', dim: DIFFUSION_COEFFICIENT }, [
31
- { name: 'boltzmann-constant', dim: BOLTZMANN_CONSTANT },
37
+ { name: 'k_B', dim: BOLTZMANN_CONSTANT },
32
38
  { name: 'temperature', dim: TEMPERATURE },
33
39
  { name: 'dynamic-viscosity', dim: DYNAMIC_VISCOSITY },
34
40
  { name: 'particle-radius', dim: PARTICLE_RADIUS },
35
41
  ], {
36
42
  id: 'CE-stokes-einstein',
43
+ prefactor: {
44
+ value: 1 / (6 * Math.PI),
45
+ quote: String.raw `D = \frac{k_\text{B} T}{6\pi\,\eta\,r}.`,
46
+ locator: "Wikipedia, 'Einstein relation (kinetic theory)', revision 1353047788, wikitext line 79",
47
+ },
48
+ holds: 'temperature > 0 and dynamic-viscosity > 0 and particle-radius > 0',
37
49
  name: 'Stokes-Einstein diffusion',
38
50
  domain: 'statistical',
39
51
  formula_latex: 'D = k_B T/(6\\pi\\mu r)',
40
52
  epistemicStatus: 'scalar-up-to-constant',
41
53
  scalarAst: op('/', [
42
54
  op('*', [
43
- sym('boltzmann-constant', BOLTZMANN_CONSTANT),
55
+ sym('k_B', BOLTZMANN_CONSTANT),
44
56
  sym('temperature', TEMPERATURE),
45
57
  ]),
46
58
  op('*', [
@@ -59,6 +71,12 @@ export const STATISTICAL_MECHANICS = [
59
71
  { name: 'mean-square-speed', dim: MEAN_SQUARE_SPEED },
60
72
  ], {
61
73
  id: 'CE-kinetic-pressure',
74
+ prefactor: {
75
+ value: 1 / 3,
76
+ quote: String.raw `= \frac{1}{3} n mv_\text{rms}^2`,
77
+ locator: "Wikipedia, 'Kinetic theory of gases', revision 1371478093, wikitext line 173",
78
+ },
79
+ holds: 'number-density >= 0 and molecular-mass > 0 and mean-square-speed >= 0',
62
80
  name: 'Kinetic pressure of an ideal gas',
63
81
  domain: 'statistical',
64
82
  formula_latex: 'P = \\tfrac{1}{3} n m \\langle v^2 \\rangle',
@@ -76,11 +94,12 @@ export const STATISTICAL_MECHANICS = [
76
94
  partnerBridges: [],
77
95
  }),
78
96
  l1({ name: 'most-probable-speed', dim: VELOCITY }, [
79
- { name: 'boltzmann-constant', dim: BOLTZMANN_CONSTANT },
97
+ { name: 'k_B', dim: BOLTZMANN_CONSTANT },
80
98
  { name: 'temperature', dim: TEMPERATURE },
81
99
  { name: 'molecular-mass', dim: MASS },
82
100
  ], {
83
101
  id: 'CE-mb-most-probable-speed',
102
+ holds: 'temperature >= 0 and molecular-mass > 0',
84
103
  name: 'Maxwell-Boltzmann most-probable speed',
85
104
  domain: 'statistical',
86
105
  formula_latex: 'v_p = \\sqrt{2 k_B T/m}',
@@ -1 +1 @@
1
- {"version":3,"file":"statistical-mechanics.js","sourceRoot":"","sources":["../../../src/canonical/entries/statistical-mechanics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"statistical-mechanics.js","sourceRoot":"","sources":["../../../src/canonical/entries/statistical-mechanics.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * L1 (scalar-AST) canonical entries — statistical mechanics. 4 standard\n * kinetic-theory / equilibrium-statistics monomial laws (equipartition,\n * Stokes-Einstein diffusion, kinetic pressure, Maxwell-Boltzmann speed).\n * Each is a unique dimensional monomial (0 free groups); L0 fields are\n * engine-derived (see `_l1-build`).\n *\n * Mean free path (`λ = 1/(nσ)`) was deliberately EXCLUDED from this batch:\n * number density and cross-section are both pure-length dimension, so the\n * combination is dimensionally underdetermined (`nσ^1.5` is dimensionless) —\n * forcing it would violate the 0-free-groups invariant this file otherwise\n * holds to.\n *\n * 3 of the 4 laws are clean monomials with an exact prefactor left aside\n * (`scalarAst` included, `scalar-up-to-constant`); the Maxwell-Boltzmann\n * most-probable speed is a fractional-power monomial (a square root) —\n * `scalarAst` is OMITTED and `epistemicStatus` is `dimensional`, exactly like\n * the Fermi-gas √-laws in `condensed-matter.ts`.\n *\n * @module canonical/entries/statistical-mechanics\n */\nimport type { CanonicalEquation } from '../canonical-equation.js';\nimport { sym } from '../../dimensional/ast-builders.js';\nimport { MASS, VELOCITY, ENERGY, TEMPERATURE } from '../../dimensional/types.js';\nimport { dim, op, l1 } from './_l1-build.js';\n\nconst BOLTZMANN_CONSTANT = dim(2, 1, -2, 0, -1); // J/K [L² M T⁻² Θ⁻¹]\nconst DIFFUSION_COEFFICIENT = dim(2, 0, -1, 0, 0); // m²/s [L² T⁻¹]\nconst DYNAMIC_VISCOSITY = dim(-1, 1, -1, 0, 0); // Pa·s [L⁻¹ M T⁻¹]\nconst PARTICLE_RADIUS = dim(1, 0, 0, 0, 0); // [L]\nconst NUMBER_DENSITY = dim(-3, 0, 0, 0, 0); // [L⁻³]\nconst KINETIC_PRESSURE = dim(-1, 1, -2, 0, 0); // Pa [L⁻¹ M T⁻²]\nconst MEAN_SQUARE_SPEED = dim(2, 0, -2, 0, 0); // m²/s² [L² T⁻²]\n\nexport const STATISTICAL_MECHANICS: readonly CanonicalEquation[] = [\n l1({ name: 'thermal-energy', dim: ENERGY }, [\n { name: 'k_B', dim: BOLTZMANN_CONSTANT },\n { name: 'temperature', dim: TEMPERATURE },\n ], {\n id: 'CE-equipartition',\n prefactor: {\n value: 1.5,\n quote: String.raw`\\langle H_{\\mathrm{kin}} \\rangle = \\left\\langle \\frac{p^2}{2m} \\right\\rangle = \\langle \\tfrac{1}{2} m v^{2} \\rangle = \\tfrac{3}{2} k_\\text{B} T.`,\n locator: \"Wikipedia, 'Equipartition theorem', revision 1373697867, wikitext line 304\",\n },\n holds: 'temperature >= 0',\n name: 'Equipartition (mean kinetic energy)',\n domain: 'statistical',\n formula_latex: '\\\\langle E \\\\rangle = \\\\tfrac{3}{2} k_B T',\n epistemicStatus: 'scalar-up-to-constant',\n scalarAst: op('*', [\n sym('k_B', BOLTZMANN_CONSTANT),\n sym('temperature', TEMPERATURE),\n ]),\n regime: { scale: 'classical' },\n assumptions: ['ideal gas', 'thermal equilibrium', '3 translational DOF'],\n references: ['Reif, Fundamentals of Statistical and Thermal Physics'],\n partnerBridges: [],\n }),\n l1({ name: 'diffusion-coefficient', dim: DIFFUSION_COEFFICIENT }, [\n { name: 'k_B', dim: BOLTZMANN_CONSTANT },\n { name: 'temperature', dim: TEMPERATURE },\n { name: 'dynamic-viscosity', dim: DYNAMIC_VISCOSITY },\n { name: 'particle-radius', dim: PARTICLE_RADIUS },\n ], {\n id: 'CE-stokes-einstein',\n prefactor: {\n value: 1 / (6 * Math.PI),\n quote: String.raw`D = \\frac{k_\\text{B} T}{6\\pi\\,\\eta\\,r}.`,\n locator: \"Wikipedia, 'Einstein relation (kinetic theory)', revision 1353047788, wikitext line 79\",\n },\n holds: 'temperature > 0 and dynamic-viscosity > 0 and particle-radius > 0',\n name: 'Stokes-Einstein diffusion',\n domain: 'statistical',\n formula_latex: 'D = k_B T/(6\\\\pi\\\\mu r)',\n epistemicStatus: 'scalar-up-to-constant',\n scalarAst: op('/', [\n op('*', [\n sym('k_B', BOLTZMANN_CONSTANT),\n sym('temperature', TEMPERATURE),\n ]),\n op('*', [\n sym('dynamic-viscosity', DYNAMIC_VISCOSITY),\n sym('particle-radius', PARTICLE_RADIUS),\n ]),\n ]),\n regime: { scale: 'mesoscopic' },\n assumptions: ['spherical particle', 'low Reynolds number'],\n references: ['Einstein 1905', 'Sutherland 1905'],\n partnerBridges: [],\n }),\n l1({ name: 'kinetic-pressure', dim: KINETIC_PRESSURE }, [\n { name: 'number-density', dim: NUMBER_DENSITY },\n { name: 'molecular-mass', dim: MASS },\n { name: 'mean-square-speed', dim: MEAN_SQUARE_SPEED },\n ], {\n id: 'CE-kinetic-pressure',\n prefactor: {\n value: 1 / 3,\n quote: String.raw`= \\frac{1}{3} n mv_\\text{rms}^2`,\n locator: \"Wikipedia, 'Kinetic theory of gases', revision 1371478093, wikitext line 173\",\n },\n holds: 'number-density >= 0 and molecular-mass > 0 and mean-square-speed >= 0',\n name: 'Kinetic pressure of an ideal gas',\n domain: 'statistical',\n formula_latex: 'P = \\\\tfrac{1}{3} n m \\\\langle v^2 \\\\rangle',\n epistemicStatus: 'scalar-up-to-constant',\n scalarAst: op('*', [\n op('*', [\n sym('number-density', NUMBER_DENSITY),\n sym('molecular-mass', MASS),\n ]),\n sym('mean-square-speed', MEAN_SQUARE_SPEED),\n ]),\n regime: { scale: 'classical' },\n assumptions: ['ideal gas', 'isotropic velocity distribution'],\n references: ['Maxwell 1860', 'Reif, Fundamentals of Statistical and Thermal Physics'],\n partnerBridges: [],\n }),\n l1({ name: 'most-probable-speed', dim: VELOCITY }, [\n { name: 'k_B', dim: BOLTZMANN_CONSTANT },\n { name: 'temperature', dim: TEMPERATURE },\n { name: 'molecular-mass', dim: MASS },\n ], {\n id: 'CE-mb-most-probable-speed',\n holds: 'temperature >= 0 and molecular-mass > 0',\n name: 'Maxwell-Boltzmann most-probable speed',\n domain: 'statistical',\n formula_latex: 'v_p = \\\\sqrt{2 k_B T/m}',\n epistemicStatus: 'dimensional',\n regime: { scale: 'classical' },\n assumptions: ['Maxwell-Boltzmann distribution'],\n references: ['Maxwell 1860', 'Reif, Fundamentals of Statistical and Thermal Physics'],\n partnerBridges: [],\n }),\n];\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"thermo-nuclear-cosmo.d.ts","sourceRoot":"","sources":["../../../src/canonical/entries/thermo-nuclear-cosmo.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AA0BlE,eAAO,MAAM,oBAAoB,EAAE,SAAS,iBAAiB,EAyN5D,CAAC"}
1
+ {"version":3,"file":"thermo-nuclear-cosmo.d.ts","sourceRoot":"","sources":["../../../src/canonical/entries/thermo-nuclear-cosmo.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AA0BlE,eAAO,MAAM,oBAAoB,EAAE,SAAS,iBAAiB,EAwO5D,CAAC"}
@@ -18,6 +18,7 @@ export const THERMO_NUCLEAR_COSMO = [
18
18
  { name: 'temperature-change', dim: TEMPERATURE },
19
19
  ], {
20
20
  id: 'CE-heat-capacity',
21
+ holds: 'mass > 0',
21
22
  name: 'Sensible heat (heat capacity)',
22
23
  domain: 'thermodynamics',
23
24
  formula_latex: 'Q = m c \\Delta T',
@@ -36,6 +37,11 @@ export const THERMO_NUCLEAR_COSMO = [
36
37
  { name: 'decay-constant', dim: FREQUENCY },
37
38
  ], {
38
39
  id: 'CE-half-life',
40
+ prefactor: {
41
+ value: Math.log(2),
42
+ quote: String.raw `t_{1/2} = \frac{\ln (2)}{\lambda} = \tau \ln(2)`,
43
+ locator: "Wikipedia, 'Half-life', revision 1373221894, wikitext line 64",
44
+ },
39
45
  name: 'Radioactive half-life',
40
46
  domain: 'quantum',
41
47
  formula_latex: 't_{1/2} = \\ln 2 / \\lambda',
@@ -51,6 +57,7 @@ export const THERMO_NUCLEAR_COSMO = [
51
57
  { name: 'hubble-rate', dim: FREQUENCY },
52
58
  ], {
53
59
  id: 'CE-hubble-distance',
60
+ holds: 'hubble-rate > 0',
54
61
  name: 'Hubble distance',
55
62
  domain: 'cosmology',
56
63
  formula_latex: 'D_H = c / H_0',
@@ -69,6 +76,7 @@ export const THERMO_NUCLEAR_COSMO = [
69
76
  { name: 'temperature', dim: TEMPERATURE },
70
77
  ], {
71
78
  id: 'CE-landauer',
79
+ holds: 'temperature >= 0',
72
80
  name: 'Landauer erasure bound',
73
81
  domain: 'information',
74
82
  formula_latex: 'E = k_B T \\ln 2',
@@ -93,6 +101,7 @@ export const THERMO_NUCLEAR_COSMO = [
93
101
  { name: 'temperature', dim: TEMPERATURE },
94
102
  ], {
95
103
  id: 'CE-jarzynski',
104
+ holds: 'temperature > 0',
96
105
  name: 'Jarzynski free-energy equality',
97
106
  domain: 'statistical',
98
107
  formula_latex: '\\Delta F = -k_B T \\ln \\langle \\exp(-W/(k_B T)) \\rangle',
@@ -125,6 +134,7 @@ export const THERMO_NUCLEAR_COSMO = [
125
134
  { name: 'temperature', dim: TEMPERATURE },
126
135
  ], {
127
136
  id: 'CE-stefan-boltzmann',
137
+ holds: 'temperature >= 0',
128
138
  name: 'Stefan–Boltzmann law',
129
139
  domain: 'thermodynamics',
130
140
  formula_latex: 'j = \\sigma T^4',
@@ -143,6 +153,7 @@ export const THERMO_NUCLEAR_COSMO = [
143
153
  { name: 'V', dim: VOLUME },
144
154
  ], {
145
155
  id: 'CE-ideal-gas',
156
+ holds: 'temperature > 0 and V > 0 and N >= 0',
146
157
  name: 'Ideal gas law',
147
158
  domain: 'thermodynamics',
148
159
  formula_latex: 'P = N k_B T/V',
@@ -162,6 +173,7 @@ export const THERMO_NUCLEAR_COSMO = [
162
173
  { name: 'temperature', dim: dim(0, 0, 0, 0, 1) },
163
174
  ], {
164
175
  id: 'CE-wien',
176
+ holds: 'temperature > 0',
165
177
  name: "Wien's displacement law",
166
178
  domain: 'thermodynamics',
167
179
  formula_latex: '\\lambda_{max} = b/T',
@@ -179,6 +191,7 @@ export const THERMO_NUCLEAR_COSMO = [
179
191
  { name: 'specific-latent-heat', dim: SPECIFIC_LATENT_HEAT },
180
192
  ], {
181
193
  id: 'CE-latent-heat',
194
+ holds: 'mass > 0',
182
195
  name: 'Latent heat of phase transition',
183
196
  domain: 'thermodynamics',
184
197
  formula_latex: 'Q = m L',
@@ -198,6 +211,7 @@ export const THERMO_NUCLEAR_COSMO = [
198
211
  { name: 'temperature', dim: TEMPERATURE },
199
212
  ], {
200
213
  id: 'CE-clausius-entropy',
214
+ holds: 'temperature > 0',
201
215
  name: 'Clausius entropy change',
202
216
  domain: 'thermodynamics',
203
217
  formula_latex: '\\Delta S = Q/T',
@@ -215,6 +229,7 @@ export const THERMO_NUCLEAR_COSMO = [
215
229
  { name: 'specific-heat-capacity', dim: SPECIFIC_HEAT },
216
230
  ], {
217
231
  id: 'CE-thermal-diffusivity',
232
+ holds: 'thermal-conductivity > 0 and density > 0 and specific-heat-capacity > 0',
218
233
  name: 'Thermal diffusivity',
219
234
  domain: 'thermodynamics',
220
235
  formula_latex: '\\alpha = k/(\\rho c_p)',
@@ -1 +1 @@
1
- {"version":3,"file":"thermo-nuclear-cosmo.js","sourceRoot":"","sources":["../../../src/canonical/entries/thermo-nuclear-cosmo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"thermo-nuclear-cosmo.js","sourceRoot":"","sources":["../../../src/canonical/entries/thermo-nuclear-cosmo.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * L1 (scalar-AST) canonical entries — thermodynamic, statistical, nuclear, and\n * cosmological monomial laws: sensible heat capacity, radioactive half-life,\n * the Hubble distance, plus the Landauer bound, the Jarzynski equality, the\n * Stefan–Boltzmann law, the ideal-gas law, and Wien's displacement (the\n * latter five folded in from the former l1-gravity-thermo / l1-quantum-em\n * batch files in the 2026-06-22 god-file split), plus a batch-4 (2026-07-03)\n * trio of thermodynamics monomials: latent heat, the Clausius entropy change,\n * and thermal diffusivity. L0 fields are engine-derived (see `_l1-build`).\n *\n * Scope: generic dimensional MONOMIAL laws (Adam+Eve adversarial audit,\n * 2026-06-20). `domain` is the nearest `CanonicalDomain` arm (the enum has no\n * `nuclear`; radioactive decay → `quantum`). Skipped as degenerate:\n * radioactive-activity `A=λN` (N dimensionless ⇒ activity ≡ decay-constant) and\n * the Chandrasekhar mass (the (ℏc/G)/m_p² group is dimensionless ⇒\n * underdetermined). See docs/research/bridges-vs-canonical-map.md.\n *\n * @module canonical/entries/thermo-nuclear-cosmo\n */\nimport type { CanonicalEquation } from '../canonical-equation.js';\nimport { sym } from '../../dimensional/ast-builders.js';\nimport {\n MASS,\n VELOCITY,\n ENERGY,\n LENGTH,\n TIME,\n FREQUENCY,\n TEMPERATURE,\n ENTROPY,\n DIMENSIONLESS,\n} from '../../dimensional/types.js';\nimport { dim, op, pow, l1 } from './_l1-build.js';\n\nconst SPECIFIC_HEAT = dim(2, 0, -2, 0, -1); // [L² T⁻² Θ⁻¹] (J·kg⁻¹·K⁻¹)\nconst SB_FLUX = dim(0, 1, -3); // radiative flux W/m² = [M T⁻³]\nconst SIGMA_SB = dim(0, 1, -3, 0, -4); // Stefan–Boltzmann σ [M T⁻³ Θ⁻⁴] (Θ is 5th arg)\nconst PRESSURE = dim(-1, 1, -2); // [M L⁻¹ T⁻²]\nconst VOLUME = dim(3); // [L³]\nconst WIEN_B = dim(1, 0, 0, 0, 1); // Wien constant [L Θ]\nconst SPECIFIC_LATENT_HEAT = dim(2, 0, -2, 0, 0); // [L² T⁻²] (J·kg⁻¹, no Θ dependence)\nconst THERMAL_CONDUCTIVITY = dim(1, 1, -3, 0, -1); // [L M T⁻³ Θ⁻¹] (W·m⁻¹·K⁻¹)\nconst DENSITY = dim(-3, 1, 0, 0, 0); // [M L⁻³] (kg/m³)\nconst THERMAL_DIFFUSIVITY = dim(2, 0, -1, 0, 0); // [L² T⁻¹] (m²/s)\n\nexport const THERMO_NUCLEAR_COSMO: readonly CanonicalEquation[] = [\n l1({ name: 'heat-energy', dim: ENERGY }, [\n { name: 'mass', dim: MASS },\n { name: 'specific-heat', dim: SPECIFIC_HEAT },\n { name: 'temperature-change', dim: TEMPERATURE },\n ], {\n id: 'CE-heat-capacity',\n holds: 'mass > 0',\n name: 'Sensible heat (heat capacity)',\n domain: 'thermodynamics',\n formula_latex: 'Q = m c \\\\Delta T',\n epistemicStatus: 'fully-quantitative',\n scalarAst: op('*', [\n sym('mass', MASS),\n sym('specific-heat', SPECIFIC_HEAT),\n sym('temperature-change', TEMPERATURE),\n ]),\n regime: { scale: 'classical' },\n assumptions: ['no phase change', 'constant specific heat'],\n references: ['Standard thermodynamics'],\n partnerBridges: [],\n }),\n l1({ name: 'half-life', dim: TIME }, [\n { name: 'decay-constant', dim: FREQUENCY },\n ], {\n id: 'CE-half-life',\n prefactor: {\n value: Math.log(2),\n quote: String.raw`t_{1/2} = \\frac{\\ln (2)}{\\lambda} = \\tau \\ln(2)`,\n locator: \"Wikipedia, 'Half-life', revision 1373221894, wikitext line 64\",\n },\n name: 'Radioactive half-life',\n domain: 'quantum',\n formula_latex: 't_{1/2} = \\\\ln 2 / \\\\lambda',\n epistemicStatus: 'scalar-up-to-constant',\n scalarAst: pow(sym('decay-constant', FREQUENCY), '-1'),\n regime: { scale: 'quantum' },\n assumptions: ['first-order (exponential) decay'],\n references: ['Rutherford–Soddy 1902'],\n partnerBridges: [],\n }),\n l1({ name: 'hubble-distance', dim: LENGTH }, [\n { name: 'c', dim: VELOCITY },\n { name: 'hubble-rate', dim: FREQUENCY },\n ], {\n id: 'CE-hubble-distance',\n holds: 'hubble-rate > 0',\n name: 'Hubble distance',\n domain: 'cosmology',\n formula_latex: 'D_H = c / H_0',\n epistemicStatus: 'fully-quantitative',\n scalarAst: op('/', [sym('c', VELOCITY), sym('hubble-rate', FREQUENCY)]),\n regime: { scale: 'cosmological' },\n assumptions: ['present-epoch Hubble parameter'],\n references: ['Hubble 1929'],\n partnerBridges: [],\n }),\n // ── Folded in from the former l1-gravity-thermo / l1-quantum-em batch files\n // (2026-06-22 god-file split): the thermodynamic / statistical monomials. ──\n // Landauer minimum erasure energy E = k_B T ln2 (natural log)\n l1({ name: 'erasure-energy', dim: ENERGY }, [\n { name: 'k_B', dim: ENTROPY },\n { name: 'temperature', dim: TEMPERATURE },\n ], {\n id: 'CE-landauer',\n holds: 'temperature >= 0',\n name: 'Landauer erasure bound',\n domain: 'information',\n formula_latex: 'E = k_B T \\\\ln 2',\n epistemicStatus: 'fully-quantitative',\n scalarAst: op('*', [\n sym('k_B', ENTROPY),\n sym('temperature', TEMPERATURE),\n sym('ln2', DIMENSIONLESS),\n ]),\n forms: { logBase: 'e' },\n regime: { scale: 'mesoscopic', information: 'shannon' },\n assumptions: ['isothermal', 'quasi-static erasure'],\n references: ['Landauer 1961'],\n // 16 = \"Information-Thermodynamics Bridge (Landauer's principle)\" — a\n // genuine restatement (the canonical Landauer bound IS bridge 16).\n partnerBridges: ['16'],\n restatesBridge: '16',\n }),\n // Jarzynski equality ΔF = −k_B T ln⟨exp(−W/k_B T)⟩ (dimensionless log factor)\n l1({ name: 'free-energy-difference', dim: ENERGY }, [\n { name: 'k_B', dim: ENTROPY },\n { name: 'temperature', dim: TEMPERATURE },\n ], {\n id: 'CE-jarzynski',\n holds: 'temperature > 0',\n name: 'Jarzynski free-energy equality',\n domain: 'statistical',\n formula_latex: '\\\\Delta F = -k_B T \\\\ln \\\\langle \\\\exp(-W/(k_B T)) \\\\rangle',\n // The leading dimensionless factor is the ensemble functional\n // ln⟨exp(−βW)⟩, not a universal constant, so the strongest honest claim\n // is the algebraic form up to that factor.\n epistemicStatus: 'scalar-up-to-constant',\n // Mirrors the Jarzynski right-hand side: −1 · k_B · T · ln⟨exp(−βW)⟩, the log encoded\n // as a dimensionless stub (the AST has no ln primitive). Structurally this\n // is the k_B·T·(dimensionless) thermodynamic form — the same one Landauer\n // shares, which is exactly why BE-29 \"recovers\" CE-landauer.\n scalarAst: op('*', [\n sym('-1', DIMENSIONLESS),\n sym('k_B', ENTROPY),\n sym('temperature', TEMPERATURE),\n sym('ln_avg_exp_minus_betaW', DIMENSIONLESS),\n ]),\n regime: { scale: 'mesoscopic' },\n assumptions: ['isothermal', 'arbitrary work protocol between two equilibria'],\n references: ['Jarzynski 1997 PRL 78:2690'],\n // 29 = BE-29 (Jarzynski equality) — this canonical entry IS that bridge's\n // own relation, so it is a declared restatement (NOT a discovery). Its\n // structural match to CE-landauer stays a `recovers` form-coincidence.\n partnerBridges: ['29'],\n restatesBridge: '29',\n }),\n // Stefan–Boltzmann law j = σ T⁴ (radiative FLUX)\n l1({ name: 'radiative-flux', dim: SB_FLUX }, [\n { name: 'sigma_sb', dim: SIGMA_SB },\n { name: 'temperature', dim: TEMPERATURE },\n ], {\n id: 'CE-stefan-boltzmann',\n holds: 'temperature >= 0',\n name: 'Stefan–Boltzmann law',\n domain: 'thermodynamics',\n formula_latex: 'j = \\\\sigma T^4',\n epistemicStatus: 'fully-quantitative',\n scalarAst: op('*', [sym('sigma_sb', SIGMA_SB), pow(sym('temperature', TEMPERATURE), '4')]),\n forms: { quantityKind: 'flux' },\n regime: { scale: 'classical', force: 'electromagnetic' },\n assumptions: ['blackbody', 'thermal equilibrium'],\n references: ['Stefan 1879; Boltzmann 1884'],\n partnerBridges: [],\n }),\n // Ideal gas law P = N k_B T / V (N is a dimensionless count)\n l1({ name: 'pressure', dim: PRESSURE }, [\n { name: 'k_B', dim: ENTROPY },\n { name: 'temperature', dim: TEMPERATURE },\n { name: 'V', dim: VOLUME },\n ], {\n id: 'CE-ideal-gas',\n holds: 'temperature > 0 and V > 0 and N >= 0',\n name: 'Ideal gas law',\n domain: 'thermodynamics',\n formula_latex: 'P = N k_B T/V',\n epistemicStatus: 'fully-quantitative',\n scalarAst: op('/', [\n op('*', [sym('N', DIMENSIONLESS), sym('k_B', ENTROPY), sym('temperature', TEMPERATURE)]),\n sym('V', VOLUME),\n ]),\n regime: { scale: 'classical', force: 'electromagnetic' },\n assumptions: ['ideal gas', 'thermal equilibrium'],\n references: ['Clapeyron 1834'],\n partnerBridges: [],\n }),\n // Wien's displacement λ_max = b / T (blackbody peak wavelength)\n l1({ name: 'peak-wavelength', dim: LENGTH }, [\n { name: 'b', dim: WIEN_B },\n { name: 'temperature', dim: dim(0, 0, 0, 0, 1) },\n ], {\n id: 'CE-wien',\n holds: 'temperature > 0',\n name: \"Wien's displacement law\",\n domain: 'thermodynamics',\n formula_latex: '\\\\lambda_{max} = b/T',\n epistemicStatus: 'fully-quantitative',\n scalarAst: op('/', [sym('b', WIEN_B), sym('temperature', dim(0, 0, 0, 0, 1))]),\n regime: { scale: 'classical', force: 'electromagnetic' },\n assumptions: ['blackbody', 'thermal equilibrium'],\n references: ['Wien 1893'],\n partnerBridges: [],\n }),\n // ── Batch 4 (2026-07-03): 3 more thermodynamics monomials. ─────────────────\n // Latent heat of phase transition Q = m L (specific latent heat L)\n l1({ name: 'latent-heat', dim: ENERGY }, [\n { name: 'mass', dim: MASS },\n { name: 'specific-latent-heat', dim: SPECIFIC_LATENT_HEAT },\n ], {\n id: 'CE-latent-heat',\n holds: 'mass > 0',\n name: 'Latent heat of phase transition',\n domain: 'thermodynamics',\n formula_latex: 'Q = m L',\n epistemicStatus: 'fully-quantitative',\n scalarAst: op('*', [\n sym('mass', MASS),\n sym('specific-latent-heat', SPECIFIC_LATENT_HEAT),\n ]),\n regime: { scale: 'classical' },\n assumptions: ['isothermal phase transition'],\n references: ['Callen, Thermodynamics'],\n partnerBridges: [],\n }),\n // Clausius entropy change ΔS = Q/T (reversible, constant-temperature)\n l1({ name: 'entropy-change', dim: ENTROPY }, [\n { name: 'heat', dim: ENERGY },\n { name: 'temperature', dim: TEMPERATURE },\n ], {\n id: 'CE-clausius-entropy',\n holds: 'temperature > 0',\n name: 'Clausius entropy change',\n domain: 'thermodynamics',\n formula_latex: '\\\\Delta S = Q/T',\n epistemicStatus: 'fully-quantitative',\n scalarAst: op('/', [sym('heat', ENERGY), sym('temperature', TEMPERATURE)]),\n regime: { scale: 'classical' },\n assumptions: ['reversible process', 'constant temperature'],\n references: ['Clausius 1865', 'Callen, Thermodynamics'],\n partnerBridges: [],\n }),\n // Thermal diffusivity α = k/(ρ c_p)\n l1({ name: 'thermal-diffusivity', dim: THERMAL_DIFFUSIVITY }, [\n { name: 'thermal-conductivity', dim: THERMAL_CONDUCTIVITY },\n { name: 'density', dim: DENSITY },\n { name: 'specific-heat-capacity', dim: SPECIFIC_HEAT },\n ], {\n id: 'CE-thermal-diffusivity',\n holds: 'thermal-conductivity > 0 and density > 0 and specific-heat-capacity > 0',\n name: 'Thermal diffusivity',\n domain: 'thermodynamics',\n formula_latex: '\\\\alpha = k/(\\\\rho c_p)',\n epistemicStatus: 'fully-quantitative',\n scalarAst: op('/', [\n sym('thermal-conductivity', THERMAL_CONDUCTIVITY),\n op('*', [sym('density', DENSITY), sym('specific-heat-capacity', SPECIFIC_HEAT)]),\n ]),\n regime: { scale: 'classical' },\n assumptions: ['homogeneous isotropic medium'],\n references: ['Carslaw & Jaeger, Conduction of Heat in Solids'],\n partnerBridges: [],\n }),\n];\n"]}
@@ -1,3 +1,22 @@
1
+ /**
2
+ * Bridge↔canonical linkage (Sub-project B) — the "validate against standard
3
+ * physics" engine. For a canonical equation with a scalar-AST and a bridge with
4
+ * an RHS AST, it asks:
5
+ * 1. do they share the same dimension? (necessary)
6
+ * 2. are they the same relation up to dimensionless factors? (`normalForm`)
7
+ * 3. (best-effort) do they agree numerically up to a constant ratio?
8
+ *
9
+ * The structural half — same dimension, `normalForm`, and the F4
10
+ * `restatesBridge` guard — is `classifyStructure` in `structural.ts`. This
11
+ * module calls that function and then runs numerical recovery. A structural
12
+ * match is `restates-canonical` (a trivial X≡X, NOT a discovery) only when
13
+ * the canonical entry's `restatesBridge` actually names that bridge. A
14
+ * structural match the registry did NOT pre-declare is a genuine `recovers`
15
+ * correspondence. Numerical agreement is not a confirmation.
16
+ *
17
+ * @module canonical/linkage
18
+ */
19
+ import type { ExprNode } from '../dimensional/validator.js';
1
20
  /** Best-effort numerical-recovery outcome. */
2
21
  export interface RecoveryOutcome {
3
22
  /** Both ASTs evaluated at every sample (no unresolved leaf). */
@@ -17,16 +36,22 @@ export interface LinkageResult {
17
36
  readonly recovery: RecoveryOutcome | null;
18
37
  readonly classification: 'restates-canonical' | 'recovers' | 'dimensional-only' | 'unrelated';
19
38
  }
39
+ /**
40
+ * Best-effort check that two ASTs agree up to a constant ratio.
41
+ *
42
+ * @internal
43
+ */
44
+ export declare function numericalRecovery(canon: ExprNode, bridge: ExprNode): RecoveryOutcome;
20
45
  /** Compare one canonical entry against one bridge. */
21
46
  export declare function classifyLinkage(canonicalId: string, bridgeId: number): LinkageResult;
22
47
  /**
23
48
  * Scan every canonical entry (with a scalar-AST) against every bridge RHS, and
24
49
  * return the non-`unrelated` results — the physicist's linkage worklist.
25
50
  *
26
- * Each bridge is validated and normal-formed ONCE (canonical-invariant), and
27
- * each canonical's normal-form is computed once per outer iteration
28
- * (bridge-invariant); the inner loop then only compares pre-computed strings
29
- * and dimensions. Reduces the per-pair AST walks (~3·C·B) to ~2·B + C.
51
+ * Each bridge's shape comes from the process-wide `bridgeShapes` table
52
+ * (validated and normal-formed once), and each canonical's normal-form is
53
+ * computed once per outer iteration (bridge-invariant); the inner loop then
54
+ * only compares pre-computed strings and dimensions.
30
55
  */
31
56
  export declare function scanLinkages(): LinkageResult[];
32
57
  //# sourceMappingURL=linkage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"linkage.d.ts","sourceRoot":"","sources":["../../src/canonical/linkage.ts"],"names":[],"mappings":"AA6BA,8CAA8C;AAC9C,MAAM,WAAW,eAAe;IAC9B,gEAAgE;IAChE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB;kEAC8D;IAC9D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,uCAAuC;AACvC,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,iCAAiC;IACjC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,gEAAgE;IAChE,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAC;IAC1C,QAAQ,CAAC,cAAc,EACnB,oBAAoB,GACpB,UAAU,GACV,kBAAkB,GAClB,WAAW,CAAC;CACjB;AAsJD,sDAAsD;AACtD,wBAAgB,eAAe,CAC7B,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GACf,aAAa,CAsBf;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,IAAI,aAAa,EAAE,CAqB9C"}
1
+ {"version":3,"file":"linkage.d.ts","sourceRoot":"","sources":["../../src/canonical/linkage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAU5D,8CAA8C;AAC9C,MAAM,WAAW,eAAe;IAC9B,gEAAgE;IAChE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB;kEAC8D;IAC9D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,uCAAuC;AACvC,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,iCAAiC;IACjC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,gEAAgE;IAChE,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAC;IAC1C,QAAQ,CAAC,cAAc,EACnB,oBAAoB,GACpB,UAAU,GACV,kBAAkB,GAClB,WAAW,CAAC;CACjB;AAsDD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAG,eAAe,CAmCpF;AA+CD,sDAAsD;AACtD,wBAAgB,eAAe,CAC7B,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GACf,aAAa,CAsBf;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,IAAI,aAAa,EAAE,CAmB9C"}
@@ -1,10 +1,8 @@
1
- import { validate } from '../dimensional/validator.js';
2
1
  import { evalExpr } from '../composition/expr-eval.js';
3
2
  import { CONSTANTS } from '../dimensional/symbolic-constants.js';
4
- import { BRIDGE_RHS_BY_ID } from '../bridges/rhs-registry.js';
5
3
  import { CANONICAL_EQUATIONS, canonicalById } from './registry.js';
6
4
  import { canonicalQuantityName, normalForm } from './normal-form.js';
7
- import { classifyStructure } from './structural.js';
5
+ import { bridgeShapes, classifyStructure } from './structural.js';
8
6
  const isDimensionless = (d) => d.L === 0 &&
9
7
  d.M === 0 &&
10
8
  d.T === 0 &&
@@ -42,9 +40,22 @@ function collectLeaves(node, vars, dimless) {
42
40
  return;
43
41
  }
44
42
  }
45
- const SAMPLE_FACTORS = [1, 2, 3];
46
- /** Best-effort check that two ASTs agree up to a constant ratio. */
47
- function numericalRecovery(canon, bridge) {
43
+ /**
44
+ * The sample points: variable `i` (in sorted canonical-name order) takes the
45
+ * value `(1.3 + 0.7·i)^p` at exponent `p`. Each variable has its own base, so
46
+ * the RATIOS between variables change from point to point too. One common
47
+ * scale factor would leave every ratio such as y/x fixed, and two homogeneous
48
+ * expressions of the same degree (`x + 2y` and `x + y`) would then pass as a
49
+ * constant ratio at every point: a recovery that could not fail (9.0.0 audit
50
+ * §4 C3). `canonical-compare.ts` uses the same scheme.
51
+ */
52
+ const SAMPLE_EXPONENTS = [1, 1.3, 1.6];
53
+ /**
54
+ * Best-effort check that two ASTs agree up to a constant ratio.
55
+ *
56
+ * @internal
57
+ */
58
+ export function numericalRecovery(canon, bridge) {
48
59
  const vars = new Map();
49
60
  const dimless = new Set();
50
61
  collectLeaves(canon, vars, dimless);
@@ -54,10 +65,10 @@ function numericalRecovery(canon, bridge) {
54
65
  const canonicals = [...new Set(vars.values())].sort();
55
66
  const index = new Map(canonicals.map((n, i) => [n, i]));
56
67
  const ratios = [];
57
- for (const s of SAMPLE_FACTORS) {
68
+ for (const p of SAMPLE_EXPONENTS) {
58
69
  const values = {};
59
70
  for (const [raw, canonName] of vars) {
60
- values[raw] = (1.3 + 0.7 * index.get(canonName)) * s;
71
+ values[raw] = Math.pow(1.3 + 0.7 * index.get(canonName), p);
61
72
  }
62
73
  // Hold unresolved dimensionless leaves fixed — recovery is "up to" them.
63
74
  for (const n of dimless)
@@ -82,19 +93,12 @@ function numericalRecovery(canon, bridge) {
82
93
  const maxRelErr = Math.max(...ratios.map((r) => Math.abs((r - r0) / r0)));
83
94
  return { tested: true, maxRelErr };
84
95
  }
85
- /** Validate + normal-form a bridge RHS once. */
86
- function precomputeBridge(rhs) {
87
- const v = validate(rhs);
88
- return {
89
- rhs,
90
- dim: v.ok ? v.inferredDimension : null,
91
- normal: normalForm(rhs),
92
- };
93
- }
94
96
  /**
95
97
  * The comparison core, given a canonical entry (with its pre-computed
96
- * normal-form) and a pre-computed bridge. Pure: no AST re-walks except the
97
- * rare `numericalRecovery` that only fires on a structural match.
98
+ * normal-form) and a bridge's shape from the process-wide `bridgeShapes`
99
+ * table (validated dimension and normal-form hash, computed once). Pure: no
100
+ * AST re-walks except the rare `numericalRecovery` that only fires on a
101
+ * structural match.
98
102
  */
99
103
  function classifyAgainst(canon, canonAst, canonNormal, bridgeId, bridge) {
100
104
  const relation = classifyStructure({
@@ -130,8 +134,8 @@ function classifyAgainst(canon, canonAst, canonNormal, bridgeId, bridge) {
130
134
  /** Compare one canonical entry against one bridge. */
131
135
  export function classifyLinkage(canonicalId, bridgeId) {
132
136
  const canon = canonicalById(canonicalId);
133
- const bridgeRhs = BRIDGE_RHS_BY_ID.get(bridgeId);
134
- if (!canon || !bridgeRhs || !canon.scalarAst) {
137
+ const bridge = bridgeShapes().get(bridgeId);
138
+ if (!canon || !bridge || !canon.scalarAst) {
135
139
  return {
136
140
  canonicalId,
137
141
  bridgeId,
@@ -141,22 +145,20 @@ export function classifyLinkage(canonicalId, bridgeId) {
141
145
  classification: 'unrelated',
142
146
  };
143
147
  }
144
- return classifyAgainst(canon, canon.scalarAst, normalForm(canon.scalarAst), bridgeId, precomputeBridge(bridgeRhs));
148
+ return classifyAgainst(canon, canon.scalarAst, normalForm(canon.scalarAst), bridgeId, bridge);
145
149
  }
146
150
  /**
147
151
  * Scan every canonical entry (with a scalar-AST) against every bridge RHS, and
148
152
  * return the non-`unrelated` results — the physicist's linkage worklist.
149
153
  *
150
- * Each bridge is validated and normal-formed ONCE (canonical-invariant), and
151
- * each canonical's normal-form is computed once per outer iteration
152
- * (bridge-invariant); the inner loop then only compares pre-computed strings
153
- * and dimensions. Reduces the per-pair AST walks (~3·C·B) to ~2·B + C.
154
+ * Each bridge's shape comes from the process-wide `bridgeShapes` table
155
+ * (validated and normal-formed once), and each canonical's normal-form is
156
+ * computed once per outer iteration (bridge-invariant); the inner loop then
157
+ * only compares pre-computed strings and dimensions.
154
158
  */
155
159
  export function scanLinkages() {
156
160
  const results = [];
157
- const bridges = [
158
- ...BRIDGE_RHS_BY_ID,
159
- ].map(([id, rhs]) => [id, precomputeBridge(rhs)]);
161
+ const bridges = bridgeShapes();
160
162
  for (const ce of CANONICAL_EQUATIONS) {
161
163
  if (!ce.scalarAst)
162
164
  continue;
@@ -1 +1 @@
1
- {"version":3,"file":"linkage.js","sourceRoot":"","sources":["../../src/canonical/linkage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"linkage.js","sourceRoot":"","sources":["../../src/canonical/linkage.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Bridge↔canonical linkage (Sub-project B) — the \"validate against standard\n * physics\" engine. For a canonical equation with a scalar-AST and a bridge with\n * an RHS AST, it asks:\n * 1. do they share the same dimension? (necessary)\n * 2. are they the same relation up to dimensionless factors? (`normalForm`)\n * 3. (best-effort) do they agree numerically up to a constant ratio?\n *\n * The structural half — same dimension, `normalForm`, and the F4\n * `restatesBridge` guard — is `classifyStructure` in `structural.ts`. This\n * module calls that function and then runs numerical recovery. A structural\n * match is `restates-canonical` (a trivial X≡X, NOT a discovery) only when\n * the canonical entry's `restatesBridge` actually names that bridge. A\n * structural match the registry did NOT pre-declare is a genuine `recovers`\n * correspondence. Numerical agreement is not a confirmation.\n *\n * @module canonical/linkage\n */\nimport type { ExprNode } from '../dimensional/validator.js';\nimport type { Dimension } from '../dimensional/types.js';\nimport { evalExpr } from '../composition/expr-eval.js';\nimport { CONSTANTS } from '../dimensional/symbolic-constants.js';\nimport type { CanonicalEquation } from './canonical-equation.js';\nimport { CANONICAL_EQUATIONS, canonicalById } from './registry.js';\nimport { canonicalQuantityName, normalForm } from './normal-form.js';\nimport { bridgeShapes, classifyStructure } from './structural.js';\nimport type { BridgeShape } from './structural.js';\n\n/** Best-effort numerical-recovery outcome. */\nexport interface RecoveryOutcome {\n /** Both ASTs evaluated at every sample (no unresolved leaf). */\n readonly tested: boolean;\n /** Spread of the canonical/bridge value ratio across samples (0 ⇒ they agree\n * up to a single constant factor). `NaN` when not tested. */\n readonly maxRelErr: number;\n}\n\n/** One bridge↔canonical comparison. */\nexport interface LinkageResult {\n readonly canonicalId: string;\n readonly bridgeId: number;\n /** Inferred dimensions agree. */\n readonly dimMatch: boolean;\n /** Same relation up to dimensionless factors (`normalForm`). */\n readonly structuralMatch: boolean;\n readonly recovery: RecoveryOutcome | null;\n readonly classification:\n | 'restates-canonical'\n | 'recovers'\n | 'dimensional-only'\n | 'unrelated';\n}\n\nconst isDimensionless = (d: Dimension): boolean =>\n d.L === 0 &&\n d.M === 0 &&\n d.T === 0 &&\n d.I === 0 &&\n d.Theta === 0 &&\n d.N === 0 &&\n d.J === 0;\n\n/**\n * Collect leaves `evalExpr` can't resolve (not a registered constant, not a\n * numeric literal), split into physical `vars` (non-dimensionless — varied\n * across samples) and `dimless` (dimensionless — held fixed: they ARE the\n * constant factor \"up to\" which recovery is measured).\n */\nfunction collectLeaves(\n node: ExprNode,\n vars: Map<string, string>,\n dimless: Set<string>,\n): void {\n switch (node.kind) {\n case 'symbol':\n if (!(node.name in CONSTANTS) && Number.isNaN(Number(node.name))) {\n if (isDimensionless(node.dim)) dimless.add(node.name);\n else vars.set(node.name, canonicalQuantityName(node.name, node.dim));\n }\n return;\n case 'op':\n for (const a of node.args) collectLeaves(a, vars, dimless);\n return;\n case 'transcendental':\n collectLeaves(node.arg, vars, dimless);\n return;\n case 'abs':\n collectLeaves(node.arg, vars, dimless);\n return;\n default:\n return;\n }\n}\n\n/**\n * The sample points: variable `i` (in sorted canonical-name order) takes the\n * value `(1.3 + 0.7·i)^p` at exponent `p`. Each variable has its own base, so\n * the RATIOS between variables change from point to point too. One common\n * scale factor would leave every ratio such as y/x fixed, and two homogeneous\n * expressions of the same degree (`x + 2y` and `x + y`) would then pass as a\n * constant ratio at every point: a recovery that could not fail (9.0.0 audit\n * §4 C3). `canonical-compare.ts` uses the same scheme.\n */\nconst SAMPLE_EXPONENTS = [1, 1.3, 1.6];\n\n/**\n * Best-effort check that two ASTs agree up to a constant ratio.\n *\n * @internal\n */\nexport function numericalRecovery(canon: ExprNode, bridge: ExprNode): RecoveryOutcome {\n const vars = new Map<string, string>();\n const dimless = new Set<string>();\n collectLeaves(canon, vars, dimless);\n collectLeaves(bridge, vars, dimless);\n // `M` and `mass` are one quantity. They share a sample, or the ratio is a\n // float artifact of two independent draws of the same mass.\n const canonicals = [...new Set(vars.values())].sort();\n const index = new Map(canonicals.map((n, i) => [n, i]));\n const ratios: number[] = [];\n for (const p of SAMPLE_EXPONENTS) {\n const values: Record<string, number> = {};\n for (const [raw, canonName] of vars) {\n values[raw] = Math.pow(1.3 + 0.7 * index.get(canonName)!, p);\n }\n // Hold unresolved dimensionless leaves fixed — recovery is \"up to\" them.\n for (const n of dimless) values[n] = 1;\n let cv: number;\n let bv: number;\n try {\n cv = evalExpr(canon, values);\n bv = evalExpr(bridge, values);\n } catch {\n return { tested: false, maxRelErr: NaN };\n }\n // Guard cv===0 too: with cv===0 the ratio is 0 at every sample, so the\n // relative-spread denominator r0===0 ⇒ NaN — a false \"tested\" result.\n if (!Number.isFinite(cv) || !Number.isFinite(bv) || bv === 0 || cv === 0) {\n return { tested: false, maxRelErr: NaN };\n }\n ratios.push(cv / bv);\n }\n const r0 = ratios[0];\n const maxRelErr = Math.max(...ratios.map((r) => Math.abs((r - r0) / r0)));\n return { tested: true, maxRelErr };\n}\n\n/**\n * The comparison core, given a canonical entry (with its pre-computed\n * normal-form) and a bridge's shape from the process-wide `bridgeShapes`\n * table (validated dimension and normal-form hash, computed once). Pure: no\n * AST re-walks except the rare `numericalRecovery` that only fires on a\n * structural match.\n */\nfunction classifyAgainst(\n canon: CanonicalEquation,\n canonAst: ExprNode,\n canonNormal: string,\n bridgeId: number,\n bridge: BridgeShape,\n): LinkageResult {\n const relation = classifyStructure({\n left: canonAst,\n leftDim: canon.dimensional.target.dim,\n leftNormal: canonNormal,\n right: bridge.rhs,\n rightDim: bridge.dim,\n rightNormal: bridge.normal,\n restatesBridge: canon.restatesBridge,\n bridgeId: String(bridgeId),\n });\n const recovery = relation.structuralMatch ? numericalRecovery(canonAst, bridge.rhs) : null;\n\n let classification: LinkageResult['classification'];\n if (relation.structuralMatch) {\n classification = relation.restates ? 'restates-canonical' : 'recovers';\n } else if (relation.dimMatch) {\n classification = 'dimensional-only';\n } else {\n classification = 'unrelated';\n }\n\n return {\n canonicalId: canon.id,\n bridgeId,\n dimMatch: relation.dimMatch,\n structuralMatch: relation.structuralMatch,\n recovery,\n classification,\n };\n}\n\n/** Compare one canonical entry against one bridge. */\nexport function classifyLinkage(\n canonicalId: string,\n bridgeId: number,\n): LinkageResult {\n const canon = canonicalById(canonicalId);\n const bridge = bridgeShapes().get(bridgeId);\n\n if (!canon || !bridge || !canon.scalarAst) {\n return {\n canonicalId,\n bridgeId,\n dimMatch: false,\n structuralMatch: false,\n recovery: null,\n classification: 'unrelated',\n };\n }\n\n return classifyAgainst(\n canon,\n canon.scalarAst,\n normalForm(canon.scalarAst),\n bridgeId,\n bridge,\n );\n}\n\n/**\n * Scan every canonical entry (with a scalar-AST) against every bridge RHS, and\n * return the non-`unrelated` results — the physicist's linkage worklist.\n *\n * Each bridge's shape comes from the process-wide `bridgeShapes` table\n * (validated and normal-formed once), and each canonical's normal-form is\n * computed once per outer iteration (bridge-invariant); the inner loop then\n * only compares pre-computed strings and dimensions.\n */\nexport function scanLinkages(): LinkageResult[] {\n const results: LinkageResult[] = [];\n const bridges = bridgeShapes();\n\n for (const ce of CANONICAL_EQUATIONS) {\n if (!ce.scalarAst) continue;\n const canonNormal = normalForm(ce.scalarAst);\n for (const [bridgeId, bridge] of bridges) {\n const r = classifyAgainst(\n ce,\n ce.scalarAst,\n canonNormal,\n bridgeId,\n bridge,\n );\n if (r.classification !== 'unrelated') results.push(r);\n }\n }\n return results;\n}\n"]}
@@ -22,14 +22,6 @@
22
22
  */
23
23
  import type { ExprNode } from '../dimensional/validator.js';
24
24
  import type { Dimension } from '../dimensional/types.js';
25
- /**
26
- * A dimensionless symbol is a droppable "up to a constant" factor only when it
27
- * is a numeric literal (`2`, `-1`, `0.5`), a registered named constant
28
- * (`ln2`, `4pi`, …), or a spelled-out numeric constant (`6pi`, `ln_2_constant`).
29
- * Any OTHER dimensionless symbol is a stub for an unknown dimensionless quantity
30
- * (a parameter or a functional like `ln⟨exp(−βW)⟩`) and is structural —
31
- * dropping it would conflate distinct interiors.
32
- */
33
25
  /**
34
26
  * Bridge ASTs still spell a governing quantity with the short symbol (`T`, `M`,
35
27
  * `m_1`, `m_2`). The registry uses one name. The structural hash treats the
@@ -1 +1 @@
1
- {"version":3,"file":"normal-form.d.ts","sourceRoot":"","sources":["../../src/canonical/normal-form.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AA2BzD;;;;;;;GAOG;AACH;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,GAAG,MAAM,CAK1E;AA4CD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CA8DjD;AAED,iFAAiF;AACjF,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAEnE"}
1
+ {"version":3,"file":"normal-form.d.ts","sourceRoot":"","sources":["../../src/canonical/normal-form.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AA4BzD;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,GAAG,MAAM,CAK1E;AAoDD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAiEjD;AAED,iFAAiF;AACjF,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAEnE"}
@@ -13,20 +13,13 @@ const UNIT = '1';
13
13
  /**
14
14
  * Spelled-out dimensionless numeric constants some encoders write as a named
15
15
  * symbol rather than a literal — genuine constants the eval `CONSTANTS`
16
- * registry happens not to list (it carries only `ln2`/`4pi`/`8pi`). The
17
- * `\d*pi` pattern covers `pi`/`2pi`/`6pi`/…; `ln_2_constant` is BE-16's spelling
18
- * of `ln 2`. These stay droppable; everything else dimensionless-and-named is a
19
- * PARAMETER stub (`alpha`, `lambda`, `g_dark`, `ln⟨e^−βW⟩`, …) and is kept.
16
+ * registry does not list under that spelling (its own keys are the canonical
17
+ * rows of the constant registry; `piMultipleValue` reads `pi`/`2pi`/`6pi`/…).
18
+ * `ln_2_constant` is BE-16's spelling of `ln 2`. These stay droppable;
19
+ * everything else dimensionless-and-named is a PARAMETER stub (`alpha`,
20
+ * `lambda`, `g_dark`, `ln⟨e^−βW⟩`, …) and is kept.
20
21
  */
21
22
  const NAMED_DIMENSIONLESS_CONSTANTS = new Set(['ln_2_constant']);
22
- /**
23
- * A dimensionless symbol is a droppable "up to a constant" factor only when it
24
- * is a numeric literal (`2`, `-1`, `0.5`), a registered named constant
25
- * (`ln2`, `4pi`, …), or a spelled-out numeric constant (`6pi`, `ln_2_constant`).
26
- * Any OTHER dimensionless symbol is a stub for an unknown dimensionless quantity
27
- * (a parameter or a functional like `ln⟨exp(−βW)⟩`) and is structural —
28
- * dropping it would conflate distinct interiors.
29
- */
30
23
  /**
31
24
  * Bridge ASTs still spell a governing quantity with the short symbol (`T`, `M`,
32
25
  * `m_1`, `m_2`). The registry uses one name. The structural hash treats the
@@ -42,6 +35,14 @@ export function canonicalQuantityName(name, dim) {
42
35
  }
43
36
  return quantityIdForSpelling(name) ?? name;
44
37
  }
38
+ /**
39
+ * A dimensionless symbol is a droppable "up to a constant" factor only when it
40
+ * is a numeric literal (`2`, `-1`, `0.5`), a registered named constant
41
+ * (`ln2`, `4pi`, …), or a spelled-out numeric constant (`6pi`, `ln_2_constant`).
42
+ * Any OTHER dimensionless symbol is a stub for an unknown dimensionless quantity
43
+ * (a parameter or a functional like `ln⟨exp(−βW)⟩`) and is structural —
44
+ * dropping it would conflate distinct interiors.
45
+ */
45
46
  function isDroppableConstant(name) {
46
47
  return (name in CONSTANTS ||
47
48
  Number.isFinite(Number(name)) ||
@@ -124,6 +125,10 @@ export function normalForm(node) {
124
125
  // dimensionless exponent is never dropped (symmetric for direct
125
126
  // symbols and op sub-expressions alike).
126
127
  const base = normalForm(node.args[0]);
128
+ // A dimensionless constant to any power is still a dimensionless constant (π², √(2π)),
129
+ // dropped as the constant is; the exponent is structural only on a dimensionful base.
130
+ if (base === UNIT)
131
+ return UNIT;
127
132
  return `^(${base},${rawForm(node.args[1])})`;
128
133
  }
129
134
  case '+':